Índice

  1. Objetivo
  2. Histórico de versão
  3. Regras de retorno
  4. Endpoint da api
  5. Estrutura principal do JSON do arquivo de retorno (download via urlAssinada)
  6. Exemplo do JSON de retorno (download via urlAssinada)

Consultar recolhimentos de CBS como adquirente

1. Objetivo

Consulta os recolhimentos de CBS abrangendo o recolhimento efetuado pelo próprio adquirente (RAD).

Esta API funciona em modo assíncrono. Para orientações de uso, consulte as Regras Comuns às APIs Assíncronas da Apuração de CBS: regras de APIs assíncronas

2. Histórico de versão

Data Versão Descrição
03/09/2026 1.0 Versão inicial
17/09/2026 1.1 Ajustes nos exemplos de chamada
14/10/2026 1.2 Atualizar o payload de notificação enviado ao webhook. Atualizar o fluxo de obtenção e download do arquivo de retorno por meio da `urlAssinada`. Atualizar seção 5.

3. Regras de retorno

Para solicitações com consulta concluída nos últimos 3 meses, são retornados os recolhimentos registrados desde a data de atualização da solicitação concluída mais recente, limitada aos últimos 8 dias. Quando não há consulta concluída nesse período, a busca começa no 1º dia do mês corrente. Se não houver registros no período, apuracao será uma lista vazia ([]).

4. Endpoint da api

4.1 Campos de Entrada

Campo Formato Descrição
cnpj String (8) CNPJ base informado no path.

4.2 Header

Campo Formato Descrição
Content-TypeStringapplication/json

4.3 Request Body

Campo Formato Descrição
urlRetorno String Opcional. URL do webhook para receber a notificação de retorno. Quando não houver webhook, informar "" (string vazia).

4.4 Acionar o endpoint

  1. Substitua $TOKEN pelo valor de access_token.
  2. Substitua {cnpj} pelo CNPJ base com 8 dígitos.
  3. Opcionalmente, informe no corpo uma urlRetorno (URL do webhook) acessível por HTTP ou HTTPS para receber a notificação de conclusão da solicitação ou de erro no processamento. Quando não houver webhook, informar "" (string vazia). Sem esse campo, consulte a situação da solicitação para acompanhar o processamento.

Exemplo de chamada (com variável TOKEN)

curl --location --request POST 'https://api.receitafederal.gov.br/apuracao-cbs/v2/recolhimentos/{cnpj}' \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{ "urlRetorno": "https://cliente.exemplo.com/webhooks/apuracao-cbs" }'

Exemplo com dados fictícios

curl --location --request POST 'https://api.receitafederal.gov.br/apuracao-cbs/v2/recolhimentos/12345678' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.dadoFicticio.assinaturaFicticia' \
  --data '{ "urlRetorno": "https://cliente.exemplo.com/webhooks/apuracao-cbs" }'

Exemplo de chamada (sem webhook)

curl --location --request POST 'https://api.receitafederal.gov.br/apuracao-cbs/v2/recolhimentos/{cnpj}' \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{"urlRetorno":""}'

4.5 Campos Retornados

Campo Formato Descrição
tiqueteSolicitacao String Em caso de sucesso, tíquete gerado na requisição.
tEASegundos Integer (segundos) Em caso de sucesso, tempo estimado para atendimento da solicitação, em segundos. O valor -1 indica que não foi possível obter uma estimativa.
codigoErro String Em caso de erro - Identifica o erro ocorrido durante a requisição. Retornado apenas em caso de erro.
mensagemErro String Em caso de erro - Mensagem descritiva do erro ocorrido durante a requisição. Retornado apenas em caso de erro.

Exemplo de retorno em caso de sucesso (HTTP 201)

{
  "tiqueteSolicitacao": "692b7b25-44cb-4415-8625-2b9522dd7933.B5E08D55",
  "tEASegundos": 120
}

Exemplos de retorno em caso de erro

Requisição inválida (HTTP 400):

{
  "codigoErro": "REQUISICAO_INVALIDA",
  "mensagemErro": "corpo da requisição inválido"
}

Não autorizado (HTTP 401):

{
  "codigoErro": "NAO_AUTORIZADO",
  "mensagemErro": "consumidor não autorizado para este NI"
}

Erro interno (HTTP 500):

{
  "codigoErro": "ERRO_INTERNO",
  "mensagemErro": "erro interno ao processar solicitação"
}

Exemplo de objeto enviado para urlRetorno(webhook) em caso de sucesso (HTTP 2xx)

{
  "tiqueteSolicitacao":"48d88a3c-eff9-4489-8e3a-cde8d878d3f7.1E0CE7A4",
  "situacao": "CONCLUIDA"
 } 

5. Estrutura principal do JSON do arquivo de retorno (download via urlAssinada)

Campo Nível Cardinalidade Formato Descrição
tiqueteSolicitacao 1 1:1 String Tíquete da solicitação.
ni 1 1:1 String (8) NI do contribuinte.
niConsumidor 1 1:1 String (14) Inscrição no CPF ou CNPJ do usuário detentor da credencial de acesso, ou seja, quem está consumindo o serviço.
geradoEm 1 1:1 String (date-time ISO 8601) Data/hora de geração do arquivo.
apuracao[] 1 0:N Array Lista de apurações.
apuracao[].dataArrecadacao 2 1:1 String (date-time ISO 8601) Data/hora da arrecadação.
apuracao[].pagamentos[] 2 1:N Array Lista de pagamentos.
apuracao[].pagamentos[].numeroDARF 3 1:1 String (17) Número do DARF.
apuracao[].pagamentos[].tipo 3 1:1 Integer Tipo do recolhimento:
1 = RAD - Recolhimento pelo adquirente
2 = PCONT - Pagamento pelo contribuinte
apuracao[].pagamentos[].composicao[] 3 1:N Array Itens de composição do pagamento.
apuracao[].pagamentos[].composicao[].sequencial 4 1:1 number (8) Sequencial do item de composição.
apuracao[].pagamentos[].composicao[].pa 4 1:1 String (MM/AAAA) Período de apuração.
apuracao[].pagamentos[].composicao[].vencimento 4 1:1 String (date-time ISO 8601) Data/hora de vencimento.
apuracao[].pagamentos[].composicao[].niFornecedor 4 1:1 String (14) NI do fornecedor.
apuracao[].pagamentos[].composicao[].chaveDFE 4 1:1 String (100) Chave do DFE.
apuracao[].pagamentos[].composicao[].principal 4 1:1 number (18,2) Valor principal.
apuracao[].pagamentos[].composicao[].multa 4 1:1 number (18,2) Valor de multa.
apuracao[].pagamentos[].composicao[].juros 4 1:1 number (18,2) Valor de juros.
apuracao[].pagamentos[].composicao[].total 4 1:1 number (18,2) Valor total.

6. Exemplo do JSON de retorno (download via urlAssinada)

{
  "tiqueteSolicitacao": "48d88a3c-eff9-4489-8e3a-cde8d878d3f7.1E0CE7A4",
  "ni": "12345678",
  "niConsumidor": "12345678",
  "geradoEm": "2026-08-27T19:03:44Z",
  "apuracao": [
    {
      "dataArrecadacao": "2026-08-27T19:03:44.525Z",
      "pagamentos": [
        {
          "numeroDARF": "20260827000000001",
          "tipo": 3,
          "composicao": [
            {
              "sequencial": 1,
              "pa": "08/2026",
              "vencimento": "2026-09-20T00:00:00Z",
              "niFornecedor": "98765432000199",
              "chaveDFE": "",
              "principal": 100.00,
              "multa": 10.00,
              "juros": 5.00,
              "total": 115.00
            }
          ]
        },
        {
          "numeroDARF": "20260827000000002",
          "tipo": 2,
          "composicao": [
            {
              "sequencial": 2,
              "pa": "08/2026",
              "vencimento": "2026-09-20T00:00:00Z",
              "niFornecedor": "98765432000199",
              "chaveDFE": "35260898765432000199550010000001231234567890",
              "principal": 80.00,
              "multa": 0.50,
              "juros": 1.25,
              "total": 81.75
            }
          ]
        }
      ]
    }
  ]
}