Developers / DF-e
DF-e

Distribuição POST

Consulta a SEFAZ (ou ADN, no caso de NFS-e) por documentos fiscais emitidos contra o CNPJ/CPF do seu contribuinte -- ele como destinatário/interessado, não como emitente. É assim que seu ERP fica sabendo de uma NF-e/CT-e/MDF-e/NFS-e que um fornecedor emitiu pra você, sem precisar que ele te avise manualmente.

⚠️
NF-e/CT-e/MDF-e só sincronizam em homologação hoje. Chamar em produção devolve 400 explícito, com detail vindo como objeto ({"codigo": "Nfe.Distribution.ProductionBlocked", "mensagem": "..."} -- troque Nfe por Cte/Mdfe conforme o documento) -- é uma trava deliberada desta fase do projeto, não um bug. NFS-e é a exceção -- sincroniza em produção normalmente, contrato real com o Ambiente Nacional já confirmado.

Endpoint (um por documento)

DocumentoEndpointAmbiente
NF-ePOST /v1/nfe/distribuicao/sincronizarSó homologação
CT-ePOST /v1/cte/distribuicao/sincronizarSó homologação
MDF-ePOST /v1/mdfe/distribuicao/sincronizarSó homologação
NFS-ePOST /v1/nfse/distribuicao/sincronizarHomologação e produção

Corpo da requisição

CampoObrigatórioObservação
contribuinte_documentoUm dos doisCNPJ/CPF do contribuinte interessado (destinatário dos documentos).
contribuinte_idUm dos doisUUID do contribuinte -- alternativa ao documento.
curl -X POST https://areacliente.centralfiscal.com.br/v1/nfe/distribuicao/sincronizar \
  -H "Authorization: Bearer cf_test_51JqK..." \
  -H "Content-Type: application/json" \
  -d '{"contribuinte_documento": "12345678000190"}'

Resposta

Cada chamada processa uma página (até 50 documentos) -- se tem_mais_documentos vier true, chame de novo pra continuar. Não existe hoje um job automático que faça isso por você (ver Automatizando abaixo).

{
  "ambiente": "HOMOLOGATION",
  "sucesso": true,
  "cstat": "138",
  "xmotivo": "Documento(s) localizado(s)",
  "documentos_recebidos": 3,
  "documentos_novos": 2,
  "ultimo_nsu": "000000000000045",
  "tem_mais_documentos": false,
  "mensagem": "Documento(s) localizado(s)",
  "avisos": []
}
💡
cstat 137 ("Nenhum documento localizado") é sucesso, não erro -- significa que não tem nada novo desde a última sincronização. documentos_novos pode ser menor que documentos_recebidos quando o mesmo NSU já tinha sido processado antes (idempotente).

Automatizando

⚠️
Hoje esta é uma chamada sob demanda -- não existe agendamento automático nosso disparando isso periodicamente. Se seu ERP precisa ficar atualizado continuamente, é você quem decide a cadência e chama este endpoint num cron/job próprio (respeitando o rate-limit real da SEFAZ, que costuma aplicar cooldown de cerca de 1 hora quando uma consulta volta vazia).

Depois de sincronizar, os documentos já baixados ficam disponíveis em Consulta -- sem precisar chamar a SEFAZ de novo.