API AutoConsulta
  • Começar
  • Catálogo
  • Webhooks
  • Canal de certificação
  • Servidor MCP
  • Referência da API
Information
Consultas
    Executar uma consultapostExecutar uma consulta (forma longa)postAcompanhar uma consulta assíncronagetRecuperar uma consulta já feitaget
Catálogo
    Listar os produtos disponíveis para a sua contaget
Conta
    Consultar o saldo da contagetOrçar uma consulta antes de executá-lapost
Distribuidor
    Listar os clientes do seu canalgetCadastrar um cliente (depósito) no seu canalpostConsultar um cliente do seu canalgetGerar o convite de certificação de um fornecedorpostListar os fornecedores de um cliente, com o ANDAMENTO de cada umgetReenviar o primeiro acesso de um cliente pendentepostReenviar o convite de certificaçãopostReenviar o link de verificação ao fornecedorpostConsultar o selo de um fornecedor pelo documentoget
Serviço
    Verificar se o serviço está no arget
Schemas
API AutoConsulta
API AutoConsulta

Distribuidor

Canal do parceiro que cadastra clientes e certifica os fornecedores deles.


Listar os clientes do seu canal

GET
https://api.consultas.us
/distributor/clients

Os clientes ligados à sua credencial, com o estado do vínculo de cada um.

Listar os clientes do seu canal › Responses

Os seus clientes.

CanalListaDeClientes
success
​const · required
Const value:
​CanalCliente[] · required

Do vínculo mais recente para o mais antigo.

total
​integer · required
GET/distributor/clients
curl https://api.consultas.us/distributor/clients \ --header 'X-API-Key: <api-key>'
Example Responses
{ "success": true, "clients": [ { "client_id": "5c1e8a2f-3d7b-4e90-a6c4-2b9f0e7d1a38", "name": "Vale Verde Reciclaveis", "legal_name": "Deposito Vale Verde Ltda", "document": "12345678000195", "status": "pending_first_access", "since": "2026-09-11T18:42:07.118Z" }, { "client_id": "9e4d2b71-6a0c-4f58-b3e1-c7a59d2f0e64", "name": "Sucatas Aurora", "legal_name": "Aurora Comercio de Metais Ltda", "document": "45678901000175", "status": "active", "since": "2026-09-10T14:05:33.902Z" } ], "total": 2 }
json
application/json

Cadastrar um cliente (depósito) no seu canal

POST
https://api.consultas.us
/distributor/clients

Cria a conta do cliente com o documento dele e devolve o link de primeiro acesso. O cliente conclui o próprio acesso e autoriza o vínculo — até que ele faça isso, o cliente responde com status: "pending_first_access" e ainda não aceita convites de certificação. Aceita Idempotency-Key; reenviar o mesmo documento devolve o cliente já existente em vez de duplicá-lo.

Cadastrar um cliente (depósito) no seu canal › Request Body

document
​string · required

CNPJ do cliente, com ou sem pontuação.

legal_name
​string · required
​object · required
trade_name
​string
external_reference
​string

O seu identificador; volta nas respostas de escrita.

Cadastrar um cliente (depósito) no seu canal › Responses

O cliente já existia no seu canal: repetição do cadastro, sem duplicar.

A repetição do cadastro (mesma `Idempotency-Key` ou mesmo CNPJ no seu canal). Não reemite o link.
CanalClienteJaCadastrado
success
​const · required
Const value:
client_id
​string · uuid · required
external_reference
​string | null · required
idempotent
​const · required

É ele que distingue a repetição do cadastro novo — nunca o status.

Const value:
status
​string · enum · required

O estado real naquele instante.

Enum values:
pending_first_access
active
POST/distributor/clients
curl https://api.consultas.us/distributor/clients \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <api-key>' \ --data '{ "document": "document", "legal_name": "legal_name", "trade_name": "trade_name", "admin": { "name": "name", "email": "test@example.com", "phone_e164": "phone_e164" }, "external_reference": "external_reference" }'
Example Request Body
{ "document": "document", "legal_name": "legal_name", "trade_name": "trade_name", "admin": { "name": "name", "email": "test@example.com", "phone_e164": "phone_e164" }, "external_reference": "external_reference" }
json
Example Responses
{ "success": true, "client_id": "5c1e8a2f-3d7b-4e90-a6c4-2b9f0e7d1a38", "external_reference": "CLI-4412", "idempotent": true, "status": "pending_first_access" }
json
application/json

Consultar um cliente do seu canal

GET
https://api.consultas.us
/distributor/clients/{id}

Detalhe do cliente e quantos fornecedores dele estão certificados.

Consultar um cliente do seu canal › path Parameters

id
​string · uuid · required

O client_id devolvido no cadastro.

Consultar um cliente do seu canal › Responses

O cliente.

CanalDetalheDoCliente
success
​const · required
Const value:
client_id
​string · uuid · required
name
​string | null · required
legal_name
​string | null · required
document
​string | null · required

CNPJ, só dígitos.

status
​string · enum · required
Enum values:
pending_first_access
active
since
​string · date-time · required
certified_suppliers
​integer · required

Quantos fornecedores do depósito têm selo válido agora. A lista sai de /suppliers.

GET/distributor/clients/{id}
curl https://api.consultas.us/distributor/clients/:id \ --header 'X-API-Key: <api-key>'
Example Responses
{ "success": true, "client_id": "9e4d2b71-6a0c-4f58-b3e1-c7a59d2f0e64", "name": "Sucatas Aurora", "legal_name": "Aurora Comercio de Metais Ltda", "document": "45678901000175", "status": "active", "since": "2026-09-10T14:05:33.902Z", "certified_suppliers": 3 }
json
application/json

Gerar o convite de certificação de um fornecedor

POST
https://api.consultas.us
/distributor/clients/{id}/invites

Gera, em nome do cliente, o link que o fornecedor abre para aderir. Devolve o link e o preço. Exige que o cliente já tenha concluído o primeiro acesso e autorizado o vínculo — caso contrário responde 409 CLIENT_CONSENT_PENDING. Responde status: "invited" (o mesmo nome do estado na lista e nos avisos), price_cents e payment_options — as formas de pagamento que o fornecedor verá na adesão. email diz o desfecho do nosso envio, inclusive undeliverable (o endereço informado não pode receber mensagens).

Gerar o convite de certificação de um fornecedor › path Parameters

id
​string · uuid · required

O client_id devolvido no cadastro.

Gerar o convite de certificação de um fornecedor › Request Body

document
​string · required

CPF ou CNPJ do fornecedor.

person_type
​string · enum · required

Termos da lei brasileira; não se traduzem.

Enum values:
PF
PJ
name
​string
​object
external_reference
​string

Gerar o convite de certificação de um fornecedor › Responses

Convite gerado.

CanalConviteEmitido
success
​const · required
Const value:
invite_id
​string · uuid · required

Guarde: é o que o reenvio do convite pede.

external_reference
​string | null · required
status
​const · required

O mesmo nome do primeiro dos estados do andamento e dos avisos.

Const value: invited
url
​string · uri · required

O link que o fornecedor abre. Entregue-o como veio.

price_cents
​integer · required

Em centavos de real. Depende do tipo de pessoa — não fixe no seu código.

​CanalFormaDePagamento[] · required

As formas que o fornecedor verá na adesão, na ordem da página; a primeira é a de price_cents.

reused
​boolean · required

true = já havia convite vivo para o documento neste depósito, e ele voltou. Chamar de novo não duplica.

email
​string · enum · required

O que aconteceu com o NOSSO envio — informativo, nunca impede o convite: sent (saiu), sem_destinatario (o convite não trazia contact.email), nao_pedido (send_invite_email: false), reenvio_recente (o mesmo convite já recebeu um e-mail nos últimos minutos), undeliverable (o endereço não pode receber mensagens) e failed (tentamos e não saiu; o link da resposta vale).

Enum values:
sent
sem_destinatario
nao_pedido
reenvio_recente
undeliverable
failed
POST/distributor/clients/{id}/invites
curl https://api.consultas.us/distributor/clients/:id/invites \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <api-key>' \ --data '{ "document": "document", "person_type": "PF", "name": "name", "contact": { "email": "test@example.com", "phone_e164": "phone_e164" }, "external_reference": "external_reference" }'
Example Request Body
{ "document": "document", "person_type": "PF", "name": "name", "contact": { "email": "test@example.com", "phone_e164": "phone_e164" }, "external_reference": "external_reference" }
json
Example Responses
{ "success": true, "invite_id": "56f61cbe-2a90-4c3b-b77d-1e2f3a4b5c6d", "external_reference": "FORN-88213", "status": "invited", "url": "https://www.consultas.us/adesao/<token>", "price_cents": 29900, "payment_options": [ { "method": "pix", "term_months": 12, "total_cents": 29900, "reference_total_cents": 37500 }, { "method": "card", "term_months": 12, "total_cents": 30817, "installments": [ { "count": 1, "total_cents": 30817, "installment_cents": 30817 }, { "count": 8, "total_cents": 34088, "installment_cents": 4261 } ] } ], "reused": false, "email": "sent" }
json
application/json

Listar os fornecedores de um cliente, com o ANDAMENTO de cada um

GET
https://api.consultas.us
/distributor/clients/{id}/suppliers

Todos os fornecedores daquele cliente e em que ponto está a certificação de cada um — uma linha por documento. O status é um dos nove: invited, invite_expired, awaiting_payment, in_verification, certified, expired, refused, verification_expired e revoked. ⚠️ refused (a verificação recusou) e verification_expired (a pessoa não concluiu) levam a ações opostas e por isso são estados distintos. revoked: o certificado foi revogado e deixou de valer — não é recusa nem vencimento. O andamento, e só ele: esta rota não devolve consulta, histórico, representante, decisão, etapa nem MOTIVO — nada que diga por que um desfecho foi o que foi. ⚠️ Este vocabulário NÃO é o de /distributor/seal, que responde a pergunta binária do selo com valid/expired.

Listar os fornecedores de um cliente, com o ANDAMENTO de cada um › path Parameters

id
​string · uuid · required

O client_id devolvido no cadastro.

Listar os fornecedores de um cliente, com o ANDAMENTO de cada um › Responses

Os fornecedores e o andamento de cada um.

CanalListaDeFornecedores
success
​const · required
Const value:
client_id
​string · uuid · required
​CanalFornecedor[] · required

Uma linha por documento.

total
​integer · required

0 é resposta normal — também para um client_id fora do seu canal.

GET/distributor/clients/{id}/suppliers
curl https://api.consultas.us/distributor/clients/:id/suppliers \ --header 'X-API-Key: <api-key>'
Example Responses
{ "success": true, "client_id": "9e4d2b71-6a0c-4f58-b3e1-c7a59d2f0e64", "suppliers": [ { "document": "98765432000198", "person_type": "PJ", "name": "Sucata Irmaos Silva Ltda", "status": "certified", "valid_until": "2027-09-10", "certified_since": "2026-09-11T13:07:52.441Z", "verification_url": "https://consultas.us/verificar-kyc/<token>", "certificate_number": "4F7C2A9E" }, { "document": "39053344705", "person_type": "PF", "name": "Jose da Silva", "status": "awaiting_payment", "valid_until": null, "certified_since": null, "verification_url": null, "certificate_number": null } ], "total": 2 }
json
application/json

Reenviar o primeiro acesso de um cliente pendente

POST
https://api.consultas.us
/distributor/clients/{id}/first-access

Gera um link de primeiro acesso NOVO (o anterior deixa de valer) e o envia por e-mail ao responsável cadastrado, para o cliente que ainda não concluiu o primeiro acesso. Devolve first_access.url e first_access.email_sent, como no cadastro. Cliente que já concluiu responde 409 CLIENT_ALREADY_ACTIVE. Reenviar não gera aviso.

Reenviar o primeiro acesso de um cliente pendente › path Parameters

id
​string · uuid · required

O client_id devolvido no cadastro.

Reenviar o primeiro acesso de um cliente pendente › Responses

Primeiro acesso reemitido.

CanalPrimeiroAcessoReemitido
success
​const · required
Const value:
client_id
​string · uuid · required
status
​const · required
Const value: pending_first_access
​object · required
POST/distributor/clients/{id}/first-access
curl https://api.consultas.us/distributor/clients/:id/first-access \ --request POST \ --header 'X-API-Key: <api-key>'
Example Responses
{ "success": true, "client_id": "5c1e8a2f-3d7b-4e90-a6c4-2b9f0e7d1a38", "status": "pending_first_access", "first_access": { "url": "https://www.consultas.us/auth/register?team_token=<token>&org_token=<token>", "email_sent": true } }
json
application/json

Reenviar o convite de certificação

POST
https://api.consultas.us
/distributor/clients/{id}/invites/{invite_id}/resend

Envia de novo, por e-mail, o convite emitido. contact.email, quando vem, passa a ser o contato do convite. Devolve url e email com os valores da emissão. Convite usado, cancelado ou vencido responde 409 INVITE_NOT_OPEN; convite inexistente ou de outro cliente, 404 INVITE_NOT_FOUND. Reenviar não gera aviso.

Reenviar o convite de certificação › path Parameters

id
​string · uuid · required

O client_id devolvido no cadastro.

invite_id
​string · uuid · required

O invite_id devolvido na emissão do convite.

Reenviar o convite de certificação › Request Body optional

​object

Reenviar o convite de certificação › Responses

Convite reenviado.

CanalConviteReenviado
success
​const · required
Const value:
invite_id
​string · uuid · required
url
​string · uri · required

O mesmo link do convite — reenviar não cria convite novo.

email
​string · enum · required

O que aconteceu com o NOSSO envio — informativo, nunca impede o convite: sent (saiu), sem_destinatario (o convite não trazia contact.email), nao_pedido (send_invite_email: false), reenvio_recente (o mesmo convite já recebeu um e-mail nos últimos minutos), undeliverable (o endereço não pode receber mensagens) e failed (tentamos e não saiu; o link da resposta vale).

Enum values:
sent
sem_destinatario
nao_pedido
reenvio_recente
undeliverable
failed
POST/distributor/clients/{id}/invites/{invite_id}/resend
curl https://api.consultas.us/distributor/clients/:id/invites/:invite_id/resend \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <api-key>' \ --data '{ "contact": { "email": "test@example.com" } }'
Example Request Body
{ "contact": { "email": "test@example.com" } }
json
Example Responses
{ "success": true, "invite_id": "56f61cbe-2a90-4c3b-b77d-1e2f3a4b5c6d", "url": "https://www.consultas.us/adesao/<token>", "email": "sent" }
json
application/json

Reenviar o link de verificação ao fornecedor

POST
https://api.consultas.us
/distributor/clients/{id}/suppliers/verification-link

Para o fornecedor em in_verification: envia de novo, por e-mail, o link da verificação a cada pessoa dele que ainda não concluiu. O documento vai no CORPO, nunca no caminho. Devolve sent e recipients. Fornecedor fora de in_verification responde 409 SUPPLIER_NOT_IN_VERIFICATION; sem link aberto, 409 NO_LINK_TO_RESEND. Reenviar não gera aviso.

Reenviar o link de verificação ao fornecedor › path Parameters

id
​string · uuid · required

O client_id devolvido no cadastro.

Reenviar o link de verificação ao fornecedor › Request Body

document
​string · required

CPF ou CNPJ do fornecedor.

Reenviar o link de verificação ao fornecedor › Responses

O desfecho do reenvio (veja sent).

CanalLinkDeVerificacaoReenviado
success
​const · required
Const value:
document
​string · required

O documento normalizado, só dígitos.

sent
​boolean · required

true quando ao menos uma pessoa recebeu.

recipients
​integer · required

Quantas pessoas do fornecedor receberam o link agora — sem identificá-las.

POST/distributor/clients/{id}/suppliers/verification-link
curl https://api.consultas.us/distributor/clients/:id/suppliers/verification-link \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <api-key>' \ --data '{ "document": "document" }'
Example Request Body
{ "document": "document" }
json
Example Responses
{ "success": true, "document": "98765432000198", "sent": true, "recipients": 2 }
json
application/json

Consultar o selo de um fornecedor pelo documento

GET
https://api.consultas.us
/distributor/seal

Diz se aquele documento está certificado no seu canal e até quando o selo vale. Sem custo. Responde certified: false para documento que não esteja certificado em nenhum cliente do seu canal.

Consultar o selo de um fornecedor pelo documento › query Parameters

document
​string · required

CPF ou CNPJ, com ou sem pontuação.

Consultar o selo de um fornecedor pelo documento › Responses

O selo — ou certified: false, que também é 200.

CanalSelo
success
​const · required
Const value:
document
​string · required

O documento normalizado, só dígitos.

certified
​boolean · required

true se o documento tem selo em pelo menos um depósito do seu canal.

​required

null quando certified é false.

GET/distributor/seal
curl 'https://api.consultas.us/distributor/seal?document=<string>' \ --header 'X-API-Key: <api-key>'
Example Responses
{ "success": true, "document": "98765432000198", "certified": true, "seal": { "status": "valid", "valid_until": "2027-09-10", "since": "2026-09-11T13:07:52.441Z", "verification_url": "https://consultas.us/verificar-kyc/<token>", "certificate_number": "4F7C2A9E" } }
json
application/json

ContaServiço