...
{
"SalesType": "N",
"CustomerId": "000001",
"CustomerUnit": "01",
"CustomerIdDelivery": "000001",
"CustomerUnitDelivery": "01",
"CustomerType": "F",
"Payment": "001",
"DiscountPercentage1": 10,
"DiscountPercentage2": 100,
"DiscountPercentage3": 100,
"DiscountPercentage4": 100,
"Currency": 1,
"Freight": 10,
"Insurance": 0,
"Expense": 0,
"ListofProducts": [
{
"ItemId": "01",
"ProductId": "3395979",
"Quantity": 10,
"UnitaryValue": 100,
"TotalValue": 1000,
"ItemDiscountPercentage": 10,
"ItemDiscountValue": 100,
"OperationType": "02"
},
{
"ItemId": "02",
"ProductId": "92.01.101-2",
"Quantity": 10,
"UnitaryValue": 100,
"TotalValue": 1000,
"ItemDiscountPercentage": 10,
"ItemDiscountValue": 100,
"OperationType": "01"
}
]
}
"SalesType": "N"
Tipo da venda, usa o valor “N" fixo
"CustomerId": "000001"
Código do cliente, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado no cabeçalho da ordem de venda
"CustomerUnit": "01"
Código da loja, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado no cabeçalho da ordem de venda
"CustomerIdDelivery": "000001"
Código do cliente de entrega, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado na entrega da ordem de venda
"CustomerUnitDelivery": "01"
Código da loja do cliente de entrega, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3) selecionado na entrega da ordem de venda
"CustomerType": "F"
Tipo do cliente, usa o valor extraído do campo CLASSIFICACAOPARCEIRO.SUBSTR(C.CODIGOERP,LENGTH(C.CODIGOERP),LENGTH(C.CODIGOERP))
"Payment": "001"
Código da condição de pagamento, campo CONDICAOPAGAMENTO.SPLIT_PART(CODIGOERP,'#',2) selecionado no cabeçalho da ordem de venda
"DiscountPercentage1": 10, "DiscountPercentage2": 0, "DiscountPercentage3": 0, "DiscountPercentage4": 0
Campo Calculado: total bruto dos itens - total liquido dos itens ((1 - (totalliquido/ totalbruto)) * 100) na primeira tag, nas demais não é enviado nenhum valor.
"Currency": 1
Moeda selecionada na ordem de venda, campo INDEXADOR.CAST(SPLIT_PART(CODIGOERP,'#',2) AS INT)
"Freight": 10
Valor do frete inserido na ordem de venda, campo PEDIDOENTREGA.VALORFRETE
"Insurance": 0
Valor do seguro do pedido, campo PEDIDOENTREGA.VALORSEGURO
"Expense": 0
Valor de despesas acessórias, campo PEDIDOENTREGA.VALORDESPESA
"ListofProducts"."ItemId": “01”
Número sequencial de cada item dentro da ordem de venda, campo PEDIDOPRODUTO.ORDEM * 10
"ListofProducts"."ProductId": "3395979"
Código do produto inserido nos itens da ordem de venda, campo PRODUTO.SPLIT_PART(CODIGOERP,'#',2)
"ListofProducts"."Quantity": 10
Quantidade do item em questão inserido nas ordens de venda, campo PEDIDOPRODUTO.QUANTIDADE
"ListofProducts"."UnitaryValue": 100
Valor unitário do item inserido nas ordens de venda (valor cheio, não considera desconto), campo PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."TotalValue": 1000
Valor total do item inserido nas ordens de venda, PEDIDOPRODUTO.QUANTIDADE * PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."ItemDiscountPercentage": 10
Percentual de desconto inserido no item da ordem de venda, campo PEDIDOPRODUTO.PERCENTUALDESCONTO
"ListofProducts"."ItemDiscountValue": 100
Fixo 0
"ListofProducts"."OperationType": "02"
Tipo de operação, campo TIPOPEDIDO.CODIGOERP
OBS: Caso o tipo de pedido do item for nulo, é enviado o do cabeçalho.
Abaixo está o escopo do cálculo de imposto do Protheus.
A integração recebe a solicitação da aplicação via Carte, busca, processa e retorna para a mesma.
Abaixo estão exemplos via POSTMAN:
Na URL para o Datasul, o formato será o seguinte:
POST {{URL}/AMBIENTE/api/fat/v1/SalesTaxes
Substitua a variável URL pelo caminho da API, informado pelo cliente.
Exemplo:
Na aba de autorização, selecione o tipo Basic e informe os dados de usuário e senha:
No header da requisição, informe o tipo do conteúdo:
Content-Type: application/json
No corpo da mensagem, substitua os dados da ordem de venda nas tags correspondentes.
Exemplo:
Corpo de uma mensagem de exemplo:
{
"SalesType": "N",
"CustomerId": "0D69DO",
"CustomerUnit": "01",
"CustomerIdDelivery": "0D69DO",
"CustomerUnitDelivery": "01",
"CustomerType": "S",
"Payment": "002",
"DiscountPercentage1": 9,
"DiscountPercentage2": 0,
"DiscountPercentage3": 0,
"DiscountPercentage4": 0,
"Currency": 1,
"Freight": 0,
"Insurance": 0,
"Expense": 0,
"ListofProducts": [
{
"ItemId": "1",
"ProductId": "181647",
"Quantity": 90,
"UnitaryValue": 10,
"TotalValue": 900,
"ItemDiscountPercentage": 13,
"operationType": "03",
"TES": "501",
"ItemDiscountValue": 0
}
]
}
"SalesType": "N"
Tipo da venda, usa o valor “N" fixo
"CustomerId": "421503910D69DO"
Código do cliente, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3)NUMEROMATRICULA selecionado no cabeçalho da ordem de venda
"CustomerUnit": "00501"
Código da loja selecionado no cabeçalho da ordem de venda, extraído do campo PARCEIROLOCAL.SPLIT_PART(CODIGOERP,'#',4), ou se for nulo, FILIALVENDA.SPLIT_PART(CODIGOERP,'#',3) selecionado no cabeçalho da ordem de venda
"CustomerIdDelivery": "421503910D69DO"
Código do cliente de entrega, extraído do campo PARCEIRO.SPLIT_PART(CODIGOERP,'#',3)NUMEROMATRICULA selecionado na entrega da ordem de venda
"CustomerUnitDelivery": "005001"
Código da loja do cliente de entrega, extraído do campo PARCEIRO LOCAL.SPLIT_PART(CODIGOERP,'#',34) selecionado na entrega da ordem de venda
"CustomerType": "FS"
Tipo do cliente, usa o valor extraído do campo CLASSIFICACAOPARCEIRO.SUBSTR(C.CODIGOERP,LENGTH(C.CODIGOERP),LENGTH(C.CODIGOERP))
"Payment": "003002"
Código da condição de pagamento, campo CONDICAOPAGAMENTO.SPLIT_PART(CODIGOERP,'#',2) selecionado no cabeçalho da ordem de venda
"DiscountPercentage1": 09, "DiscountPercentage2": 0, "DiscountPercentage3": 0, "DiscountPercentage4": 0
Campo Calculado: total bruto dos itens - total liquido dos itens ((1 - (totalliquido/ totalbruto)) * 100) na primeira tag, nas demais não é enviado nenhum valor.
"Currency": 0: 1
Fixo 1Moeda selecionada na ordem de venda, campo INDEXADOR.CAST(SPLIT_PART(CODIGOERP,'#',2) AS INT)
"Freight": 0
Valor do frete inserido na ordem de venda, campo PEDIDOENTREGA.VALORFRETE
...
Número sequencial de cada item dentro da ordem de venda, campo PEDIDOPRODUTO.ORDEM * 10
"ListofProducts"."ProductId": "3707-011-000181647"
Código do produto inserido nos itens da ordem de venda, campo PRODUTO.SPLIT_PART(CODIGOERP,'#',2)
"ListofProducts"."Quantity": 190
Quantidade do item em questão inserido nas ordens de venda, campo PEDIDOPRODUTO.QUANTIDADE
"ListofProducts"."UnitaryValue": 2210
Valor unitário do item inserido nas ordens de venda (valor cheio, não considera desconto), campo PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."TotalValue": 19.8900
Valor total do item inserido nas ordens de venda, PEDIDOPRODUTO.QUANTIDADE * PEDIDOPRODUTO.PRECOVENDA
"ListofProducts"."ItemDiscountPercentage": 1013
Percentual de desconto inserido no item da ordem de venda, campo PEDIDOPRODUTO.PERCENTUALDESCONTO
...
"ListofProducts"."OperationType": "03"
TES INTELIGENTE, campo TIPOPEDIDO.CODIGOERP
OBS: Caso o tipo de pedido do item for nulo, é enviado o do cabeçalho
"ListofProducts"."TES": "501"
Tipo de operaçãoTES PADRÃO, campo TIPOPEDIDO.SPLIT_PART(CODIGOERP,'#',2)
OBS: Caso o tipo de pedido do item for nulo, é enviado o do cabeçalho.
Protocolo HTTP REST
...