Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Datasul

Segmento:

Backoffice

Módulo:

TOTVS Backoffice (Linha Datasul) - Faturamento (MFT)

Função:

ItemTaxSimulationPublic - API Pública para simulação dos impostos de itens do Ecommerce

País:Brasil
Requisito/Story/Issue:

DMANFATINOV-1202, DMANFATINOV-1298


02. SITUAÇÃO/REQUISITO

Disponibilizar nova rota a ser utilizada apenas pelo Ecommerce B2B, retornando os valores de impostos por item no formato esperado pela VTEX.

03. SOLUÇÃO

Criado novo endpoint na API de simulação dos impostos com mais de um item, itemTaxSimulationPublic segunda versão, para atender os parâmetros de entrada e saída que a VTEX espera. Para utilizar esse novo endpoint basta ao final da chamada da API adicionar /ecommerce e executar via POST, exemplo a seguir:

IP:PORTA/dts/datasul-rest/resources/prg/ftp/v2/itemTaxSimulationPublic/ecommerce

JSON de entrada:

  • BranchId (Não obrigatório, caso não venha na entrada é pego o estabelecimento cadastrado no PD0301)
  • isB2c (Não obrigatório, por padrão o endpoint de ecommerce considera como b2b)
  • CustomerDocument (Não obrigatório, CPF/CNPJ do cliente, caso recebido é validado se o mesmo existe)
  • CustomerId (Não obrigatório, ID do cliente no datasul, caso recebido é validado se o mesmo existe, o CustomerId tem prioridade em relação ao CustomerDocument e uma deles precisa ser informado)
  • Freight (Não obrigatório)
  • Insurance (Não obrigatório)
  • ListofProducts
    • ProductId (Obrigatório)
    • sku (Não obrigatório)
    • Quantity (Obrigatório)
    • UnitaryValue (Obrigatório)
    • Freight (Não obrigatório)
    • DiscountPrice (Não obrigatório)


Exemplo de JSON de entrada:

{
    "BranchId": "1",
    "CustomerDocument": "51702628000170",
    "ListofProducts": [
        {
            "ProductId": ".compras",
            "sku": "8",
            "Quantity": 1,
            "UnitaryValue": 30.5
        },
        {
            "ProductId": "13t",
            "sku": "5",
            "Quantity": 3,
            "UnitaryValue": 14
        }
    ]
}

A API irá retornar um JsonObject no formato a seguir:

  • itemTaxResponse
    • sku
    • taxes
      • name
      • value


Exemplo de um retorno realizado pela API, caso algum item não tenha imposto o Array de "taxes" vira vazio, os impostos só serão retornados caso o valor seja diferente de zero:

{
    "itemTaxResponse": [
        {
            "taxes": [
                {
                    "name""IPI",
                    "value"0.99
                }
            ],
            "sku""8"
        },
        {
            "taxes": [
                {
                    "name""IPI",
                    "value"5.46
                }
            ],
            "sku""5"
        }
    ]
}