Como é a estrutura API REST do TaxHub

Promoções, Taxas & Cupons

Marco Paramo

Marco Paramo

Última atualização

Introdução:

Este documento tem a finalidade de explicar e proporcionar exemplos do fluxo que mantém o novo módulo de impostos (TaxHub) por meio da interface REST. Todos os requests compartilhados aqui precisam ser feitos sob a estrutura node.js, que é a que está instalada dentro do TaxHub dentro do backoffice de VTEX.

No link seguinte poderão baixar a coleção API para importar e usar em POSTMAN

TaxHubApi: https://www.getpostman.com/collections/cc172421bd78c7423f1b

Lembrem-se de usar o accountName que está sendo utilizado em todos os requests e tomar o valor do campo “id” do primeiro request (API “GetTaxes”), pois este será o mesmo valor em todos os payload seguintes

0. API Headers

  • Accept: application/json, application/vnd.vtex.lambda.v1+json
  • Content-Type: application/json
  • X-VTEX-API-AppKey: {{user}}
  • X-VTEX-API-AppToken: {{password}}

1. GetTaxes Lembrem-se de usar accountName que está sendo utilizado em todos os requests e tomar o valor do campo “id” do primeiro request (API “GetTaxes”), pois este será o mesmo valor em todos os payload seguintes.

Response:

[
  {
    "id": "EBAA53E0CE605E93C7731253CE0FB008",
    "appName": "NAVENT-SAP",
    "ownerId": "073d4b3b-9c14-4878-be22-a0e5dac703d3",
    "isPrivate": false
  }
]

Evidence: TaxHubAPIGetTax

2 Occupation Area

No primeiro endereço (origin) se ocupará o configurado nas docas e no segundo (destination) se ocupará o do checkout, a resposta é “TRUE” ou “FALSE”. Caso seja “TRUE”, continua Fiscal Region

Request example:

{
  "action": "https://s3-external-1.amazonaws.com/vtex-taxhub/EBAA53E0CE605E93C7731253CE0FB008/argentina.js",
  "event": {
    "account": "zonaprop",
    "origin": {
      "state": "Buenos Aires",
      "city": "Buenos Aires",
      "neighborhood": null
    },
    "destination": {
      "state": "CIUDAD AUTONOMA DE BUENOS AIRES",
      "city": "Ciudad Autonoma de Buenos Aires",
      "neighborhood": null
    }
  }
}

Response:

{
  "response": true,
  "logs": [],
  "elapsedMilliseconds": 1,
  "memory": {
    "rss": 56066048,
    "heapTotal": 33290528,
    "heapUsed": 32187168
  }
}

Evidence: TaxHubOccupationArea

3 FiscalRegion

Request example:

{
  "action": "https://s3-external-1.amazonaws.com/vtex-taxhub/EBAA53E0CE605E93C7731253CE0FB008/argentina/fiscalregion.js",
  "event": {
    "account": "zonaprop",
    "state": "CIUDAD AUTONOMA DE BUENOS AIRES",
    "city": "Ciudad Autonoma de Buenos Aires",
    "neighborhood": null
  }
}

Response:

{
  "response": {
    "region": "A"
  },
  "logs": [],
  "elapsedMilliseconds": 1,
  "memory": {
    "rss": 56455168,
    "heapTotal": 34322464,
    "heapUsed": 32591648
  }
}

Evidence: TaxHubFiscalRegion

4 CustomerCode

Nesta seção, enviamos o e-mail do cliente, além de podermos nos conectar ao Master Data e trazermos informações do Profile System (se for necessário).

Request example:

{
  "action": "https://s3.amazonaws.com/vtex-taxhub/EBAA53E0CE605E93C7731253CE0FB008/argentina/customercode.js",
  "event": {
    "clientEmail": "jose.gabriel@vtex.com.br"
  }
}

Response:

{
  "response": "Gabriel",
  "logs": [],
  "elapsedMilliseconds": 175,
  "memory": {
    "rss": 57188352,
    "heapTotal": 34322464,
    "heapUsed": 33375144
  }
}

Evidence: TaxHubCustomerCode

5 ItemCode

Nesta seção, poderemos também trazer informação do produto (se for necessário).

Request example:

{
  "action": "https://s3-external-1.amazonaws.com/vtex-taxhub/EBAA53E0CE605E93C7731253CE0FB008/argentina/itemcode.js",
  "event": {
    "itemId": "5002"
  }
}

Response:

{
  "response": 5002,
  "logs": [],
  "elapsedMilliseconds": 600,
  "memory": {
    "rss": 57671680,
    "heapTotal": 35354400,
    "heapUsed": 33684008
  }
}

Evicence:

TaxHubItemCode

6 Aliquot

Nesta seção, chamamos a API de um terceiro (se for necessário).

Request example:

{
  "action": "https://s3-external-1.amazonaws.com/vtex-taxhub/EBAA53E0CE605E93C7731253CE0FB008/argentina/iva/aliquot.js",
  "event": {
    "originFiscalRegion": "Calle Echevarria 874",
    "destinationFiscalRegion": "Av. Chiclana 3578",
    "customerCode": "Gabriel",
    "itemCode": "5002"
  }
}

Response:

{
  "response": {},
  "logs": [],
  "elapsedMilliseconds": 1,
  "memory": {
    "rss": 63950848,
    "heapTotal": 43585824,
    "heapUsed": 33527560
  }
}

Evidence: TaxHubAliquot

7 TaxValue

Nesta seção, calcula-se o valor do imposto com base na informação recebida em Aliquot.

Request example:

{
  "action": "https://s3-external-1.amazonaws.com/vtex-taxhub/EBAA53E0CE605E93C7731253CE0FB008/argentina/iva/taxvalue.js",
  "event": {
    "aliquot": {
      "iva": 0.6231,
      "destination": "0.190000",
      "origin": "0.190000"
    },
    "itemPrice": 200.00,
    "shippingPrice": null,
    "sellingPrice": 200.00
  }
}

Response:

{
  "response": [
    {
      "name": "SAP AC",
      "description": "[IVA] Navent",
      "value": 1
    }
  ],
  "logs": [],
  "elapsedMilliseconds": 1,
  "memory": {
    "rss": 63549440,
    "heapTotal": 42553888,
    "heapUsed": 33046416
  }
}

Evidence: TaxHubTaxValue

Continue lendo sobre o TaxHub com o artigo sobre a estructura em JS


Este artigo foi útil?