Í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 créditos em operações de consumo (CBS)

1. Objetivo

Retorna os créditos de Contribuição sobre Bens e Serviços (CBS) incluídos ou atualizados entre a data consulta e a data da última consulta anterior.

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 Correção dos dados retornados(seção 5). 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 retornadas as inclusões e atualizações 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.

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. 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/creditos/{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/creditos/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/creditos/{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 Card. Formato Descrição
tiqueteSolicitacao 1 1:1 string Tíquete da solicitação.
ni 1 1:1 String (8) Ni base 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[].pa 2 1:1 date (mm/aaaa) Período de apuração.
apuracao[].creditos 2 1:N array Lista de créditos da apuração.
apuracao[].creditos[].origem 3 1:1 integer Origem do crédito:
0 = NORMAL
20 = DEVOLUCAO_POR_PCONT
21 = DEVOLUCAO_POR_RAD
22 = DEVOLUCAO_POR_CREDITO
30 = CANCELAMENTO_CREDITO
31 = CANCELAMENTO_RAD
32 = CANCELAMENTO_PCONT
50 = PERECIMENTO_TRANSPORTE_FOB
51 = PERECIMENTO_TRANSPORTE_CIF
52 = DEVOLUCAO_PERECIMENTO_TRANSPORTE_CIF_POR_PCONT
53 = DEVOLUCAO_PERECIMENTO_TRANSPORTE_CIF_POR_RAD
54 = DEVOLUCAO_PERECIMENTO_TRANSPORTE_CIF_POR_CREDITO
55 = NOTA_CREDITO_MULTA_JUROS
apuracao[].creditos[].documento 3 1:1 integer Tipo do documento:
55 = NF-e — Nota Fiscal Eletrônica
57 = CT-e — Conhecimento de Transporte Eletrônico
62 = NFCOM — Nota Fiscal Fatura de Serviços de Comunicação Eletrônica
63 = BP-e — Bilhete de Passagem Eletrônico
64 = GTV-e — Guia de Transporte de Valores Eletrônica
65 = NFC-e — Nota Fiscal de Consumidor Eletrônica
66 = NF3-e — Nota Fiscal de Energia Elétrica Eletrônica
67 = CT-e OS — Conhecimento de Transporte Eletrônico para Outros Serviços
91 = NFS-e — Nota Fiscal de Serviço Eletrônica
92 = NFS-e Via — Nota Fiscal de Serviço Eletrônica de Exploração de Vias
93 = BP-e TM — Bilhete de Passagem Eletrônico Transporte Metropolitano
94 = DERE — Declaração de Regimes Específicos
97 = CT-e Simplificado — Conhecimento de Transporte Eletrônico Simplificado
apuracao[].creditos[].chave 3 0:1 String (100) Chave do documento fiscal.
apuracao[].creditos[].emissao 3 1:1 String (date-time ISO 8601) Data/hora de emissão.
apuracao[].creditos[].registro 3 1:1 String (date-time ISO 8601) Data/hora de registro.
apuracao[].creditos[].atualizacao 3 1:1 String (date-time ISO 8601) Data/hora da última atualização.
apuracao[].creditos[].cbs 3 1:1 object Grupo de valores CBS.
apuracao[].creditos[].cbs.excedentes 4 0:1 number (18,2) Valor excedente - valor não processado por inconsistência em relação ao documento vinculado.
apuracao[].creditos[].cbs.apurado 4 1:1 number (18,2) Valor apurado - Valor processado a partir do documento e origem.
apuracao[].creditos[].cbs.apropriacao 4 1:1 object Grupo de apropriação.
apuracao[].creditos[].cbs.apropriacao.inapropriavel 5 0:1 number (18,2) Valor inapropriável - parte do valor apurado que, em razão de eventos posteriores, não pode ser mais apropriado.
apuracao[].creditos[].cbs.apropriacao.suspenso 5 0:1 number (18,2) Valor suspenso - parte do valor apurado que, em razão da classificação tributária (cClassTrib), tem exigibilidade suspensa e, portanto, não pode ser apropriado.
apuracao[].creditos[].cbs.apropriacao.prescrito 5 0:1 number (18,2) Valor prescrito - parte do valor apurado que, em razão da prescrição não pode ser apropriado.
apuracao[].creditos[].cbs.apropriacao.aApropriar 5 0:1 number (18,2) Valor a apropriar - parte do valor apurado que ainda não foi apropriado, ou seja, ainda não está disponível para ser utilizado.
apuracao[].creditos[].cbs.apropriacao.apropriado 5 0:1 number (18,2) Valor apropriado - parte do valor apurado que já foi apropriado, ou seja, é passível de utilização.
apuracao[].creditos[].cbs.apropriacao.utilizacao 5 1:1 object Grupo de utilização.
apuracao[].creditos[].cbs.apropriacao.utilizacao.inutilizavel 6 0:1 number (18,2) Valor inutilizável - parte do valor apropriado que, em razão de eventos posteriores, não pode ser mais utilizado.
apuracao[].creditos[].cbs.apropriacao.utilizacao.utilizado 6 0:1 number (18,2) Valor utilizado - parte do valor apropriado que já foi utilizado para compensar débitos.
apuracao[].creditos[].cbs.apropriacao.utilizacao.restabelecido 6 0:1 number (18,2) Valor restabelecido - parte do valor apropriado, previamente utilizado, que em razão de eventos posteriores volta a estar disponível para utilização.
apuracao[].creditos[].cbs.apropriacao.utilizacao.naoUtilizado 6 1:1 object Grupo de não utilizado.
apuracao[].creditos[].cbs.apropriacao.utilizacao.naoUtilizado.saldoCredor 7 1:1 number (18,2) Saldo credor - parte do valor apropriado que ainda não foi utilizado e está disponível.
apuracao[].creditos[].cbs.apropriacao.utilizacao.naoUtilizado.pedidoRessarcimento 7 0:1 number (18,2) Pedido de ressarcimento - parte do valor apropriado que foi objeto de pedido de ressarcimento.

Observação: Com exceção dos campos apurado e saldoCredor, os demais campos de valor não serão exibidos se o resultado for igual a zero.

Se não houver créditos que atendam à janela de consulta, o campo apuracao será retornado como uma lista vazia ([]). Valores numéricos zero marcados como opcionais não são incluídos no JSON; os objetos apropriacao, utilizacao e naoUtilizado são incluídos mesmo quando seus valores são zero.

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

{
  "tiqueteSolicitacao": "48d88a3c-eff9-4489-8e3a-cde8d878d3f7.1E0CE7A4",
  "ni": "12345678",
  "niConsumidor": "12345678",
  "geradoEm": "2026-08-26T16:00:00Z",
  "apuracao": [
    {
      "pa": "08/2026",
      "creditos": [
        {
          "origem": 0,
          "documento": 1,
          "chave": "string",
          "emissao": "2026-08-01T00:00:00Z",
          "registro": "2026-08-01T00:00:00Z",
          "atualizacao": "2026-08-01T00:00:00Z",
          "cbs": {
            "apurado": 15,
            "apropriacao": {
              "utilizacao": {
                "naoUtilizado": {
                  "saldoCredor": 0
                }
              }
            }
          }
        }
      ]
    }
  ]
}