TF Fiscal

Outros documentos fiscais

DC-e

5 endpoints

A API de DC-e (modelo 99, leiaute 1.00) permite emitir, consultar, cancelar e obter o PDF (DACE) de declarações de conteúdo eletrônicas. A DC-e é o documento fiscal que ampara o transporte de bens ou mercadorias quando não há obrigatoriedade de emissão de nota fiscal — por exemplo, remessas envolvendo não contribuintes do ICMS. O emitente é sempre pessoa jurídica (CNPJ); o destinatário pode ser pessoa jurídica (CNPJ) ou física (CPF). Os dados de negócio vão no corpo do /create; os campos técnicos da chave de acesso (cDC, cDV, cUF, dhEmi, mod) são calculados automaticamente pelo servidor.

EndpointMétodoDescrição
/api/dce/createPOSTEmitir DC-e
/api/dce/consultPOSTConsultar situação da DC-e
/api/dce/cancelPOSTCancelar DC-e autorizada
/api/dce/pdfPOSTObter o DACE (PDF) da DC-e

A DC-e é roteada para o autorizador da UF do emitente. O campo ide.cUF deve ser coerente com a UF informada em emit.enderEmit.UF — o Fisco rejeita com cStat=220 quando divergem; se omitido, o cUF é derivado dessa UF.

POST/api/dce/create

Emitir DC-e

Emite uma DC-e a partir do corpo enviado. O cliente envia apenas os dados de negócio; os campos de identificação técnica da chave de acesso são calculados pelo servidor (ver a nota abaixo da tabela ide). O débito de crédito ocorre somente em produção (tpAmb=1) e quando a DC-e é autorizada.

Headers obrigatórios

HeaderTipoDescrição
tokenstringToken da empresa emissora
signstringAssinatura MD5: MD5(token + path + body + timestamp)
timestampstringUnix timestamp em segundos (janela de 5 minutos)

Body — raiz

CampoTipoDescrição
ide *objectIdentificação da DC-e
emit *objectDados do emitente/remetente (CNPJ; ou CPF via Marketplace — ver abaixo)
dest *objectDados do destinatário
det *arrayItens/bens declarados — mínimo 1
total *objectTotalizador da declaração
transpobjectDados do transporte
marketplaceobjectDados do marketplace (apenas quando ide.tpEmit=1)
fiscoobjectDados do órgão do Fisco (apenas quando ide.tpEmit=0)
autXMLarrayCNPJs/CPFs autorizados a acessar o XML
infAdicobjectInformações adicionais
Campos obrigatórios na requisição: ide.tpAmb; emit.CNPJ (14 dígitos) ou emit.CPF (11 dígitos, remetente PF via Marketplace — ver nota em emit), emit.xNome e emit.enderEmit (xLgr, nro, xBairro, cMun, xMun, CEP com 8 dígitos, UF); dest com CNPJ ou CPF, dest.xNome e dest.enderDest (mesmos campos de endereço); pelo menos 1 item em det com xProd, NCM (2 ou 8 dígitos), qCom > 0 e vProd > 0; e total.vDC > 0. Todos os demais campos são opcionais.

ide — Identificação

CampoTipoDescrição
tpAmb *intAmbiente: 1=produção, 2=homologação. Único campo de ide realmente obrigatório.
tpEmitintTipo de emitente: 0=Aplicativo do Fisco, 1=Marketplace, 2=Emissor próprio. Opcional — default: 2
cUFintCódigo IBGE da UF do emitente (2 dígitos). Opcional — derivado de emit.enderEmit.UF quando omitido. Se enviado, deve ser coerente com essa UF (o Fisco rejeita com cStat=220 em caso de divergência)
serieintSérie do documento fiscal (3 dígitos da chave de acesso) — identifica o conjunto de numeração da DC-e. Opcional — default: série de DC-e cadastrada na empresa
nDClongNúmero sequencial da DC-e (compõe a chave de acesso). Opcional — auto-incrementado pelo servidor quando omitido ou 0
nSiteAutorizintIdentificação do site autorizador que processou a DC-e (1 dígito da chave de acesso). Normalmente 0 (site primário). Opcional — default: 0
tpEmisintForma de emissão: 1=Normal, 9=Contingência. Opcional — default: 1

Preenchidos automaticamente pelo servidor — não é necessário enviá-los: mod (fixo em 99) e cDV (dígito verificador da chave) são sempre definidos pelo servidor; cDC (código numérico de 6 dígitos), dhEmi (data/hora de emissão) e verProc (versão do processo) são gerados quando omitidos. Os campos serie, nDC e cUF da tabela acima também são preenchidos automaticamente quando omitidos.

emit — Emitente / Remetente

CampoTipoDescrição
CNPJ ⚠stringCNPJ do emitente (14 dígitos). Preenchido com o CNPJ da empresa do token quando omitido
CPF ⚠stringCPF do remetente pessoa física (11 dígitos). Só permitido na emissão via Marketplace — ver nota abaixo
xNome *stringNome ou razão social do emitente/remetente
enderEmit *objectEndereço do emitente (ver estrutura abaixo)
Remetente pessoa física (CPF): pela regra do Fisco, um CPF não pode ser emissor próprio (tpEmit=2 exige CNPJ). Para emitir com um CPF como remetente, basta enviar emit.CPF (sem emit.CNPJ): o servidor define automaticamente tpEmit=1 (Marketplace), usa o CNPJ da sua empresa (do token) como emissor autorizado na chave de acesso e preenche o bloco marketplace com os dados da empresa. O CPF informado aparece como remetente no emit.

dest — Destinatário

CampoTipoDescrição
CNPJ ⚠stringCNPJ do destinatário (14 dígitos)
CPF ⚠stringCPF do destinatário (11 dígitos)
xNome *stringNome ou razão social do destinatário
enderDest *objectEndereço do destinatário (ver estrutura abaixo)

enderEmit / enderDest — Endereço

CampoTipoDescrição
xLgr *stringLogradouro
nro *stringNúmero
xCplstringComplemento
xBairro *stringBairro
cMun *longCódigo IBGE do município (7 dígitos)
xMun *stringNome do município
CEP *stringCEP (8 dígitos)
UF *stringSigla da UF (2 letras)
cPaisintCódigo do país. Default: 1058 (Brasil)
xPaisstringNome do país. Default: BRASIL
fonestringTelefone
emailstringE-mail

det[] — Itens declarados

CampoTipoDescrição
nItemintNúmero sequencial do item
xProd *stringDescrição do bem/mercadoria declarado
NCM *stringCódigo NCM (2 ou 8 dígitos)
qCom *decimalQuantidade (> 0)
vUnComdecimalValor unitário
vProd *decimalValor total do item (> 0)
infAdProdstringInformações adicionais do item

total — Totalizador

CampoTipoDescrição
vDC *decimalValor total declarado (> 0)

transp — Transporte

CampoTipoDescrição
modTransintModalidade do transporte: 0=Correios, 1=própria, 2=transportadora. Default: 2
CNPJTranspstringCNPJ da transportadora

marketplace — Marketplace (somente tpEmit=1)

CampoTipoDescrição
CNPJstringCNPJ do marketplace
xNomestringNome do marketplace
SitestringSite do marketplace

fisco — Órgão do Fisco (somente tpEmit=0)

CampoTipoDescrição
CNPJstringCNPJ do órgão
xOrgaostringNome do órgão
UFstringUF do órgão

autXML[] — Autorizados ao XML

CampoTipoDescrição
CNPJstringCNPJ autorizado a consultar/baixar o XML
CPFstringCPF autorizado a consultar/baixar o XML

infAdic — Informações adicionais

CampoTipoDescrição
infAdFiscostringInformações de interesse do Fisco
infCplstringInformações complementares de interesse do contribuinte
infAdMarketPlacestringInformações adicionais do marketplace

* Campo obrigatório. ⚠ No emitente e no destinatário, pelo menos um de CNPJ ou CPF é obrigatório.

POST/api/dce/consult

Consultar situação da DC-e

Consulta a situação atual da DC-e no Fisco a partir da chave de acesso. Quando a DC-e está cancelada, a resposta reflete os dados do cancelamento (a base local é a fonte da verdade sobre cancelamento).

Headers obrigatórios

HeaderTipoDescrição
tokenstringToken da empresa emissora
signstringAssinatura MD5
timestampstringUnix timestamp em segundos

Body

CampoTipoDescrição
chDCe *stringChave de acesso da DC-e (44 dígitos)

* Campo obrigatório.

POST/api/dce/cancel

Cancelar DC-e

Cancela uma DC-e autorizada (evento 110111). Requer que a DC-e tenha sido autorizada (possua protocolo) e ainda não esteja cancelada. Cada DC-e admite um único cancelamento.

Headers obrigatórios

HeaderTipoDescrição
tokenstringToken da empresa emissora
signstringAssinatura MD5
timestampstringUnix timestamp em segundos

Body

CampoTipoDescrição
chDCe *stringChave de acesso da DC-e (44 dígitos)
xJust *stringJustificativa do cancelamento (mínimo 15 caracteres por exigência Fisco)
nProtstringProtocolo de autorização. Opcional: quando omitido, usa o protocolo registrado na emissão

* Campo obrigatório.

Em caso de rejeição, a resposta retorna success=false, o cStat/xMotivo da recusa e um campo adicional xmlEnviadoDebug com o XML enviado, para diagnóstico.

POST/api/dce/pdf

Obter PDF da DC-e

Retorna a URL do DACE — a representação em PDF da DC-e. Quando o PDF ainda não existe no armazenamento, é gerado sob demanda e enviado. Caso o armazenamento esteja indisponível, o PDF é retornado em base64 no próprio corpo da resposta.

Headers obrigatórios

HeaderTipoDescrição
tokenstringToken da empresa emissora
signstringAssinatura MD5
timestampstringUnix timestamp em segundos

Body

CampoTipoDescrição
chDCe *stringChave de acesso da DC-e (44 dígitos)

* Campo obrigatório.

GET/api/dce/get_list

Listar DC-e (com paginação)

Lista as DC-e da empresa com paginação. Parâmetros passados via query string (não no body). O filtro de tempo é opcional, mas se enviado exige ambos start_create_time e end_create_time.

Headers obrigatórios

HeaderTipoDescrição
tokenstringToken da empresa emissora
signstringAssinatura MD5 (path inclui a query string)
timestampstringUnix timestamp em segundos

Query string

ParâmetroTipoDescrição
page *intNúmero da página (≥ 1)
page_size *intTamanho da página (1–50)
start_create_timelongUnix timestamp em milissegundos — início (exige end_create_time)
end_create_timelongUnix timestamp em milissegundos — fim
statusstringFiltrar por status. Valores: "Success" (autorizado), "Canceled" (cancelado), "Processing" (em processamento), "Failed" (falhou), "Unknown" (desconhecido)

* Campo obrigatório.