DC-e
Emitir DC-e
Aceita uma Declaração de Conteúdo Eletrônica (modelo 99) e a autoriza de forma assíncrona na SEFAZ.
/openapi/v2/empresas/{empresaId}/dc-eRequer os cabeçalhos de assinatura token, timestamp e sign, veja Autenticação.
A aceitação devolve HTTP 200 sem corpo. Reenviar o mesmo id: uma impressão digital idêntica da mensagem reutiliza a tarefa original (idempotente), uma impressão diferente devolve 10019030 e uma falha terminal anterior reabre a tarefa com a nova mensagem. O resultado chega pela consulta ou pelos webhooks dce.authorized / dce.rejected (veja DC-e). A empresa deve estar aprovada, com certificado utilizável e com emissaoDCe configurado; ambiente deve ser igual ao ambiente atual da empresa (atenção: o nome do campo é ambiente, não ambienteEmissao como na NF-e). Strings de enumeração não diferenciam maiúsculas de minúsculas.
Parâmetros
Parâmetros de caminho
empresaIdstringobrigatórioIdentificador devolvido por Registrar empresa.
Exemplo:1934811222334455
Corpo da requisição
idstringobrigatórioId do documento no integrador (≤64), usado como variável de caminho
dceIdna consulta / cancelamento; chave de idempotência.Exemplo:DCe-000012333ambientestringobrigatórioProducao/Homologacao, deve ser igual ao ambiente da empresa (o nome do campo éambiente, nãoambienteEmissaocomo na NF-e). Divergência devolveDCe00004.dataEmissaostringopcionalData/hora de emissão em ISO-8601; padrão é o momento da aceitação. Com offset ou
Z(2026-09-08T10:00:00-03:00) é convertida como informada; hora local sem offset (2026-09-08T10:00:00) é interpretada no fuso do estado da empresa. Janela permitida: no máximo 5 minutos à frente e no máximo 30 dias para trás (configurável no servidor); fora dela a requisição falha com10019048(a SEFAZ rejeitadhEmifuturo e o número seria desperdiçado; uma data muito antiga arrasta o AAMM da chave para um período antigo). Gravada no XMLdhEmicom o offset do estado da empresa.Exemplo:2026-09-06T12:00:00Zremetenteobjectobrigatório para empresas Marketplace / CarrierRemetente (
DCe00005quando ausente em empresa Marketplace / Carrier); uma empresaOwnIssuerpode omiti-lo (a própria empresa); quando enviado,cpfCnpjdeve ser igual ao CNPJ da empresa.destinatarioobjectobrigatórioDestinatário;
cpfCnpjobrigatório (DCe00009).itensarrayobrigatórioMercadorias declaradas, 1-999 itens.
transporteobjectobrigatórioDados de transporte.
autorizacaoDownloadXmlarrayopcionalCPF / CNPJ autorizados a baixar o XML, até 10 (
10019022). Não inclua o CNPJ do próprio emitente (já autorizado por padrão; o autorizador responde "CNPJ do Marketplace ja autorizado para download") e não repita um documento: ambos são rejeitados na aceitação.informacoesAdicionaisstringopcionalInformações adicionais do marketplace (≤5000) →
infAdic/infAdMarketplace.informacoesAdicionaisFiscostringopcionalInformações adicionais para o fisco (≤2000) →
infAdic/infAdFisco.informacoesAdicionaisEmitentestringopcionalInformações complementares do emitente (≤5000) →
infAdic/infCpl.observacoesMarketplacearrayopcionalAté 10 observações →
infAdic/obsMarketplace(atributoxCampo+xTexto).
Respostas
Aceito; sem corpo de resposta. O documento entra em Pendente e é numerado e enviado à SEFAZ de forma assíncrona. Acompanhe pela consulta ou pelo webhook.
Sem corpo de resposta
Erros
| Código | HTTP | |
|---|---|---|
| 10003000 | 404 |
|
| DCe00004 | 400 | Empresa não configurada para DC-e (falta |
| DCe00005 | 400 | Empresa Marketplace / Carrier sem |
| DCe00006 | 400 |
|
| DCe00007 | 400 | Remetente brasileiro sem |
| DCe00008 | 400 | Empresa não pode emitir (não aprovada / certificado não pronto). Aguarde a aprovação / vincule o certificado. |
| DCe00009 | 400 | Destinatário brasileiro sem |
| GW001 | 400 | Código IBGE do município não encontrado ou inconsistente com |
| 10019005 | 400 | Requisição duplicada concorrente. Tente novamente mais tarde. |
| 10019006 | 400 | Tarefas pendentes em excesso para o CNPJ. Tente novamente mais tarde. |
| 10019007 | 400 | Série não resolvida (várias séries habilitadas). Peça à operação para consolidar as séries. |
| 10019013 | 400 | Tipo de emitente |
| 10019018 | 400 | Item inválido (tamanho do NCM, quantidade ≤ 0, preço unitário negativo). Corrija conforme |
| 10019019 | 400 | Enumeração ou formato inválido ( |
| 10019020 | 400 | CNPJ da transportadora inválido. Corrija |
| 10019021 | 400 | Informação adicional longa demais. Encurte o texto. |
| 10019022 | 400 | Quantidade ou documento inválido em |
| 10019030 | 400 | Mesmo |
| 10019031 | 400 | Produção: já existe um documento ativo / autorizado para o |
| 10019048 | 400 |
|
| 10001001 | 400 | Falha de validação de campos (uma entrada por campo). Corrija conforme |
Valores calculados e sanitização
vProd = quantidade × valorUnitario (HALF_UP, 2 casas) e vDC = Σ vProd são calculados pela plataforma e gravados no XML. Campos de texto são sanitizados (acentos removidos, caracteres de controle substituídos por espaço, espaços em branco colapsados) antes da validação de tamanho.
Validação na aceitação
Verificações feitas na aceitação (sem numeração, sem chamada à SEFAZ, 400 direto): empresa apta a emitir com certificado utilizável e DC-e configurado; ambiente igual ao da empresa; tamanho e dígitos verificadores dos documentos; código IBGE do município coerente com a UF; cep de 8 dígitos; itens não vazio com quantidade / preço unitário / NCM válidos; limites de tamanho das listas; tamanho dos textos.
Rejeições da SEFAZ durante a emissão não são erros HTTP: aparecem como status Negada na consulta e no webhook dce.rejected. A máquina de estados completa está em DC-e.
