curl --request POST \
--url https://api.example.com/dict-hub/v1/dict/fraud-markers \
--header 'Authorization: Bearer demo-access-token' \
--header 'Content-Type: application/json' \
--data '{
"fraudType": "APPLICATION_FRAUD",
"key": "+5561999998888",
"requestId": "3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111",
"taxIdNumber": "12345678901"
}'import requests
url = "https://api.example.com/dict-hub/v1/dict/fraud-markers"
payload = {
"fraudType": "APPLICATION_FRAUD",
"key": "+5561999998888",
"requestId": "3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111",
"taxIdNumber": "12345678901"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fraudType: 'APPLICATION_FRAUD',
key: '+5561999998888',
requestId: '3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111',
taxIdNumber: '12345678901'
})
};
fetch('https://api.example.com/dict-hub/v1/dict/fraud-markers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/dict-hub/v1/dict/fraud-markers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fraudType' => 'APPLICATION_FRAUD',
'key' => '+5561999998888',
'requestId' => '3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111',
'taxIdNumber' => '12345678901'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/dict-hub/v1/dict/fraud-markers"
payload := strings.NewReader("{\n \"fraudType\": \"APPLICATION_FRAUD\",\n \"key\": \"+5561999998888\",\n \"requestId\": \"3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111\",\n \"taxIdNumber\": \"12345678901\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/dict-hub/v1/dict/fraud-markers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fraudType\": \"APPLICATION_FRAUD\",\n \"key\": \"+5561999998888\",\n \"requestId\": \"3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111\",\n \"taxIdNumber\": \"12345678901\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/dict-hub/v1/dict/fraud-markers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fraudType\": \"APPLICATION_FRAUD\",\n \"key\": \"+5561999998888\",\n \"requestId\": \"3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111\",\n \"taxIdNumber\": \"12345678901\"\n}"
response = http.request(request)
puts response.read_body{
"creationTime": "2026-08-21T10:00:00Z",
"fraudType": "APPLICATION_FRAUD",
"id": "0b843bcc-7c1a-4a12-9c88-8d3a5d70e6a1",
"infractionReport": {
"id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
"reporterParticipant": "18236120"
},
"key": "+5561999998888",
"lastModified": "2026-08-21T10:00:00Z",
"status": "REGISTERED",
"taxIdNumber": "12345678901"
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Create a fraud marker
Registers a DICT fraud marker for the taxpayer identified by taxIdNumber, optionally linked to a Pix key. requestId is the caller-provided idempotency key. Repeating a requestId with the same payload returns the same marker; repeating it with a different payload is rejected. The participant is determined by the authenticated tenant.
curl --request POST \
--url https://api.example.com/dict-hub/v1/dict/fraud-markers \
--header 'Authorization: Bearer demo-access-token' \
--header 'Content-Type: application/json' \
--data '{
"fraudType": "APPLICATION_FRAUD",
"key": "+5561999998888",
"requestId": "3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111",
"taxIdNumber": "12345678901"
}'import requests
url = "https://api.example.com/dict-hub/v1/dict/fraud-markers"
payload = {
"fraudType": "APPLICATION_FRAUD",
"key": "+5561999998888",
"requestId": "3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111",
"taxIdNumber": "12345678901"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
fraudType: 'APPLICATION_FRAUD',
key: '+5561999998888',
requestId: '3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111',
taxIdNumber: '12345678901'
})
};
fetch('https://api.example.com/dict-hub/v1/dict/fraud-markers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/dict-hub/v1/dict/fraud-markers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fraudType' => 'APPLICATION_FRAUD',
'key' => '+5561999998888',
'requestId' => '3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111',
'taxIdNumber' => '12345678901'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/dict-hub/v1/dict/fraud-markers"
payload := strings.NewReader("{\n \"fraudType\": \"APPLICATION_FRAUD\",\n \"key\": \"+5561999998888\",\n \"requestId\": \"3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111\",\n \"taxIdNumber\": \"12345678901\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/dict-hub/v1/dict/fraud-markers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fraudType\": \"APPLICATION_FRAUD\",\n \"key\": \"+5561999998888\",\n \"requestId\": \"3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111\",\n \"taxIdNumber\": \"12345678901\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/dict-hub/v1/dict/fraud-markers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fraudType\": \"APPLICATION_FRAUD\",\n \"key\": \"+5561999998888\",\n \"requestId\": \"3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111\",\n \"taxIdNumber\": \"12345678901\"\n}"
response = http.request(request)
puts response.read_body{
"creationTime": "2026-08-21T10:00:00Z",
"fraudType": "APPLICATION_FRAUD",
"id": "0b843bcc-7c1a-4a12-9c88-8d3a5d70e6a1",
"infractionReport": {
"id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
"reporterParticipant": "18236120"
},
"key": "+5561999998888",
"lastModified": "2026-08-21T10:00:00Z",
"status": "REGISTERED",
"taxIdNumber": "12345678901"
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}{
"code": "ERR-0001",
"detail": "Property foo is required but is missing.",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
],
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "https://example.com/errors/example",
"upstream": {
"code": "E4001",
"message": "account not found at provider"
}
}Authorizations
JWT bearer token issued by the identity provider.
Body
BCB DICT fraud type (UNKNOWN is read-only, never creatable)
APPLICATION_FRAUD, MULE_ACCOUNT, SCAMMER_ACCOUNT, OTHER "APPLICATION_FRAUD"
Caller-minted create idempotency key, forwarded verbatim to the provider
"3f2f6a52-a5b7-4f1a-9b0f-64d3f4b6c111"
CPF (11 digits) or numeric CNPJ (14 digits) being marked
"12345678901"
Optional Pix key tied to the marker. Maximum 77 BYTES UTF-8, not characters -- the schema deliberately does not declare maxLength (OpenAPI's maxLength counts characters, which would under-bound a multi-byte key); the byte-length limit is enforced at runtime (pkg/validation.ValidateDICTKeyLength).
"+5561999998888"
Response
Fraud marker registered.
When the marker was registered at the provider (RFC 3339 UTC)
"2026-08-21T10:00:00Z"
APPLICATION_FRAUD, MULE_ACCOUNT, SCAMMER_ACCOUNT, OTHER, UNKNOWN "APPLICATION_FRAUD"
Directory fraud-marker id
"0b843bcc-7c1a-4a12-9c88-8d3a5d70e6a1"
When the marker was last modified at the provider (RFC 3339 UTC)
"2026-08-21T10:00:00Z"
REGISTERED, CANCELLED "REGISTERED"
CPF (11 digits) or numeric CNPJ (14 digits) marked
"12345678901"
The infraction report the provider created this marker from, when applicable
Show child attributes
Show child attributes
Pix key linked to the marker, when one was supplied on create
"+5561999998888"
Was this page helpful?

