Web service Portolog: Informação de Documento de Origem
Serviço web que efetua o processamento da importação do documento de origem(DOT), que é o documento que possui as informações da carga e do transporte nos processos logísticos de Exportação, Entrada de Carga e Cabotagem de Origem. Esse documento posteriormente será associado ao respectivo documento logístico(DL-e) através do encaminhamento de requisição para o Web service de Ligação de DL-e com Documento de Origem.
Atores que podem utilizar o Serviço:
- Operador Portuário
- Terminal Portuário
- Ponto de Controle
Endpoint do Serviço:
POST url_base/psp-portolog-rest/api/dot/novo/identificador_unico (ver observações abaixo)
Observações:
1. No final do caminho do serviço deverá ser informado um identificador único(Números e/ou letras a critério do usuário) para identificação do arquivo a ser associado ao DL-e. O identificador único irá compor o nome do arquivo que deverá ser utilizado posteriormente no preenchimento do campo específico do arquivo de ligação de DL-e com Documento de Origem para o sistema saber qual documento deve ser associado ao DL-e. O nome completo será encaminhado no retorno da requisição de importação do documento de origem, e terá o seguinte formato: "DOT_identificador_unico.xml". Segue abaixo um exemplo de requisição:
POST <url_base>/psp-portolog-rest/api/dot/novo/MeuDOT_26062020
2. Preencher esse identificador único sem utilizar o separador "."
3. Caso o documento de origem importado seja uma Nota Fiscal Eletrônica(NF-e), deve ser informado como identificador único o valor "NFe" seguido do número da chave de acesso dessa nota. Isto se faz necessário pois no momento da associação ao DL-e do CT-e ou MDF-e que possua a informação dessa nota fiscal, o sistema automaticamente procura na base de dados o arquivo da nota fiscal que possua um nome com o mesmo valor da chave de acesso desse nota, informada dentro do CT-e ou MDF-e, antecedida pela palavra "NFe", para então relacionar essa nota ao seu respectivo CT-e ou MDF-e dentro do DL-e. Segue abaixo o exemplo de como ficaria a chamada do serviço de importação quando se tratar de uma NF-e:
POST <url_base>/psp-portolog-rest/api/dot/novo/NFe57888226970258539243316355387504235274376092
4. O nome do arquivo que será exibido no retorno do processamento de importação do documento de origem terá sempre a extensão .xml, mesmo quando o documento importado for no formato JSON. Isso ocorre porque o sistema sempre transforma os arquivos em xml antes de salvar na base de dados.
Versões de Documentos de Origem Atualmente Suportadas pelo Serviço:
- Nota Fiscal Não Eletrônica(NF-ne): Versão 1.02
- Nota Fiscal Eletrônica(NF-e): Versões 2.00 e 3.10
- Conhecimento de Transporte Eletrônico(CT-e): Versões 1.04 e 2.00
- Manifesto de Documento Fiscal Eletrônico(MDF-e): Versão 1.00
Content-Type:
application/xml
ou application/json
Atenção:
Somente a Nota Fiscal Não Eletrônica(NF-ne) poderá ser encaminhada tanto em formato XML quanto em formato JSON. Os demais documentos de origem só serão aceitos em formato XML.
Parâmetros da Requisição de Importação de Documento de Origem:
Observação:
Disponibilizamos somente o XSD da Nota Fiscal Não Eletrônica(NF-ne) pois trata-se do único documento de origem cujo responsável pela elaboração é o próprio Portolog. Os demais documentos de origem são de responsabilidade da Receita Federal e são mantidos pelo sistema SPED.
Dados Gerais(NF-ne):
Nome | Descrição | Tipo | Tamanho | Local | Observações |
---|---|---|---|---|---|
versao | versão do arquivo de Nota Fiscal Não Eletrônica | String(Obrigatório) | 4 | body | Versão Atual: 1.02 |
numero | Número da Nota Fiscal | Numeric(Obrigatório) | 9 | body | |
dataEmissao | Data de Emissão da Nota | Data(Obrigatório) | 10 | body | Formato: AAAA-MM-DD |
cpfEmissor | CPF do Emissor da Nota | String(Opcional(*)) | 11 | body | (*)Será obrigatório a informação de um dos campos "CNPJ do Emissor" ou "CPF do Emissor", mas nunca ambos. |
cnpjEmissor | CNPJ do Emissor da Nota | String(Opcional(*)) | 14 | body | (*)Será obrigatório a informação de um dos campos "CNPJ do Emissor" ou "CPF do Emissor", mas nunca ambos. |
ufEmissao | UF de Emissão da Nota Fiscal | String(Obrigatório) | 2 | body | |
placaVeiculo | Placa do Veículo | String(Obrigatório) | 7 | body | |
nomeMotorista | Nome do Motorista | String(Obrigatório) | 60 | body | |
cpfMotorista | CPF do Motorista | String(Obrigatório) | 11 | body | |
tipoCarga | Tipo da Carga Transportada | String(Obrigatório) | 20 | body | Domínio: CONTEINER, CONTEINER_VAZIO, GRANEL,CARGA_SOLTA ou VEICULO. |
pesoBruto | Peso Bruto Transportado em Kg | Numeric(Opcional) | (15,3) | body |
Lista de Contêineres(Obrigatório quando o tipo de carga for contêiner):
Nome | Descrição | Tipo | Tamanho | Local | Observações |
---|---|---|---|---|---|
identificaoEletronicaConteiner | Código EPC do Contêiner | String(Opcional) | 24 | body | |
numeroConteiner | Número do contêiner | String(Obrigatório) | 11 | body |
Lista de Produtos(Obrigatório para todos os tipos de carga):
Nome | Descrição | Tipo | Tamanho | Local | Observações |
---|---|---|---|---|---|
codigoNCM | Código NCM do Produto | String(Obrigatório) | 8 | body | |
unidade | Unidade comercial do produto | String(Obrigatório) | 6 | body | |
descricao | Descrição do produto ou serviço | String(Obrigatório) | 120 | body | |
quantidade | Quantidade Comercial do produto | Numeric(Obrigatório) | (15,4) | body | |
chassi | Chassi do Veículo | String(*) | 17 | body | (*) Campo obrigatório caso o tipo de carga seja veículo. |
codigoCor | Cor do veículo (código de cada montadora) | String(Opcional) | 4 | body | |
descricaoCor | Descrição da cor do veículo | String(Opcional) | 40 | body | |
codigoModelo | Código Marca Modelo (utilizar tabela RENAVAM) | String(Opcional) | 6 | body |
Resposta da Requisição:
Dados Gerais:
Nome | Descrição | Tipo | Observação |
---|---|---|---|
versao | Versão do Arquivo de Retorno de Processamento de Importação do Documento de Origem | String(Obrigatório) | Versão Atual: 1.00 |
dataProcessamento | Data/Hora do Registro de Processamento de Importação do Documento de Origem | Data/Hora(Obrigatório) | |
nomeArquivo | Nome do arquivo do documento de origem importado pelo sistema | String(Obrigatório) | (*) O conteúdo desse campo deverá ser informado posteriormente no arquivo de ligação de DL-e com DOT. |
mensagem | Mensagem de erro ou sucesso no processamento da requisição de importação do Documento de Origem | String(Obrigatório) |
Exemplos de Arquivos XML/JSON:
Exemplo de JSON do arquivo de importação de documento de origem:
{
"versao":"1.02",
"numero":"123456787",
"dataEmissao":"2019-11-01",
"cpfEmissor":"74208690062",
"ufEmissao":"SC",
"placaVeiculo":"TES1234",
"nomeMotorista":"João da Silva",
"cpfMotorista":"55224114063",
"tipoCarga":"CONTEINER",
"pesoBruto":"1500.000",
"listaConteiner":
{
"conteiner":
[
{
"identificaoEletronicaConteiner":"1112",
"numeroConteiner":"99998"
},
{
"identificaoEletronicaConteiner":"1112",
"numeroConteiner":"99997"
}
]
},
"listaProduto":
{
"produto":
[
{
"codigoNCM":"12345678",
"unidade":"caixa",
"descricao":"TV LCD",
"quantidade":"200"
}
]
}
}
Exemplo de retorno de JSON com a resposta da requisição:
{
"dataProcessamento" : "2019-11-28T17:35:22.939-03:00",
"nomeArquivo" : "DOT_Teste.xml",
"mensagem" : [ "[IN0168] Arquivo Importado com sucesso" ],
"versao" : "1.00"
}
Exemplo de retorno de JSON com resposta de erro:
{
"dataProcessamento" : "2019-11-28T17:36:48.491-03:00",
"nomeArquivo" : "DOT_OutroTeste.xml",
"mensagem" : [ "[ER0183] Não foi possível processar o arquivo. Erro encontrado: O arquivo XML está mal formado: cvc-complex-type.2.4.a: Invalid content was found starting with element 'pesoBruto'. One of '\"http://www.portosempapel.gov.br/nfne\":tipoCarga' is expected. Line 10." ],
"versao" : "1.00"
}
Exemplo de XML do arquivo de importação de documento de origem:
<?xml version="1.0" encoding="UTF-8"?>
<nfne versao="1.02" xmlns="http://www.portosempapel.gov.br/nfne" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.portosempapel.gov.br/nfne NFnaoEletronica_v1.02.xsd ">
<numero>188654645</numero>
<dataEmissao>2019-11-25</dataEmissao>
<cnpjEmissor>99819935000161</cnpjEmissor>
<ufEmissao>SC</ufEmissao>
<placaVeiculo>AUT1515</placaVeiculo>
<nomeMotorista>Nome do Motorista</nomeMotorista>
<cpfMotorista>43665986044</cpfMotorista>
<tipoCarga>VEICULO</tipoCarga>
<pesoBruto>1000.000</pesoBruto>
<listaProduto>
<produto>
<codigoNCM>20452015</codigoNCM>
<unidade>veiculo</unidade>
<descricao>Veiculo SUV</descricao>
<quantidade>1</quantidade>
<chassi>9BG116GW04C400001</chassi>
</produto>
</listaProduto>
</nfne>
Exemplo de retorno de XML com a resposta da requisição:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<retornoDocumentoOrigemTransporte xmlns="http://www.portosempapel.gov.br/dot" versao="1.00">
<dataProcessamento>2019-11-28T17:41:52.700-03:00</dataProcessamento>
<nomeArquivo>DOT_Teste.xml</nomeArquivo>
<mensagem>[IN0168] Arquivo Importado com sucesso</mensagem>
</retornoDocumentoOrigemTransporte>
Exemplo de retorno de XML com resposta de erro:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<retornoDocumentoOrigemTransporte xmlns="http://www.portosempapel.gov.br/dot" versao="1.00">
<dataProcessamento>2019-11-28T17:43:00.862-03:00</dataProcessamento>
<nomeArquivo>DOT_OutroTeste.xml</nomeArquivo>
<mensagem>[ER0183] Não foi possível processar o arquivo. Erro encontrado: O arquivo XML está mal formado: cvc-complex-type.2.4.a: Invalid content was found starting with element 'dataEmissao'. One of '"http://www.portosempapel.gov.br/nfne":numero' is expected. Line 3.</mensagem>
</retornoDocumentoOrigemTransporte>