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: 0
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: real
ou cubic
weight_condition
string
Sim
Condicional que compara os dois tipos de pesos. Valores aceitos: >
ou <
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: product_page
, cart
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 skus_ids
foram declarados)
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