documentopath · stringRequiredContracted transport provider's CPF (11 digits) or CNPJ (14 digits). Accepts punctuation or no punctuation.
Constraints
{
"type": "string"
}Parameters, data structure and responses from the versioned contract.
/agregados/{documento}/chave-pixTechnical descriptions are translated from the versioned contract. Original identifiers and JSON are preserved; data examples are omitted.
Does the Pix key this contracted driver or carrier gave me match the one in your records?
Send the pair (document, key) and receive a yes/no answer. This check is useful before funds leave — especially when the key arrived by email, WhatsApp or a manually entered record.
The case this endpoint is designed to catch is situacao: "chave_de_outro_titular": the key is real, exists in your records and is registered for another contracted driver or carrier of yours. This is the pattern of key substitution — a scam in which payment succeeds but reaches the wrong account. A local if (chave === chaveQueTenhoNoERP) check does not catch it.
situacao | What to do |
|---|---|
vinculada | Proceed with payment. |
chave_de_outro_titular | Stop. Confirm with the beneficiary through a channel you already used before. |
nao_cadastrada | Check documento_possui_chave before deciding (below). |
This is NOT a query to the Brazilian Central Bank's DICT
The response concerns what is registered in FleetPay, not ownership of the key in the payment scheme.
vinculada: falsemeans "this is not the key recorded here" — never "this key does not belong to this person." Treatingfalseas proof of fraud blocks legitimate payments to someone who simply never registered an external key with us. That is whydocumento_possui_chaveexists: withfalse, FleetPay has no key for this person and there is no discrepancy to identify; withtrue, the person has a registered key and it is different.
What is returned: yes/no about the pair you supplied. Neither a third party's key nor its owner is returned — for chave_de_outro_titular, titular is deliberately null to prevent verification from becoming a reverse key-to-person directory.
Send the key as you have it, with or without formatting: CPF, CNPJ and phone numbers are compared by digits (+55 is optional), and email/random keys are compared case-insensitively.
A document that does not belong to one of your contracted drivers or carriers returns 404, not 403 — the same rule as GET /agregados/{documento}, so this endpoint cannot become a CPF/CNPJ enumeration oracle.
[
{
"oauth2": []
},
{
"chaveApi": []
}
]documentopath · stringRequiredContracted transport provider's CPF (11 digits) or CNPJ (14 digits). Accepts punctuation or no punctuation.
{
"type": "string"
}chavequery · stringRequiredPix key to check: CPF, CNPJ, email, phone (+55DDDNÚMERO) or random key (UUID).
{
"type": "string",
"maxLength": 77
}200 HTTP ResponseVerification result
application/jsondataobjectRequiredambienteobjectRequired401 HTTP ResponseUnauthenticated (autenticacao): missing, invalid or expired credentials, including an API key used in the wrong environment. A sandbox key is not valid in production, nor a production key in the sandbox; the error message indicates the expected environment.
404 HTTP ResponseNo contractor with this tax identifier is linked to your company.
429 HTTP ResponseRequest limit exceeded (limite_requisicoes). Wait for the interval specified in the Retry-After header before retrying. This may be a limit forwarded from the provider or FleetPay's own anti-abuse limit, counted per authenticated company and route group, with a short window for bursts and a long window for slower automated traffic. Limits are intentionally generous: genuine integrations, including large batches processed at once, should remain well below them. If yours reaches a limit, contact FleetPay.
{
"tags": [
"Agregados"
],
"summary": "Conferir a chave PIX de um agregado",
"operationId": "conferirChavePixDoAgregado",
"description": "**A chave PIX que este agregado me passou é a mesma que consta com vocês?**\n\nVocê manda o par (documento, chave) e recebe sim/não. É a conferência que vale a pena\nfazer **antes** de o dinheiro sair — principalmente quando a chave chegou por e-mail,\nWhatsApp ou num cadastro que alguém digitou.\n\n**O caso que este endpoint existe para pegar é `situacao: \"chave_de_outro_titular\"`:** a\nchave é real, está na sua base, e está cadastrada para **outro** agregado seu. É a\nassinatura da troca de chave — o golpe em que o pagamento sai certinho para a conta\nerrada. Um `if (chave === chaveQueTenhoNoERP)` do seu lado não pega isso.\n\n| `situacao` | O que fazer |\n|---|---|\n| `vinculada` | Segue o pagamento. |\n| `chave_de_outro_titular` | **Pare.** Confirme com o favorecido por um canal que você já usava antes. |\n| `nao_cadastrada` | Olhe `documento_possui_chave` antes de decidir (abaixo). |\n\n> ### Isto NÃO é uma consulta ao DICT do Bacen\n>\n> A resposta é sobre **o que está cadastrado na FleetPay**, não sobre a titularidade da\n> chave no arranjo de pagamentos. `vinculada: false` quer dizer \"não é a chave que consta\n> aqui\" — **nunca** \"esta chave não é dessa pessoa\". Tratar o `false` como prova de fraude\n> barra pagamento legítimo de agregado que simplesmente nunca cadastrou chave externa com\n> a gente. É para isso que existe o `documento_possui_chave`: com `false`, a FleetPay não\n> tem chave nenhuma dessa pessoa e não há divergência a apontar; com `true`, a pessoa tem\n> chave cadastrada e ela é **outra**.\n\n**O que sai daqui:** sim/não sobre o par que você mesmo mandou. Nem a chave de terceiro,\nnem o dono dela — em `chave_de_outro_titular` o `titular` vai `null` de propósito, para a\nconferência não virar um diretório reverso chave → pessoa.\n\nA chave pode ser mandada como você a tem, com ou sem máscara: comparamos CPF, CNPJ e\ntelefone por dígitos (o `+55` é opcional) e e-mail/chave aleatória sem diferenciar caixa.\n\n**Documento que não é seu agregado responde `404`, não `403`** — mesma regra do\n`GET /agregados/{documento}`, para o endpoint não virar oráculo de enumeração de CPF/CNPJ.\n",
"parameters": [
{
"name": "documento",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "CPF (11 dígitos) ou CNPJ (14 dígitos) do agregado. Aceita com ou sem pontuação."
},
{
"name": "chave",
"in": "query",
"required": true,
"schema": {
"type": "string",
"maxLength": 77
},
"description": "A chave PIX a conferir: CPF, CNPJ, e-mail, telefone (`+55DDDNÚMERO`) ou chave aleatória (UUID)."
}
],
"responses": {
"200": {
"description": "O resultado da conferência",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RespostaConferenciaChavePix"
}
}
}
},
"400": {
"$ref": "#/components/responses/Erro400"
},
"401": {
"$ref": "#/components/responses/Erro401"
},
"403": {
"$ref": "#/components/responses/Erro403"
},
"404": {
"description": "Nenhum agregado com este documento está vinculado à sua empresa.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Erro"
}
}
}
},
"429": {
"$ref": "#/components/responses/Erro429"
},
"500": {
"$ref": "#/components/responses/Erro500"
}
},
"method": "GET",
"path": "/agregados/{documento}/chave-pix"
}