Aqui estaremos apresentando os meios de integração com o Web Service NddFrete, descrevendo as funcionalidades, os métodos a serem utilizados, listando informações a serem enviadas e recebidas, e provendo exemplos. Ao recepcionar uma requisição o mesmo efetua algumas validações iniciais, sendo elas:
•Schema do Crosstalk Header de envio;
•Autenticação do solicitante consumidor da aplicação;
•Identificador da mensagem.
Métodos |
|---|
O Web Service ExchangeMessage possui dois métodos distintos para envio e disponibilização de documentos, Send e CompressedSend, os quais efetuam validações específicas nas informações enviadas, conforme seguem abaixo:
O método Send é utilizado para envio de arquivos não compactados. No cabeçalho da requisição é informado o Crosstalk Header contendo as informações para processamento do documento. Exemplo:
<CrosstalkMessage> <CrosstalkHeader> <ProcessCode>6002</ProcessCode> <MessageType>100</MessageType> <ExchangePattern>7</ExchangePattern> <EnterpriseId>6c5bac4a-b12f-4c75-87aa-f782a29298dd</EnterpriseId> <Token>98dc2a43-1eed-41a8-869a-e5590f623558</Token> <ContentEncoding>UTF-8</ContentEncoding> <ContentType>txt/xml</ContentType> </CrosstalkHeader> </CrosstalkMessage> |
O conteúdo do arquivo é informado em um rawdata dentro de um grupo de dados de caracteres (CDATA). Ao enviar um documento não compactado, as validações iniciais são realizadas no cabeçalho da requisição.
<ndd:rawdata> <![CDATA[Conteúdo do documento originário]]> </ndd:rawdata> |
Método disponibilizado para envio de arquivos compactados no formato "zip". Assim como no método anterior, no cabeçalho da chamada é enviado o CrosstalkHeader com os dados para processamento. O conteúdo binário do arquivo compactado é informado no rawdata. Para que sejam recepcionados corretamente, o lote enviado deve conter no máximo 2000 documentos. Caso ultrapasse a quantidade de arquivos uma exceção é retornada pelo Web Service.
Todos os arquivos enviados no lote devem conter a mesma extensão e possuírem o mesmo schema (NF-e, CT-e, ProcNF-e, procCT-e), de acordo com o processCode informado na requisição enviada. Caso as validações realizadas no envio da requisição estejam corretas, é retornado pelo Web Service a resposta informando que a mensagem foi processada com sucesso, que define que a chamada foi entendida e enviada para processamento, porém, não garante que todo o conteúdo da mensagem tenha sido processado. Caso exista no lote enviado algum arquivo com extensão diferente das aceitas pela aplicação (".xml" e ".txt") será retornado pelo Web Service uma mensagem informando que o lote foi parcialmente processado.