Guia API Assíncrona
Fluxo comum, webhook, segurança e restrições das APIs assíncronas de Apuração CBS.
Pré-requisitos
Client Id e Client Secret obtidos junto à Receita Federal para o CNPJ raiz (8 dígitos).
Token OAuth2 (Client Credentials) válido, incluído no header Authorization: Bearer <token>.
URL HTTPS de retorno que aceite requisições HEAD (validação) e POST (notificação de conclusão).
Fluxo assíncrono
urlRetorno Requisição para o endpoint correspondente (débitos, créditos, pagamentos ou recolhimentos) com a URL do webhook no corpo.
A API faz uma requisição HEAD para o urlRetorno. Se o webhook estiver indisponível, a solicitação é cancelada.
tiqueteSolicitacao Resposta imediata com o tíquete identificador da solicitação assíncrona e o tempo estimado de processamento em segundos.
A Receita Federal processa a consulta de forma assíncrona. O tempo máximo de processamento é de 240 minutos.
Ao final do processamento, a API notifica o cliente com POST para o urlRetorno informado.
tiqueteSolicitacaourlAssinadaurlAssinadaExpiraEm
codigoErromensagemErro
APURACAO-408.
Recomendações de segurança
HTTPS obrigatório
Usar exclusivamente HTTPS com validação TLS. Nunca expor endpoints de webhook via HTTP.
Endpoint dedicado
Criar rota separada para o webhook, sem funções administrativas expostas no mesmo caminho.
Proteção da URL assinada
Tratar a urlAssinada como segredo temporário (válida por 48h). Não registrar em logs nem no histórico do navegador.
Validação de expiração
Verificar o campo urlAssinadaExpiraEm antes de realizar o download do arquivo de resultado.
Controle de disponibilidade
Implementar limites de requisição e proteção contra repetição. Responder HTTP 2xx apenas após aceitar e processar com sucesso a notificação.
Auditoria mascarada
Registrar em logs: tiqueteSolicitacao, horário e resultado. Mascarar tokens, URLs assinadas e credenciais.
Autenticação OAuth2 (Client Credentials)
Client Id + Client Secretaccess_tokenAuthorization: Bearer <token>Exemplo de chamada
curl --location --request POST \
'https://api.receitafederal.gov.br/apuracao-cbs/v2/{endpoint}/{cnpj}' \
--header "Authorization: Bearer $TOKEN" \
--header 'Content-Type: application/json' \
--data '{ "urlRetorno": "https://cliente.exemplo.com/webhooks/apuracao-cbs" }' Restrições
| Restrição | Limite |
|---|---|
| Chamadas ao endpoint de abertura | 4 por dia |
| Disponibilidade do arquivo (URL assinada) | 48 horas |