Logística
Países
Listar países
GET https://api.dooki.com.br/v2/{alias}/logistics/countries
Response
Armazéns
Listar armazéns
GET https://api.dooki.com.br/v2/{alias}/logistics/warehouses
Request
Response
Criar armazéns
POST https://api.dooki.com.br/v2/{alias}/logistics/warehouses
Parâmetro | Tipo | Obrigatório | Descrição |
country_code | string | Sim | Código do país. |
name | string | Sim | Nome do armazém. |
zipcode | string | Sim | CEP do armazém. |
street | string | Sim | Rua do armazém. |
number | string | Sim | Número do armazém. |
complement | string | Não | Complemento do armazém. |
neighborhood | string | Sim | Bairro do armazém. |
city | string | Sim | Cidade do armazém. |
state | string | Sim | Estado do armazém. |
Visualizar armazém
GET https://api.dooki.com.br/v2/{alias}/logistics/warehouses/{id}
Atualizar armazém
PUT https://api.dooki.com.br/v2/{alias}/logistics/warehouses/{id}
Excluir armazém
DELETE https://api.dooki.com.br/v2/{alias}/logistics/warehouses/{id}
Estoques
O lojista pode ter um cadastro de múltiplos estoques onde ele pode associar posteriormente os SKUS com suas respectivas quantidades. Um exemplo prático é permitir que ele consiga trabalhar com estoques de fornecedores externos com diferentes prazos de entrega.
Caso um SKU estiver relacionado a um estoque, a disponibilidade final de entrega será sempre a maior.
Listar estoques
GET https://api.dooki.com.br/v2/{alias}/logistics/stocks
Request
Response
Criar estoque
POST https://api.dooki.com.br/v2/{alias}/logistics/stocks
Parâmetro | Tipo | Obrigatório | Descrição |
name | string | Sim | Nome do estoque. |
delivery_days | int | Sim | Dias de entrega do estoque. |
warehouse_id | int | Não | ID do armazém. |
Visualizar estoque
GET https://api.dooki.com.br/v2/{alias}/logistics/stocks/{id}
Atualizar estoque
PUT https://api.dooki.com.br/v2/{alias}/logistics/stocks/{id}
Excluir estoque
DELETE https://api.dooki.com.br/v2/{alias}/logistics/stocks/{id}
Reservas de estoque
Acesso as informações de reserva de estoque criada para pedidos. Includes disponíveis: orders.
Listar reservas de estoque
GET https://api.dooki.com.br/v2/{alias}/logistics/stock-reservation
Também é possível acessar as informações de uma reserva de estoque em específico
GET https://api.dooki.com.br/v2/{alias}/logistics/stock-reservation/{id}
Response ao listar reservas de estoque
É possível utilizar filtros nesse endpoint por parâmetro, são eles: sku_id
, stock_id
, order_id
e busca por nome de produto ou sku, pelo parâmetro q
.
Exemplos:
GET https://api.dooki.com.br/v2/{alias}/logistics/stock-reservation?order_id=32
GET https://api.dooki.com.br/v2/{alias}/logistics/stock-reservation?q=Jogo
Embalagens
Listar embalagens
GET https://api.dooki.com.br/v2/{alias}/logistics/boxes
Request
Response
Criar embalagem
POST https://api.dooki.com.br/v2/{alias}/logistics/boxes
Parâmetro | Tipo | Obrigatório | Descrição |
name | string | Sim | Nome da embalagem. |
outer_width | float | Sim | Largura externa da embalagem (em cm). |
outer_length | float | Sim | Comprimento externo da embalagem (em cm). |
outer_depth | float | Sim | Altura externa da embalagem (em cm). |
inner_width | float | Sim | Largura interna da embalagem (em cm). |
inner_length | float | Sim | Comprimento interno da embalagem (em cm). |
inner_depth | float | Sim | Altura interna da embalagem (em cm). |
max_weight | float | Sim | Peso máximo da embalagem (em kg). |
empty_weight | float | Sim | Peso da embalagem vazia (em kg). |
Visualizar embalagem
GET https://api.dooki.com.br/v2/{alias}/logistics/boxes/{id}
Atualizar embalagem
PUT https://api.dooki.com.br/v2/{alias}/logistics/boxes/{id}
Excluir embalagem
DELETE https://api.dooki.com.br/v2/{alias}/logistics/boxes/{id}
Transportadoras
Listar transportadoras
GET https://api.dooki.com.br/v2/{alias}/logistics/carriers
Request
Response
Criar transportadora
POST https://api.dooki.com.br/v2/{alias}/logistics/carriers
Parâmetro | Tipo | Obrigatório | Descrição |
active | boolean | Sim | Marca se a transportadora está ativa ou não. |
name | string | Sim | Nome da transportadora. |
only_backup_use | boolean | Sim | Marca se a transportadora será utilizada somente para backup em caso de falha de algum webservice. |
origin_zipcode | string | Sim | CEP de origem. |
increment_percent | float | Sim | Porcentagem adicional no preço de entrega. Valor padrão: |
max_weight | float | Sim | Peso máximo que a transportadora suporta (em kg). |
active_cubic_weight | boolean | Sim | Marca se será considerado o peso cúbico. |
cubic_weight_factor | float | Sim | Fator de cubagem. |
min_cubic_weight | float | Sim | Peso real mínimo para que o peso cúbico seja considerado. |
weight_param | string | Sim | Marca qual o peso será considerado como parâmetro. Valores aceitos: |
weight_condition | string | Sim | Condicional que compara os dois tipos de pesos. Valores aceitos: |
Visualizar transportadora
GET https://api.dooki.com.br/v2/{alias}/logistics/carriers/{id}
Atualizar transportadora
PUT https://api.dooki.com.br/v2/{alias}/logistics/carriers/{id}
Excluir transportadora
DELETE https://api.dooki.com.br/v2/{alias}/logistics/carriers/{id}
Preços de frete (planilhas)
Request
Response
Filtros personalizados
Esse tipo de filtro não utiliza a sintaxe global. Neste caso, o parâmetro é passado individualmente via query string na URL.
Parâmetro | Tipo | Descrição |
zipcode | string | Faz o filtro de registros de acordo com o CEP informado. |
Listar preços de uma transportadora
GET https://api.dooki.com.br/v2/{alias}/logistics/carriers/{carrierId}/prices
Criar preço para uma transportadora
POST https://api.dooki.com.br/v2/{alias}/logistics/carriers/{carrierId}/prices
Parâmetro | Tipo | Obrigatório | Descrição |
carrier_id | int | Sim | ID da transportadora. |
description | string | Sim | Descrição da faixa de CEP. |
zipcode_min | string | Sim | CEP inicial. |
zipcode_max | string | Sim | CEP final. |
price | float | Sim | Preço do frete. |
delivery_days | int | Sim | Dias para entrega. |
extra_weight_price | float | Sim | Valor extra por kilo adicional. |
increment_percent | float | Não | Porcentagem adicional no valor do frete. |
Visualizar preço
GET https://api.dooki.com.br/v2/{alias}/logistics/carriers/{carrierId}/prices/{id}
Atualizar preço
PUT https://api.dooki.com.br/v2/{alias}/logistics/carriers/{carrierId}/prices/{id}
Excluir preço
DELETE https://api.dooki.com.br/v2/{alias}/logistics/carriers/{carrierId}/prices/{id}
Exportar preços
GET https://api.dooki.com.br/v2/{alias}/logistics/carriers/{carrierId}/prices/export
Dica: os filtros de busca também estão disponíveis no endpoint de exportação.
O sistema enviará para o usuário um e-mail com o link para download da planilha com os registros.
Consulta de CEP
Response de consulta de CEP
Consultar CEP
GET https://api.dooki.com.br/v2/{alias}/logistics/zipcode/{zipcode}
Calcular frete
Request
Response de cálculo de frete
Calcular frete
POST https://api.dooki.com.br/v2/{alias}/logistics/shipping-costs
Parâmetro | Tipo | Obrigatório | Descrição |
zipcode | string | Sim | CEP de entrega. |
total | float | Sim | Valor total da compra. |
origin | string | Não | Origem da consulta. Exemplo: |
utm_email | string | Não | E-mail do cliente que está consultando o frete. |
skus_ids | array | Sim | IDs dos SKUS. |
quantities | array | Sim | Quantidades dos SKUS (precisa seguir a ordem que os |
API de frete
Com este recurso é possível conectar APIS externas de cálculo de frete de serviços que não são integrados nativamente na Yampi.
Para habilitar este recurso, o lojista precisa criar uma API de frete pelo painel da Yampi, acessando o menu Configurações > Logística > API de Frete
Você deverá cadastrar:
Nome da API
URL da API
Headers (optional)
Já com sua API cadastrada, quando um comprador solicitar um cálculo de frete, a Yampi enviará um request via POST para a URL informada. O formato do payload será:
Campo | Descrição |
zipcode | CEP de entrega |
amount | Valor do carrinho de compras |
skus.id | ID do SKU na Yampi |
skus.product_id | ID do Produto na Yampi |
skus.sku | Código SKU |
skus.quantity | Quantidade do item no carrinho |
skus.length | Comprimento do SKU (unitário) |
skus.width | Largura do SKU (unitário) |
skus.height | Altura do SKU (unitário) |
skus.weight | Peso do SKU (unitário e em KG) |
skus.platform.name | Nome da plataforma externa que o SKU pertence |
skus.platform.id | ID do SKU na plataforma externa |
skus.availability_days | Prazo de postagem (em dias) |
cart | Objeto do carrinho (pode ser vazio) |
cart.promocode | Cupom de desconto |
cart.customer | Objeto do cliente (pode ser vazio) |
cart.customer.document | CPF ou CNPJ do cliente |
cart.customer.email | E-mail do cliente |
Após receber o request da Yampi, sua aplicação deverá, obrigatoriamente, retornar a cotação de frete no seguinte formato:
Importante:
sua aplicação deve responder a request em até 5 segundos, no máximo. Caso contrário, a Yampi irá abortar a request;
Segurança nas requisições
A validação da requisição serve para verificar se realmente ela foi enviado pela Yampi, e é de extrema importância a sua utilização para que suas transações estejam seguras.
Para cada API de frete é gerada uma chave secreta, onde utilizamos dela para gerar uma assinatura em cima do body da solicitação.
Valor do header X-Yampi-Hmac-SHA256. Vamos chamar esse valor de "assinatura da requisição";
Corpo da requisição. Com esses dois valores, basta realizar o base64 do algoritmo HMAC-SHA256 do corpo da requisição utilizando a chave secreta da API de frete e comparar com a assinatura da requisição. Se os valores forem iguais, excelente. Caso contrário, não fomos nós que enviamos essa requisição!
Atualizado