TF Fiscal

Otros documentos fiscales

DC-e

5 endpoints

La API de DC-e (modelo 99, layout 1.00) permite emitir, consultar, cancelar y obtener el PDF (DACE) de declaraciones de contenido electrónicas. La DC-e es el documento fiscal que ampara el transporte de bienes o mercancías cuando no existe obligación de emisión de nota fiscal — por ejemplo, envíos que involucran no contribuyentes del ICMS. El emisor es siempre persona jurídica (CNPJ); el destinatario puede ser persona jurídica (CNPJ) o física (CPF). Los datos de negocio van en el cuerpo del /create; los campos técnicos de la clave de acceso (cDC, cDV, cUF, dhEmi, mod) son calculados automáticamente por el servidor.

EndpointMétodoDescripción
/api/dce/createPOSTEmitir DC-e
/api/dce/consultPOSTConsultar situación de la DC-e
/api/dce/cancelPOSTCancelar DC-e autorizada
/api/dce/pdfPOSTObtener el DACE (PDF) de la DC-e

La DC-e se enruta al autorizador de la UF del emisor. El campo ide.cUF debe ser coherente con la UF informada en emit.enderEmit.UF — autoridad fiscal rechaza con cStat=220 cuando divergen; si se omite, el cUF se deriva de esa UF.

POST/api/dce/create

Emitir DC-e

Emite una DC-e a partir del cuerpo enviado. El cliente envía únicamente los datos de negocio; los campos de identificación técnica de la clave de acceso son calculados por el servidor (ver la nota debajo de la tabla ide). El débito de crédito ocurre solo en producción (tpAmb=1) y cuando la DC-e es autorizada.

Headers obligatorios

HeaderTipoDescripción
tokenstringToken de la empresa emisora
signstringFirma MD5: MD5(token + path + body + timestamp)
timestampstringUnix timestamp en segundos (ventana de 5 minutos)

Body — raíz

CampoTipoDescripción
ide *objectIdentificación de la DC-e
emit *objectDatos del emisor/remitente (CNPJ; o CPF vía Marketplace — ver abajo)
dest *objectDatos del destinatario
det *arrayÍtems/bienes declarados — mínimo 1
total *objectTotalizador de la declaración
transpobjectDatos del transporte
marketplaceobjectDatos del marketplace (solo cuando ide.tpEmit=1)
fiscoobjectDatos del órgano del Fisco (solo cuando ide.tpEmit=0)
autXMLarrayCNPJ/CPF autorizados a acceder al XML
infAdicobjectInformación adicional
Campos obligatorios en la solicitud: ide.tpAmb; emit.CNPJ (14 dígitos) o emit.CPF (11 dígitos, remitente PF vía Marketplace — ver la nota en emit), emit.xNome y emit.enderEmit (xLgr, nro, xBairro, cMun, xMun, CEP con 8 dígitos, UF); dest con CNPJ o CPF, dest.xNome y dest.enderDest (los mismos campos de dirección); al menos 1 ítem en det con xProd, NCM (2 u 8 dígitos), qCom > 0 y vProd > 0; y total.vDC > 0. Todos los demás campos son opcionales.

ide — Identificación

CampoTipoDescripción
tpAmb *intAmbiente: 1=producción, 2=homologación. Único campo de ide realmente obligatorio.
tpEmitintTipo de emisor: 0=Aplicación del Fisco, 1=Marketplace, 2=Emisor propio. Opcional — default: 2
cUFintCódigo IBGE de la UF del emisor (2 dígitos). Opcional — derivado de emit.enderEmit.UF cuando se omite. Si se envía, debe ser coherente con esa UF (autoridad fiscal rechaza con cStat=220 en caso de divergencia)
serieintSerie del documento fiscal (3 dígitos de la clave de acceso) — identifica el conjunto de numeración de la DC-e. Opcional — default: serie de DC-e registrada en la empresa
nDClongNúmero secuencial de la DC-e (compone la clave de acceso). Opcional — auto-incrementado por el servidor cuando se omite o es 0
nSiteAutorizintIdentificación del sitio autorizador que procesó la DC-e (1 dígito de la clave de acceso). Normalmente 0 (sitio primario). Opcional — default: 0
tpEmisintForma de emisión: 1=Normal, 9=Contingencia. Opcional — default: 1

Rellenados automáticamente por el servidor — no es necesario enviarlos: mod (fijo en 99) y cDV (dígito verificador de la clave) son siempre definidos por el servidor; cDC (código numérico de 6 dígitos), dhEmi (fecha/hora de emisión) y verProc (versión del proceso) se generan cuando se omiten. Los campos serie, nDC y cUF de la tabla anterior también se rellenan automáticamente cuando se omiten.

emit — Emisor / Remitente

CampoTipoDescripción
CNPJ ⚠stringCNPJ del emisor (14 dígitos). Rellenado con el CNPJ de la empresa del token cuando se omite
CPF ⚠stringCPF del remitente persona física (11 dígitos). Solo permitido en la emisión vía Marketplace — ver nota abajo
xNome *stringNombre o razón social del emisor/remitente
enderEmit *objectDirección del emisor (ver estructura abajo)
Remitente persona física (CPF): por la regla de la autoridad fiscal, un CPF no puede ser emisor propio (tpEmit=2 exige CNPJ). Para emitir con un CPF como remitente, basta enviar emit.CPF (sin emit.CNPJ): el servidor define automáticamente tpEmit=1 (Marketplace), usa el CNPJ de su empresa (del token) como emisor autorizado en la clave de acceso y rellena el bloque marketplace con los datos de la empresa. El CPF informado aparece como remitente en emit.

dest — Destinatario

CampoTipoDescripción
CNPJ ⚠stringCNPJ del destinatario (14 dígitos)
CPF ⚠stringCPF del destinatario (11 dígitos)
xNome *stringNombre o razón social del destinatario
enderDest *objectDirección del destinatario (ver estructura abajo)

enderEmit / enderDest — Dirección

CampoTipoDescripción
xLgr *stringCalle
nro *stringNúmero
xCplstringComplemento
xBairro *stringBarrio
cMun *longCódigo IBGE del municipio (7 dígitos)
xMun *stringNombre del municipio
CEP *stringCódigo postal (8 dígitos)
UF *stringSigla de la UF (2 letras)
cPaisintCódigo del país. Default: 1058 (Brasil)
xPaisstringNombre del país. Default: BRASIL
fonestringTeléfono
emailstringCorreo electrónico

det[] — Ítems declarados

CampoTipoDescripción
nItemintNúmero secuencial del ítem
xProd *stringDescripción del bien/mercancía declarado
NCM *stringCódigo NCM (2 u 8 dígitos)
qCom *decimalCantidad (> 0)
vUnComdecimalValor unitario
vProd *decimalValor total del ítem (> 0)
infAdProdstringInformación adicional del ítem

total — Totalizador

CampoTipoDescripción
vDC *decimalValor total declarado (> 0)

transp — Transporte

CampoTipoDescripción
modTransintModalidad del transporte: 0=Correos, 1=propia, 2=transportista. Default: 2
CNPJTranspstringCNPJ del transportista

marketplace — Marketplace (solo tpEmit=1)

CampoTipoDescripción
CNPJstringCNPJ del marketplace
xNomestringNombre del marketplace
SitestringSitio del marketplace

fisco — Órgano del Fisco (solo tpEmit=0)

CampoTipoDescripción
CNPJstringCNPJ del órgano
xOrgaostringNombre del órgano
UFstringUF del órgano

autXML[] — Autorizados al XML

CampoTipoDescripción
CNPJstringCNPJ autorizado a consultar/descargar el XML
CPFstringCPF autorizado a consultar/descargar el XML

infAdic — Información adicional

CampoTipoDescripción
infAdFiscostringInformación de interés del Fisco
infCplstringInformación complementaria de interés del contribuyente
infAdMarketPlacestringInformación adicional del marketplace

* Campo obligatorio. ⚠ En el emisor y en el destinatario, al menos uno de CNPJ o CPF es obligatorio.

Consulta la situación actual de la DC-e en la autoridad fiscal a partir de la clave de acceso. Cuando la DC-e está cancelada, la respuesta refleja los datos de la cancelación (la base local es la fuente de la verdad sobre la cancelación).

Headers obligatorios

HeaderTipoDescripción
tokenstringToken de la empresa emisora
signstringFirma MD5
timestampstringUnix timestamp en segundos

Body

CampoTipoDescripción
chDCe *stringClave de acceso de la DC-e (44 dígitos)

* Campo obligatorio.

POST/api/dce/cancel

Cancelar DC-e

Cancela una DC-e autorizada (evento 110111). Requiere que la DC-e haya sido autorizada (posea protocolo) y aún no esté cancelada. Cada DC-e admite una única cancelación.

Headers obligatorios

HeaderTipoDescripción
tokenstringToken de la empresa emisora
signstringFirma MD5
timestampstringUnix timestamp en segundos

Body

CampoTipoDescripción
chDCe *stringClave de acceso de la DC-e (44 dígitos)
xJust *stringJustificación de la cancelación (mínimo 15 caracteres por exigencia de la autoridad fiscal)
nProtstringProtocolo de autorización. Opcional: cuando se omite, usa el protocolo registrado en la emisión

* Campo obligatorio.

En caso de rechazo, la respuesta retorna success=false, el cStat/xMotivo de la negativa y un campo adicional xmlEnviadoDebug con el XML enviado, para diagnóstico.

POST/api/dce/pdf

Obtener PDF de la DC-e

Retorna la URL del DACE — la representación en PDF de la DC-e. Cuando el PDF aún no existe en el almacenamiento, se genera bajo demanda y se envía. En caso de que el almacenamiento esté indisponible, el PDF se retorna en base64 en el propio cuerpo de la respuesta.

Headers obligatorios

HeaderTipoDescripción
tokenstringToken de la empresa emisora
signstringFirma MD5
timestampstringUnix timestamp en segundos

Body

CampoTipoDescripción
chDCe *stringClave de acceso de la DC-e (44 dígitos)

* Campo obligatorio.

GET/api/dce/get_list

Listar DC-e (paginado)

Lista las DC-e de la empresa con paginación. Los parámetros se pasan por query string (no en el body). El filtro de tiempo es opcional, pero si se envía requiere tanto start_create_time como end_create_time.

Headers obligatorios

HeaderTipoDescripción
tokenstringToken de la empresa emisora
signstringFirma MD5 (path incluye la query string)
timestampstringUnix timestamp en segundos

Query string

ParámetroTipoDescripción
page *intNúmero de página (≥ 1)
page_size *intTamaño de página (1–50)
start_create_timelongUnix timestamp en milisegundos — inicio (requiere end_create_time)
end_create_timelongUnix timestamp en milisegundos — fin
statusstringFiltrar por estado. Valores: "Success" (autorizado), "Canceled" (cancelado), "Processing" (en proceso), "Failed" (falló), "Unknown" (desconocido)

* Campo obligatorio.