Como fazer o download do XML?
Há alguns endpoints destinados ao download do XML de Documentos Fiscais Eletrônicos (DFes). Dependendo da sua necessidade e das informações que possui do DFe, escolha o que mais lhe atende:
- Download de vários XMLs (ação em lote);
- Por CNPJ do interessado, ano, série e número;
- Por chave de acesso.
Caso você tenha feito o processo de emissão do DFe pela API REST Oobj, o passo consultar o retorno da Sefaz já contém o XML PROC 😉
Download de vários XMLs (ação em lote)
O endpoint /api/downloadXml
retorna um arquivo compactado (.zip
) com os XMLs dos DFes informados, a partir de uma identificação única.
Há duas formas de utilizá-lo:
1 - Enviar lista de chaves de acesso
- Faça uma requisição tipo POST ao endpoint download XML;
[URL_BASE]/api/downloadXml
No corpo da requisição (
request body
) preencha as seguintes informações:{ambiente}
*: hom ou prod;{chavesAcesso}
*: lista de chaves de acesso, separadas por ponto, vírgula, ponto e vírgula, quebra de linha ou caractere de espaço| . | , | ; | \n |
;
Informe o x-auth-token no cabeçalho (
header parameters
) da requisição.
Exemplo de requisição
A requisição contém dados fictícios, somente para demonstração.
curl -L -X POST 'https://rest-teste.oobj.com.br/api/downloadXml' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'x-auth-token: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3Yjc2OTg1ZGQ2MTNhOWVlYTFiN2RmZTNiZjRhMTRiZiIsImF1ZCI6IndlYiIsImV4cCI6MTYyOTI5MDcwNiwiaWF0IjoxNjI5Mjg4OTA2fQ.-Dj91d6fBZYcZpy1-zKzohAWd5dgW2CAS5BBfwGilemUYcOVDm8CnrDJHbwsFyixI5ohphy-65fqeobXkimtCg' \
--data-raw '{
"ambiente": "hom",
"chavesAcesso": "43190307385111000102555010489743751299562068;43190307385111000102555010489743751299562068",
}'
Exemplo de retorno
{
"body": {},
"statusCode": "100",
"statusCodeValue": 0
}
2 - Enviar filtros específicos
Na ausência das chaves de acesso você pode enviar uma combinação de filtros. Essa combinação irá identificar os DFes de forma única.
- Faça uma requisição tipo POST ao endpoint download XML;
[URL_BASE]/api/downloadXml
No corpo da requisição (
request body
) preencha as seguintes informações:{ambiente}
*: hom ou prod;{codModelo}
*: 55 (NFe), 57 (CTe), 58 (MDFe), 59 (CFe-SAT), 65 (NFCe), 66 (NF3e) ou 99 (NFSe);{dataFinal}
*: data final, no formato aaaa-mm-dd'T'hh:mm:ssZ. Exemplo: 2019-03-26T12:25:59-03:00;{dataInicial}
*: data inicial, no formato aaaa-mm-dd'T'hh:mm:ssZ. Exemplo: '2018-03-26T12:25:59-03:00';{empresa}
*: CNPJ da empresa;{serie}
*: série do documento;{tipoRelacao}
*: tipo de relação da empresa com o documento. Valores possíveis: emitente, destinatario, transportador, remetente, recebedor, expedidor, tomador, autorizado;
Informe o x-auth-token no cabeçalho (
header parameters
) da requisição.
Exemplo de requisição
A requisição contém dados fictícios, somente para demonstração.
curl -L -X POST 'https://rest-teste.oobj.com.br/api/downloadXml' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'x-auth-token: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3Yjc2OTg1ZGQ2MTNhOWVlYTFiN2RmZTNiZjRhMTRiZiIsImF1ZCI6IndlYiIsImV4cCI6MTYyOTI5MDcwNiwiaWF0IjoxNjI5Mjg4OTA2fQ.-Dj91d6fBZYcZpy1-zKzohAWd5dgW2CAS5BBfwGilemUYcOVDm8CnrDJHbwsFyixI5ohphy-65fqeobXkimtCg' \
--data-raw '{
"ambiente": "hom",
"codModelo": 55,
"dataFinal": "2023-03-14T18:51:30.382Z",
"dataInicial": "2023-03-14T18:51:30.382Z",
"empresa": "string",
"serie": 1234-5,
"tipoRelacao": "emitente"
}'
Exemplo de retorno
{
"body": {},
"statusCode": "100",
"statusCodeValue": 0
}
Por chave de acesso
Neste caso o documento do envolvido é filtrado conforme a tabela abaixo:
Modelo DFe | Conta com módulo de emissão/importação | Conta com módulo de recebimento |
---|---|---|
NFe | emitente | destinatário, transportador, autorizados |
NFCe | emitente | destinatário, transportador, autorizados |
NFSe | emitente/prestador | destinatário/tomador, autorizados |
MDFe | emitente | autorizados |
CTe | emitente | destinatário, tomador, expedidor, autorizados |
CFe | emitente | destinatário, autorizados |
- Para começar, faça uma requisição tipo GET ao endpoint buscar um DFe por chave de acesso;
[URL_BASE]/api/empresas/{empresa}/docs/{ambiente}/{codModelo}/{chaveAcesso}
No corpo da requisição (
request body
) preencha as seguintes informações:{empresa}
*: CNPJ da empresa;{ambiente}
*: hom ou prod;{codModelo}
*: 55 (NFe), 57 (CTe), 58 (MDFe), 59 (CFe-SAT), 65 (NFCe), 66 (NF3e), 67 (CTeOS) ou 99 (NFSe);{chaveAcesso}
*: chave de acesso do documento;
Informe o x-auth-token no cabeçalho (
header parameters
) da requisição.
Exemplo de requisição
A requisição contém dados fictícios, somente para demonstração.
curl -L -X GET 'https://rest-teste.oobj.com.br/api/empresas/07385111000102/docs/hom/55/43190307385111000102555010489743751299562068' \
-H 'Accept: */*' \
-H 'x-auth-token: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3Yjc2OTg1ZGQ2MTNhOWVlYTFiN2RmZTNiZjRhMTRiZiIsImF1ZCI6IndlYiIsImV4cCI6MTYyOTI5MDcwNiwiaWF0IjoxNjI5Mjg4OTA2fQ.-Dj91d6fBZYcZpy1-zKzohAWd5dgW2CAS5BBfwGilemUYcOVDm8CnrDJHbwsFyixI5ohphy-65fqeobXkimtCg'
Exemplo de retorno
{
"cStat": 0,
"chaveAcesso": "string",
"codigoUF": 0,
"conteudo": "string",
"dataRecebimento": 0,
"idLote": 0,
"numeroProtocolo": "string",
"permiteImpressao": false,
"status": "string",
"statusArquivo": "string",
"timestamp": 0,
"tipoEmissao": {
"codigo": 0,
"descricao": "string"
},
"xMotivo": "string"
}
Por CNPJ do interessado, ano, série e número
Esta requisição irá retornar um determinado XML, a partir do CNPJ do interessado, ano, série e número do documento.
- Para começar, faça uma requisição tipo GET ao endpoint buscar um DFe por CNPJ do interessado, ano, série e número
[URL_BASE]/api/empresas/docs/{ambiente}/{codModelo}/{cnpjInteressado}/{ano}/{serie}/{numero}
Envie como parâmetro (
path parameters
) as seguintes informações:{ambiente}
*: hom ou prod;{codModelo}
*: 55 (NFe), 57 (CTe), 58 (MDFe), 59 (CFe-SAT), 65 (NFCe), 66 (NF3e) ou 99 (NFSe);{cnpjInteressado}
*: CNPJ do interessado;{ano}
*: ano de emissão do documento (4 dígitos);{serie}
*: série do documento;{numero}
*: número do documento;
Informe o x-auth-token no cabeçalho (
header parameters
) da requisição.
Exemplo de requisição
curl -L -X GET 'https://rest-teste.oobj.com.br/api/empresas/docs/hom/55/07385111000102/2023/503/1234-1' \
-H 'Accept: */*' \
-H 'x-auth-token: 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI3Yjc2OTg1ZGQ2MTNhOWVlYTFiN2RmZTNiZjRhMTRiZiIsImF1ZCI6IndlYiIsImV4cCI6MTYyOTI5MDcwNiwiaWF0IjoxNjI5Mjg4OTA2fQ.-Dj91d6fBZYcZpy1-zKzohAWd5dgW2CAS5BBfwGilemUYcOVDm8CnrDJHbwsFyixI5ohphy-65fqeobXkimtCg'
Exemplo de retorno
{
"cStat": 0,
"chaveAcesso": "string",
"codigoUF": 0,
"conteudo": "string",
"dataRecebimento": 0,
"idLote": 0,
"numeroProtocolo": "string",
"permiteImpressao": false,
"status": "string",
"statusArquivo": "string",
"timestamp": 0,
"tipoEmissao": {
"codigo": 0,
"descricao": "string"
},
"xMotivo": "string"
}
Pronto, você acaba de finalizar o processo de fazer o download do XML de Documentos Fiscais Eletrônicos (DFes)!