Páginas filhas
  • APIs Integrações - Notas Fiscais - XML

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Objetivo

Este documento tem como objetivo explicar o funcionamento da integração dadas SeçãoNotas Fiscais.

Pré-Requisitos e Restrições

  • Necessário a instalação

...

  • do serviço winthor-

...

  • fiscal. (Versão >= 1.0.32.2 )

Integração

Totvs custom tabs box
tabsDados integrados com Winthor, Envio Parâmetros, Resposta da Requisição, Passo 04Possíveis falhas 
idspasso1,passo2,passo3,passo4

Content-Type : application/json 
Accept       : application/json 

A integração consiste em enviar todas as categorias que serão utilizados no E-Commerceo XML da nota fiscal referente ao número do pedido e/ou da transação informados.

Totvs custom tabs box items
defaultyes
referenciapasso1

Os dados integrados são: 

SECTIONS  INVOICEDOCUMENT                            |         PCSECAO PCDOCELETRONICO

API

Referência Winthor

departmentorderId

pcdeptopcpedc.codeptonumped

idtransactionId

pcsecaopcnfsaid.codsecnumtransvenda 

descriptioninvoiceXml

pcsecao.descricao

id

pcdepto.codepto

name

pcdepto.descricao

fatherCategoryId

pcdepto.coddeptoprinc

title

pcdepto.titulo

description

pcdepto.descricaoecommerce

keywords

pcpalavraschave.descricao

lastChange

pcdepto.dtultalter

updateStockGeneral

pcdepto.atualizainvgeral

typeMerchandise

pcdepto.tipomerc

dtcreate

pcdepto.dtcadastro

active

pcdepto.ativo

title

pcdepto.titulo

keywords

pchave.descricao

adWordsRemarketingCode

pcdepto.codadwords

lastChange

pcsecao.dtultalter

dtcreate

pcsecao.dtcadastro

pcdoceletronico.xmlnfe

Totvs custom tabs box items
defaultno
referenciapasso2

Exemplo do envio da requisição:

Bloco de código
languagejs
titleURI
method: 'GET',
url: '/apiwinthor/purchasesfiscal/v1/documentosfiscais/nfe/productSectionsinvoiceDocument'
Bloco de código
languagejs
titleParams
order  		: lastChange			- ordenação
lastChange  : 1900-01-01T00:00:00	- data da última alteração
page		: 1						- número da página
pageSize	: 10					- quantidade por página
Totvs custom tabs box items
defaultno
referenciapasso3
Header
Content-Type : application/json 
Accept       : application/json 

Atenção!
Caso os Headers da requisição não estejam preenchidos conforme a configuração acima, a API irá retornar um erro HTTP 406 - Not AcceptableExemplo JSON da resposta:  


Bloco de código
languagejs
titleBody Response Params
{
orderId    "first": false,
    "items": [
  0      {
       - Número do pedido referente "_expandables": [
                "department"
            ],
            "id": 0,
a nota fiscal a que se deseja consultar o xml. (Caso não preenchido deve-se preencher o transactionId);
transactionId : 0            "description": "string",
            "department": {
                "id": 9,
                "name": "string",
                "fatherCategoryId": 0,
                "title": "",
                "description": "",
                "keywords": "",
                "lastChange": "1900-01-01T00:00",
                "updateStockGeneral": true,
                "typeMerchandise": "string",
                "dtcreate": "1900-01-01T00:00",
                "active": false
            },
            "title": "",
            "keywords": "",
            "adWordsRemarketingCode": "",
            "lastChange": "2020-11-16T12:29:50",
            "dtcreate": "1900-01-01T00:00:00"
        } 
 ],
 "hasNext": true
}

...

 - Parâmetro Opcional uso interno - Número da transação referente a nota fiscal a que se deseja consultar o xml. (Caso não preenchido deve-se preencher o orderId);
returnBase64  : true/false    - Refere-se a solicitar que o retorno esteja codificado no padrão "Base 64". (Não é um parâmetro obrigatório e o padrão é "false");
Totvs custom tabs box items
defaultno
referenciapasso3

Exemplo JSON da resposta:  

Bloco de código
languagejs
titleBody Response
{
    "invoiceXml": "string"
}

Caso informado o parâmetro returnBase64 : true

Bloco de código
languagejs
titleBody Response
{ 
"invoiceXml": "<XML referente a nota fiscal codificado em Base64>" 
}
Totvs custom tabs box items
defaultno
referenciapasso4

Tratamento de Exceção ao realizar a requisição

1) Parâmetros não informados

  • Caso nenhum dos parâmetros (orderId e/ou transactionId) tenham sido informados, deve-se retornar o json abaixo;
Bloco de código
languagejs
title Parâmetros não informados
{  "mensagem": "Não foi possível obter o XML. Número do pedido ou da transação não informados.", "erros": [] }

2) Parâmetros informados, porém inválidos ou não relacionados:

  • Caso o número do pedido não exista na base de dados do Winthor;
  • Caso o número da transação não exista na base de dados do Winthor;
  • Caso o número do pedido e o número da transação tenham sido informados como parâmetro, sejam válidos, mas não estão relacionados a mesma nota fiscal;
  • Caso a nota fiscal não esteja com o status 100 ou 150;
Bloco de código
languagejs
titleParâmetros informados, porém inválidos ou não relacionados
{ "mensagem": "Não foi possível encontrar uma nota fiscal vinculada ao pedido e/ou transação informados. Número do pedido: <orderId>; Número da transação: <transactionId>; ", "erros": [] }

3) Headers Content-Type e Accept da requisição enviados sem especificação "application/json"

  • Caso a resposta esteja sendo recebida com o formato HTML ao invés de JSON
  • Caso a resposta recebida tenha HTTP status 406 - Not Acceptable
Bloco de código
languagexml
titleParâmetros informados, porém inválidos ou não relacionados
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
	<title>Error 406 Not Acceptable</title>
</head>
<body>
	<h2>HTTP ERROR 406</h2>
	<p>Problem accessing /winthor/fiscal/v1/documentosfiscais/nfe/invoiceDocument. Reason:
		<pre>    Not Acceptable</pre>
	</p>
	<hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.3.21.v20170918</a>
	<hr />
</body>
</html>