Developers / Módulo Fiscal White-Label
Módulo Fiscal White-Label

Lançamentos

Lançamento (rascunho) é diferente de emissão: um rascunho fica salvo pra conferência antes de qualquer coisa acontecer de verdade. Documentos de saída transmitem à SEFAZ só quando confirmados; documentos de entrada nunca transmitem nada -- a nota já foi emitida por outra parte, aqui você só registra o recebimento.

Lançamento de saída POST

POST https://areacliente.centralfiscal.com.br/v1/contribuintes/{contribuinte_id}/lancamentos

Corpo idêntico ao de NF-e · Emitir, só que salvo como rascunho em vez de transmitido na hora.

CampoObrigatórioObservação
document_typeSimNFE (modelo 55) ou NFCE (modelo 65).
tipo_operacaoNãoSAIDA (padrão) -- lançamento de entrada usa o endpoint próprio abaixo.
finalidadeNãoNORMAL (padrão), COMPLEMENTAR, AJUSTE, DEVOLUCAO, CREDITO, DEBITO.
destinatario_documentoSim p/ NF-ePrecisa já existir em Tomadores.
itensSimArray de {codigo_produto, quantidade, valor_unitario?} -- codigo_produto referencia o catálogo de Produtos.
referenciados, transportador, pagamentos, parcelas, informacoes_complementaresNãoMesmo formato de NF-e · Emitir.
curl -X POST https://areacliente.centralfiscal.com.br/v1/contribuintes/{contribuinte_id}/lancamentos \
  -H "Authorization: Bearer cf_live_51JqK..." \
  -H "Content-Type: application/json" \
  -d '{
    "document_type": "NFE",
    "destinatario_documento": "98765432000110",
    "itens": [{"codigo_produto": "SKU-001", "quantidade": 10}]
  }'

Lançamento de entrada POST

POST https://areacliente.centralfiscal.com.br/v1/contribuintes/{contribuinte_id}/lancamentos/entrada

tipo_entrada="TERCEIRO" (padrão) -- nota já emitida por um fornecedor, você só escritura o recebimento. tipo_entrada="PROPRIA" -- compra de pessoa física/ sucateiro sem IE (quem vende não é obrigado a emitir nota fiscal, Convênio SINIEF s/nº de 15/12/1970, art. 54, I).

CampoObrigatórioObservação
tipo_entradaNãoTERCEIRO (padrão) ou PROPRIA.
fornecedor_documentoSimFornecedor (TERCEIRO) ou CPF do vendedor (PROPRIA).
numero_documento_origem, serie_documento_origemSim p/ TERCEIRONunca exigido em PROPRIA (não existe nota do vendedor).
cfopSim p/ PROPRIARestrito a 1101, 1102, 1904 (retorno MEI) ou 1949.
natureza_operacaoSim p/ PROPRIAEx. "Compra de sucata de pessoa física não contribuinte".
chave_acesso_origemNão44 dígitos, quando disponível.
itensSimArray de {descricao, quantidade, valor_unitario?}.
curl -X POST https://areacliente.centralfiscal.com.br/v1/contribuintes/{contribuinte_id}/lancamentos/entrada \
  -H "Authorization: Bearer cf_live_51JqK..." \
  -H "Content-Type: application/json" \
  -d '{
    "tipo_entrada": "TERCEIRO",
    "fornecedor_documento": "11222333000181",
    "numero_documento_origem": "12345",
    "itens": [{"descricao": "Matéria-prima", "quantidade": 100, "valor_unitario": 3.2}]
  }'

Importar XML de entrada POST

POST https://areacliente.centralfiscal.com.br/v1/contribuintes/{contribuinte_id}/lancamentos/entrada/importar-xml

Lê um XML de NF-e real (nunca altera o arquivo original -- fica preservado dentro do lançamento) e cria um rascunho de entrada já preenchido (fornecedor, itens, chave de acesso). Bloqueia (409) reimportar a mesma chave de acesso duas vezes. Aceita multipart/form-data (campo arquivo) ou JSON {"xml": "<NFe>...</NFe>"}.

curl -X POST https://areacliente.centralfiscal.com.br/v1/contribuintes/{contribuinte_id}/lancamentos/entrada/importar-xml \
  -H "Authorization: Bearer cf_live_51JqK..." \
  -F "arquivo=@nota-recebida.xml"

Consultar, editar, confirmar, descartar

EndpointDescrição
GET /v1/contribuintes/{id}/lancamentosLista todos os lançamentos (?status=RASCUNHO|CONFIRMADO|ESTORNADO opcional).
GET /v1/contribuintes/{id}/lancamentos/{lancamento_id}Consulta um lançamento (inclui o XML original, se foi importado).
POST /v1/contribuintes/{id}/lancamentos/{lancamento_id}/editarEdita um lançamento de entrada ainda em rascunho -- mesmo corpo do POST de criação. Bloqueia (409) se já confirmado/estornado. Saída ainda não tem edição por API (descarte e relance).
POST /v1/contribuintes/{id}/lancamentos/{lancamento_id}/confirmarSaída: despacha pro motor fiscal de verdade (mesmo pipeline do NF-e · Emitir). Entrada: só marca CONFIRMADO, nunca transmite nada.
POST /v1/contribuintes/{id}/lancamentos/{lancamento_id}/estornarDescarta um rascunho (nunca um já confirmado).

Resposta da confirmação

// Saída confirmada -- mesmo formato de NF-e · Emitir
{
  "ambiente": "PRODUCTION",
  "status": "AUTHORIZED",
  "chave": "43...",
  "numero_documento": "1002",
  "transmissao_id": "..."
}

// Entrada confirmada -- nunca transmite nada
{
  "ambiente": "PRODUCTION",
  "status": "CONFIRMADO",
  "tipoOperacao": "ENTRADA",
  "mensagem": "Entrada registrada -- nenhum documento foi transmitido a SEFAZ (a nota já foi emitida pelo fornecedor)."
}
✅
Um rascunho de saída rejeitado pela SEFAZ nunca "queima" -- continua RASCUNHO, pode ser confirmado de novo depois de corrigido (mesma disciplina do resto da API: número de nota só é consumido quando autorizada).