# Yampi Developer Portal
## Agent Instructions
A API da Yampi suporta dois modos de autenticação, mutuamente exclusivos, escolhidos conforme o tipo de integração:
1. Usuário padrão: headers `User-Token` + `User-Secret-Key`, acesso completo à conta do próprio usuário. Uso: integrações pessoais ou internas. Ver auth/auth-user-token.
2. App para Loja de Aplicativos: OAuth 2.0 com escopos granulares (Access Token de 10 min + Refresh Token de 30 dias). Obrigatório para apps publicados na Loja de Aplicativos da Yampi. Requer registro no Painel de Parceiros (partners.yampi.com.br) e definição de permissões. Ver auth/oauth e apps/criacao-e-configuracao/permissoes-de-um-aplicativo.
Ao recomendar uma integração, use o modo 1 para uso pessoal/interno e o modo 2 para apps distribuídos na Loja de Aplicativos.
## Página Inicial
# Página inicial
Source: https://docs.yampi.com.br/introduction
Explore a documentação de nossa API Rest.
Collection da API Yampi.
Aprenda a criar aplicativos e disponibilizá-los em nossa loja.
Faça parte da nossa comunidade de desenvolvedores.
Perguntas frequentes da comunidade.
Saiba como customizar ou criar temas de lojas.
# Autenticação
Source: https://docs.yampi.com.br/auth/auth
A API da Yampi suporta dois métodos de autenticação. A escolha depende do tipo de integração que você está construindo.
## Comparativo
| Critério | User Token | OAuth 2.0 |
|---|---|---|
| **Caso de uso** | Integração pessoal ou interna | Aplicativo publicado na Loja de Apps |
| **Quem autoriza** | O próprio usuário da conta | Lojistas que instalam o app |
| **Duração do acesso** | Longa duração (expira apenas se a senha mudar) | Access Token (10 min) + Refresh Token (30 dias) |
| **Escopos** | Acesso completo à conta | Permissões granulares definidas por escopo |
| **Complexidade** | Simples, basta incluir dois headers | Fluxo PKCE com redirecionamento e troca de tokens |
| **Onde obter** | Painel da Yampi → Perfil → Credenciais de API | Painel de Parceiros Yampi |
## Quando usar cada método
Use quando você está construindo uma integração para a **sua própria loja** ou para uso interno, como scripts, automações, integrações diretas com ERPs ou ferramentas internas.
Não requer fluxo de autorização: basta copiar as credenciais do painel e incluí-las nos headers de cada requisição.
Use quando você está desenvolvendo um **aplicativo que outros lojistas instalarão** pela Loja de Aplicativos da Yampi.
Obrigatório para apps publicados no Portal de Parceiros. Permite definir escopos de permissão e agir em nome de múltiplos lojistas com consentimento explícito.
## Critérios de decisão
**Integração pessoal vs. app publicado**: Se o acesso é apenas para a sua própria loja, o User Token é suficiente. Se outros lojistas precisam autorizar o seu app, use OAuth 2.0.
**Duração do acesso**: O User Token não expira por tempo, o que facilita integrações de longa duração sem reautenticação. O OAuth 2.0 exige renovação periódica via Refresh Token, mas oferece revogação de acesso granular por lojista.
**Escopos**: O User Token concede acesso total à conta do usuário. O OAuth 2.0 permite restringir o app a apenas os recursos necessários (ex.: somente leitura de pedidos), o que é exigido para publicação na Loja de Apps.
# User Token e User Secret Key
Source: https://docs.yampi.com.br/auth/auth-user-token
A autenticação garante a segurança e privacidade dos dados dos usuários. Nesta API, utilize os headers `User-Token` e `User-Secret-Key` em todas as requisições. Ambos são obrigatórios.
## Como obter suas credenciais
No painel administrativo da Yampi, acesse `Perfil > Credenciais de API` no canto superior direito para encontrar suas credenciais.
As credenciais de API são renovadas automaticamente quando a senha de acesso do usuário é alterada.
---
## Verificando o Usuário Autenticado
Após obter o `User-Token` e o `User-Secret-Key`, você pode utilizar o endpoint abaixo para consultar os dados do usuário autenticado, incluindo as lojas associadas, status de assinatura e permissões de acesso.
### Endpoint
```http
POST https://api.dooki.com.br/v2/auth/me
```
### Headers
| Nome | Valor |
|-----------------|-------------------------------|
| Content-Type | `application/json` |
| User-Token | `{user-token}` |
| User-Secret-Key | `{user-secret-key}` |
---
### Exemplo de Requisição
```bash
curl -X POST https://api.dooki.com.br/v2/auth/me \
-H "Content-Type: application/json" \
-H "User-Token: {{user-token}}" \
-H "User-Secret-Key: {{user-secret-key}}"
```
---
### Exemplo de Resposta
```json
{
"data": {
"id": 987654,
"active": true,
"name": "João Silva",
"social_name": null,
"email": "joao.silva@example.com",
"temporary_email": null,
"is_owner": true,
"agree": true,
"merchant_owner": true,
"super_user": false,
"last_login_at": "2025-07-15 14:22:10",
"avatar_url": "https://secure.gravatar.com/avatar/abc123?s=80&d=identicon",
"allow_notifications": true,
"type": "user",
"created_at": {
"date": "2023-01-10 09:30:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"created_at_timestamp": 1673343000,
"updated_at": {
"date": "2025-07-10 16:45:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"confirmed_at": "2023-01-10 10:00:00",
"mfa_enabled": true,
"cpf": "000.000.000-00",
"birthday": "1990-05-20",
"phone": "(11) 91234-5678",
"address_street": "Rua das Flores",
"address_number": "123",
"address_neighborhood": "Centro",
"address_complement": "Apto 45",
"address_city": "São Paulo",
"address_state": "SP",
"address_zipcode": "01000-000",
"merchants": {
"data": [
{
"id": 123456,
"alias": "loja-exemplo",
"name": "Loja Exemplo",
"profile": "store_v2",
"domain": "www.lojaexemplo.com.br",
"base_url": "https://www.lojaexemplo.com.br",
"is_marketplace": false,
"is_partner": false,
"use_only_checkout": false,
"active": true,
"internal_active": false,
"has_subscription": true,
"has_charges": true,
"has_credit_card": true,
"owner_id": 987654,
"owner_email": "joao.silva@example.com",
"tags": [],
"domains_list": ["www.lojaexemplo.com.br"],
"icon_url": null,
"logo_url": null,
"created_at": {
"date": "2023-02-15 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-06-20 17:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"subscription": {
"plan": "Pro",
"status": "active"
},
"has_services": {
"shopifyapp": false,
"bling": true,
"woocommerce": true,
"mago": false,
"tiny": false
}
}
]
},
"group": {
"data": []
},
"notification_types": {
"data": []
},
"lead_data": {
"data": []
}
}
}
```
---
## Campos da Resposta
- `id`
- `active`
- `name`
- `social_name`
- `email`
- `temporary_email`
- `is_owner`
- `agree`
- `merchant_owner`
- `super_user`
- `last_login_at`
- `avatar_url`
- `allow_notifications`
- `type`
- `created_at.date`
- `created_at.timezone_type`
- `created_at.timezone`
- `created_at_timestamp`
- `updated_at.date`
- `updated_at.timezone_type`
- `updated_at.timezone`
- `confirmed_at`
- `mfa_enabled`
- `cpf`
- `birthday`
- `phone`
- `address_street`
- `address_number`
- `address_neighborhood`
- `address_complement`
- `address_city`
- `address_state`
- `address_zipcode`
- `id`
- `preset_id`
- `active`
- `internal_active`
- `is_marketplace`
- `is_partner`
- `use_only_checkout`
- `profile`
- `alias`
- `has_domain`
- `domain`
- `base_url`
- `name`
- `icon_url`
- `logo_url`
- `has_subscription`
- `has_charges`
- `has_marketplace_accounts`
- `has_shopify`
- `has_affiliations`
- `coupon_created`
- `order_bump_created`
- `upsell_created`
- `pixel_created`
- `owner_id`
- `owner_email`
- `owner_created_at`
- `domains_list[]`
- `tags[]`
- `created_at.date`
- `created_at.timezone_type`
- `created_at.timezone`
- `updated_at.date`
- `updated_at.timezone_type`
- `updated_at.timezone`
- `plan`
- `status`
- `shopifyapp`
- `bling`
- `woocommerce`
- `mago`
- `tiny`
- `group.data[]`
- `notification_types.data[]`
- `lead_data.data[]`
---
### Observações Técnicas
- Essa rota **não requer payload no corpo da requisição**.
- Retorna todos os dados do usuário com base no token enviado.
- Pode ser usada para identificar o dono da loja, checar permissões e validar assinatura.
# OAuth 2.0
Source: https://docs.yampi.com.br/auth/oauth
OAuth 2.0 é um protocolo de autorização que oferece maior controle sobre o escopo de um aplicativo e permite fluxos de autorização em diferentes dispositivos. Ele possibilita a definição de escopos que concedem permissões específicas em nome de um cliente.
Para desenvolver aplicativos para a Yampi, é obrigatório o uso de autenticação com OAuth 2.0. Você pode localizar suas credenciais de acesso para OAuth ao criar seu aplicativo no [Painel de Parceiros Yampi.](https://partners.yampi.com.br)
Atualmente, o uso do OAuth 2.0 é restrito a aplicativos publicados na Loja de Aplicativos da Yampi.
## Fluxo de autorização
Para integrar seu aplicativo a uma loja Yampi, é necessário implementar um fluxo de autorização. Esse fluxo redireciona os lojistas Yampi para uma página onde seu aplicativo será integrado à loja.
```mermaid
%%{init: {'themeVariables': {'fontSize': '28px', 'fontFamily': 'Inter'}}}%%
sequenceDiagram
actor Lojista
participant App as Seu Aplicativo
participant Auth as auth.yampi.com.br
participant API as api.dooki.com.br
App->>App: 1. Gera Code Verifier e Code Challenge (PKCE)
App->>Auth: 2. GET /oauth/authorize (client_id, code_challenge, state)
Auth->>Lojista: Exibe tela de consentimento
Lojista->>Auth: Autoriza as permissões
Auth->>App: Redireciona com Authorization Code
App->>Auth: 3. POST /oauth/token (code, code_verifier, client_id)
Auth->>App: Retorna Access Token + Refresh Token
App->>API: 4. Requisição autenticada (Authorization: Bearer ACCESS_TOKEN)
API->>App: Resposta da API
Note over App,Auth: 5. Quando o Access Token expirar (10 min)
App->>Auth: POST /oauth/token (grant_type=refresh_token)
Auth->>App: Novo Access Token + Refresh Token
```
### 1. Obtenha as credenciais de autorização no Painel de Parceiros
Acesse o Painel de Parceiros Yampi, crie sua conta, habilite seu Perfil de Parceiro Tech e registre um novo aplicativo.
Para obter o `Client ID` da sua integração, é necessário informar a `redirect_url` da integração. Essa URL será usada para redirecionar o usuário à sua aplicação, onde o processo de integração será concluído.
Durante o desenvolvimento do seu aplicativo, você pode usar `http://localhost/sua-url-de-redirecionamento` como URL de redirecionamento.
### 2. Redirecionamento para autorização utilizando PKCE
Como essa concessão de autorização não utiliza um Client Secret, é necessário gerar o Code Verifier (verificador de código) e o Code Challenge (desafio de código) para solicitar um token.
#### Code Verifier
Uma string aleatória de 128 caracteres usada para gerar o `Code Challenge`, que será enviado no redirecionamento para autorização e na solicitação do `Access Token`.
O Code Challenge deve ser uma sequência aleatória de 43 a 128 caracteres contendo letras, números e os caracteres "-", ".", "_", "~". Ele deve ser codificado em Base64 com caracteres seguros para URL e nomes de arquivos. Os caracteres '=' finais devem ser removidos, e não devem haver quebras de linha, espaços em branco ou outros caracteres adicionais, conforme definido na especificação RFC 7636.
Exemplo de função para gerar o `Code Challenge` usando o `Code Verifier`:
```php
'client-id',
'redirect_uri' => '',
'response_type' => 'code',
'state' => $state,
'code_challenge' => $codeChallenge,
'code_challenge_method' => 'S256',
]);
// Redirecionar para a URL de autorização
header('Location: https://auth.yampi.com.br/oauth/authorize?' . $query);
exit;
}
```
```javascript
const express = require('express');
const crypto = require('crypto');
const app = express();
// Função para gerar uma string aleatória
function randomStr(length) {
return crypto.randomBytes(length / 2).toString('hex');
}
app.get('/redirect', (req, res) => {
const state = randomStr(40);
const codeVerifier = randomStr(128);
req.session.state = state;
req.session.code_verifier = codeVerifier;
const codeChallenge = crypto
.createHash('sha256')
.update(codeVerifier)
.digest('base64')
.replace(/=/g, '')
.replace(/\+/g, '-')
.replace(/\//g, '_');
const query = new URLSearchParams({
client_id: 'client-id',
redirect_uri: '',
response_type: 'code',
state: state,
code_challenge: codeChallenge,
code_challenge_method: 'S256',
}).toString();
res.redirect(`https://auth.yampi.com.br/oauth/authorize?${query}`);
});
```
#### Erros comuns
| Erro | O que significa |
|---|---|
| Página de erro sem redirecionamento | `client_id` inválido ou `redirect_uri` não cadastrada no Painel de Parceiros — o servidor não redireciona de volta por segurança |
| `?error=access_denied` no callback | O usuário negou a autorização na tela de consentimento |
| `?error=invalid_request` no callback | Parâmetro obrigatório ausente ou malformado (`code_challenge`, `code_challenge_method`, `response_type`) |
### 3. Obtenha um token de acesso do Authorization Server da Yampi
Com o `Authorization Code` gerado, seu aplicativo deve obter um `Access Token` antes de acessar dados de uma loja pela API Yampi.
O `Access Token` pode conceder uma ou mais permissões de acesso, configuradas no painel de parceiros por meio do scope (escopo). O scope define quais rotas da API podem ser acessadas.
Durante a instalação do aplicativo, o usuário será solicitado a conceder as permissões solicitadas. Esse processo é chamado de consentimento do usuário.
Se o usuário conceder permissão, o Authorization Server da Yampi redirecionará o usuário ao seu aplicativo com um `Authorization Code` e o `merchant` da loja integrada.
Formato da requisição para obter o `Access Token`:
```bash
POST 'https://auth.yampi.com.br/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'client_id=your-app-client-id' \
--data-urlencode 'redirect_uri=your-redirect-url' \
--data-urlencode 'code=generated-code-verifier' \
--data-urlencode 'code_verifier=generated-code-verifier'
```
#### Erros comuns
| `error` | `hint` | O que significa |
|---|---|---|
| `invalid_client` | — | `client_id` inválido ou não corresponde ao app registrado |
| `invalid_request` | `Cannot decrypt the authorization code` | Code malformado ou `code_verifier` ausente |
| `invalid_grant` | `Authorization code has expired` | O `authorization_code` expirou — reinicie o fluxo a partir da etapa 2 |
| `invalid_grant` | `Authorization code has been revoked` | O código já foi utilizado — cada código é de uso único |
| `invalid_grant` | `Failed to verify 'code_verifier'` | O `code_verifier` enviado não corresponde ao `code_challenge` da etapa 2 |
| `invalid_grant` | `The redirect uri is incorrect.` | A `redirect_uri` desta requisição difere da usada em `/oauth/authorize` |
### 4. Use o Access Token para acessar a API Yampi
Após obter o `Access Token`, ele deve ser incluído no cabeçalho das chamadas HTTP do seu aplicativo.
Formato da requisição com os cabeçalhos obrigatórios: `access_token` e `X-Partner-Client-ID`:
```bash
POST 'https://api.dooki.com.br/v2/{alias}/some-route' \
--header 'X-Partner-Client-ID: your-app-client-id' \
--header 'Authorization: Bearer {token}'
```
#### Erros comuns
| Erro retornado | O que significa |
|---|---|
| `401 {"message":"Unauthenticated."}` | `Access Token` expirado (válido por 10 minutos) ou ausente no header `Authorization` |
| `401` em rotas de parceiro | Header `X-Partner-Client-ID` ausente — o servidor não consegue identificar o aplicativo |
| `403 Forbidden` | A rota acessada está fora do escopo (`scope`) concedido pelo usuário na etapa de consentimento |
### 5. Atualize os tokens
O `Access Token` tem um tempo de vida limitado. Tokens gerados pelo fluxo PKCE Authorization Code permanecem válidos por *10 minutos*, enquanto o `Refresh Token` é válido por 30 dias.
Seu aplicativo deve obter novos tokens antes que o `Refresh Token` expire.
Formato da requisição para gerar um novo `Access Token`:
```bash
POST 'https://auth.yampi.com.br/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'refresh_token=your-refresh-token' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'client_id=your-app-client-id'
```
#### Erros comuns
| `error` | `hint` | O que significa |
|---|---|---|
| `invalid_client` | — | `client_id` não corresponde ao que gerou o `Refresh Token` |
| `invalid_request` | `Cannot decrypt the refresh token` | Token malformado — valor truncado ou corrompido |
| `invalid_request` | `Check the \`refresh_token\` parameter` | Parâmetro `refresh_token` ausente na requisição |
| `invalid_grant` | `Token has been revoked` | `Refresh Token` expirado (30 dias) ou revogado — reinicie o fluxo a partir da etapa 2 |
## Escopos
Os escopos permitem definir acessos granulares ao seu aplicativo, garantindo que ele tenha apenas as permissões necessárias. Consulte os detalhes de cada escopo em [Permissões de um aplicativo](/apps/criacao-e-configuracao/permissoes-de-um-aplicativo).
# Visão Geral
Source: https://docs.yampi.com.br/api-reference/introduction-webhook
Webhooks permitem que a plataforma envie uma requisição `POST` para URLs cadastradas sempre que determinados eventos ocorrerem. O payload enviado contém todas as `includes` disponíveis relacionadas ao recurso.
## Crie webhooks via API
Você pode criar e gerenciar webhooks através da API de Webhooks. Para mais informações, consulte a [documentação da API de Webhooks](/api-reference/webhooks/listar-webhooks).
A criação dos webhooks é restrita ao limite definido ao plano da sua loja, acesse a [página de planos](https://www.yampi.com.br/planos) para consultar seu limite.
Webhooks criados por aplicativos homologados não são levados em consideração nessa contagem.
## Eventos disponíveis
Abaixo estão os eventos atualmente suportados. Você pode configurar webhooks para escutar um ou mais desses eventos:
| Evento | Descrição | Exemplos |
| --------------------------- | --------------------------------------- | ------------------------------- |
| order.created | Pedido criado | [Ver payload](#pedidos) |
| order.paid | Pedido aprovado | [Ver payload](#pedidos) |
| order.status.updated | O status de um pedido foi atualizado | [Ver payload](#pedidos) |
| order.invoice.created | Nota fiscal de um pedido foi criada | [Ver payload](#notas-fiscais) |
| order.invoice.updated | Nota fiscal de um pedido foi atualizada | [Ver payload](#notas-fiscais) |
| transaction.payment.refused | O pagamento de uma transação foi negado | [Ver payload](#transacoes) |
| cart.reminder | Notificação de carrinho abandonado | [Ver payload](#carrinho-abandonado) |
| customer.created | Cliente criado | [Ver payload](#clientes) |
| customer.address.created | Endereço do cliente criado | [Ver payload](#enderecos-de-clientes) |
| product.created | Produto criado | [Ver payload](#produtos) |
| product.updated | Produto atualizado | [Ver payload](#produtos) |
| product.deleted | Produto excluído | [Ver payload](#produtos) |
| product.inventory.updated | Estoque de produto atualizado | [Ver payload](#estoque) |
| cashback.expiring | Um Cashback está expirando | [Ver payload](#cashback) |
## Exemplos de payloads de Webhook
Aqui centralizaremos todos os payloads retornados por cada webhook.
Exemplos de payloads retornados em `order.created`, `order.updated`, `order.paid` e `order.status.updated`.
Onde, o campo `event` é enviado de acordo com o evento que disparou esse webhook.
```json
{
"event": "", // `order.created`, `order.updated`, `order.paid` ou `order.status.updated`
"time": "2025-01-01 12:00:00",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 1000001,
"merchant_id": 123,
"customer_id": 987654,
"status_id": 3,
"desire_status_id": [8, 4, 9],
"desire_status": ["cancelled", "paid", "refused"],
"promocode_id": null,
"marketplace_id": null,
"marketplace_account_id": null,
"authorized": false,
"sync_by_erp": false,
"has_recomm": false,
"has_upsell": false,
"has_freebie": false,
"has_order_bump": false,
"order_bump_types": [],
"has_payment": true,
"is_upsell": false,
"delivered": false,
"number": 123456789012,
"value_total": 199.90,
"buyer_value_total": 199.90,
"value_products": 180,
"value_shipment": 19.90,
"value_tax": 0,
"buyer_value_tax": 0,
"value_discount": 10,
"value_wallet_discount": 0,
"shipment_cost": 19.90,
"shipment_service": "CORREIOS_PAC",
"shipment_service_id": "12345",
"shipment_icon_url": null,
"shipment_quote_id": "abc123",
"track_code": null,
"track_url": null,
"days_delivery": 7,
"date_delivery": {
"date": "2025-01-08 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"cart_token": "cart-token-exemplo",
"utm_source": null,
"utm_campaign": null,
"utm_content": null,
"utm_term": null,
"utm_medium": null,
"total_comments": 0,
"payments": [
{
"alias": "credit_card",
"name": "Cartão de Crédito",
"icon_url": "https://icons.exemplo.com/svg/credit-card.svg"
}
],
"ip": "192.168.0.1",
"device": "desktop",
"reorder_url": "https://lojaexemplo.com.br/checkout?token=cliente123",
"content_statement_url": "https://api.exemplo.com.br/orders/content-statement/abc123",
"billet_whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000&text=",
"billet_whatsapp_app_link": "whatsapp://send?phone=5500000000000&text=",
"public_url": "https://api.exemplo.com.br/public/orders/abc123",
"created_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"status": {
"data": {
"id": 3,
"alias": "waiting_payment",
"name": "Aguardando pagamento",
"description": "Aguardando confirmação de pagamento"
}
},
"customer": {
"data": {
"id": 987654,
"merchant_id": 123,
"type": "f",
"name": "Cliente Exemplo",
"first_name": "Cliente",
"last_name": "Exemplo",
"email": "cliente@exemplo.com",
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"ip": "192.168.0.1",
"token": "cliente-token-exemplo",
"login_url": "https://lojaexemplo.com.br/auth/login?token=cliente-token-exemplo",
"anonymized": false,
"created_at": {
"date": "2022-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 11:59:59.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"items": {
"data": [
{
"id": 111,
"product_id": 5555,
"sku_id": 7777,
"price_cost": 150,
"price": 180,
"item_sku": "SKU123456",
"quantity": 1,
"shipment_cost": 19.90,
"gift": false,
"customizations": [],
"is_digital": false,
"sku": {
"data": {
"id": 7777,
"product_id": 5555,
"sku": "SKU123456",
"token": "sku-token-exemplo",
"title": "Produto Exemplo",
"price_cost": 150,
"price_sale": 180,
"price_discount": 10,
"purchase_url": "https://lojaexemplo.com.br/produto/sku-token-exemplo",
"customizations": { "data": [] }
}
}
}
]
},
"transactions": {
"data": [
{
"id": 9999,
"customer_id": 987654,
"payment_id": 1,
"authorized": true,
"captured": true,
"amount": 199.90,
"installments": 1,
"installment_value": 199.90,
"status": "paid",
"created_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"payment": {
"data": {
"id": 1,
"alias": "credit_card",
"name": "Cartão de Crédito",
"is_credit_card": true,
"icon_url": "https://icons.exemplo.com/svg/credit-card.svg"
}
}
}
]
},
"shipping_address": {
"data": {
"receiver": "Cliente Exemplo",
"zipcode": "00000000",
"street": "Rua Exemplo",
"number": "123",
"neighborhood": "Bairro Exemplo",
"city": "Cidade Exemplo",
"state": "EX",
"country": "BR"
}
},
"statuses": {
"data": [
{
"id": 3,
"alias": "waiting_payment",
"name": "Aguardando pagamento",
"description": "Aguardando confirmação de pagamento",
"created_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
]
},
"metadata": {
"data": [
{ "key": "cart_id", "value": "123456" },
{ "key": "source_platform", "value": "checkout_link" }
]
},
"spreadsheet": {
"data": [
{
"product": "Produto Exemplo",
"sku": "SKU123456",
"quantity": 1,
"total_cost": 150,
"total_item": 180,
"payment_date": "01/01/2025 12:00",
"customer": "Cliente Exemplo",
"customer_email": "cliente@exemplo.com",
"customer_phone": "00000000000",
"status": "Pagamento aprovado",
"payment": "Cartão de Crédito",
"shipping_address": "Rua Exemplo, 123 - Bairro Exemplo",
"shipping_city": "Cidade Exemplo",
"shipping_state": "Estado Exemplo",
"shipping_zip_code": "00000000"
}
]
}
}
}
```
Exemplo de payload retornados em `cart.reminder`.
```json
{
"event": "cart.reminder",
"time": "2025-01-01 10:40:38",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 111111111,
"merchant_id": 123,
"customer_id": 999999,
"token": "cart-token-exemplo",
"payment_alias": null,
"has_recommendation": false,
"is_upsell": false,
"totalizers": {
"total_items": 1,
"subtotal": 20,
"discount": 0,
"shipment": 9.16,
"shipment_original_value": 9.16,
"shipment_discount_value": 0,
"shipment_discount_percent": 0,
"progressive_discount_value": 0,
"combos_discount_value": 0,
"total": 29.16,
"shipment_formated": "R$ 9,16",
"subtotal_formated": "R$ 20,00",
"discount_formated": "R$ 0,00",
"total_formated": "R$ 29,16"
},
"shipping_service": "CORREIOS_PAC",
"tracking_data": {
"name": "João da Silva",
"email": "joao@email.com"
},
"total_transactions": 0,
"simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&customerToken=cliente-token",
"unauth_simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&forceLogout=1",
"utm_source": null,
"utm_campaign": null,
"utm_content": null,
"utm_term": null,
"utm_medium": null,
"last_transaction_status": null,
"created_at": {
"date": "2025-01-01 10:37:31.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:37:35.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"customer": {
"data": {
"id": 999999,
"merchant_id": 123,
"active": true,
"type": "f",
"name": "João da Silva",
"first_name": "João",
"last_name": "Silva",
"generic_name": "João da Silva",
"email": "joao@email.com",
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"newsletter": false,
"whatsapp": false,
"ip": "192.168.0.1",
"notes": "Observação exemplo",
"token": "cliente-token",
"login_url": "https://lojaexemplo.com.br/auth/login/force?token=cliente-token",
"anonymized": false,
"created_at": {
"date": "2022-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:37:49.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"items": {
"data": [
{
"id": 555555,
"product_id": 111111,
"sku_id": 222222,
"quantity": 1,
"price": 20,
"gift": false,
"has_recomm": false,
"customizations": [],
"created_at": {
"date": "2025-01-01 10:37:32.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:37:32.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"sku": {
"data": {
"id": 222222,
"product_id": 111111,
"sku": "SKU123456",
"token": "sku-token-exemplo",
"title": "Produto Exemplo",
"price_cost": 17,
"price_sale": 8,
"price_discount": 20,
"quantity_managed": true,
"total_in_stock": 20,
"purchase_url": "https://lojaexemplo.com.br/r/sku-token-exemplo",
"created_at": {
"date": "2025-01-01 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:13:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"customizations": { "data": [] }
}
}
}
]
},
"transactions": { "data": [] },
"spreadsheet": {
"data": {
"customer_phone": "00000000000",
"last_order_date": "2025-01-01",
"products": "Produto Exemplo",
"products_skus": "SKU123456",
"categories": "Categoria Exemplo",
"brands": "Marca Exemplo",
"purchase_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&forceLogout=1",
"abandoned_step": "shippment",
"count_recover_mail_sent": "0/4"
}
},
"metadata": {
"data": [
{ "key": "discount_highlight", "value": "deposit" },
{ "key": "source_platform", "value": "purchase_link" }
]
},
"search": {
"data": {
"has_shipment_service": true,
"has_address": true,
"has_customer": true,
"has_refused_payment": false,
"abandoned_step": "shippment",
"count_recover_mail_sent": 0,
"created_at": "2025-01-01",
"updated_at": "2025-01-01"
}
},
"emails": {
"data": [
{
"id": 1,
"cart_id": 111111111,
"promocode_id": null,
"turn": 1,
"email": "joao@email.com",
"fire_date": "2025-01-01 10:52:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
},
{
"id": 2,
"cart_id": 111111111,
"promocode_id": null,
"turn": 2,
"email": "joao@email.com",
"fire_date": "2025-01-01 12:37:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
},
{
"id": 3,
"cart_id": 111111111,
"promocode_id": null,
"turn": 3,
"email": "joao@email.com",
"fire_date": "2025-01-02 10:37:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
},
{
"id": 4,
"cart_id": 111111111,
"promocode_id": null,
"turn": 4,
"email": "joao@email.com",
"fire_date": "2025-01-03 10:37:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
}
]
}
}
}
```
Exemplo de payload retornados em `customer.created`.
```json
{
"event": "customer.created",
"time": "2025-01-01 15:18:28",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 111111111,
"merchant_id": 123,
"marketplace_id": null,
"cluster_id": 999,
"active": true,
"type": "f",
"name": "João Exemplo",
"razao_social": null,
"first_name": "João",
"last_name": "Exemplo",
"generic_name": "João Exemplo",
"email": "joao@example.com",
"cnpj": null,
"state_registration": null,
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"social_driver": null,
"social_id": null,
"newsletter": false,
"whatsapp": false,
"utm_source": null,
"utm_campaign": null,
"ip": null,
"notes": null,
"token": "cliente-token-exemplo",
"login_url": "https://lojaexemplo.com.br/auth/login/force?token=cliente-token-exemplo",
"anonymized": false,
"created_at": {
"date": "2025-01-01 15:18:17.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 15:18:17.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"stats": {
"data": {
"orders_amount": 0,
"total_orders": 0,
"last_order_at": null,
"last_order_id": null,
"last_order_number": null,
"last_order_amount": null,
"total_carts": 0,
"purchased_categories": [],
"purchased_brands": []
}
},
"addresses": {
"data": []
},
"cluster": {
"data": {
"id": 999,
"name": "pessoa física",
"active": true,
"attach_on_signup": false,
"person_type": "f",
"min_order_value": "1.00",
"base_price_percent": 0,
"payments_ids": [1, 2, 3],
"carriers_ids": [1001, 1002, 1003],
"created_at": {
"date": "2025-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 11:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"spreadsheet": {
"data": {
"last_order_value": "",
"last_order_date": [],
"categories": "",
"brands": "",
"street": "",
"number": "",
"neighborhood": "",
"complement": "",
"city": "",
"uf": "",
"purchased_categories": "",
"purchased_brands": "",
"phone_code": "00",
"phone_number": "000000000",
"phone": "(00) 00000-0000"
}
},
"search": {
"data": {
"last_order_at": null,
"created_at": "2025-01-01",
"updated_at": "2025-01-01",
"total_orders": 0,
"states": [],
"purchased_products_ids": []
}
},
"deletion_request": {
"data": {
"pending_confirmation": false,
"scheduled_date": ""
}
}
}
}
```
Exemplo de payload retornados em `customer.address.created`.
```json
{
"event": "customer.address.created",
"time": "2025-05-16 13:59:45",
"merchant": {
"id": 999,
"alias": "loja-exemplo"
},
"resource": {
"id": 100000001,
"customer_id": 200000002,
"receiver": "João Exemplo",
"zip_code": "12345678",
"street": "Rua Exemplo",
"number": "123",
"neighborhood": "Bairro Central",
"complement": "Apto 45B",
"city": "Cidade Modelo",
"uf": "EX",
"full_address": "Rua Exemplo, 123 - Bairro Central",
"created_at": {
"date": "2025-05-16 13:59:35.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-16 13:59:35.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
}
```
Exemplo de payload retornados em `product.created` e `product.updated`.
```json
{
"event": "product.created",
"time": "2025-05-15 09:24:25",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"relevance": null,
"id": 10001,
"merchant_id": 123,
"seller_id": null,
"affiliation_id": null,
"active": true,
"gift_value": "0.00",
"searchable": true,
"simple": true,
"erp_id": null,
"ncm": null,
"has_variations": false,
"is_digital": false,
"warranty": 0,
"custom_shipping": false,
"shipping_price": "0.00",
"name": "Produto Exemplo Webhook",
"slug": "produto-exemplo-webhook",
"sku": "",
"rating": 0,
"priority": 1,
"url": "https://www.lojavirtual.com/produto-exemplo-webhook/p",
"redirect_url_card": null,
"redirect_url_billet": null,
"preview_url": "https://lojaexemplo.catalog.yampi.io/produto-exemplo-webhook/p",
"dates": {
"data": {
"created_at": {
"date": "2025-05-15 09:24:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"created_at_formated": "2025-05-15",
"updated_at": {
"date": "2025-05-15 09:24:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"brand": {
"data": {
"id": 100,
"active": true,
"featured": false,
"name": "Marca Genérica",
"description": null,
"logo_url": null,
"created_at": {
"date": "2020-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2020-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"filters": {
"data": []
},
"flags": {
"data": []
},
"variations": {
"data": []
},
"categories": {
"data": [
{
"id": 200,
"name": "Categoria Genérica",
"parent_id": null,
"slug": "categoria-generica",
"url_path": "/categoria-generica"
}
]
},
"skus": {
"data": [
{
"id": 9999,
"product_id": 10001,
"seller_id": null,
"sku": "SKU123456",
"token": "TOKEN123456",
"erp_id": null,
"blocked_sale": false,
"barcode": null,
"title": "Produto Exemplo Webhook",
"availability": 0,
"availability_soldout": -1,
"days_availability_formated": "Imediata",
"price_cost": 10,
"price_sale": 15,
"price_discount": 20,
"width": 0,
"height": 0,
"length": 0,
"weight": 0,
"quantity_managed": false,
"variations": [],
"combinations": "9999",
"order": 0,
"total_in_stock": 0,
"total_orders": null,
"allow_sell_without_customization": false,
"image_reference_sku_id": null,
"purchase_url": "https://lojaexemplo.pay.yampi.com.br/r/TOKEN123456",
"created_at": {
"date": "2025-05-15 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-15 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"images": {
"data": [
{
"id": 999001,
"processed": true,
"name": "produto-exemplo-webhook-1",
"order": 0,
"extension": "png",
"filter_image_url": null,
"small": {
"width": 50,
"height": 50,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-small.png"
},
"thumb": {
"width": 250,
"height": 250,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-thumb.png"
},
"medium": {
"width": 500,
"height": 500,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-medium.png"
},
"large": {
"width": 1000,
"height": 1000,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-large.png"
}
}
]
}
}
]
},
"firstImage": {
"data": {
"id": 999001,
"processed": true,
"name": "produto-exemplo-webhook-1",
"order": 0,
"extension": "png",
"filter_image_url": null,
"small": {
"width": 50,
"height": 50,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-small.png"
},
"thumb": {
"width": 250,
"height": 250,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-thumb.png"
},
"medium": {
"width": 500,
"height": 500,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-medium.png"
},
"large": {
"width": 1000,
"height": 1000,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-large.png"
}
}
}
}
}
```
Exemplo de payload retornados em `cashback.expiring`. Esses webhooks são enviados 7 dias antes do cashback expirar.
```json
{
"event": "cashback.expiring",
"time": "2025-05-16T14:34:02-03:00",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 100001,
"transaction_type": "credit",
"amount": 2.72,
"status": "approved",
"expired": false,
"description": null,
"expires_at": "2025-05-23",
"customer": {
"id": 99999999,
"name": "Nome Sobrenome",
"email": "email@email.com",
"phone": "5500000000000"
},
"order": {
"id": 200001,
"number": 999999999999
},
"created_at": {
"date": "2025-05-15 09:42:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-15 09:42:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
}
```
Exemplo de payload retornados em `transaction.payment.refused`.
```json
{
"event": "transaction.payment.refused",
"time": "2025-01-01 09:33:37",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 111111,
"customer_id": 999999,
"payment_id": 9,
"affiliation_id": 555555,
"marketplace_id": null,
"marketplace_account_id": null,
"authorized": false,
"captured": false,
"cancelled": true,
"gateway_transaction_id": "",
"gateway_order_id": null,
"gateway_authorization_code": null,
"gateway_billet_id": null,
"amount": 29.16,
"buyer_amount": 0,
"installments": 1,
"installment_value": 29.16,
"buyer_installment_value": 0,
"installment_formated": "1x de R$ 29,16",
"buyer_installment_formated": "1x de R$ 0,00",
"bank_name": null,
"bank_alias": null,
"status": "refused",
"error_message": "Authorization has been denied for this request.",
"error_code": 5,
"truncated_card": null,
"holder_name": null,
"holder_document": null,
"billet_url": null,
"billet_barcode": null,
"billet_date": null,
"billet_our_number": null,
"billet_document_number": null,
"billet_whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000&text=",
"antifraud_sale_id": null,
"antifraud_status": null,
"antifraud_score": null,
"sent_to_antifraud": false,
"total_logs": 0,
"capture_date": null,
"authorized_at": null,
"captured_at": null,
"cancelled_at": {
"date": "2025-01-01 09:33:24.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"can_be_captured": false,
"can_be_cancelled": false,
"created_at": {
"date": "2025-01-01 09:33:24.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:33:24.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"payment": {
"data": {
"id": 9,
"alias": "billet",
"name": "Boleto Bancário",
"has_config": false,
"active_config": false,
"is_credit_card": false,
"is_deposit": false,
"is_billet": true,
"is_pix": false,
"is_pix_in_installments": false,
"is_wallet": false,
"icon_url": "https://icons.yampi.me/svg/card-billet.svg"
}
},
"metadata": { "data": [] },
"affiliation": {
"data": {
"id": 555555,
"auto_capture": true,
"backup": false,
"force_minimum_tax": false,
"has_payment_config": true,
"name": "Gateway Exemplo",
"statement_descriptor": "exemplo",
"active": true,
"params": [],
"status": "revoked",
"auth_type": "api_key",
"created_at": {
"date": "2023-01-01 09:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2023-01-01 17:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"gateway": {
"data": {
"alias": "gatewayalias",
"icon_url": "https://icons.yampi.me/svg/gateway.svg",
"name": "Gateway Exemplo",
"allow_backup": true,
"credit_card": true,
"installments_config": {
"allow_custom_installments": true,
"message": null,
"help_link": null
},
"auth_type": "api_key",
"gateway_exists": false,
"params": { "data": ["consumer_secret", "public_key"] }
}
}
}
},
"customer": {
"data": {
"id": 999999,
"merchant_id": 123,
"active": true,
"type": "f",
"name": "João da Silva",
"first_name": "João",
"last_name": "Silva",
"generic_name": "João da Silva",
"email": "joao@email.com",
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"newsletter": false,
"whatsapp": false,
"ip": "192.168.0.1",
"notes": null,
"token": "cliente-token",
"login_url": "https://lojaexemplo.com.br/auth/login/force?token=cliente-token",
"anonymized": false,
"created_at": {
"date": "2022-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:31:58.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"cart": {
"data": {
"id": 888888,
"merchant_id": 123,
"customer_id": 999999,
"token": "cart-token-exemplo",
"payment_alias": "pix",
"has_recommendation": false,
"is_upsell": false,
"totalizers": {
"total_items": 1,
"subtotal": 20,
"discount": 1,
"shipment": 9.16,
"shipment_original_value": 9.16,
"shipment_discount_value": 0,
"shipment_discount_percent": 0,
"progressive_discount_value": 0,
"combos_discount_value": 0,
"total": 28.16,
"shipment_formated": "R$ 9,16",
"subtotal_formated": "R$ 20,00",
"discount_formated": "R$ 1,00",
"total_formated": "R$ 28,16"
},
"shipping_service": "CORREIOS_PAC",
"tracking_data": {
"name": "João da Silva",
"email": "joao@email.com"
},
"total_transactions": 2,
"simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&customerToken=cliente-token",
"unauth_simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&forceLogout=1",
"utm_source": null,
"utm_campaign": null,
"utm_content": null,
"utm_term": null,
"utm_medium": null,
"last_transaction_status": {
"alias": "refused",
"name": "Pagamento não aprovado"
},
"created_at": {
"date": "2025-01-01 09:25:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:33:29.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"items": {
"data": [
{
"id": 777777,
"product_id": 111111,
"sku_id": 222222,
"quantity": 1,
"price": 20,
"gift": false,
"has_recomm": false,
"customizations": [],
"created_at": {
"date": "2025-01-01 09:25:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:25:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"sku": {
"data": {
"id": 222222,
"product_id": 111111,
"sku": "SKU123456",
"token": "sku-token-exemplo",
"title": "Produto Exemplo",
"availability": 0,
"availability_soldout": -1,
"days_availability_formated": "Imediata",
"price_cost": 17,
"price_sale": 8,
"price_discount": 20,
"width": 0,
"height": 0,
"length": 0,
"weight": 0,
"quantity_managed": false,
"variations": [],
"combinations": "222222",
"order": 0,
"total_in_stock": 0,
"total_orders": null,
"allow_sell_without_customization": false,
"image_reference_sku_id": null,
"purchase_url": "https://lojaexemplo.com.br/r/sku-token-exemplo",
"created_at": {
"date": "2025-01-01 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:24:48.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"customizations": { "data": [] }
}
}
}
]
}
}
}
}
}
```
Exemplo de payload retornados em `order.invoice.created` e `order.invoice.updated`.
```json
{
"event": "order.invoice.created",
"time": "2025-01-01 10:00:00",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 999999,
"merchant_id": 123,
"order_id": 888888,
"series": "ABC1234567890",
"number": "123456789",
"key": "00000000000000000000000000000000000000000000",
"date": {
"date": "2025-01-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"value": 199.90,
"products_value": 180.00,
"cpfop": null,
"url": "https://exemplo.com.br/nfe/visualizar/00000000000000",
"created_at": {
"date": "2025-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
}
```
Exemplo de payload retornados em `product.inventory.updated`.
```json
{
"event": "product.inventory.updated",
"time": "2025-05-15 10:13:12",
"merchant": { "id": 0, "alias": "loja_anonima" },
"resource": {
"id": 0,
"stock_id": 0,
"quantity": 0,
"min_quantity": 1,
"created_at": {
"date": "2025-05-15 10:13:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-15 10:13:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"stock": {
"data": {
"id": 0,
"warehouse_id": null,
"priority": false,
"auto_refill": false,
"name": "Estoque Anônimo",
"delivery_days": 14,
"created_at": {
"date": "2022-03-25 15:42:29.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2022-03-25 15:42:29.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"warehouse": { "data": [] }
}
},
"spreadsheet": {
"data": {
"stock": "Estoque Anônimo",
"product": "Produto de Teste",
"sku": "XXXXXXX",
"quantity": 0,
"min_quantity": 1
}
}
}
}
```
> ⚠️ Sua aplicação **deve responder em até 5 segundos com um status code do nível 2XX**. Caso contrário, a Yampi abortará a requisição e marcará como uma falha. Após 30 falhas, o webhook será desativado automaticamente.
## Segurança
A validação do webhook serve para verificar se realmente ele foi enviado pela Yampi, e é de extrema importância a sua utilização para que suas transações estejam seguras.
Para fazer a validação, são necessárias duas informações de nosso webhook:
- Valor do header `X-Yampi-Hmac-SHA256`. Vamos chamar esse valor de "assinatura do webhook";
- Corpo da requisição (no mesmo formato mostrado acima). Com esses dois valores, basta realizar o base64 do algoritmo HMAC-SHA256 do corpo da requisição utilizando a chave secreta do Webhook e comparar com a assinatura do webhook. Se os valores forem iguais, excelente. Caso contrário, não fomos nós que enviamos essa requisição!
## Exemplo de validação em PHP
```php
function hmac_signature(array $body, $webHookSecret)
{
$payload = json_encode($body);
return base64_encode(hash_hmac('sha256', $payload, $webHookSecret, true));
}
// Calculando a assinatura
$body = [
'event' => 'order.created',
'time' => '2020-06-20 00:00:00',
'resource' => [
'id' => 1121333,
// Aqui vem todo o payload do resource.
],
];
$signature = hmac_signature($body, 'wh_FBmkbmkMSAKmkMBKmdsbUUHjnlmlm');
echo $signature; // Output: NzhjMmM3NzcwZDM5NmM1ZWYxNjhjMDI5NmVhYjgzOTFlNDNlNmU0OWU5ZWZhMTRiYTIyNTI0NzdhNTVhZTMxNQ
```
Importante: é esperado que o base64 seja calculado em cima do hmac em formato binário. No exemplo em PHP, é o terceiro argumento da função hash_hmac()
## Referência da API
# Introdução
Source: https://docs.yampi.com.br/api-reference/introduction
## Endpoints
Cada loja possui um alias exclusivo. O endpoint base é:
`https://api.dooki.com.br/v2/{merchantAlias}`
## Headers
Inclua o header `Content-Type: application/json` em todas as requisições.
## Paginação
Por padrão, a API retorna 10 resultados por página. Use o parâmetro `limit` para ajustar esse valor.
Os detalhes da paginação são retornados no nó `meta` da resposta:
```json
{
"meta": {
"pagination": {
"total": 1000,
"count": 10,
"per_page": 10,
"current_page": 1,
"total_pages": 100,
"links": {
"next": "https://api.dooki.com.br/v2/{merchantAlias}/foo?page=2"
}
}
}
}
```
## Includes
Nem todas as requisições retornam o payload completo de um recurso. Use o parâmetro `include` para adicionar objetos relacionados à resposta.
Exemplo de uso:
`https://api.dooki.com.br/v2/{alias}/catalog/products?include=skus`
Para múltiplos includes:
`https://api.dooki.com.br/v2/{alias}/catalog/products?include=skus,images`
Encadeamento de includes:
`https://api.dooki.com.br/v2/{alias}/catalog/products?include=skus.prices.installments`
## Cache
Consultas GET possuem cache de 30 minutos por padrão. Para ignorar o cache, use o parâmetro `skipCache=true`:
`https://api.dooki.com.br/v2/{merchantAlias}/catalog/products?skipCache=true`
# API Collection
Source: https://docs.yampi.com.br/api-reference/api-collection
## Visão geral
Nós preparamos uma API Collection com todos os endpoints documentados. Com ela, você pode importar toda a estrutura da API, incluindo requisições, parâmetros e exemplos de payloads, eliminando a necessidade de configuração manual.
Além do **Postman**, também é possível importar esta Collection em **Insomnia**, **Hoppscotch** ou **Thunder Client** (VS Code).
---
## Download da Collection
Disponibilizamos duas versões da Collection, cada uma configurada para um tipo de autenticação.
- **Versão: Autenticação via Credenciais** - Ideal para testes rápidos e integrações diretas usando as credenciais de API: `Alias`, `User Token` e `User Secret Key`.
- **Versão: Autenticação via OAuth 2.0** - Ideal para **Parceiros Tech Yampi**. Inclui scripts para gerenciar o fluxo de autorização OAuth 2.0 de ponta a ponta.
Escolha a que se encaixa melhor no seu uso.
Collection configurada para uso com **Alias**, **User Token** e **User Secret Key**.
Collection preparada para o fluxo completo de autenticação com **OAuth2.0**.
---
## Como importar a Collection no Postman
Escolha e baixe o arquivo `.json` da Collection desejada (Credenciais ou OAuth2.0).
Clique em **Import** → **File** → selecione o arquivo `.json` baixado.
A Collection aparecerá na sua barra lateral esquerda.
Antes de tudo, é preciso configurar as variáveis da Collection. Cada versão possui variáveis específicas para autenticação (detalhadas abaixo).
---
## Configuração das variáveis
Abra a Collection → aba **Variables** e configure:
- **Alias** → valor disponível no painel Yampi em **Perfil > Credenciais de API**.
- **User-Token** → valor disponível no painel Yampi em **Perfil > Credenciais de API**.
- **User-Secret-Key** → valor disponível no painel Yampi em **Perfil > Credenciais de API**.
Com essas variáveis configuradas, todas as requisições já estarão autenticadas automaticamente e prontas pra uso.
Abra a Collection → aba **Variables** e configure:
- **Partner-Client-ID** → `client_id` do seu app no painel do parceiro tech Yampi.
- **Redirect_URI** → URI de redirecionamento cadastrada no app.
- **Access-Token** → deixe em branco no primeiro uso.
- **Refresh-Token** → deixe em branco no primeiro uso.
- **Token-Expires-At** → deixe em branco no primeiro uso.
- **AuthCode** → deixe em branco no primeiro uso.
- **Code_Verifier** → deixe em branco no primeiro uso.
- **Code_Challenger** → deixe em branco no primeiro uso.
Execute a request **Iniciar Autorização (gerar e abrir URL)** e copie a `url` que foi gerada e salva na variável `AuthorizeURL` em **Variables**.
Abra a URL, faça login, autorize e copie a URL de redirect recebida.
Cole a URL de redirect reciba no body da request **OAuth2 - Colar URL de Redirect (capturar código)** e execute-a → isso salva **AuthCode** e **Alias** automaticamente.
Execute a request **OAuth2 - Trocar Código por Token** → isso gera e salva automaticamente **Access-Token** e **Refresh-Token**.
Feito, todas as requisições já estarão autenticadas automaticamente e prontas pra uso.
---
## Verificação rápida
Recomendamos testar alguma request, como por exemplo **GET `/catalog/brands`** logo após configurar as variáveis. Se o retorno for `200 OK`, a configuração foi um sucesso!
Se tiver dúvidas sobre o uso da Collection ou quiser se aprofundar no ecossistema da Yampi, junte-se à nossa Comunidade Yampi Dev no Discord:
Faça parte da nossa comunidade de desenvolvedores.
# Como funciona
Source: https://docs.yampi.com.br/api-reference/rate-limit/introduction
Os rate limits protegem a estabilidade da plataforma e garantem uma experiência consistente para todos os integradores.
## O que é rate limit?
Rate limit é um mecanismo de controle que define o número máximo de requisições que uma integração pode realizar à API dentro de um determinado intervalo de tempo.
Quando esse limite é atingido, a API retorna o status HTTP **`429 Too Many Requests`** e bloqueia novas requisições até que a janela de tempo seja reiniciada.
---
## Limites por módulo
A tabela abaixo apresenta os limites de requisições agrupados por módulo funcional da API Yampi.
Para a lista completa por rota e verbo HTTP, consulte a página [Limites](/api-reference/rate-limit/limites).
| Módulo | Limite por minuto | Limite por hora | Observações |
| ------------------------------------ | -------------------- | --------------- | --------------------------------------------------------------------------- |
| Geral (todos os endpoints) | 60 req/min | — | Limite padrão para rotas sem configuração específica |
| Autenticação | 10 req/min | — | Proteção contra força bruta |
| Busca | 60 req/min | — | — |
| Catálogo - Produtos | 30 req/min | — | Import/Export: 5 req/min por usuário autenticado |
| Catálogo - SKUs | 30 req/min | — | Import/Export: 5 req/min por usuário autenticado |
| Catálogo - Atualização em massa | 60 req/min | — | Endpoint de lote de SKUs |
| Checkout - Carrinhos | 60 req/min | — | Export: 5 req/min por usuário autenticado |
| Checkout - Links de Pagamento | 30 req/min | — | Aplicado em operações de escrita |
| Clientes | 60 req/min | — | Export: 5 req/min por usuário autenticado; Exclusão: 1 req/min |
| Configurações | 30 req/min | — | Aplicado em operações de escrita |
| Conteúdo | 60 req/min | — | — |
| Descontos | 60 req / 30 seg | — | Criação: 30 req / 30 seg; Edição/Exclusão: 15 req / 30 seg |
| Leads | 60 req/min | — | Export: 5 req/min por usuário autenticado |
| Logística - Cálculo de frete | 60 req/min | — | — |
| Marketing | 60 req/min | — | — |
| Pedidos | 120 req/min | — | Escrita: 30 req/min; Importação/Exportação: 5 req/min por usuário |
| Pedidos - Rastreamento | — | 3 req/h | Criação de rastreamentos (POST) |
| Promoções - Cupons | 120 req/min | — | Escrita: 30 req/min |
| Promoções - Cashback | 30 req/min | — | Regras de cashback: 10 req/min por usuário autenticado |
| Promoções - Order Bumps | 30 req/min | — | Escrita: 10 req / 30 seg |
| Público | 60 req/min | — | Informações públicas da loja |
| Usuários | 10 req/min | — | Limitado a 10 tentativas de redefinição de senha por minuto |
Os valores marcados como `X req/min` e `Y req/h` são placeholders e devem ser validados com o time de engenharia antes da publicação.
---
## Como funciona
A Yampi aplica rate limits principalmente por **rota** e por **IP de origem**, monitorando o volume de requisições em janelas de tempo fixas, geralmente de **1 minuto**.
Cada requisição consome uma unidade da cota disponível. Ao esgotá-la, as requisições seguintes são rejeitadas com `HTTP 429` até o início da próxima janela.
### Headers de controle
A API retorna os seguintes headers em todas as respostas, permitindo monitorar o estado do rate limit em tempo real:
| Header | Descrição |
| ----------------------- | ---------------------------------------------------------------------- |
| `X-RateLimit-Limit` | Número máximo de requisições permitidas na janela atual |
| `X-RateLimit-Remaining` | Quantas requisições ainda estão disponíveis na janela atual |
### Resposta de erro
Ao ultrapassar o limite, você receberá:
```http
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
```
```json
{
"message": "Too Many Requests",
"status_code": 429
}
```
---
## Exemplos
### Exemplo 1 — Requisição dentro do limite
```bash
curl --request GET \
--url "https://api.dooki.com.br/v2/{alias}/catalog/products" \
--header "User-Token: seu-token" \
--header "User-Secret-Key: sua-secret-key"
```
**Resposta (200 OK):**
```http
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
```
---
### Exemplo 2 — Limite atingido
```bash
curl --request GET \
--url "https://api.dooki.com.br/v2/{alias}/catalog/products" \
--header "User-Token: seu-token" \
--header "User-Secret-Key: sua-secret-key"
```
**Resposta (429 Too Many Requests):**
```http
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
```
# Boas práticas
Source: https://docs.yampi.com.br/api-reference/rate-limit/boas-praticas
## Usando webhooks para reduzir requisições
Em vez de consultar a API repetidamente, você pode utilizar **webhooks** para receber notificações em tempo real sempre que um evento ocorrer na plataforma. Isso reduz significativamente o volume de requisições e o risco de atingir o rate limit.
**Eventos recomendados para substituir consultas recorrentes:**
| Caso de uso | Evento do webhook |
| ---------------------------------- | ------------------------------ |
| Monitorar novos pedidos | `order.created` |
| Acompanhar pagamentos aprovados | `order.paid` |
| Atualização de status de pedidos | `order.status.updated` |
| Notificação de carrinho abandonado | `cart.reminder` |
| Atualização de estoque | `product.inventory.updated` |
| Novo cliente criado | `customer.created` |
Para saber como configurar e validar webhooks, consulte a [documentação de Webhooks](https://docs.yampi.com.br/api-reference/webhooks/introduction).
---
## Boas práticas
Ao receber um `HTTP 429`, aguarde antes de reenviar a requisição. Utilize uma política de retry que se adapte as regras da rota.
Não consulte a API em intervalos fixos e curtos apenas para verificar se houve alterações. Prefira webhooks para ser notificado proativamente sobre eventos relevantes.
Implemente cache local para respostas GET que não precisam ser atualizadas a cada requisição. Utilize o parâmetro `skipCache=true` somente quando realmente necessário.
Prefira endpoints que suportam operações em massa (batch) em vez de fazer chamadas individuais para cada item. Exemplo: use o endpoint de atualização em lote de SKUs.
Verifique sempre os headers `X-RateLimit-Remaining` nas respostas. Ao detectar que a cota está próxima de zero, reduza proativamente a frequência das requisições.
Evite realizar muitas requisições simultaneamente. Use filas e distribua as chamadas ao longo do tempo, especialmente em integrações de sincronização de dados.
---
## Como evitar que o limite seja atingido
1. **Utilize webhooks** no lugar de consultas para eventos assíncronos.
2. **Implemente cache** para dados que mudam com pouca frequência (ex.: categorias, variações).
3. **Use includes** para reduzir chamadas encadeadas: `?include=skus,images` retorna tudo em uma única requisição.
4. **Processe em fila**: enfileire requisições e controle a taxa de envio pela sua aplicação.
5. **Monitore ativamente** os headers de rate limit e ajuste a frequência de chamadas antes de atingir o limite.
6. **Evite sincronizações completas** em horários de pico — prefira sincronizações incrementais baseadas em eventos.
# Limites
Source: https://docs.yampi.com.br/api-reference/rate-limit/limites
## Limites por recurso
Os valores abaixo representam os limites padrão. Contextos específicos podem ter limites diferentes. Consulte a equipe Yampi caso precise de ajuda.
| Verbo | Recurso | Rota | Limite |
| ----- | ------- | ---- | ------ |
| GETPOSTPUT | Endpoints gerais | /\{alias\}/* | 60 req / minuto |
| POST | Autenticação | /auth/login | 10 req / minuto |
| GET | Busca | /\{alias\}/search/* | 60 req / minuto |
| PUT | Atualização em massa de SKUs | /\{alias\}/catalog/products/\{id\}/skus/batch-update-skus | 60 req / minuto |
| POST | Cálculo de frete | /\{alias\}/logistics/shipping-costs | 60 req / minuto |
| GET | Endpoints públicos | /\{alias\}/public/* | 60 req / minuto |
| GET | Pedidos | /\{alias\}/orders | 120 req / minuto |
| GET | Produtos | /\{alias\}/catalog/products | 30 req / minuto |
| GET | SKUs | /\{alias\}/catalog/skus | 30 req / minuto |
| POST | Rastreamento de pedido | /\{alias\}/orders/\{id\}/tracking | 3 req / hora |
# Precisa de ajuda?
Source: https://docs.yampi.com.br/api-reference/rate-limit/suporte
## Precisa de ajuda?
Se você está enfrentando erros `429` com frequência e acredita que seu volume de requisições é legítimo, entre em contato com a equipe Yampi através do email **[integre@yampi.com.br](mailto:integre@yampi.com.br?subject=Solicita%C3%A7%C3%A3o%20de%20ajuste%20de%20Rate%20Limit&body=Ol%C3%A1%2C%20equipe%20Yampi!%0A%0AEstou%20enfrentando%20limita%C3%A7%C3%B5es%20de%20rate%20limit%20e%20gostaria%20de%20suporte.%20Seguem%20as%20informa%C3%A7%C3%B5es%3A%0A%0A**Volume%20de%20requisi%C3%A7%C3%B5es**%3A%20%5BInforme%20o%20volume%20m%C3%A9dio%20de%20requisi%C3%A7%C3%B5es%20por%20minuto%2Fhora%5D%0A%0A**Quando%20acontece%20o%20erro**%3A%20%5BDescreva%20o%20contexto%20%E2%80%94%20hor%C3%A1rio%2C%20frequ%C3%AAncia%2C%20opera%C3%A7%C3%A3o%20realizada%5D%0A%0A**Qual%20o%20erro%20ocorre**%3A%20%5BEx.%3A%20HTTP%20429%20Too%20Many%20Requests%5D%0A%0A**ID%20do%20objeto%20relacionado**%3A%20%5BID%20do%20produto%2C%20pedido%2C%20SKU%20ou%20recurso%20afetado%5D%0A%0A**IP%20de%20origem**%3A%20%5BIP%20do%20servidor%20que%20realiza%20as%20requisi%C3%A7%C3%B5es%5D%0A%0A**Payload%20enviado**%3A%0A%60%60%60%0A%5BInsira%20o%20payload%20da%20requisi%C3%A7%C3%A3o%5D%0A%60%60%60%0A%0A**Response%20recebido**%3A%0A%60%60%60%0A%5BInsira%20o%20corpo%20da%20resposta%5D%0A%60%60%60%0A%0A**Request%20completo**%20(m%C3%A9todo%2C%20URL%2C%20headers)%3A%0A%60%60%60%0A%5BInsira%20o%20request%20completo%5D%0A%60%60%60%0A%0AObrigado!)**.
Para agilizar o atendimento, inclua as seguintes informações no e-mail:
Volume médio de requisições por minuto e/ou por hora realizadas pela integração.
Horário, frequência e operação que está sendo realizada no momento do erro.
Código de status HTTP e mensagem retornada. Ex.: `HTTP 429 Too Many Requests`.
ID do produto, pedido, SKU ou qualquer recurso relacionado à requisição.
Endereço IP do servidor que realiza as requisições à API.
Corpo completo da requisição enviada que gerou o erro.
Corpo completo da resposta recebida com o erro.
Método HTTP, URL completa e headers utilizados na requisição.
Clique **[aqui](mailto:integre@yampi.com.br?subject=Solicita%C3%A7%C3%A3o%20de%20ajuste%20de%20Rate%20Limit&body=Ol%C3%A1%2C%20equipe%20Yampi!%0A%0AEstou%20enfrentando%20limita%C3%A7%C3%B5es%20de%20rate%20limit%20e%20gostaria%20de%20suporte.%20Seguem%20as%20informa%C3%A7%C3%B5es%3A%0A%0A**Volume%20de%20requisi%C3%A7%C3%B5es**%3A%20%5BInforme%20o%20volume%20m%C3%A9dio%20de%20requisi%C3%A7%C3%B5es%20por%20minuto%2Fhora%5D%0A%0A**Quando%20acontece%20o%20erro**%3A%20%5BDescreva%20o%20contexto%20%E2%80%94%20hor%C3%A1rio%2C%20frequ%C3%AAncia%2C%20opera%C3%A7%C3%A3o%20realizada%5D%0A%0A**Qual%20o%20erro%20ocorre**%3A%20%5BEx.%3A%20HTTP%20429%20Too%20Many%20Requests%5D%0A%0A**ID%20do%20objeto%20relacionado**%3A%20%5BID%20do%20produto%2C%20pedido%2C%20SKU%20ou%20recurso%20afetado%5D%0A%0A**IP%20de%20origem**%3A%20%5BIP%20do%20servidor%20que%20realiza%20as%20requisi%C3%A7%C3%B5es%5D%0A%0A**Payload%20enviado**%3A%0A%60%60%60%0A%5BInsira%20o%20payload%20da%20requisi%C3%A7%C3%A3o%5D%0A%60%60%60%0A%0A**Response%20recebido**%3A%0A%60%60%60%0A%5BInsira%20o%20corpo%20da%20resposta%5D%0A%60%60%60%0A%0A**Request%20completo**%20(m%C3%A9todo%2C%20URL%2C%20headers)%3A%0A%60%60%60%0A%5BInsira%20o%20request%20completo%5D%0A%60%60%60%0A%0AObrigado!)** — para visualizar um **template já preenchido** com todos os campos necessários, facilitando o envio das informações para a equipe de segurança da Yampi.
# Paginação por scroll_id
Source: https://docs.yampi.com.br/api-reference/pagination/introduction
Ideal para cenários com muitos dados e que exigem consistência na ordenação dos registros entre chamadas.
## Visão geral
A paginação com `scroll_id` permite travar a ordenação dos registros a partir da **primeira requisição**. Isso evita inconsistências causadas por inserções, remoções ou atualizações enquanto os dados ainda estão sendo percorridos.
| Propriedade | Descrição |
| -------------------- | ------------------------------------------------------------------------- |
| `scroll=true` | Ativa a paginação por scroll_id |
| `scroll_id` | Token gerado pela API que representa a “sessão” de paginação |
| Validade do scroll | Tempo limitado — consuma os dados antes da expiração |
| Fim da paginação | A resposta retorna `data: []` quando não há mais resultados disponíveis |
---
## 1. Primeira requisição
Use o parâmetro `scroll=true` para iniciar a paginação. A resposta trará o primeiro conjunto de dados e um `scroll_id`.
**Exemplo de requisição:**
```bash
curl --request GET \
--url http://api.dooki.com.br/api/v2/{alias}/orders?scroll=true
```
**Resposta:**
```json
{
"scroll_id": "aBcDeFgHiJkLMnO12345",
"data": [
// Resultados iniciais
],
"meta": {}
}
```
---
## 2. Requisições subsequentes
Utilize o `scroll_id` retornado para buscar os próximos resultados.
**Exemplo de requisição:**
```bash
curl --request GET \
--url http://api.dooki.com.br/api/v2/{alias}/orders?scroll=true&scroll_id=aBcDeFgHiJkLMnO12345
```
**Resposta:**
```json
{
"scroll_id": "aBcDeFgHiJkLMnO12345",
"data": [
// Próximos registros
],
"meta": {}
}
```
---
## 3. Fim da paginação
Quando não houver mais dados, a resposta será parecida com:
```json
{
"scroll_id": "aBcDeFgHiJkLMnO12345",
"data": [],
"meta": {}
}
```
---
## Boas práticas
- Consuma os dados **sem grandes intervalos** entre as requisições, para evitar expiração do `scroll_id`.
- Libere o `scroll_id` se a API oferecer essa funcionalidade.
- Não reordene manualmente os dados retornados — a API já garante a ordem estável.
## Endpoints suportados
A paginação com `scroll_id` está disponível nos seguintes endpoints:
- [Listar pedidos](/api-reference/pedidos/listar-pedidos)
- [Listar clientes](/api-reference/clientes/listar-clientes)
- [Listar carrinhos abandonados](/api-reference/checkout/carrinhos-abandonados/listar-carrinhos-abandonados)
- [Listar leads](/api-reference/leads/listar-leads)
---
Esse método é preferível à paginação por offset quando há risco de inconsistência causada por operações concorrentes.
# User Token e User Secret Key
Source: https://docs.yampi.com.br/api-reference/auth/auth-user-token
A autenticação garante a segurança e privacidade dos dados dos usuários. Nesta API, utilize os headers `User-Token` e `User-Secret-Key` em todas as requisições. Ambos são obrigatórios.
## Como obter suas credenciais
No painel administrativo da Yampi, acesse `Perfil > Credenciais de API` no canto superior direito para encontrar suas credenciais.
As credenciais de API são renovadas automaticamente quando a senha de acesso do usuário é alterada.
---
## Verificando o Usuário Autenticado
Após obter o `User-Token` e o `User-Secret-Key`, você pode utilizar o endpoint abaixo para consultar os dados do usuário autenticado, incluindo as lojas associadas, status de assinatura e permissões de acesso.
### Endpoint
```http
POST https://api.dooki.com.br/v2/auth/me
```
### Headers
| Nome | Valor |
|-----------------|--------------------|
| Content-Type | `application/json` |
| User-Token | `{user-token}` |
| User-Secret-Key | `{user-secret-key}`|
```bash
curl -X POST https://api.dooki.com.br/v2/auth/me \
-H "Content-Type: application/json" \
-H "User-Token: {{user-token}}" \
-H "User-Secret-Key: {{user-secret-key}}"
```
```json
{
"data": {
"id": 987654,
"active": true,
"name": "João Silva",
"social_name": null,
"email": "joao.silva@example.com",
"temporary_email": null,
"is_owner": true,
"agree": true,
"merchant_owner": true,
"super_user": false,
"last_login_at": "2025-07-15 14:22:10",
"avatar_url": "https://secure.gravatar.com/avatar/abc123?s=80&d=identicon",
"allow_notifications": true,
"type": "user",
"created_at": {
"date": "2023-01-10 09:30:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"created_at_timestamp": 1673343000,
"updated_at": {
"date": "2025-07-10 16:45:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"confirmed_at": "2023-01-10 10:00:00",
"mfa_enabled": true,
"cpf": "000.000.000-00",
"birthday": "1990-05-20",
"phone": "(11) 91234-5678",
"address_street": "Rua das Flores",
"address_number": "123",
"address_neighborhood": "Centro",
"address_complement": "Apto 45",
"address_city": "São Paulo",
"address_state": "SP",
"address_zipcode": "01000-000",
"merchants": {
"data": [
{
"id": 123456,
"alias": "loja-exemplo",
"name": "Loja Exemplo",
"profile": "store_v2",
"domain": "www.lojaexemplo.com.br",
"base_url": "https://www.lojaexemplo.com.br",
"is_marketplace": false,
"is_partner": false,
"use_only_checkout": false,
"active": true,
"internal_active": false,
"has_subscription": true,
"has_charges": true,
"has_credit_card": true,
"owner_id": 987654,
"owner_email": "joao.silva@example.com",
"tags": [],
"domains_list": ["www.lojaexemplo.com.br"],
"icon_url": null,
"logo_url": null,
"created_at": {
"date": "2023-02-15 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-06-20 17:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"subscription": {
"plan": "Pro",
"status": "active"
},
"has_services": {
"shopifyapp": false,
"bling": true,
"woocommerce": true,
"mago": false,
"tiny": false
}
}
]
},
"group": {
"data": []
},
"notification_types": {
"data": []
},
"lead_data": {
"data": []
}
}
}
```
## Campos da Resposta
Informações do usuário autenticado
Identificador único do usuário
Indica se o usuário está ativo
Nome completo do usuário
Nome social do usuário
E-mail principal de contato
E-mail temporário usado pelo sistema
Define se o usuário é dono da loja
Se aceitou os termos de uso
Se o usuário é comerciante dono
Se possui privilégios de super usuário
Data e hora do último login
URL da imagem de perfil
Se o usuário aceita notificações
Tipo ou perfil do usuário
Data de criação da conta
Data legível
Tipo de fuso horário
Fuso horário
Criação em formato timestamp
Última atualização da conta
Data legível
Tipo de fuso horário
Fuso horário
Data de confirmação da conta
Se a autenticação em duas etapas está habilitada
Cadastro de Pessoa Física
Data de nascimento
Número de telefone
Rua do endereço
Número do endereço
Bairro do endereço
Complemento do endereço
Cidade do endereço
Estado do endereço
CEP do endereço
Lista de lojas vinculadas ao usuário
Identificador único da loja
Identificador do preset da loja
Indica se a loja está ativa
Status interno da loja
Se a loja funciona como marketplace
Se é loja parceira
Se utiliza apenas checkout próprio
Perfil da loja
Alias interno da loja
Indica se possui domínio próprio
Domínio configurado
URL base da loja
Nome público da loja
URL do ícone da loja
URL do logo da loja
Se possui assinatura ativa
Se possui cobranças ativas
Se possui contas em marketplaces
Se está integrada ao Shopify
Se possui afiliações ativas
Se tem cupons criados
Se tem order bumps configurados
Se tem upsells configurados
Se tem pixel configurado
Identificador do dono da loja
E-mail do dono da loja
Data de criação do dono
Lista de domínios da loja
Tags atribuídas à loja
Data de criação da loja
Data legível
Fuso horário
Última atualização da loja
Data legível
Fuso horário
Plano ativo da loja
Nome do plano contratado
Status da assinatura
Serviços integrados à loja
Integração com Shopify
Integração com Bling
Integração com WooCommerce
Integração com Mago
Integração com Tiny ERP
Campos adicionais relacionados ao usuário e loja
Lista de grupos vinculados
Tipos de notificações habilitadas
Informações de leads
---
### Observações Técnicas
- Essa rota **não requer payload no corpo da requisição**.
- Retorna todos os dados do usuário com base no token enviado.
- Pode ser usada para identificar o dono da loja, checar permissões e validar assinatura.
# Autenticação
Source: https://docs.yampi.com.br/api-reference/auth/auth
Para começar a consumir a API da Yampi, há duas formas de autenticação. São elas:
- [**User Token**](/api-reference/auth-user-token)
- [**OAuth 2.0**](/api-reference/oauth)
# Visualizar dados do usuário logado
Source: https://docs.yampi.com.br/api-reference/auth/visualizar-usuario
`POST /auth/me`
Retorna os dados do usuário atualmente logado
**Respostas**
- **200** Dados do usuário logado — `application/json`: » User
- **401** Acesso não autorizado, verifique o User-Token e o User-Secret_Key
# Listar marcas
Source: https://docs.yampi.com.br/api-reference/catalogo/marcas/listar-marcas
`GET /{alias}/catalog/brands`
Listar as marcas do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| name | query | Não | string | Filtrar por nome da marca |
**Respostas**
- **200** Lista de marcas — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar marca
Source: https://docs.yampi.com.br/api-reference/catalogo/marcas/criar-marca
`POST /{alias}/catalog/brands`
Cria uma nova marca no catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » BrandRequest
**Respostas**
- **201** Marca criada com sucesso — `application/json`: object
- **400** Requisição inválida
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Visualizar marca
Source: https://docs.yampi.com.br/api-reference/catalogo/marcas/visualizar-marca
`GET /{alias}/catalog/brands/{id}`
Visualiza as informações de uma marca específica no catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da marca |
**Respostas**
- **200** Detalhes da marca — `application/json`: » Brand + object + object
- **400** Requisição inválida
- **404** Marca não encontrada
# Atualizar marca
Source: https://docs.yampi.com.br/api-reference/catalogo/marcas/atualizar-marca
`PUT /{alias}/catalog/brands/{id}`
Atualiza os detalhes de uma marca específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da marca |
**Request body**
- `application/json` (obrigatório): » BrandRequest
**Respostas**
- **200** Marca atualizada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Marca não encontrada
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir marca
Source: https://docs.yampi.com.br/api-reference/catalogo/marcas/excluir-marca
`DELETE /{alias}/catalog/brands/{id}`
Excluir uma marca específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da marca |
**Respostas**
- **200** Marca excluída com sucesso
- **404** Marca não encontrada
# Listar categorias
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/listar-categorias
`GET /{alias}/catalog/categories`
Lista as categorias do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Lista de categorias obtida com sucesso — `application/json`: object
# Criar categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/criar-categoria
`POST /{alias}/catalog/categories`
Cria uma nova categoria no catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CategoryRequest
**Respostas**
- **201** Categoria criada com sucesso — `application/json`: » Category
- **400** Requisição inválida
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Visualizar categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/visualizar-categoria
`GET /{alias}/catalog/categories/{id}`
Visualiza os detalhes de uma categoria específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria |
**Respostas**
- **200** Detalhes da categoria — `application/json`: » Category + » CategoryAdditionalResponse
- **400** Requisição inválida
- **404** Categoria não encontrada
# Atualizar categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/atualizar-categoria
`PUT /{alias}/catalog/categories/{id}`
Atualiza os detalhes de uma categoria específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria |
**Request body**
- `application/json` (obrigatório): » CategoryRequest
**Respostas**
- **200** Categoria atualizada com sucesso — `application/json`: » Category + » CategoryAdditionalResponse
- **400** Requisição inválida
- **404** Categoria não encontrada
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Excluir categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/excluir-categoria
`DELETE /{alias}/catalog/categories/{id}`
Exclui uma categoria específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria |
**Respostas**
- **200** Categoria excluída com sucesso
- **400** Requisição inválida
- **404** Categoria não encontrada
# Listar produtos associados a uma categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/listar-produtos-associados-a-uma-categoria
`GET /{alias}/catalog/categories/{id}/products`
Lista os produtos que estão associados a uma categoria específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria |
**Respostas**
- **200** Lista de produtos associados a uma categoria — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Categoria não encontrada
# Associar produtos a uma categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/associar-produtos-a-uma-categoria
`PUT /{alias}/catalog/categories/{id}/products`
Associa uma lista de produtos a uma categoria específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos associados à categoria com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Categoria não encontrada
# Excluir produtos de uma categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/excluir-produtos-de-uma-categoria
`DELETE /{alias}/catalog/categories/{id}/products`
Remove a associação de produtos a uma categoria específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos removidos da categoria com sucesso
- **400** Requisição inválida
- **404** Categoria não encontrada
# Listar banners associados a uma categoria
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/listar-banners-associados-a-uma-categoria
`GET /{alias}/catalog/categories/{id}/banners`
Lista de todos os banners associados a uma categoria específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria |
**Respostas**
- **200** Lista de banners associados à categoria — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Categoria não encontrada
# Associar produtos de outras categorias
Source: https://docs.yampi.com.br/api-reference/catalogo/categorias/associar-produtos-de-outras-categorias
`POST /{alias}/catalog/categories/{id}/copy-products`
Esse recurso é útil quando você precisa transferir produtos de outras categorias
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da categoria de destino |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos associados com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Categoria não encontrada
# Listar coleções
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/listar-colecoes
`GET /{alias}/catalog/collections`
Lista todas as coleções. Use o parâmetro `onlyParents=true` para listar apenas as coleções pai
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| includes | query | Não | string | Recursos adicionais a serem incluídos na resposta |
| onlyParents | query | Não | boolean | Filtra apenas coleções pai |
**Respostas**
- **200** Lista de coleções — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar coleção
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/criar-colecao
`POST /{alias}/catalog/collections`
Cria uma nova coleção com os parâmetros especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CollectionRequest
**Respostas**
- **200** Coleção criada com sucesso — `application/json`: » Collection
- **400** Requisição inválida
# Visualizar coleção
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/visualizar-colecao
`GET /{alias}/catalog/collections/{id}`
Retorna os detalhes de uma coleção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da coleção |
**Respostas**
- **200** Detalhes da coleção — `application/json`: » Collection
- **400** Requisição inválida
- **404** Coleção não encontrada
# Atualizar coleção
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/atualizar-colecao
`PUT /{alias}/catalog/collections/{id}`
Atualiza os detalhes de uma coleção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da coleção |
**Request body**
- `application/json` (obrigatório): » CollectionRequest
**Respostas**
- **200** Coleção atualizada com sucesso — `application/json`: » Collection
- **400** Requisição inválida
- **404** Coleção não encontrada
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir coleção
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/excluir-colecao
`DELETE /{alias}/catalog/collections/{id}`
Exclui uma coleção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da coleção |
**Respostas**
- **200** Coleção excluída com sucesso
- **404** Coleção não encontrada
# Listar produtos associados a uma coleção
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/listar-produtos-associados-a-uma-colecao
`GET /{alias}/catalog/collections/{id}/products`
Retorna a lista de produtos associados a uma coleção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da coleção |
**Respostas**
- **200** Produtos associados à categoria com sucesso — `application/json`: object
- **404** Coleção não encontrada
# Associar produtos a uma coleção
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/associar-produtos-a-uma-colecao
`POST /{alias}/catalog/collections/{id}/products`
Associa uma lista de produtos a uma coleção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da coleção |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos associados com sucesso
- **400** Requisição inválida
- **404** Coleção não encontrada
# Excluir produtos de uma coleção
Source: https://docs.yampi.com.br/api-reference/catalogo/colecoes/excluir-produtos-de-uma-colecao
`DELETE /{alias}/catalog/collections/{id}/products`
Exclui uma lista de produtos de uma coleção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da coleção |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos excluídos com sucesso
- **400** Requisição inválida
- **404** Coleção não encontrada
# Listar comentários de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/comentarios-de-produtos/listar-comentarios-de-produtos
`GET /{alias}/catalog/comments`
Lista todos os comentários dos produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de comentários dos produtos — `application/json`: object + » SimplePaginatorWithMeta
- **404** Comentário não encontrado
# Criar comentário de produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/comentarios-de-produtos/criar-comentario-de-produto
`POST /{alias}/catalog/comments`
Cria um novo comentário para um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CommentRequest
**Respostas**
- **200** Comentário criado com sucesso — `application/json`: » ProductComment
- **400** Requisição inválida
- **404** Comentário não encontrado
# Visualizar comentário de produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/comentarios-de-produtos/visualizar-comentario-de-produto
`GET /{alias}/catalog/comments/{id}`
Obtém os detalhes de um comentário específico de um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do comentário |
**Respostas**
- **200** Detalhes do comentário — `application/json`: object
- **404** Comentário não encontrado
# Atualizar comentário de produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/comentarios-de-produtos/atualizar-comentario-de-produto
`PUT /{alias}/catalog/comments/{id}`
Atualiza os detalhes de um comentário específico de um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do comentário |
**Request body**
- `application/json` (obrigatório): » CommentRequest
**Respostas**
- **200** Comentário atualizado com sucesso — `application/json`: » ProductComment
- **400** Requisição inválida
- **404** Comentário não encontrado
# Excluir comentário de produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/comentarios-de-produtos/excluir-comentario-de-produto
`DELETE /{alias}/catalog/comments/{id}`
Exclui um comentário específico de um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do comentário |
**Respostas**
- **200** Comentário excluído com sucesso
- **404** Comentário não encontrado
# Listar customizações
Source: https://docs.yampi.com.br/api-reference/catalogo/customizacoes/listar-customizacoes
`GET /{alias}/catalog/customizations`
Obtém uma lista de todas as customizações disponíveis
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de customizações — `application/json`: object + » SimplePaginatorWithMeta
- **404** Nenhuma customização encontrada
# Criar customização
Source: https://docs.yampi.com.br/api-reference/catalogo/customizacoes/criar-customizacao
`POST /{alias}/catalog/customizations`
Cria uma nova customização
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CustomizationRequest
**Respostas**
- **200** Customização criada com sucesso — `application/json`: » Customization
- **400** Requisição inválida
# Visualizar customização
Source: https://docs.yampi.com.br/api-reference/catalogo/customizacoes/visualizar-customizacao
`GET /{alias}/catalog/customizations/{id}`
Visualiza os detalhes de uma customização específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da customização |
**Respostas**
- **200** Detalhes da customização — `application/json`: » Customization + » CustomizationAdditionalResponse
# Atualizar customização
Source: https://docs.yampi.com.br/api-reference/catalogo/customizacoes/atualizar-customizacao
`PUT /{alias}/catalog/customizations/{id}`
Atualiza uma customização existente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da customização |
**Request body**
- `application/json` (obrigatório): » CustomizationRequest
**Respostas**
- **200** Customização atualizada com sucesso — `application/json`: » Customization
- **400** Requisição inválida
- **404** Customização não encontrada
# Excluir customização
Source: https://docs.yampi.com.br/api-reference/catalogo/customizacoes/excluir-customizacao
`DELETE /{alias}/catalog/customizations/{id}`
Exclui uma customização existente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da customização |
**Respostas**
- **200** Customização excluída com sucesso
- **404** Customização não encontrada
# Listar feeds
Source: https://docs.yampi.com.br/api-reference/catalogo/feeds/listar-feeds
`GET /{alias}/catalog/feeds`
Lista todos os feeds de catálogo disponíveis
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de feeds — `application/json`: object + » SimplePaginatorWithMeta
- **404** Feeds não encontrados
# Criar feed
Source: https://docs.yampi.com.br/api-reference/catalogo/feeds/criar-feed
`POST /{alias}/catalog/feeds`
Cria um novo feed de catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » FeedRequest
**Respostas**
- **200** Feed criado com sucesso — `application/json`: » Feed
- **400** Requisição inválida
# Visualizar feed
Source: https://docs.yampi.com.br/api-reference/catalogo/feeds/visualizar-feed
`GET /{alias}/catalog/feeds/{id}`
Obtém os detalhes de um feed específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do feed |
**Respostas**
- **200** Detalhes do feed — `application/json`: » Feed
- **404** Feed não encontrado
# Atualizar feed
Source: https://docs.yampi.com.br/api-reference/catalogo/feeds/atualizar-feed
`PUT /{alias}/catalog/feeds/{id}`
Atualiza os detalhes de um feed específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do feed |
**Request body**
- `application/json` (obrigatório): » FeedRequest
**Respostas**
- **200** Feed atualizado com sucesso — `application/json`: » Feed
- **400** Requisição inválida
- **404** Feed não encontrado
# Excluir feed
Source: https://docs.yampi.com.br/api-reference/catalogo/feeds/excluir-feed
`DELETE /{alias}/catalog/feeds/{id}`
Exclui um feed específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do feed |
**Respostas**
- **200** Feed excluído com sucesso
- **404** Feed não encontrado
# Listar valores de um filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/valores-de-filtros/listar-valores-de-um-filtro
`GET /{alias}/catalog/filters/{filterId}/values`
Retorna uma lista de valores associados a um filtro específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| filterId | path | Sim | integer | ID do filtro |
**Respostas**
- **200** Valores listados com sucesso — `application/json`: object
- **404** Filtro não encontrado
# Criar valor de filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/valores-de-filtros/criar-valor-de-filtro
`POST /{alias}/catalog/filters/{filterId}/values`
Cria um novo valor associado a um filtro específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| filterId | path | Sim | integer | ID do filtro |
**Request body**
- `application/json` (obrigatório): » FilterOptionRequest
**Respostas**
- **200** Valor de filtro criado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Filtro não encontrado
# Visualizar valor de um filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/valores-de-filtros/visualizar-valor-de-um-filtro
`GET /{alias}/catalog/filters/{filterId}/values/{id}`
Retorna detalhes de um valor específico associado a um filtro
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| filterId | path | Sim | integer | ID do filtro |
| id | path | Sim | integer | ID do valor de filtro |
**Respostas**
- **200** Valor de filtro visualizado com sucesso — `application/json`: object
- **404** Valor de filtro não encontrado
# Atualizar valor de filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/valores-de-filtros/atualizar-valor-de-filtro
`PUT /{alias}/catalog/filters/{filterId}/values/{id}`
Atualiza um valor específico associado a um filtro
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| filterId | path | Sim | integer | ID do filtro |
| id | path | Sim | integer | ID do valor de filtro |
**Request body**
- `application/json` (obrigatório): » FilterOptionRequest
**Respostas**
- **200** Valor de filtro atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Valor de filtro não encontrado
# Excluir valor de filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/valores-de-filtros/excluir-valor-de-filtro
`DELETE /{alias}/catalog/filters/{filterId}/values/{id}`
Exclui um valor específico associado a um filtro
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| filterId | path | Sim | integer | ID do filtro |
| id | path | Sim | integer | ID do valor de filtro |
**Respostas**
- **200** Valor de filtro excluído com sucesso
- **400** Requisição inválida
- **404** Valor de filtro não encontrado
# Listar filtros de busca de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/listar-filtros-de-busca-de-produtos
`GET /{alias}/catalog/filters`
Obtém uma lista de filtros disponíveis para busca de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de filtros — `application/json`: object
- **400** Requisição inválida
# Criar filtro de busca de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/criar-filtro-de-busca-de-produtos
`POST /{alias}/catalog/filters`
Cria um novo filtro para a busca de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » FilterRequest
**Respostas**
- **200** Filtro criado com sucesso — `application/json`: » Filter
- **400** Requisição inválida
# Visualizar filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/visualizar-filtro
`GET /{alias}/catalog/filters/{id}`
Obtém os detalhes de um filtro específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do filtro |
**Respostas**
- **200** Detalhes do filtro — `application/json`: object
- **404** Filtro não encontrado
# Atualizar filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/atualizar-filtro
`PUT /{alias}/catalog/filters/{id}`
Atualiza os detalhes de um filtro específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do filtro |
**Request body**
- `application/json` (obrigatório): » FilterRequest
**Respostas**
- **200** Filtro atualizado com sucesso — `application/json`: » Filter
- **400** Requisição inválida
- **404** Filtro não encontrado
# Excluir filtro
Source: https://docs.yampi.com.br/api-reference/catalogo/filtros/excluir-filtro
`DELETE /{alias}/catalog/filters/{id}`
Exclui um filtro específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do filtro |
**Respostas**
- **200** Filtro excluído com sucesso
- **404** Filtro não encontrado
# Listar selos
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/listar-selos
`GET /{alias}/catalog/flags`
Lista de selos com base nos parâmetros fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » Flag
**Respostas**
- **200** Lista de selos retornada com sucesso — `application/json`: object
- **400** Requisição inválida
# Criar selo
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/criar-selo
`POST /{alias}/catalog/flags`
Cria um novo selo no catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » FlagRequest
**Respostas**
- **201** Selo criado com sucesso — `application/json`: object
- **400** Requisição inválida
# Visualizar selo
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/visualizar-selo
`GET /{alias}/catalog/flags/{id}`
Visualiza os detalhes de um selo específico do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do selo |
**Respostas**
- **200** Detalhes do selo — `application/json`: » Flag + » FlagAdditionalResponse + » Restrictions
- **404** Selo não encontrado
# Atualizar selo
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/atualizar-selo
`PUT /{alias}/catalog/flags/{id}`
Atualiza os detalhes de um selo específico do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do selo |
**Request body**
- `application/json` (obrigatório): » FlagRequest
**Respostas**
- **200** Response da criação do selo — `application/json`: » Flag + » FlagAdditionalResponse + » Restrictions
- **400** Requisição inválida
- **404** Selo não encontrado
# Excluir selo
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/excluir-selo
`DELETE /{alias}/catalog/flags/{id}`
Exclui um selo específico do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do selo |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Selo excluído com sucesso
- **404** Selo não encontrado
# Listar produtos associados a um selo
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/listar-produtos-associados-a-um-selo
`GET /{alias}/catalog/flags/{id}/products`
Lista os produtos associados a um selo específico do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do selo |
**Respostas**
- **200** Produtos associados à categoria com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Selo não encontrado
# Associar produtos a um selo
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/associar-produtos-a-um-selo
`POST /{alias}/catalog/flags/{id}/products`
Associa produtos a um selo específico do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do selo |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos associados com sucesso ao selo
- **400** Requisição inválida
- **404** Selo não encontrado
# Excluir produtos de um selo
Source: https://docs.yampi.com.br/api-reference/catalogo/selos/excluir-produtos-de-um-selo
`DELETE /{alias}/catalog/flags/{id}/products`
Exclui produtos de um selo específico do catálogo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do selo |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos excluídos com sucesso do selo
- **400** Requisição inválida
- **404** Selo não encontrado
# Listar valores de uma variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/valores-de-variacoes/listar-valores-de-uma-variacao
`GET /{alias}/catalog/variations/{variationId}/values`
Lista os valores de uma variação específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| variationId | path | Sim | integer | ID da variação |
**Respostas**
- **200** Valores de variação listados com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Variação não encontrada
# Criar valor de variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/valores-de-variacoes/criar-valor-de-variacao
`POST /{alias}/catalog/variations/{variationId}/values`
Cria um novo valor para uma variação específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| variationId | path | Sim | integer | ID da variação |
**Request body**
- `application/json` (obrigatório): » GridOptionRequest
**Respostas**
- **201** Valor de variação criado com sucesso — `application/json`: » GridOption
- **400** Requisição inválida
- **404** Variação não encontrada
# Visualizar valor de uma variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/valores-de-variacoes/visualizar-valor-de-uma-variacao
`GET /{alias}/catalog/variations/{variationId}/values/{id}`
Retorna os detalhes de um valor específico de uma variação
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| variationId | path | Sim | integer | ID da variação |
| id | path | Sim | integer | ID do valor da variação |
**Respostas**
- **200** Detalhes dos valores das variações — `application/json`: object
- **404** Valor de variação não encontrado
# Atualizar valor de variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/valores-de-variacoes/atualizar-valor-de-variacao
`PUT /{alias}/catalog/variations/{variationId}/values/{id}`
Atualiza os detalhes de um valor específico de uma variação
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| variationId | path | Sim | integer | ID da variação |
| id | path | Sim | integer | ID do valor da variação |
**Request body**
- `application/json` (obrigatório): » GridOptionRequest
**Respostas**
- **200** Valor de variação atualizado com sucesso — `application/json`: » GridOption
- **400** Requisição inválida
- **404** Valor de variação não encontrado
# Excluir valor de variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/valores-de-variacoes/excluir-valor-de-variacao
`DELETE /{alias}/catalog/variations/{variationId}/values/{id}`
Exclui um valor específico de uma variação
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| variationId | path | Sim | integer | ID da variação |
| id | path | Sim | integer | ID do valor da variação |
**Respostas**
- **200** Valor de variação excluído com sucesso
- **404** Valor de variação não encontrado
# Listar variações
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/listar-variacoes
`GET /{alias}/catalog/variations`
Lista de variações de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » GridRequest
**Respostas**
- **200** Lista de variações retornada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Variações não encontradas
# Criar variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/criar-variacao
`POST /{alias}/catalog/variations`
Cria uma nova variação de produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » GridRequest
**Respostas**
- **201** Variação criada com sucesso — `application/json`: object
- **400** Requisição inválida
# Visualizar variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/visualizar-variacao
`GET /{alias}/catalog/variations/{id}`
Visualiza uma variação de produto específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da variação |
**Respostas**
- **200** Detalhes das variações — `application/json`: object
- **404** Variação não encontrada
# Atualizar variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/atualizar-variacao
`PUT /{alias}/catalog/variations/{id}`
Atualiza uma variação de produto específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da variação |
**Request body**
- `application/json` (obrigatório): » GridRequest
**Respostas**
- **200** Variação atualizada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Variação não encontrada
# Excluir variação
Source: https://docs.yampi.com.br/api-reference/catalogo/variacoes/excluir-variacao
`DELETE /{alias}/catalog/variations/{id}`
Exclui uma variação de produto específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da variação |
**Respostas**
- **200** Variação excluída com sucesso
- **404** Variação não encontrada
# Listar grupos de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/listar-grupos-de-produtos
`GET /{alias}/catalog/groups`
Retorna uma lista de grupos de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de grupos — `application/json`: object
- **404** Nenhum grupo encontrado
# Criar grupo de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/criar-grupo-de-produtos
`POST /{alias}/catalog/groups`
Cria um novo grupo de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » GroupRequest
**Respostas**
- **200** Grupo criado com sucesso — `application/json`: » Group
- **400** Requisição inválida
# Visualizar grupo de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/visualizar-grupo-de-produtos
`GET /{alias}/catalog/groups/{id}`
Visualiza os detalhes de um grupo de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo |
**Respostas**
- **200** Detalhes do valor da variação — `application/json`: object
- **404** Grupo não encontrado
# Atualizar grupo de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/atualizar-grupo-de-produtos
`PUT /{alias}/catalog/groups/{id}`
Atualiza os detalhes de um grupo de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo |
**Request body**
- `application/json` (obrigatório): » GroupRequest
**Respostas**
- **200** Grupo criado com sucesso — `application/json`: » Group
- **400** Requisição inválida
- **404** Grupo não encontrado
# Excluir grupo de produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/excluir-grupo-de-produtos
`DELETE /{alias}/catalog/groups/{id}`
Exclui um grupo de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo |
**Respostas**
- **200** Grupo excluído com sucesso
- **404** Grupo não encontrado
# Listar produtos associados a um grupo
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/listar-produtos-associados-a-um-grupo
`GET /{alias}/catalog/groups/{id}/products`
Lista de produtos associados a um grupo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo |
**Respostas**
- **200** Lista de produtos associados ao grupo — `application/json`: object
- **404** Grupo não encontrado
# Associar produtos a um grupo
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/associar-produtos-a-um-grupo
`PUT /{alias}/catalog/groups/{id}/products`
Associa produtos a um grupo específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos associados com sucesso
- **400** Requisição inválida
- **404** Grupo não encontrado
# Excluir produtos de um grupo
Source: https://docs.yampi.com.br/api-reference/catalogo/grupos/excluir-produtos-de-um-grupo
`DELETE /{alias}/catalog/groups/{id}/products`
Exclui produtos de um grupo específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos excluídos com sucesso
- **400** Requisição inválida
- **404** Grupo não encontrado
# Listar looks
Source: https://docs.yampi.com.br/api-reference/catalogo/looks/listar-looks
`GET /{alias}/catalog/looks`
Obtém uma lista de looks
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| includes | query | Não | string | Inclui dados adicionais (ex: products) |
**Respostas**
- **200** Lista de looks — `application/json`: object
- **400** Requisição inválida
# Criar look
Source: https://docs.yampi.com.br/api-reference/catalogo/looks/criar-look
`POST /{alias}/catalog/looks`
Cria um novo look
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » LookRequest
**Respostas**
- **200** Look criado com sucesso — `application/json`: » Look
- **400** Requisição inválida
# Visualizar look
Source: https://docs.yampi.com.br/api-reference/catalogo/looks/visualizar-look
`GET /{alias}/catalog/looks/{id}`
Obtém os detalhes de um look específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do look |
| includes | query | Não | string | Inclui dados adicionais (ex: products) |
**Respostas**
- **200** Detalhes do look — `application/json`: object
- **400** Requisição inválida
- **404** Look não encontrado
# Atualizar look
Source: https://docs.yampi.com.br/api-reference/catalogo/looks/atualizar-look
`PUT /{alias}/catalog/looks/{id}`
Atualiza um look específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do look |
**Request body**
- `application/json` (obrigatório): » LookRequest
**Respostas**
- **200** Look atualizado com sucesso — `application/json`: » Look
- **400** Requisição inválida
- **404** Look não encontrado
# Excluir look
Source: https://docs.yampi.com.br/api-reference/catalogo/looks/excluir-look
`DELETE /{alias}/catalog/looks/{id}`
Exclui um look específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do look |
**Respostas**
- **200** Look excluído com sucesso
- **400** Requisição inválida
- **404** Look não encontrado
# Listar produtos
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-produtos
`GET /{alias}/catalog/products`
Retorna uma lista de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
| filters | query | Não | » ProductCriteria + » SearchTrait | — |
**Respostas**
- **200** Lista de produtos — `application/json`: object
- **400** Requisição inválida
# Criar produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/criar-produto
`POST /{alias}/catalog/products`
Cria um novo produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ProductRequest
**Respostas**
- **200** Produto criado com sucesso — `application/json`: » Product
- **400** Requisição inválida
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Atualizar produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/atualizar-produto
`PUT /{alias}/catalog/products/{id}`
Atualiza um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Request body**
- `application/json` (obrigatório): » ProductRequest
**Respostas**
- **200** Produto atualizado com sucesso — `application/json`: » Product
- **400** Requisição inválida
- **404** Produto não encontrado
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/excluir-produto
`DELETE /{alias}/catalog/products/{id}`
Exclui um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Produto excluído com sucesso
- **400** Requisição inválida
- **404** Produto não encontrado
# Listar SKUs de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-skus-de-um-produto
`GET /{alias}/catalog/products/{id}/skus`
Lista todos os SKUs associados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de SKUs — `application/json`: object + » SimplePaginatorWithMeta
- **404** Produto não encontrado
# Atualizar ordem dos SKUs de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/atualizar-ordem-dos-skus-de-um-produto
`PUT /{alias}/catalog/products/{id}/skus/order`
Atualiza a ordem dos SKUs associados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Ordem dos SKUs atualizada com sucesso — `application/json`: » Sku + » SkuAdditionalResponse
- **400** Requisição inválida
- **404** Produto não encontrado
# Listar combos de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-combos-de-um-produto
`GET /{alias}/catalog/products/{id}/combos`
Retorna uma lista de combos associados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de combos retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** Produto não encontrado
# Listar selos de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-selos-de-um-produto
`GET /{alias}/catalog/products/{id}/flags`
Retorna uma lista de selos associados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de selos retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Produto não encontrado
# Listar grupos de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-grupos-de-um-produto
`GET /{alias}/catalog/products/{id}/groups`
Retorna uma lista de grupos associados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de grupos retornada com sucesso — `application/json`: object
- **404** Produto não encontrado
# Listar comentários de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-comentarios-de-um-produto
`GET /{alias}/catalog/products/{id}/comments`
Retorna uma lista de comentários associados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de comentários retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** Produto não encontrado
# Listar avaliações de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-avaliacoes-de-um-produto
`GET /{alias}/catalog/products/{id}/reviews`
Retorna uma lista de avaliações associadas a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de avaliações retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** Produto não encontrado
# Listar coleções que um produto pertence
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-colecoes-que-um-produto-pertence
`GET /{alias}/catalog/products/{id}/collections`
Retorna uma lista de coleções às quais um produto específico pertence
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de coleções retornada com sucesso — `application/json`: object
- **404** Produto não encontrado
# Listar promoções que um produto pertence
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-promocoes-que-um-produto-pertence
`GET /{alias}/catalog/products/{id}/promotions`
Retorna uma lista de promoções às quais um produto específico pertence
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de promoções retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** Produto não encontrado
# Listar recomendações para um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-recomendacoes-para-um-produto
`GET /{alias}/catalog/products/{id}/recommendations`
Retorna uma lista de produtos recomendados com base no produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de recomendações retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** Produto não encontrado
# Listar estoques de todos os SKUs de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/listar-estoques-de-todos-os-skus-de-um-produto
`GET /{alias}/catalog/products/{id}/stocks`
Obtém informações de estoque de todos os SKUs de um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Estoques listados com sucesso — `application/json`: object
- **404** Produto não encontrado
# Duplicar produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/duplicar-produto
`POST /{alias}/catalog/products/{id}/duplicate`
Cria uma cópia duplicada de um produto existente com base no ID fornecido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Produto duplicado com sucesso — `application/json`: object
- **400** Requisição inválida
# Atualizar SKUs em massa
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/atualizar-skus-em-massa
`PUT /{alias}/catalog/products/{id}/skus/batch-update-skus`
Atualiza múltiplos ou todos SKUs de um produto em uma única operação síncrona ou assincrona, dependendo da quantidade de SKUs a serem atualizados.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Request body**
- `application/json` (obrigatório): » BatchUpdateProductSkusRequest
**Respostas**
- **200** Atualização dos SKUs iniciada, com informação se foi sincrona ou assincronamente — `application/json`: object
- **400** Já existe uma operação de edição em massa em andamento para este produto.
- **404** Resource not found
# Progresso da atualização em massa de SKUs de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/progresso-da-atualizacao-em-massa-de-skus-de-um-produto
`GET /{alias}/catalog/products/{product}/skus/batch-update-skus-progress`
Retorna o progresso da operação em lote de atualização de SKUs para um produto específico.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Retorna o progresso da operação em lote de atualização de SKUs para um produto específico. — `application/json`: object
- **404** Resource not found
# Progresso da exclusão em massa de SKUs de um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/progresso-da-exclusao-em-massa-de-skus-de-um-produto
`GET /{alias}/catalog/products/{product}/skus/batch-delete-skus-progress`
Retorna o progresso da operação em lote de exclusão de SKUs para um produto específico.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Retorna o progresso da operação em lote de exclusão de SKUs para um produto específico. — `application/json`: object
- **404** Recurso não encontrado
# Visualizar um produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/visualizar-um-produto
`GET /{alias}/catalog/products/{id}`
Retorna informações do produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
**Respostas**
- **200** Detalhes do Produto — `application/json`: object
- **404** Produto não encontrado
# Listar produtos relacionados
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/produtos-relacionados/listar-produtos-relacionados
`GET /{alias}/catalog/products/{id}/similars`
Lista todos os produtos relacionados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de produtos relacionados — `application/json`: object
- **400** Requisição inválida
- **404** Produto não encontrado
# Ordenar produtos relacionados
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/produtos-relacionados/ordenar-produtos-relacionados
`PUT /{alias}/catalog/products/{id}/similars`
Atualiza a ordem dos produtos relacionados a um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Ordem dos produtos relacionados atualizada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Produto não encontrado
# Excluir produtos relacionados
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/produtos-relacionados/excluir-produtos-relacionados
`DELETE /{alias}/catalog/products/{id}/similars`
Exclui a associação de produtos relacionados de um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos relacionados desassociados com sucesso
- **400** Requisição inválida
- **404** Produto não encontrado
# Relacionar produtos em lote
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/produtos-relacionados/relacionar-produtos-em-lote
`POST /{alias}/catalog/products/similars/batch`
Associa produtos relacionados entre si em uma única chamada
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos relacionados associados em batch com sucesso — `application/json`: object
- **400** Requisição inválida
# Sincronizar estoques
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/sincronizar-estoques/sincronizar-estoques
`POST /{alias}/catalog/products/{id}/stocks/sync`
Permite a sincronização de estoques de um produto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do produto |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Estoques sincronizados com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Produto ou SKU não encontrado
# Listar avaliações
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/avaliacoes-de-produtos/listar-avaliacoes
`GET /{alias}/catalog/reviews`
Obtém uma lista de avaliações de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | string | Incluir informações adicionais, como detalhes do produto |
**Respostas**
- **200** Lista de avaliações obtida com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** Review não encontrado
# Criar review
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/avaliacoes-de-produtos/criar-review
`POST /{alias}/catalog/reviews`
Cria uma nova review para um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ReviewRequest
**Respostas**
- **200** Review criada com sucesso — `application/json`: » ProductReview
- **400** Requisição inválida
- **404** Review não encontrado
# Visualizar review
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/avaliacoes-de-produtos/visualizar-review
`GET /{alias}/catalog/reviews/{id}`
Obtém os detalhes de uma review do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da review |
**Respostas**
- **200** Detalhes do review — `application/json`: » ProductReview
- **404** Review não encontrado
# Aprovar ou rejeitar uma review do produto
Source: https://docs.yampi.com.br/api-reference/catalogo/produtos/avaliacoes-de-produtos/aprovar-ou-rejeitar-uma-review-do-produto
`PATCH /{alias}/catalog/reviews/{id}`
Aprova ou desaprova uma review do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da review |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Review atualizado com sucesso — `application/json`: » ProductReview
- **404** Review não encontrado
# Listar imagens de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/imagens/listar-imagens-de-um-sku
`GET /{alias}/catalog/skus/{skuId}/images`
Retorna a lista de imagens associadas a um SKU específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
**Respostas**
- **200** Lista de imagens do SKU encontrada — `application/json`: object
- **404** SKU não encontrado
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 30 requisições por minuto.**
# Criar imagens de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/imagens/criar-imagens-de-um-sku
`POST /{alias}/catalog/skus/{skuId}/images`
Adiciona novas imagens a um SKU específico. Há disponíveis três formas de upload através do parâmetro `upload_option`: resize, crop e fill_canvas. A imagem pode ser enviada via URL ou upload direto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
**Request body**
- `application/json` (obrigatório): » SkuPhotoRequest
**Respostas**
- **200** Imagens criadas com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** SKU não encontrado
# Visualizar imagem de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/imagens/visualizar-imagem-de-um-sku
`GET /{alias}/catalog/skus/{skuId}/images/{id}`
Visualiza uma imagem específica de um SKU
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
| id | path | Sim | integer | ID da imagem |
**Respostas**
- **200** Detalhes da imagem — `application/json`: —
- **404** Imagem ou SKU não encontrados
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 30 requisições por minuto.**
# Excluir imagem de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/imagens/excluir-imagem-de-um-sku
`DELETE /{alias}/catalog/skus/{skuId}/images/{id}`
Remove uma imagem específica de um SKU
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
| id | path | Sim | integer | ID da imagem a ser excluída |
**Respostas**
- **200** Imagem excluída com sucesso
- **404** Imagem ou SKU não encontrados
# Atualizar ordem das imagens de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/imagens/atualizar-ordem-das-imagens-de-um-sku
`PUT /{alias}/catalog/skus/{skuId}/images/order`
Atualiza a ordem de exibição das imagens de um SKU
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
**Request body**
- `application/json` (obrigatório): » SkuPhotoOrderRequest
**Respostas**
- **200** Ordem das imagens atualizada com sucesso — `application/json`: —
- **400** Requisição inválida
- **404** Imagem ou SKU não encontrados
# Listar SKUs
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/listar-skus
`GET /{alias}/catalog/skus`
Retorna uma lista de SKUs disponíveis
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| stock_quantity | query | Não | integer | Filtrar por quantidade de estoque |
| stock_min_quantity | query | Não | integer | Filtrar por quantidade mínima de estoque |
**Respostas**
- **200** SKUs encontrados com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** SKUs não encontrados
# Criar SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/criar-sku
`POST /{alias}/catalog/skus`
Cria um novo SKU para um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » SkuRequest
**Respostas**
- **200** SKU criado com sucesso — `application/json`: » Sku + » SkuAdditionalResponse
- **400** Requisição inválida
# Atualizar SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/atualizar-sku
`PUT /{alias}/catalog/skus/{id}`
Atualiza o SKU de um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do SKU |
**Request body**
- `application/json` (obrigatório): » SkuRequest
**Respostas**
- **200** SKU atualizado com sucesso — `application/json`: » Sku + » SkuAdditionalResponse
- **400** Requisição inválida
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/excluir-sku
`DELETE /{alias}/catalog/skus/{id}`
Exclui o SKU de um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do SKU |
**Respostas**
- **200** SKU excluído com sucesso
- **400** Requisição inválida
# Listar notificações de estoque
Source: https://docs.yampi.com.br/api-reference/catalogo/notificacoes-de-estoque/listar-notificacoes-de-estoque
`GET /{alias}/catalog/stock-notifications`
Lista as notificações de estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Listagem de notificações de estoque — `application/json`: object + » SimplePaginatorWithMeta
# Criar notificação de estoque
Source: https://docs.yampi.com.br/api-reference/catalogo/notificacoes-de-estoque/criar-notificacao-de-estoque
`POST /{alias}/catalog/stock-notifications`
Cria uma nova notificação de estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » StockNotificationRequest
**Respostas**
- **200** Notificação de estoque criada com sucesso — `application/json`: » StockNotification
- **400** Requisição inválida
# Visualiza notificação de estoque
Source: https://docs.yampi.com.br/api-reference/catalogo/notificacoes-de-estoque/visualiza-notificacao-de-estoque
`GET /{alias}/catalog/stock-notifications/{id}`
Visualiza os detalhes de notificação de estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da notificação de estoque |
**Respostas**
- **200** Detalhes da notificação de estoque — `application/json`: » StockNotification
# Atualizar notificação de estoque
Source: https://docs.yampi.com.br/api-reference/catalogo/notificacoes-de-estoque/atualizar-notificacao-de-estoque
`PUT /{alias}/catalog/stock-notifications/{id}`
Atualiza uma notificação de estoque existente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da notificação de estoque |
**Request body**
- `application/json` (obrigatório): » StockNotificationRequest
**Respostas**
- **200** Notificação de estoque atualizada com sucesso — `application/json`: » StockNotification
- **400** Requisição inválida
- **404** Notificação de estoque não encontrada
# Excluir notificação de estoque
Source: https://docs.yampi.com.br/api-reference/catalogo/notificacoes-de-estoque/excluir-notificacao-de-estoque
`DELETE /{alias}/catalog/stock-notifications/{id}`
Exclui uma notificação de estoque existente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da notificação de estoque |
**Respostas**
- **200** Notificação de estoque excluída com sucesso
- **404** Notificação de estoque não encontrada
# Listar estoques
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/estoques-de-sku/listar-estoques
`GET /{alias}/catalog/skus/{skuId}/stocks`
Obtém a lista de estoques associados a um SKU específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
**Respostas**
- **200** Lista de estoques de um SKU — `application/json`: object + » SimplePaginatorWithMeta
- **404** SKU não encontrado
# Criar estoque de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/estoques-de-sku/criar-estoque-de-um-sku
`POST /{alias}/catalog/skus/{skuId}/stocks`
Cria um novo estoque associado a um SKU específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
**Request body**
- `application/json` (obrigatório): » CatalogStockRequest
**Respostas**
- **200** Estoque criado com sucesso — `application/json`: » ProductStock
- **400** Requisição inválida
- **404** SKU não encontrado
# Atualizar estoque de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/estoques-de-sku/atualizar-estoque-de-um-sku
`PUT /{alias}/catalog/skus/{skuId}/stocks/{id}`
Atualiza os detalhes de um estoque específico associado a um SKU
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
| id | path | Sim | integer | ID do stock |
**Request body**
- `application/json` (obrigatório): » CatalogStockRequest
**Respostas**
- **200** Estoque atualizado com sucesso — `application/json`: » ProductStock
- **400** Requisição inválida
- **404** SKU ou stock não encontrados
# Excluir estoque de um SKU
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/estoques-de-sku/excluir-estoque-de-um-sku
`DELETE /{alias}/catalog/skus/{skuId}/stocks/{id}`
Exclui um estoque específico associado a um SKU
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| skuId | path | Sim | integer | ID do SKU |
| id | path | Sim | integer | ID do stock |
**Respostas**
- **204** Estoque excluído com sucesso
- **400** Requisição inválida
- **404** SKU ou stock não encontrados
# Listar SKUs por estoque
Source: https://docs.yampi.com.br/api-reference/catalogo/skus/estoques-de-sku/listar-skus-por-estoque
`GET /{alias}/catalog/skus/stocks/{stock}`
Retorna os dados básicos dos SKUs que possuem vínculo com o estoque informado
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| stockId | path | Sim | integer | ID do estoque |
| stock_status | query | Não | string | Filtra os SKUs pelo status do estoque |
**Respostas**
- **200** Lista de SKUs do estoque — `application/json`: object + » SimplePaginatorWithMeta
- **404** Estoque não encontrado
# Listar Kits
Source: https://docs.yampi.com.br/api-reference/catalogo/kits/listar-kits
`GET /{alias}/catalog/bundles`
Listar todos os Kits cadastrados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de Kits — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Cadastrar um Kit
Source: https://docs.yampi.com.br/api-reference/catalogo/kits/cadastrar-um-kit
`POST /{alias}/catalog/bundles`
Cadastrar um Kit
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » BundlesRequest
**Respostas**
- **200** Lista de Kits — `application/json`: » Bundles
- **400** Requisição inválida
- **404** Kit não encontrado
- **422** Verifique os campos obrigatórios: name, image_url e items
# Visualizar um Kit
Source: https://docs.yampi.com.br/api-reference/catalogo/kits/visualizar-um-kit
`GET /{alias}/catalog/bundles/{id}`
Visualizar um Kit cadastrado
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do kit |
**Respostas**
- **200** Lista de Kits — `application/json`: » Bundles
- **400** Requisição inválida
- **404** Kit não encontrado
# Atualizar um Kit
Source: https://docs.yampi.com.br/api-reference/catalogo/kits/atualizar-um-kit
`PUT /{alias}/catalog/bundles/{id}`
Atualizar um Kit
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do kit |
**Request body**
- `application/json` (obrigatório): » BundlesRequest
**Respostas**
- **200** Lista de Kits — `application/json`: » Bundles
- **400** Requisição inválida
- **404** Kit não encontrado
- **422** Verifique os campos obrigatórios: name, image_url e items
# Exclui um Kit
Source: https://docs.yampi.com.br/api-reference/catalogo/kits/exclui-um-kit
`DELETE /{alias}/catalog/bundles/{id}`
Exclui um Kit
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do kit |
**Respostas**
- **200** Kit excluído com sucesso
- **400** Requisição inválida
- **404** Kit não encontrado
# Atualizar produtos em lote
Source: https://docs.yampi.com.br/api-reference/catalogo/atualizacao-em-massa/atualizar-produtos-em-lote
`PUT /{alias}/catalog/products/batch-edit`
Permite a atualização em massa de produtos do catálogo, permitindo modificar atributos específicos, como ativação/inativação ou valores de preços, em múltiplos itens simultaneamente.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Produtos atualizados com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Produtos não encontrados
# Listar bancos
Source: https://docs.yampi.com.br/api-reference/checkout/bancos/listar-bancos
`GET /{alias}/checkout/banks`
Listar os bancos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de bancos — `application/json`: object
- **400** Requisição inválida
# Visualizar banco
Source: https://docs.yampi.com.br/api-reference/checkout/bancos/visualizar-banco
`GET /{alias}/checkout/banks/{id}`
Visualiza as informações de um banco específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banco |
**Respostas**
- **200** Detalhes do banco — `application/json`: object
- **400** Requisição inválida
# Listar carrinhos abandonados
Source: https://docs.yampi.com.br/api-reference/checkout/carrinhos-abandonados/listar-carrinhos-abandonados
`GET /{alias}/checkout/carts`
listas os carrinhos abandonados com filtros personalizados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
| filters | query | Não | » CartCriteria | Filtros de carrinhos abandonados |
**Respostas**
- **200** Lista de carrinhos abandonados — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Carrinhos abandonados não encontrados
Este endpoint suporta paginação por scroll_id, ideal para navegar grandes volumes de dados sem perder a consistência da ordenação.
Consulte a documentação completa para saber como funciona o ciclo de paginação.
# Listar dados de transações de carrinhos abandonados
Source: https://docs.yampi.com.br/api-reference/checkout/carrinhos-abandonados/listar-dados-de-transacoes-de-carrinhos-abandonados
`GET /{alias}/checkout/carts/{id}/transactions`
Detalha as transações relacionadas a um carrinho abandonado específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do carrinho |
**Respostas**
- **200** Detalhes das transações de um carrinho abandonado — `application/json`: object
- **400** Requisição inválida
- **404** Estatísticas não encontradas
# Visão Geral
Source: https://docs.yampi.com.br/api-reference/checkout/gateways-de-pagamento/introduction
## Introdução
Esta página documenta o **include** disponível para os endpoints relacionados a **gateways de pagamento**.
Com o uso do parâmetro `include`, é possível enriquecer a resposta da API com dados relacionados aos **campos necessários para configurar a forma de pagamento**, quando aplicável.
Você encontrará aqui:
- Descrição do include suportado.
- Exemplos práticos de uso em requisições de listagem e consulta de gateway.
> Esta página complementa a [documentação de listagem dos gateways de pagamento](https://docs.yampi.com.br/api-reference/checkout/listar-gateways-de-pagamento) e [documentação de visualização de um gateway específico](https://docs.yampi.com.br/api-reference/checkout/visualizar-gateway-de-pagamento), com foco na **personalização da resposta para integrações avançadas**.
---
## Includes disponíveis para gateways de pagamento (`/checkout/gateways` e `/checkout/gateways/{alias}`)
Use o parâmetro `include` para expandir o retorno com dados relacionados ao gateway.
Você pode incluir múltiplos valores separados por vírgula, por exemplo:
`?include=form`
| Include | Descrição |
|-----------|----------------------------------------------------------|
| `form` | Campos necessários para configurar a forma de pagamento |
---
## Exemplo de requisição para listar gateways com includes
```http
GET {alias}/checkout/gateways?include=form
```
# Listar gateways de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/gateways-de-pagamento/listar-gateways-de-pagamento
`GET /{alias}/checkout/gateways`
Lista as informações dos gateways de pagamento
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de gateways de pagamento — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Visualizar gateway de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/gateways-de-pagamento/visualizar-gateway-de-pagamento
`GET /{alias}/checkout/gateways/{gatewayAlias}`
Visualiza as informações de um gateways de pagamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| gatewayAlias | path | Sim | string | Alias do gateway de pagamento |
**Respostas**
- **200** Detalhes do gateway de pagamento — `application/json`: object
- **400** Requisição inválida
- **404** Gateway de pagamento não encontrado
# Listar configurações de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/configuracoes-de-pagamentos/listar-configuracoes-de-pagamento
`GET /{alias}/checkout/payments/{paymentId}/config`
Lista as configurações de um tipo de pagamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
**Respostas**
- **200** Detalhes das configurações de pagamento — `application/json`: » CheckoutPaymentConfig
- **400** Requisição inválida
- **404** Configurações de pagamento não encontradas
# Criar configuração de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/configuracoes-de-pagamentos/criar-configuracao-de-pagamento
`POST /{alias}/checkout/payments/{paymentId}/config`
Cria uma nova configuração para um tipo de pagamento específico com base nos dados fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **201** Configuração de pagamento criada com sucesso — `application/json`: » CheckoutPaymentConfig
- **400** Dados inválidos fornecidos
- **404** Forma de pagamento não encontrada
# Visualizar configuração de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/configuracoes-de-pagamentos/visualizar-configuracao-de-pagamento
`GET /{alias}/checkout/payments/{paymentId}/config/{id}`
Visualiza as configurações de um tipo de pagamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
| id | path | Sim | integer | ID da configuração de pagamento |
**Respostas**
- **200** Configuração de pagamento visualizada com sucesso — `application/json`: » CheckoutPaymentConfig
- **400** Requisição inválida
- **404** Configuração de pagamento não encontrada
# Atualizar configuração de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/configuracoes-de-pagamentos/atualizar-configuracao-de-pagamento
`PUT /{alias}/checkout/payments/{paymentId}/config/{id}`
Atualiza as configurações de um tipo de pagamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
| id | path | Sim | integer | ID da configuração de pagamento |
**Request body**
- `application/json` (obrigatório): » CheckoutPaymentConfig
**Respostas**
- **200** Configuração de pagamento atualizada com sucesso — `application/json`: » CheckoutPaymentConfig
- **400** Dados inválidos fornecidos
- **404** Configuração de pagamento não encontrada
# Excluir configuração de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/configuracoes-de-pagamentos/excluir-configuracao-de-pagamento
`DELETE /{alias}/checkout/payments/{paymentId}/config/{id}`
Excluir as configurações de um tipo de pagamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
| id | path | Sim | integer | ID da configuração de pagamento |
**Respostas**
- **200** Configuração de pagamento excluída com sucesso
- **400** Requisição inválida
- **404** Configuração de pagamento não encontrada
# Listar Links de Pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/links-de-pagamento/listar-links-de-pagamento
`GET /{alias}/checkout/payment-link`
Listar todos os Links de Pagamento cadastrados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de links de pagameto — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar Link de Pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/links-de-pagamento/criar-link-de-pagamento
`POST /{alias}/checkout/payment-link`
Cria um novo link de pagamento
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (opcional): » PaymentLinkRequest
**Respostas**
- **201** Link de pagamento criado com sucesso — `application/json`: » PaymentLink
- **400** Dados inválidos
- **422** Erros de validação
# Visualizar Link de Pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/links-de-pagamento/visualizar-link-de-pagamento
`GET /{alias}/checkout/payment-link/{id}`
Retorna os detalhes de um link de pagamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do link de pagamento |
**Respostas**
- **200** Link de pagamento cadastrado com sucesso! — `application/json`: » PaymentLink
- **400** Body da requisição inválido.
- **404** Link de pagamento não encontrado
# Atualizar Link de Pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/links-de-pagamento/atualizar-link-de-pagamento
`PUT /{alias}/checkout/payment-link/{id}`
Atualiza um link de pagamento existente e dispara o evento payment-link-updated
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do link de pagamento |
**Request body**
- `application/json` (opcional): » PaymentLinkRequest
**Respostas**
- **200** Link de pagamento atualizado com sucesso — `application/json`: » PaymentLink
- **400** Dados inválidos
- **404** Link de pagamento não encontrado
- **422** Erros de validação
# Excluir Link de Pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/links-de-pagamento/excluir-link-de-pagamento
`DELETE /{alias}/checkout/payment-link/{id}`
Remove um link de pagamento e suas relações
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do link de pagamento |
**Respostas**
- **204** Link de pagamento removido com sucesso
- **400** Dados inválidos
- **404** Link de pagamento não encontrado
# Listar parcelamentos de um pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/parcelamento/listar-parcelamentos-de-um-pagamento
`GET /{alias}/checkout/payments/{paymentId}/installments`
Lista as parcelas de um tipo de pagamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
**Respostas**
- **200** Lista de parcelamentos — `application/json`: object
- **400** Dados inválidos fornecidos
- **404** Forma de pagamento não encontrada
# Criar regras de parcelamentos para um pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/parcelamento/criar-regras-de-parcelamentos-para-um-pagamento
`POST /{alias}/checkout/payments/{paymentId}/installments`
Cria uma nova regra de parcelamento para um tipo de pagamento específico com base nos dados fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **201** Regras de parcelamento criadas com sucesso
- **400** Requisição inválida
- **404** Forma de pagamento não encontrada
# Simular parcelamento de um pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/parcelamento/simular-parcelamento-de-um-pagamento
`GET /{alias}/checkout/payments/{paymentId}/installments/simulate`
Simula o parcelamento de um pagamento, considerando valor total, valor mínimo da parcela, número máximo de parcelas sem juros e taxas associadas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
| amount | query | Sim | number | Valor total do pagamento |
| min_installment_value | query | Sim | number | Valor mínimo da parcela |
| max_installments_without_tax | query | Sim | integer | Número máximo de parcelas sem juros |
| taxes | query | Sim | array de object | Taxa aplicada nas parcelas |
| currency | query | Não | string | Moeda do pagamento |
**Respostas**
- **200** Simulação de parcelamento realizada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Forma de pagamento não encontrada
# Listar formas de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/formas-de-pagamentos/listar-formas-de-pagamento
`GET /{alias}/checkout/payments`
Lista as formas de pagamentos criadas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de formas de pagamento — `application/json`: object
- **400** Requisição inválida
# Visualizar forma de pagamento
Source: https://docs.yampi.com.br/api-reference/checkout/formas-de-pagamentos/visualizar-forma-de-pagamento
`GET /{alias}/checkout/payments/{paymentId}`
Visualiza as informações da forma de pagamento específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| paymentId | path | Sim | integer | ID da forma de pagamento |
**Respostas**
- **200** Detalhes da forma de pagamento — `application/json`: object
- **400** Requisição inválida
- **404** Forma de pagamento não encontrada
# Visão Geral
Source: https://docs.yampi.com.br/api-reference/checkout/status-de-pedidos/introduction
## Introdução
Esta página documenta os **includes** disponíveis para a rota `GET /checkout/statuses`, que retorna os status configurados para o fluxo de checkout de pedidos.
Com o uso do parâmetro `include`, é possível expandir a resposta da API com informações adicionais, como os detalhes de notificação por e-mail associados a cada status.
Você encontrará aqui:
- Descrição do include suportado.
- Exemplo prático de requisição com `include`.
> Esta página complementa a [documentação de listagem de status de pedidos](https://docs.yampi.com.br/api-reference/checkout--status-de-pedidos/listar-status-de-pedidos).
---
## Includes disponíveis em `/checkout/statuses`
Use o parâmetro `include` para retornar dados adicionais vinculados ao status de pedido.
| Include | Descrição |
|------------------|--------------------------------------------------------|
| `emailDetails` | Dados de configuração dos e-mails enviados ao cliente em cada status |
---
## Exemplo completo de requisição com include
```http
GET {alias}/checkout/statuses?include=emailDetails
```
# Listar status de pedidos
Source: https://docs.yampi.com.br/api-reference/checkout/status-de-pedidos/listar-status-de-pedidos
`GET /{alias}/checkout/statuses`
Lista os status dos pedidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | query | Não | integer | ID do pedido |
**Respostas**
- **200** Lista de status — `application/json`: object
- **400** Requisição inválida
# Atualizar detalhes do email de um status
Source: https://docs.yampi.com.br/api-reference/checkout/status-de-pedidos/atualizar-detalhes-do-email-de-um-status
`PUT /{alias}/checkout/statuses/{id}/email-details`
Atualiza o assunto e mensagem do email de um status com base nos dados fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do status |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Assunto e mensagem do email atualizados com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Status não encontrado
# Visão Geral
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/introduction
## Introdução
Esta página documenta os **includes** disponíveis para os endpoints relacionados às **transações do checkout**, permitindo expandir a resposta da API com informações detalhadas sobre afiliação, dados do cliente, forma de pagamento, requisição original e logs da transação.
Você encontrará aqui:
- Descrição dos includes suportados para listagem e visualização de transações.
- Exemplos práticos de uso com múltiplos includes combinados.
> Esta página complementa a [documentação de listagem de transações](https://docs.yampi.com.br/api-reference/checkout/listar-transacoes) e [documentação de consulta de transação específica](https://docs.yampi.com.br/api-reference/checkout/visualizar-transacao), com foco na **visibilidade e rastreabilidade de eventos financeiros**.
---
## Includes disponíveis nas rotas de transações (`/checkout/transactions` e `/checkout/transactions/{id}`)
Use o parâmetro `include` para expandir o retorno com dados relacionados à transação.
Você pode incluir múltiplos valores separados por vírgula, por exemplo:
`?include=payment,customer,logs`
| Include | Descrição |
|----------------|-----------------------------------------------------------|
| `affiliation` | Dados da afiliação envolvida na transação (se aplicável) |
| `payment` | Informações do método de pagamento |
| `customer` | Dados do cliente relacionado à transação |
| `requestData` | Dados brutos enviados na requisição da transação |
| `logs` | Histórico de eventos e mudanças na transação |
---
## Exemplo completo de requisição com includes
```http
GET {alias}/checkout/transactions?include=payment,customer,logs
```
# Listar transações de pedidos
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/listar-transacoes-de-pedidos
`GET /{alias}/checkout/transactions`
Lista todas as transações de checkout de uma loja específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de transações — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Transações não encontradas
# Visualizar transação de pedido
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/visualizar-transacao-de-pedido
`GET /{alias}/checkout/transactions/{id}`
Obtém os detalhes de uma transação de checkout identificada pelo ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transação |
**Respostas**
- **200** Lista de transações — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Transação não encontrada
# Listar logs de uma transação
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/listar-logs-de-uma-transacao
`GET /{alias}/checkout/transactions/{id}/logs`
Lista os logs associados a uma transação de checkout identificada pelo ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transação |
**Respostas**
- **200** Lista de logs da transação — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Transação não encontrada
# Confirmar uma transação de boleto ou depósito
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/confirmar-uma-transacao-de-boleto-ou-deposito
`PUT /{alias}/checkout/transactions/{id}/payment/confirm`
Confirma uma transação de boleto bancário ou depósito identificada pelo ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transação |
**Respostas**
- **200** Lista de transações — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Transação não encontrada
# Cancelar uma transação de boleto ou depósito
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/cancelar-uma-transacao-de-boleto-ou-deposito
`PUT /{alias}/checkout/transactions/{id}/payment/cancel`
Cancela uma transação de boleto bancário ou depósito identificada pelo ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transação |
**Respostas**
- **200** Lista de transações — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Transação não encontrada
# Capturar uma transação de cartão de crédito
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/capturar-uma-transacao-de-cartao-de-credito
`PUT /{alias}/checkout/transactions/{id}/payment/gateway/capture`
Captura uma transação de cartão de crédito identificada pelo ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transação |
**Respostas**
- **200** Transação capturada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Transação não encontrada
# Cancelar uma transação de cartão de crédito
Source: https://docs.yampi.com.br/api-reference/checkout/transacoes/cancelar-uma-transacao-de-cartao-de-credito
`PUT /{alias}/checkout/transactions/{id}/payment/gateway/cancel`
Cancela uma transação de cartão de crédito identificada pelo ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transação |
**Respostas**
- **200** Transação cancelada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Transação não encontrada
# Listar IPs bloqueados
Source: https://docs.yampi.com.br/api-reference/configuracoes/ips-bloqueados/listar-ips-bloqueados
`GET /{alias}/config/blocked-ips`
Retorna a listagem dos IPs bloqueados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Listagem dos IPs bloqueados — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar bloqueio de IP
Source: https://docs.yampi.com.br/api-reference/configuracoes/ips-bloqueados/criar-bloqueio-de-ip
`POST /{alias}/config/blocked-ips`
Adiciona um novo IP à lista de bloqueio
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Bloqueio do IP realizado com sucesso — `application/json`: » CustomerBlockedIP
- **400** Requisição inválida
# Visualizar bloqueio de IP
Source: https://docs.yampi.com.br/api-reference/configuracoes/ips-bloqueados/visualizar-bloqueio-de-ip
`GET /{alias}/config/blocked-ips/{id}`
Visualiza os dados de um IP específico que está bloqueado
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do IP bloqueado |
**Respostas**
- **200** Dados do IP especificado que está bloqueado — `application/json`: » CustomerBlockedIP
- **400** Requisição inválida
- **404** IP bloqueado não encontrado
# Atualizar bloqueio de IP
Source: https://docs.yampi.com.br/api-reference/configuracoes/ips-bloqueados/atualizar-bloqueio-de-ip
`PUT /{alias}/config/blocked-ips/{id}`
Atualiza o IP específico que está bloqueado
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do IP bloqueado |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** IP bloqueado atualizado com sucesso — `application/json`: » CustomerBlockedIP
- **400** Requisição inválida
- **404** IP bloqueado não encontrado
# Excluir bloqueio de IP
Source: https://docs.yampi.com.br/api-reference/configuracoes/ips-bloqueados/excluir-bloqueio-de-ip
`DELETE /{alias}/config/blocked-ips/{id}`
Remove da lista de bloqueio um IP específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do IP bloqueado |
**Respostas**
- **200** IP bloqueado removido com sucesso
- **400** Requisição inválida
- **404** IP bloqueado não encontrado
# Listar configurações de carrinhos abandonados
Source: https://docs.yampi.com.br/api-reference/configuracoes/carrinhos-abandonados/listar-configuracoes-de-carrinhos-abandonados
`GET /{alias}/config/carts`
Retorna a listagem das configurações dos carrinhos abandonados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Listagem das configurações dos carrinhos abandonados — `application/json`: object
- **400** Requisição inválida
# Criar configuração de carrinho abandonado
Source: https://docs.yampi.com.br/api-reference/configuracoes/carrinhos-abandonados/criar-configuracao-de-carrinho-abandonado
`POST /{alias}/config/carts`
Cria configurações para os carrinhos abandonados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CartConfigRequest
**Respostas**
- **200** Configurações dos carrinhos abandonados criadas com sucesso — `application/json`: object
- **400** Requisição inválida
# Visualizar configuração de carrinho abandonado
Source: https://docs.yampi.com.br/api-reference/configuracoes/carrinhos-abandonados/visualizar-configuracao-de-carrinho-abandonado
`GET /{alias}/config/carts/{id}`
Obtém os detalhes dos dados de configuração de um carrinho abandonado específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do carrinho abandonado |
**Respostas**
- **200** Dados do carrinho abandonado — `application/json`: object
- **400** Requisição inválida
# Atualizar configuração de carrinho abandonado
Source: https://docs.yampi.com.br/api-reference/configuracoes/carrinhos-abandonados/atualizar-configuracao-de-carrinho-abandonado
`PUT /{alias}/config/carts/{id}`
Atualiza os dados de configuração de um carrinho abandonado específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do carrinho abandonado |
**Request body**
- `application/json` (obrigatório): » CartConfigRequest
**Respostas**
- **200** Dados do carrinho abandonado específico atualizados com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Carrinho abandonado não encontrado
# Listar configuração do checkout
Source: https://docs.yampi.com.br/api-reference/configuracoes/checkout/listar-configuracao-do-checkout
`GET /{alias}/config/checkout`
Retorna a listagem de configurações do checkout
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Listagem das configurações do checkout — `application/json`: object
- **400** Requisição inválida
# Atualizar configuração do checkout
Source: https://docs.yampi.com.br/api-reference/configuracoes/checkout/atualizar-configuracao-do-checkout
`PUT /{alias}/config/checkout/{id}`
Atualiza as configurações do checkout
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do checkout |
**Request body**
- `application/json` (obrigatório): » CheckoutConfigRequest
**Respostas**
- **200** Configuração do checkout atualizada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Configuração do checkout não encontrada
# Listar credenciais da loja
Source: https://docs.yampi.com.br/api-reference/configuracoes/credenciais-da-loja/listar-credenciais-da-loja
`GET /{alias}/config/merchant-credentials`
Retorna a listagem de credenciais da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de credenciais — `application/json`: object
- **400** Requisição inválida
# Listar dados da loja
Source: https://docs.yampi.com.br/api-reference/configuracoes/dados-da-loja/listar-dados-da-loja
`GET /{alias}/config/merchant-data`
Retorna a listagem dos dados das lojas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Listagem de dados das lojas — `application/json`: object
- **400** Requisição inválida
# Atualizar dados da loja
Source: https://docs.yampi.com.br/api-reference/configuracoes/dados-da-loja/atualizar-dados-da-loja
`PUT /{alias}/config/merchant-data/{id}`
Atualiza os dados de uma loja específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da loja |
**Request body**
- `application/json` (obrigatório): » MerchantDataConfigRequest
**Respostas**
- **200** Dados da loja atualizados com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Loja não encontrada
- **422** Verifique os dados Obrigatórios
# Visualizar overview das configurações
Source: https://docs.yampi.com.br/api-reference/configuracoes/overview/visualizar-overview-das-configuracoes
`GET /{alias}/config/overview/v1`
Obtém uma visão geral das configurações essenciais para o funcionamento correto da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Visão geral das configurações essenciais — `application/json`: object
# Listar configurações de fotos
Source: https://docs.yampi.com.br/api-reference/configuracoes/fotos/listar-configuracoes-de-fotos
`GET /{alias}/config/photos`
Lista as configurações de fotos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Listagem das configurações das fotos — `application/json`: —
- **400** Requisição inválida
# Criar configuração de foto
Source: https://docs.yampi.com.br/api-reference/configuracoes/fotos/criar-configuracao-de-foto
`POST /{alias}/config/photos`
Cria uma nova configuração de foto com os tamanhos especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » PhotoConfigRequest
**Respostas**
- **200** Configuração de foto criada com sucesso — `application/json`: —
- **400** Requisição inválida
# Visualizar configuração de foto
Source: https://docs.yampi.com.br/api-reference/configuracoes/fotos/visualizar-configuracao-de-foto
`GET /{alias}/config/photos/{id}`
Retorna os detalhes da configuração de uma foto específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da foto |
**Respostas**
- **200** Detalhes da configuração da foto especificada — `application/json`: —
- **400** Requisição inválida
- **404** Foto não encontrada
# Atualizar configuração de foto
Source: https://docs.yampi.com.br/api-reference/configuracoes/fotos/atualizar-configuracao-de-foto
`PUT /{alias}/config/photos/{id}`
Atualiza a configuração de foto com os tamanhos especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da foto |
**Request body**
- `application/json` (obrigatório): » PhotoConfigRequest
**Respostas**
- **200** Configuração de foto atualizada com sucesso — `application/json`: —
- **400** Requisição inválida
- **404** Foto não encontrada
# Atualizar configuração de um serviço
Source: https://docs.yampi.com.br/api-reference/configuracoes/integracoes/atualizar-configuracao-de-um-servico
`PUT /{alias}/config/services/{serviceAlias}/settings/{id}`
Atualiza as configurações para um serviço específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| serviceAlias | path | Sim | string | Alias do serviço |
| id | path | Sim | integer | ID da configuração |
**Request body**
- `application/json` (obrigatório): » ServiceConfigRequest
**Respostas**
- **200** Configuração do serviço atualizado com sucesso — `application/json`: » ServiceConfig
- **400** Requisição inválida
- **404** Serviço não encontrado
# Excluir configuração de um serviço
Source: https://docs.yampi.com.br/api-reference/configuracoes/integracoes/excluir-configuracao-de-um-servico
`DELETE /{alias}/config/services/{serviceAlias}/settings/{id}`
Exclui as configurações para um serviço específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| serviceAlias | path | Sim | string | Alias do serviço |
| id | path | Sim | integer | ID da configuração |
**Respostas**
- **200** Configuração do serviço excluído com sucesso
- **400** Requisição inválida
- **404** Serviço ou configuração não encontrados
# Listar todos os serviços disponíveis
Source: https://docs.yampi.com.br/api-reference/configuracoes/integracoes/listar-todos-os-servicos-disponiveis
`GET /{alias}/config/services`
Obtém a lista de todos os serviços disponíveis para integração
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| groupedByCategory | query | Não | boolean | Agrupa os serviços de acordo com suas categorias |
**Respostas**
- **200** Lista de serviços disponíveis — `application/json`: object
- **400** Requisição inválida
# Visualizar serviço
Source: https://docs.yampi.com.br/api-reference/configuracoes/integracoes/visualizar-servico
`GET /{alias}/config/services/{serviceAlias}`
Obtém os detalhes de um serviço específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| serviceAlias | path | Sim | string | Alias do serviço |
**Respostas**
- **200** Detalhes do serviço — `application/json`: object
- **400** Requisição inválida
- **404** Serviço não encontrado
# Listar configurações de e-mails
Source: https://docs.yampi.com.br/api-reference/configuracoes/emails/listar-configuracoes-de-e-mails
`GET /{alias}/config/emails`
Lista todas as configurações de e-mails
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista das configurações de e-mail — `application/json`: object
- **400** Requisição inválida
# Criar configuração de email
Source: https://docs.yampi.com.br/api-reference/configuracoes/emails/criar-configuracao-de-email
`POST /{alias}/config/emails`
Cria uma nova configuração de email com os valores especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » EmailConfigRequest
**Respostas**
- **200** Lista das configurações de e-mail — `application/json`: object
- **400** Requisição inválida
# Visualizar configuração de email
Source: https://docs.yampi.com.br/api-reference/configuracoes/emails/visualizar-configuracao-de-email
`GET /{alias}/config/emails/{id}`
Obtém os detalhes de uma configuração de email específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da configuração de email |
**Respostas**
- **200** Detalhes da configuração de email — `application/json`: object
- **400** Requisição inválida
- **404** Configuração de email não encontrada
# Atualizar configuração de email
Source: https://docs.yampi.com.br/api-reference/configuracoes/emails/atualizar-configuracao-de-email
`PUT /{alias}/config/emails/{id}`
Atualiza a configuração de email com os valores especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da configuração de email |
**Request body**
- `application/json` (obrigatório): » EmailConfigRequest
**Respostas**
- **200** Configuração de email atualizada com sucesso — `application/json`: object
- **400** Requisição inválida
# Listar páginas
Source: https://docs.yampi.com.br/api-reference/conteudo/paginas/listar-paginas
`GET /{alias}/content/pages`
Retorna uma lista de páginas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | string | Incluir informações adicionais, como conteúdo |
**Respostas**
- **200** Lista de páginas — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar página
Source: https://docs.yampi.com.br/api-reference/conteudo/paginas/criar-pagina
`POST /{alias}/content/pages`
Cria uma nova página com os dados especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » PageRequest
**Respostas**
- **200** Detalhes da página — `application/json`: object
- **400** Requisição inválida
# Visualizar página
Source: https://docs.yampi.com.br/api-reference/conteudo/paginas/visualizar-pagina
`GET /{alias}/content/pages/{id}`
Obtém os dados de uma página específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da página |
**Respostas**
- **200** Detalhes da página — `application/json`: object
- **400** Requisição inválida
- **404**
# Atualizar página
Source: https://docs.yampi.com.br/api-reference/conteudo/paginas/atualizar-pagina
`PUT /{alias}/content/pages/{id}`
Atualiza os dados de uma página específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da página |
**Request body**
- `application/json` (obrigatório): » PageRequest
**Respostas**
- **200** Detalhes da página — `application/json`: object
- **400** Requisição inválida
- **404** Página não encontrada
# Excluir página
Source: https://docs.yampi.com.br/api-reference/conteudo/paginas/excluir-pagina
`DELETE /{alias}/content/pages/{id}`
Exclui uma página específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da página |
**Respostas**
- **200** Página excluída com sucesso
- **400** Requisição inválida
- **404** Página não encontrada
# Listar redirecionamentos
Source: https://docs.yampi.com.br/api-reference/conteudo/redirecionamentos/listar-redirecionamentos
`GET /{alias}/content/redirects`
Lista os redirecionamentos da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de redirecionamentos — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar redirecionamento
Source: https://docs.yampi.com.br/api-reference/conteudo/redirecionamentos/criar-redirecionamento
`POST /{alias}/content/redirects`
Cria um novo redirecionamento com base nos dados especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » Redirect
**Respostas**
- **200** Redirecionamento criado com sucesso — `application/json`: » Redirect
- **400** Requisição inválida
# Visualizar detalhes de um redirecionamento
Source: https://docs.yampi.com.br/api-reference/conteudo/redirecionamentos/visualizar-detalhes-de-um-redirecionamento
`GET /{alias}/content/redirects/{id}`
Visualiza os detalhes de um determinado redirecionamento a partir do seu ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do redirecionamento |
**Respostas**
- **200** Detalhes do redirecionamento — `application/json`: » Redirect
- **400** Requisição inválida
- **404** Redirecionamento não encontrado
# Atualizar redirecionamento
Source: https://docs.yampi.com.br/api-reference/conteudo/redirecionamentos/atualizar-redirecionamento
`PUT /{alias}/content/redirects/{id}`
Atualiza os detalhes de um redirecionamento com base nos dados especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do redirecionamento |
**Request body**
- `application/json` (obrigatório): » Redirect
**Respostas**
- **200** Redirecionamento atualizado com sucesso — `application/json`: » Redirect
- **400** Requisição inválida
- **404** Redirecionamento não encontrado
# Excluir redirecionamento
Source: https://docs.yampi.com.br/api-reference/conteudo/redirecionamentos/excluir-redirecionamento
`DELETE /{alias}/content/redirects/{id}`
Exclui um redirecionamento específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do redirecionamento |
**Respostas**
- **200** Redirecionamento excluído com sucesso
- **400** Requisição inválida
- **404** Redirecionamento não encontrado
# Criar redirecionamentos em batch
Source: https://docs.yampi.com.br/api-reference/conteudo/redirecionamentos/criar-redirecionamentos-em-batch
`POST /{alias}/content/redirects/batch`
Cria múltiplos redirecionamentos de uma vez (máximo 50 itens)
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Redirecionamentos criados com sucesso — `application/json`: object
- **400** Requisição inválida
- **422** Erro de validação
# Listar clientes
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/listar-clientes
`GET /{alias}/customers`
Lista todos os clientes
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
| filters | query | Não | » CustomerCriteria | Filtros por campanha, origem, datas e status |
**Respostas**
- **200** Lista de clientes retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
Este endpoint suporta paginação por scroll_id, ideal para navegar grandes volumes de dados sem perder a consistência da ordenação.
Consulte a documentação completa para saber como funciona o ciclo de paginação.
# Criar cliente
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/criar-cliente
`POST /{alias}/customers`
Cria um novo cliente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CustomerRequest
**Respostas**
- **200** Cliente criado com sucesso — `application/json`: object
- **400** Requisição inválida
# Visualizar cliente
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/visualizar-cliente
`GET /{alias}/customers/{id}`
Obtém as informações detalhadas de um cliente específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cliente |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
**Respostas**
- **200** Detalhes do cliente — `application/json`: object
- **404** Cliente não encontrado
# Atualizar cliente
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/atualizar-cliente
`PUT /{alias}/customers/{id}`
Atualiza as informações de um cliente específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cliente |
**Request body**
- `application/json` (obrigatório): » CustomerRequest
**Respostas**
- **200** Cliente atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Cliente não encontrado
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir cliente
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/excluir-cliente
`DELETE /{alias}/customers/{id}`
Exclui um cliente específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cliente |
**Respostas**
- **200** Cliente excluído com sucesso
- **400** Requisição inválida
- **404** Cliente não encontrado
# Listar carrinhos abandonados de um cliente
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/listar-carrinhos-abandonados-de-um-cliente
`GET /{alias}/customers/{id}/carts`
Obtém uma lista de carrinhos abandonados de um cliente específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cliente |
**Respostas**
- **200** Lista de carrinhos abandonados — `application/json`: object
- **404** Cliente ou carrinhos não encontrados
# Listar filtros de busca de clientes
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/listar-filtros-de-busca-de-clientes
`GET /{alias}/customers/filters`
Retorna uma lista dos filtros de busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de filtros de busca — `application/json`: —
- **404** Filtros não encontrados
# Sincronizar as tags de um cliente
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/sincronizar-as-tags-de-um-cliente
`PUT /{alias}/customers/{id}/tags`
Substitui a lista de tags do cliente pela enviada. Envie uma lista vazia para remover todas. As tags são gravadas em minúsculo.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cliente |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **204** Tags sincronizadas
- **404**
- **422** Payload inválido
# Adicionar tags a um cliente
Source: https://docs.yampi.com.br/api-reference/clientes/cliente/adicionar-tags-a-um-cliente
`POST /{alias}/customers/{id}/tags`
Acrescenta as tags enviadas sem remover as existentes. Idempotente: reenviar a mesma tag não duplica.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | — |
| id | path | Sim | integer | — |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **204** Tags adicionadas
- **422** Payload inválido
# Listar clusters
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/listar-clusters
`GET /{alias}/customers/clusters`
Lista todos os clusters de clientes
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Clusters listados com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar cluster de clientes
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/criar-cluster-de-clientes
`POST /{alias}/customers/clusters`
Cria um novo cluster de clientes
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ClusterRequest
**Respostas**
- **200** Cluster criado com sucesso — `application/json`: » Cluster
- **400** Requisição inválida
# Visualizar clusters
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/visualizar-clusters
`GET /{alias}/customers/clusters/{id}`
Obtém os detalhes de um cluster específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cluster |
**Respostas**
- **200** Detalhes visualizados com sucesso — `application/json`: » Cluster
- **400** Requisição inválida
- **404** Cluster não encontrado
# Atualizar cluster de clientes
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/atualizar-cluster-de-clientes
`PUT /{alias}/customers/clusters/{id}`
Atualiza um cluster específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cluster |
**Request body**
- `application/json` (obrigatório): » ClusterRequest
**Respostas**
- **200** Cluster atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Cluster não encontrado
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Listar clientes associados a um cluster
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/listar-clientes-associados-a-um-cluster
`GET /{alias}/customers/clusters/{id}/customers`
Lista todos os clientes associados a um cluster específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cluster |
**Respostas**
- **200** Clientes associados listados com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Cluster não encontrado
# Listar regras de frete
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/regras-de-frete-dos-clusters/listar-regras-de-frete
`GET /{alias}/customers/clusters/{clusterId}/shipping-rules`
Lista todas as regras de frete de um cluster específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| clusterId | path | Sim | integer | ID do cluster |
**Respostas**
- **200** Lista de regras de frete retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Cluster não encontrado
# Criar regra de frete
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/regras-de-frete-dos-clusters/criar-regra-de-frete
`POST /{alias}/customers/clusters/{clusterId}/shipping-rules`
Cria uma nova regra de frete para um cluster específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| clusterId | path | Sim | integer | ID do cluster |
**Request body**
- `application/json` (obrigatório): » ClusterShippingRequest
**Respostas**
- **200** Regra de frete criada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Cluster não encontrado
# Visualizar regra de frete
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/regras-de-frete-dos-clusters/visualizar-regra-de-frete
`GET /{alias}/customers/clusters/{clusterId}/shipping-rules/{id}`
Obtém os detalhes de uma regra de frete específica de um cluster
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| clusterId | path | Sim | integer | ID do cluster |
| id | path | Sim | integer | ID da regra de frete |
**Respostas**
- **200** Detalhes da regra de frete retornados com sucesso — `application/json`: » ClusterShipping
- **400** Requisição inválida
- **404** Cluster ou regra de frete não encontrados
# Atualizar regra de frete
Source: https://docs.yampi.com.br/api-reference/clientes/clusters/regras-de-frete-dos-clusters/atualizar-regra-de-frete
`PUT /{alias}/customers/clusters/{clusterId}/shipping-rules/{id}`
Atualiza uma regra de frete específica de um cluster
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| clusterId | path | Sim | integer | ID do cluster |
| id | path | Sim | integer | ID da regra de frete |
**Request body**
- `application/json` (obrigatório): » ClusterShippingRequest
**Respostas**
- **200** Regra de frete atualizada com sucesso — `application/json`: » ClusterShipping
- **400** Requisição inválida
- **404** Cluster ou regra de frete não encontrados
# Listar endereços de um cliente
Source: https://docs.yampi.com.br/api-reference/clientes/enderecos/listar-enderecos-de-um-cliente
`GET /{alias}/customers/{customerId}/addresses`
Retorna a lista de endereços de um cliente específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| customerId | path | Sim | integer | ID do cliente |
**Respostas**
- **200** Endereços listados com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Clientes não encontrados
# Criar endereço do cliente
Source: https://docs.yampi.com.br/api-reference/clientes/enderecos/criar-endereco-do-cliente
`POST /{alias}/customers/{customerId}/addresses`
Cria um endereço para um cliente específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| customerId | path | Sim | integer | ID do cliente |
**Request body**
- `application/json` (obrigatório): » CustomerAddressRequest
**Respostas**
- **200** Endereço criado com sucesso — `application/json`: » CustomerAddress
- **400** Requisição inválida
- **404** Clientes não encontrados
# Visualizar endereço do cliente
Source: https://docs.yampi.com.br/api-reference/clientes/enderecos/visualizar-endereco-do-cliente
`GET /{alias}/customers/{customerId}/addresses/{id}`
Visualiza um endereço específico de um cliente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| customerId | path | Sim | integer | ID do cliente |
| id | path | Sim | integer | ID do endereço |
**Respostas**
- **200** Endereço visualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Clientes não encontrados
# Atualizar endereço do cliente
Source: https://docs.yampi.com.br/api-reference/clientes/enderecos/atualizar-endereco-do-cliente
`PUT /{alias}/customers/{customerId}/addresses/{id}`
Atualiza um endereço específico de um cliente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| customerId | path | Sim | integer | ID do cliente |
| id | path | Sim | integer | ID do endereço |
**Request body**
- `application/json` (obrigatório): » CustomerAddressRequest
**Respostas**
- **200** Endereço atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Cliente ou endereços não encontrados
# Excluir endereço do cliente
Source: https://docs.yampi.com.br/api-reference/clientes/enderecos/excluir-endereco-do-cliente
`DELETE /{alias}/customers/{customerId}/addresses/{id}`
Exclui um endereço específico de um cliente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| customerId | path | Sim | integer | ID do cliente |
| id | path | Sim | integer | ID do endereço |
**Respostas**
- **200** Endereço excluído com sucesso
- **400** Requisição inválida
- **404** Clientes não encontrados
# Listar descontos da loja
Source: https://docs.yampi.com.br/api-reference/descontos/listar-descontos-da-loja
`GET /{alias}/discounts`
Lista os descontos cadastrados na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| q | query | Não | string | Busca por nome do desconto |
| discount_type | query | Não | array de string | Filtrar por tipo de desconto (aceita múltiplos valores) |
| status | query | Não | integer | Filtrar por status: 1 = ativos (end_at >= agora ou sem data), 0 = expirados |
**Respostas**
- **200** Lista de descontos — `application/json`: object
- **400** Requisição Inválida
# Criar um desconto da loja
Source: https://docs.yampi.com.br/api-reference/descontos/criar-um-desconto-da-loja
`POST /{alias}/discounts`
Cria um desconto na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » DiscountRequest
**Respostas**
- **200** Detalhes do desconto — `application/json`: » DiscountView
- **409** Conflito com desconto existente. Retorna discount_id, accumulate e discount_value do desconto conflitante.
- **422** Verifique os campos obrigatórios: discount_method, discount_value, discount_type, entry_condition_type, entry_condition_value, accumulate, start_at, name. O campo restrictions é obrigatório apenas para discount_type=buy_x_get_y. Para discount_type=buy_x_pay_y são obrigatórios specifications.price_mode e specifications.tiers.
# Visualizar um desconto da loja
Source: https://docs.yampi.com.br/api-reference/descontos/visualizar-um-desconto-da-loja
`GET /{alias}/discounts/{id}`
Detalhes do desconto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Desconto |
**Respostas**
- **200** Detalhes do desconto — `application/json`: object + » DiscountViewAdditionalResponse
- **400** Desconto não encontrado
# Excluir um desconto da loja
Source: https://docs.yampi.com.br/api-reference/descontos/excluir-um-desconto-da-loja
`DELETE /{alias}/discounts/{id}`
Exclui um desconto na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Detalhes do desconto — `application/json`: » DiscountView
- **400** Desconto não encontrado
# Excluir todos os descontos da loja em massa
Source: https://docs.yampi.com.br/api-reference/descontos/excluir-todos-os-descontos-da-loja-em-massa
`DELETE /{alias}/discounts/batch-delete`
Exclui todos os descontos cadastrados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Detalhes do desconto — `application/json`: » DiscountView
# Atualizar um desconto da loja
Source: https://docs.yampi.com.br/api-reference/descontos/atualizar-um-desconto-da-loja
`PUT /{alias}/discounts/{id}`
Atualiza um desconto na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » DiscountRequest
**Respostas**
- **200** Detalhes do desconto — `application/json`: object + » DiscountViewAdditionalResponse
- **409** Conflito com desconto existente. Retorna discount_id, accumulate e discount_value do desconto conflitante.
- **422** Verifique os campos obrigatórios: discount_method, discount_value, discount_type, entry_condition_type, entry_condition_value, accumulate, start_at, name. O campo restrictions é obrigatório apenas para discount_type=buy_x_get_y. Para discount_type=buy_x_pay_y são obrigatórios specifications.price_mode e specifications.tiers.
# Listar filtros de busca de descontos
Source: https://docs.yampi.com.br/api-reference/descontos/listar-filtros-de-busca-de-descontos
`GET /{alias}/discounts/filters`
Retorna uma lista dos filtros de busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de filtros de busca — `application/json`: —
- **404** Filtros não encontrados
# Listar leads
Source: https://docs.yampi.com.br/api-reference/leads/listar-leads
`GET /{alias}/leads`
Lista os leads de acordo com os filtros estabelecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| name | query | Não | string | Filtrar por nome |
| email | query | Não | string | Filtrar por endereço de email |
| birthday | query | Não | string | Filtrar por data de nascimento |
| city | query | Não | string | Filtrar por cidade |
| state | query | Não | string | Filtrar por estado |
| genre | query | Não | string | Filtrar por gênero |
| params | query | Não | object | Filtrar por parâmetros adicionais |
**Respostas**
- **200** Lista de leads — `application/json`: object + » SimplePaginatorWithMeta
- **400** Dados inválidos fornecidos
Este endpoint suporta paginação por scroll_id, ideal para navegar grandes volumes de dados sem perder a consistência da ordenação.
Consulte a documentação completa para saber como funciona o ciclo de paginação.
# Criar um novo lead
Source: https://docs.yampi.com.br/api-reference/leads/criar-um-novo-lead
`POST /{alias}/leads`
Cria um novo lead com base nos dados fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » LeadRequest
**Respostas**
- **201** Lead criado com sucesso — `application/json`: » Lead
- **400** Dados inválidos fornecidos
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Visualizar lead
Source: https://docs.yampi.com.br/api-reference/leads/visualizar-lead
`GET /{alias}/leads/{id}`
Retorna os detalhes de um lead específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do lead |
**Respostas**
- **200** Detalhes do lead — `application/json`: » Lead
- **404** Lead não encontrado
# Atualizar lead
Source: https://docs.yampi.com.br/api-reference/leads/atualizar-lead
`PUT /{alias}/leads/{id}`
Atualiza os detalhes de um lead específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do lead |
**Request body**
- `application/json` (obrigatório): » LeadRequest
**Respostas**
- **200** Lead atualizado com sucesso — `application/json`: » Lead
- **400** Dados inválidos fornecidos
- **404** Lead não encontrado
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir lead
Source: https://docs.yampi.com.br/api-reference/leads/excluir-lead
`DELETE /{alias}/leads/{id}`
Excluir um lead específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do lead |
**Respostas**
- **204** Lead excluído com sucesso
- **404** Lead não encontrado
# Listar filtros de busca dos leads
Source: https://docs.yampi.com.br/api-reference/leads/listar-filtros-de-busca-dos-leads
`GET /{alias}/leads/filters`
Retorna a lista de filtros de busca disponíveis para leads
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de filtros de busca — `application/json`: —
- **404** Filtros não encontrados
# Visão geral
Source: https://docs.yampi.com.br/api-reference/logistica/api-de-frete/introduction
Com este recurso é possível conectar **APIs externas** de cálculo de frete para serviços que **não são integrados nativamente** na Yampi.
---
## Como habilitar
Para habilitar este recurso, o lojista deve criar uma nova API de frete pelo painel da Yampi:
1. Acesse o menu: `Configurações > Logística > API de Frete`
2. Clique em **Criar nova API de Frete**
3. Preencha os campos obrigatórios:
* **Nome da API**
* **URL da API**
* **Headers** (opcional)
---
## Requisição enviada pela Yampi
Quando um comprador solicitar o cálculo de frete, a Yampi enviará uma requisição `POST` para a URL cadastrada com o seguinte corpo:
```json
{
"zipcode": "14940472",
"amount": 120.00,
"cart": {
"promocode": null,
"customer": {
"document": "00000000000",
"email": "foo@bar.com.br"
}
},
"skus": [
{
"id": 1231233,
"product_id": 12313,
"sku": "716237816313213",
"price": 12.00,
"unit_price": 6.00,
"quantity": 2,
"length": 1,
"width": 1,
"height": 1,
"weight": 1,
"availability_days": 1,
"platform": {
"name": "shopify",
"external_id": "1231231231313"
}
}
]
}
```
### Campos da requisção
| Campo | Descrição |
| ----------------------------- | -------------------------------------------|
| `zipcode` | CEP de entrega |
| `amount` | Valor total do carrinho |
| `skus[].id` | ID do SKU na Yampi |
| `skus[].product_id` | ID do Produto na Yampi |
| `skus[].sku` | Código do SKU |
| `skus[].price` | Preço do SKU multiplicado pela quantidade |
| `skus[].unit_price` | Preço unitário do SKU. |
| `skus[].quantity` | Quantidade de itens |
| `skus[].length` | Comprimento unitário do SKU |
| `skus[].width` | Largura unitária do SKU |
| `skus[].height` | Altura unitária do SKU |
| `skus[].weight` | Peso unitário do SKU (em KG) |
| `skus[].availability_days` | Prazo de postagem (em dias) |
| `skus[].platform.name` | Nome da plataforma externa |
| `skus[].platform.external_id` | ID do SKU na plataforma externa |
| `cart.promocode` | Cupom de desconto (opcional) |
| `cart.customer.document` | CPF ou CNPJ do cliente |
| `cart.customer.email` | E-mail do cliente |
---
## Resposta esperada
Sua API deverá obrigatoriamente responder no formato abaixo:
```json
{
"quotes": [
{
"name": "OPÇÃO FRETE 1",
"service": "SEDEX",
"price": 37.5,
"days": 36,
"quote_id": 1,
"free_shipment": false
},
{
"name": "OPÇÃO FRETE 2",
"service": "PAC",
"price": 37.5,
"days": 36,
"quote_id": 2,
"free_shipment": true
}
]
}
```
### Campos da resposta
| Campo | Descrição |
|----------------|----------------------------------------------------------------------------------------------------|
| `name` | Nome da opção de frete apresentada ao cliente. |
| `service` | Serviço de entrega (Alias de frete) utilizado (exemplo: PAC, SEDEX, LOGGI, etc.). |
| `price` | Valor do frete em reais. |
| `days` | Prazo estimado de entrega em dias. |
| `quote_id` | Identificador único da cotação gerada para essa opção de frete. |
| `free_shipment`| Indica se o frete é grátis (`true`) ou não será grátis (`false`). |
---
> ⚠️ Sua aplicação **deve responder em até 4 segundos**. Caso contrário, a Yampi abortará a requisição.
---
## Segurança nas requisições
Para garantir que a requisição partiu da Yampi, é necessário validar a assinatura enviada no header.
### Como validar:
1. **Pegue o valor do header** `X-Yampi-Hmac-SHA256`
2. **Gere a assinatura localmente** usando `HMAC-SHA256` do corpo da requisição com a **chave secreta** da API de frete
3. **Codifique em base64**
4. **Compare o resultado** com o valor recebido no header
```js
const crypto = require('crypto')
const secret = 'SUA_CHAVE_SECRETA'
const body = JSON.stringify(request.body)
const signature = crypto
.createHmac('sha256', secret)
.update(body)
.digest('base64')
```
Se a assinatura for igual ao valor do header, ✅ requisição é legítima.
---
## Conclusão
Com essa integração, você pode oferecer opções de frete personalizadas no checkout da Yampi, mantendo controle sobre prazos, preços e validação de segurança.
# Listar API de Frete
Source: https://docs.yampi.com.br/api-reference/logistica/api-de-frete/listar-api-de-frete
`GET /{alias}/logistics/apis`
Lista todas as API de Frete cadastradas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de API de Frete — `application/json`: object + » SimplePaginatorWithMeta
# Criar API de Frete
Source: https://docs.yampi.com.br/api-reference/logistica/api-de-frete/criar-api-de-frete
`POST /{alias}/logistics/apis`
Cria uma nova integração com API de Frete
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ShippingApiRequest
**Respostas**
- **201** API de Frete criada com sucesso — `application/json`: » ShippingApi
# Visualizar API de Frete
Source: https://docs.yampi.com.br/api-reference/logistica/api-de-frete/visualizar-api-de-frete
`GET /{alias}/logistics/apis/{id}`
Retorna os dados de uma API de Frete específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da API de Frete |
**Respostas**
- **200** Dados da API de Frete — `application/json`: » ShippingApi
- **404** API de Frete não encontrada
# Atualizar API de Frete
Source: https://docs.yampi.com.br/api-reference/logistica/api-de-frete/atualizar-api-de-frete
`PUT /{alias}/logistics/apis/{id}`
Atualiza os dados de uma API de Frete específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da API de Frete |
**Request body**
- `application/json` (obrigatório): » ShippingApiRequest
**Respostas**
- **200** API de Frete atualizada com sucesso — `application/json`: » ShippingApi
- **404** API de Frete não encontrada
# Excluir API de Frete
Source: https://docs.yampi.com.br/api-reference/logistica/api-de-frete/excluir-api-de-frete
`DELETE /{alias}/logistics/apis/{id}`
Remove uma API de Frete específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da API de Frete |
**Respostas**
- **204** API de Frete excluída com sucesso
- **404** API de Frete não encontrada
# Listar embalagens
Source: https://docs.yampi.com.br/api-reference/logistica/embalagens/listar-embalagens
`GET /{alias}/logistics/boxes`
Lista todas as embalagens cadastradas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de embalagens — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar embalagem
Source: https://docs.yampi.com.br/api-reference/logistica/embalagens/criar-embalagem
`POST /{alias}/logistics/boxes`
Cria uma nova embalagem com base nos parâmetros fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » BoxRequest
**Respostas**
- **200** Embalagem criada com sucesso — `application/json`: object
- **400** Requisição inválida
# Visualizar embalagem
Source: https://docs.yampi.com.br/api-reference/logistica/embalagens/visualizar-embalagem
`GET /{alias}/logistics/boxes/{id}`
Obtém os detalhes de uma embalagem específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da embalagem |
**Respostas**
- **200** Detalhes da embalagem — `application/json`: object
- **400** Requisição inválida
- **404** Embalagem não encontrada
# Atualizar embalagem
Source: https://docs.yampi.com.br/api-reference/logistica/embalagens/atualizar-embalagem
`PUT /{alias}/logistics/boxes/{id}`
Atualiza uma embalagem específica com base nos parâmetros fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da embalagem |
**Request body**
- `application/json` (obrigatório): » BoxRequest
**Respostas**
- **200** Embalagem atualizada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Embalagem não encontrada
# Excluir embalagem
Source: https://docs.yampi.com.br/api-reference/logistica/embalagens/excluir-embalagem
`DELETE /{alias}/logistics/boxes/{id}`
Exclui uma embalagem específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da embalagem |
**Respostas**
- **200** Embalagem excluída com sucesso
- **400** Requisição inválida
- **404** Embalagem não encontrada
# Listar preços de uma transportadora
Source: https://docs.yampi.com.br/api-reference/logistica/precos-de-frete/listar-precos-de-uma-transportadora
`GET /{alias}/logistics/carriers/{carrierId}/prices`
Lista todos os preços de frete das transportadoras cadastradas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| carrierId | path | Sim | integer | ID da transportadora |
| zipcode | query | Não | string | CEP para filtro |
**Respostas**
- **200** Lista de preços de frete — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Transportadora não encontrada
# Criar preço para uma transportadora
Source: https://docs.yampi.com.br/api-reference/logistica/precos-de-frete/criar-preco-para-uma-transportadora
`POST /{alias}/logistics/carriers/{carrierId}/prices`
Crie um novo preço de frete de uma transportadora
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| carrierId | path | Sim | integer | ID da transportadora |
**Request body**
- `application/json` (obrigatório): » CarrierPriceRequest
**Respostas**
- **200** Preço criado com sucesso — `application/json`: » CarrierPrice
- **400** Requisição inválida
- **404** Transportadora não encontrada
# Visualizar preço
Source: https://docs.yampi.com.br/api-reference/logistica/precos-de-frete/visualizar-preco
`GET /{alias}/logistics/carriers/{carrierId}/prices/{id}`
Obtém o preço de frete de uma transportadora específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| carrierId | path | Sim | integer | ID da transportadora |
| id | path | Sim | integer | ID do preço |
**Respostas**
- **200** Detalhes do preço — `application/json`: object
- **400** Requisição inválida
- **404** Transportadora ou preço não encontrados
# Atualizar preço
Source: https://docs.yampi.com.br/api-reference/logistica/precos-de-frete/atualizar-preco
`PUT /{alias}/logistics/carriers/{carrierId}/prices/{id}`
Atualiza o preço de frete de uma transportadora específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| carrierId | path | Sim | integer | ID da transportadora |
| id | path | Sim | integer | ID do preço |
**Request body**
- `application/json` (obrigatório): » CarrierPriceRequest
**Respostas**
- **200** Preço atualizado com sucesso — `application/json`: » CarrierPrice
- **400** Requisição inválida
- **404** Transportadora ou preço não encontrados
# Excluir preço
Source: https://docs.yampi.com.br/api-reference/logistica/precos-de-frete/excluir-preco
`DELETE /{alias}/logistics/carriers/{carrierId}/prices/{id}`
Excluir o preço de frete de uma transportadora específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| carrierId | path | Sim | integer | ID da transportadora |
| id | path | Sim | integer | ID do preço |
**Respostas**
- **200** Preço excluído com sucesso
- **400** Requisição inválida
- **404** Transportadora ou preço não encontrados
# Listar transportadoras
Source: https://docs.yampi.com.br/api-reference/logistica/transportadoras/listar-transportadoras
`GET /{alias}/logistics/carriers`
Lista todas as transportadoras cadastradas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de transportadoras — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar transportadora
Source: https://docs.yampi.com.br/api-reference/logistica/transportadoras/criar-transportadora
`POST /{alias}/logistics/carriers`
Cria uma nova transportadora com base nos parâmetros fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CarrierRequest
**Respostas**
- **200** Transportadora criada com sucesso — `application/json`: » Carrier
- **400** Requisição inválida
# Visualizar transportadora
Source: https://docs.yampi.com.br/api-reference/logistica/transportadoras/visualizar-transportadora
`GET /{alias}/logistics/carriers/{id}`
Obtém os detalhes de uma transportadora específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transportadora |
**Respostas**
- **200** Detalhes da transportadora — `application/json`: object
- **400** Requisição inválida
- **404** Transportadora não encontrada
# Atualizar transportadora
Source: https://docs.yampi.com.br/api-reference/logistica/transportadoras/atualizar-transportadora
`PUT /{alias}/logistics/carriers/{id}`
Atualiza as informações de uma transportadora específica com base nos parâmetros fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transportadora |
**Request body**
- `application/json` (obrigatório): » CarrierRequest
**Respostas**
- **200** Transportadora atualizada com sucesso — `application/json`: » Carrier
- **400** Requisição inválida
- **404** Transportadora não encontrada
# Excluir transportadora
Source: https://docs.yampi.com.br/api-reference/logistica/transportadoras/excluir-transportadora
`DELETE /{alias}/logistics/carriers/{id}`
Exclui uma transportadora específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da transportadora |
**Respostas**
- **200** Transportadora excluída com sucesso
- **400** Requisição inválida
- **404** Transportadora não encontrada
# Listar países
Source: https://docs.yampi.com.br/api-reference/logistica/paises/listar-paises
`GET /{alias}/logistics/countries`
Listar os países disponíveis para entrega
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de países — `application/json`: object
- **400** Requisição inválida
# Simular frete de um pedido
Source: https://docs.yampi.com.br/api-reference/logistica/simular-frete/simular-frete-de-um-pedido
`POST /{alias}/logistics/shipping-costs`
Recalcula ou simula o custo de frete de um pedido que já existe, utilizando as informações dos produtos contidos no pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ShippingCostRequest
**Respostas**
- **200** Cálculo do frete realizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** CEP não encontrado
# Listar reserva de estoque
Source: https://docs.yampi.com.br/api-reference/logistica/reservas-de-estoque/listar-reserva-de-estoque
`GET /{alias}/logistics/stock-reservations`
Lista todas as reservas de estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| sku_id | query | Não | integer | Filtrar por ID do SKU |
| stock_id | query | Não | integer | Filtrar por ID do estoque |
| order_id | query | Não | integer | Filtrar por ID do pedido |
| q | query | Não | string | Filtrar por nome de produto ou SKU |
**Respostas**
- **200** Lista das reservas de estoque — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Visualizar reserva de estoque
Source: https://docs.yampi.com.br/api-reference/logistica/reservas-de-estoque/visualizar-reserva-de-estoque
`GET /{alias}/logistics/stock-reservations/{id}`
Obtém os dados de uma determinada reserva de estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da reserva de estoque |
**Respostas**
- **200** Detalhes do estoque — `application/json`: » StockReservation
- **400** Requisição inválida
- **404** Reserva de estoque não encontrada
# Listar estoques
Source: https://docs.yampi.com.br/api-reference/logistica/estoques/listar-estoques
`GET /{alias}/logistics/stocks`
Lista todos os estoques
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Estoque excluído com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Estoque não encontrado
# Criar estoque
Source: https://docs.yampi.com.br/api-reference/logistica/estoques/criar-estoque
`POST /{alias}/logistics/stocks`
Cria um novo estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » StockRequest
**Respostas**
- **200** Estoque criado com sucesso — `application/json`: » Stock
- **400** Requisição inválida
# Visualizar estoque
Source: https://docs.yampi.com.br/api-reference/logistica/estoques/visualizar-estoque
`GET /{alias}/logistics/stocks/{id}`
Obtém os dados de um determinado estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do estoque |
**Respostas**
- **200** Detalhes do estoque — `application/json`: » Stock
- **400** Requisição inválida
- **404** Estoque não encontrado
# Atualizar estoque
Source: https://docs.yampi.com.br/api-reference/logistica/estoques/atualizar-estoque
`PUT /{alias}/logistics/stocks/{id}`
Atualiza os dados de um determinado estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do estoque |
**Request body**
- `application/json` (obrigatório): » StockRequest
**Respostas**
- **200** Estoque atualizado com sucesso — `application/json`: » Stock
- **400** Requisição inválida
- **404** Estoque não encontrado
# Excluir estoque
Source: https://docs.yampi.com.br/api-reference/logistica/estoques/excluir-estoque
`DELETE /{alias}/logistics/stocks/{id}`
Exclui um determinado estoque
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do estoque |
**Respostas**
- **200** Estoque excluído com sucesso
- **400** Requisição inválida
- **404** Estoque não encontrado
# Listar armazéns
Source: https://docs.yampi.com.br/api-reference/logistica/armazens/listar-armazens
`GET /{alias}/logistics/warehouses`
Listar todos os armazéns cadastrados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de armazéns — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar armazéns
Source: https://docs.yampi.com.br/api-reference/logistica/armazens/criar-armazens
`POST /{alias}/logistics/warehouses`
Cria um novo armazém com os dados especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » WarehouseRequest
**Respostas**
- **200** Lista de armazéns — `application/json`: » Warehouse
- **400** Requisição inválida
# Visualizar armazém
Source: https://docs.yampi.com.br/api-reference/logistica/armazens/visualizar-armazem
`GET /{alias}/logistics/warehouses/{id}`
Obtém as informações de um armazém específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do armazém |
**Respostas**
- **200** Detalhes do armazém — `application/json`: object
- **400** Requisição inválida
- **404** Armazém não encontrado
# Atualizar armazém
Source: https://docs.yampi.com.br/api-reference/logistica/armazens/atualizar-armazem
`PUT /{alias}/logistics/warehouses/{id}`
Atualiza as informações de um armazém específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do armazém |
**Request body**
- `application/json` (obrigatório): » WarehouseRequest
**Respostas**
- **200** Armazém atualizado com sucesso — `application/json`: » Warehouse
- **400** Requisição inválida
- **404** Armazém não encontrado
# Excluir armazém
Source: https://docs.yampi.com.br/api-reference/logistica/armazens/excluir-armazem
`DELETE /{alias}/logistics/warehouses/{id}`
Exclui um armazém específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do armazém |
**Respostas**
- **200** Armazém excluído com sucesso
- **400** Requisição inválida
- **404** Armazém não encontrado
# Consultar CEP
Source: https://docs.yampi.com.br/api-reference/logistica/cep/consultar-cep
`GET /{alias}/logistics/zipcode/{zipcode}`
Consulta as informações de um CEP específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| zipcode | path | Sim | string | CEP para consulta |
**Respostas**
- **200** Informações do CEP — `application/json`: object
- **400** Requisição inválida
- **404** CEP não encontrado
# Simular frete de um pedido
Source: https://docs.yampi.com.br/api-reference/logistica/calcular-frete/simular-frete-de-um-pedido
`POST /{alias}/logistics/shipping-costs`
Recalcula ou simula o custo de frete de um pedido que já existe, utilizando as informações dos produtos contidos no pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ShippingCostRequest
**Respostas**
- **200** Cálculo do frete realizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** CEP não encontrado
# Listar banners
Source: https://docs.yampi.com.br/api-reference/marketing/listar-banners
`GET /{alias}/marketing/banners`
Listar os banners do marketing
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de banners — `application/json`: object
- **404** Banners não encontrados
# Criar banner
Source: https://docs.yampi.com.br/api-reference/marketing/criar-banner
`POST /{alias}/marketing/banners`
Cria um novo banner
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » BannerRequest
**Respostas**
- **201** Banner criado com sucesso — `application/json`: » Banner + » BannerAdditionalResponse
- **400** Dados inválidos fornecidos
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Visualizar banner
Source: https://docs.yampi.com.br/api-reference/marketing/visualizar-banner
`GET /{alias}/marketing/banners/{id}`
Retorna os dados de um banner específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Respostas**
- **200** Detalhes do banner — `application/json`: » Banner + » BannerAdditionalResponse
- **404** Banner não encontrado
# Ordenar ou atualizar banner
Source: https://docs.yampi.com.br/api-reference/marketing/ordenar-ou-atualizar-banner
`PUT /{alias}/marketing/banners/{id}`
Atualiza a ordem dos banners ou as informações de um banner específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Request body**
- `application/json` (obrigatório): » BannerSorting | » BannerRequest
**Respostas**
- **200** Operação realizada com sucesso — `application/json`: » Banner + » BannerAdditionalResponse
- **400** Dados inválidos fornecidos
- **404** Banner não encontrado
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Excluir banner
Source: https://docs.yampi.com.br/api-reference/marketing/excluir-banner
`DELETE /{alias}/marketing/banners/{id}`
Excluir um banner específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Respostas**
- **204** Banner excluído com sucesso
- **404** Banner não encontrada
# Listar categorias que o banner pertence
Source: https://docs.yampi.com.br/api-reference/marketing/listar-categorias-que-o-banner-pertence
`GET /{alias}/marketing/banners/{id}/categories`
Retorna uma lista com os dados das categorias que um banner específico pertence
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Respostas**
- **200** Lista de categorias associadas ao banner — `application/json`: object + » SimplePaginatorWithMeta
- **404** Banner não encontrado
# Listar promoções que o banner pertence
Source: https://docs.yampi.com.br/api-reference/marketing/listar-promoções-que-o-banner-pertence
`GET /{alias}/marketing/banners/{id}/promotions`
Retorna uma lista com os dados das promoções que um banner específico pertence
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Respostas**
- **200** Lista de promoções associadas ao banner — `application/json`: object + » SimplePaginatorWithMeta
- **404** Banner não encontrado
# Listar coleções que o banner pertence
Source: https://docs.yampi.com.br/api-reference/marketing/listar-coleções-que-o-banner-pertence
`GET /{alias}/marketing/banners/{id}/collections`
Retorna uma lista com os dados das coleções que um banner específico pertence
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Respostas**
- **200** Lista de coleções associadas ao banner — `application/json`: object + » SimplePaginatorWithMeta
- **404** Banner não encontrado
# Listar promoções que o banner pertence
Source: https://docs.yampi.com.br/api-reference/marketing/listar-promocoes-que-o-banner-pertence
`GET /{alias}/marketing/banners/{id}/promotions`
Retorna uma lista com os dados das promoções que um banner específico pertence
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Respostas**
- **200** Lista de promoções associadas ao banner — `application/json`: object + » SimplePaginatorWithMeta
- **404** Banner não encontrado
# Listar coleções que o banner pertence
Source: https://docs.yampi.com.br/api-reference/marketing/listar-colecoes-que-o-banner-pertence
`GET /{alias}/marketing/banners/{id}/collections`
Retorna uma lista com os dados das coleções que um banner específico pertence
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do banner |
**Respostas**
- **200** Lista de coleções associadas ao banner — `application/json`: object + » SimplePaginatorWithMeta
- **404** Banner não encontrado
# Listar todos os Brindes de uma loja
Source: https://docs.yampi.com.br/api-reference/marketing/brindes/listar-todos-os-brindes-de-uma-loja
`GET /{alias}/pricing/freebies`
Retorna a lista de Brindes cadastrado
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
| filters | query | Não | » FreebieCriteria | Filtros de regras promocionais |
**Respostas**
- **200** Lista de Brindes retornada com sucesso — `application/json`: object + » SimplePaginatorWithMeta
- **404** Verifique a URL e tente novamente.
# Criar novo Brinde
Source: https://docs.yampi.com.br/api-reference/marketing/brindes/criar-novo-brinde
`POST /{alias}/pricing/freebies`
Cadastra um novo Brinde na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » FreebieRequest
**Respostas**
- **200** Brinde criado com sucesso — `application/json`: » Freebie
- **422** Dados inválidos. Verifique os campos obrigatórios: name, active, start_at, resource_type, rule e resource_id. Pode ocorrer também quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Visualizar os Brindes de uma loja
Source: https://docs.yampi.com.br/api-reference/marketing/brindes/visualizar-os-brindes-de-uma-loja
`GET /{alias}/pricing/freebies/{id}`
Retorna as informações de um Brinde cadastrado
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do brinde |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
**Respostas**
- **200** Brinde encontrado com sucesso — `application/json`: » Freebie
- **404** Brinde não encontrado
# Atualizar um Brinde
Source: https://docs.yampi.com.br/api-reference/marketing/brindes/atualizar-um-brinde
`PUT /{alias}/pricing/freebies/{id}`
Atualiza informações do Brinde na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do brinde |
**Request body**
- `application/json` (obrigatório): » FreebieRequest
**Respostas**
- **200** Brinde atualizado com sucesso — `application/json`: » Freebie
- **422** Dados inválidos. Verifique os campos obrigatórios: name, active, start_at, resource_type, rule e resource_id. Pode ocorrer também quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Excluir um Brinde
Source: https://docs.yampi.com.br/api-reference/marketing/brindes/excluir-um-brinde
`DELETE /{alias}/pricing/freebies/{id}`
Exclui o Brinde na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do brinde |
**Respostas**
- **200** Brinde excluído com sucesso — `application/json`: » Freebie
- **404** Brinde não encontrado
# Excluir todos os Brindes em lote
Source: https://docs.yampi.com.br/api-reference/marketing/brindes/excluir-todos-os-brindes-em-lote
`DELETE /{alias}/pricing/freebies/batch-delete`
Exclui todos os Brindes na loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Todos os Brindes foram excluídos com sucesso — `application/json`: » Freebie
- **404** Verifique a URL e tente novamente
# Listar endereços de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/enderecos/listar-enderecos-de-um-pedido
`GET /{alias}/orders/{orderId}/addresses`
Listar endereços de um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | string | ID do pedido |
**Respostas**
- **200** Conjunto de pedidos disponíveis na loja — `application/json`: object + » SimplePaginatorWithMeta
- **400** Caso esteja utilizando o filtro de busca ao invés de utilizar o endpoint /search/orders.
# Visualizar endereço de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/enderecos/visualizar-endereco-de-um-pedido
`GET /{alias}/orders/{orderId}/addresses/{addressId}`
Listar um endereço de um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | string | ID do pedido |
| addressId | path | Sim | string | ID do endereço |
**Respostas**
- **200** Conjunto de pedidos disponíveis na loja — `application/json`: object
- **400** Caso esteja utilizando o filtro de busca ao invés de utilizar o endpoint /search/orders.
# Atualizar o endereço de entrega do pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/enderecos/atualizar-o-endereco-de-entrega-do-pedido
`PUT /{alias}/orders/{orderId}/addresses/{addressId}`
Atualiza o endereço de entrega de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| addressId | path | Sim | integer | ID do endereço |
**Request body**
- `application/json` (obrigatório): » OrderAddressRequest
**Respostas**
- **200** Endereço de entrega atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido ou endereço não encontrados
# Listar comentários
Source: https://docs.yampi.com.br/api-reference/pedidos/comentarios/listar-comentarios
`GET /{alias}/orders/{orderId}/comments`
Retorna uma lista de comentários associados a um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Lista de comentários retornada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido não encontrado
# Criar comentário de pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/comentarios/criar-comentario-de-pedido
`POST /{alias}/orders/{orderId}/comments`
Cria um novo comentário associado a um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
**Request body**
- `application/json` (obrigatório): » OrderCommentRequest
**Respostas**
- **200** Comentário criado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido não encontrado
# Visualizar detalhes de um comentário de pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/comentarios/visualizar-detalhes-de-um-comentario-de-pedido
`GET /{alias}/orders/{orderId}/comments/{commentId}`
Retorna os detalhes de um comentário específico associado a um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| commentId | path | Sim | integer | ID do comentário |
**Respostas**
- **200** Detalhes do comentário de um pedido — `application/json`: object
- **400** Requisição inválida
- **404** Pedido ou comentário não encontrados
# Atualizar comentário de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/comentarios/atualizar-comentario-de-um-pedido
`PUT /{alias}/orders/{orderId}/comments/{commentId}`
Atualiza o conteúdo de um comentário específico associado a um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| commentId | path | Sim | integer | ID do comentário |
**Request body**
- `application/json` (obrigatório): » OrderCommentRequest
**Respostas**
- **200** Comentário atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido ou comentário não encontrados
# Excluir um comentário de pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/comentarios/excluir-um-comentario-de-pedido
`DELETE /{alias}/orders/{orderId}/comments/{commentId}`
Excluir o conteúdo de um comentário específico associado a um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| commentId | path | Sim | integer | ID do comentário |
**Respostas**
- **200** Comentário excluído com sucesso
- **400** Requisição inválida
- **404** Pedido ou comentário não encontrados
# Listar notas fiscais
Source: https://docs.yampi.com.br/api-reference/pedidos/notas-fiscais/listar-notas-fiscais
`GET /{alias}/orders/{orderId}/invoices`
Retorna uma lista de notas fiscais associadas a um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Lista de notas fiscais retornada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404**
# Criar uma nota fiscal
Source: https://docs.yampi.com.br/api-reference/pedidos/notas-fiscais/criar-uma-nota-fiscal
`POST /{alias}/orders/{orderId}/invoices`
Cria uma nova nota fiscal para um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
**Request body**
- `application/json` (obrigatório): » OrderInvoiceRequest
**Respostas**
- **200** Nota fiscal criada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido não encontrado
# Visualizar detalhes de uma nota fiscal
Source: https://docs.yampi.com.br/api-reference/pedidos/notas-fiscais/visualizar-detalhes-de-uma-nota-fiscal
`GET /{alias}/orders/{orderId}/invoices/{invoiceId}`
Visualizar detalhes de uma nota fiscal de um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | string | ID do pedido |
| invoiceId | path | Sim | string | ID da nota fiscal |
**Respostas**
- **200** Detalhes de uma nota fiscal de um pedido — `application/json`: object
# Atualizar uma nota fiscal
Source: https://docs.yampi.com.br/api-reference/pedidos/notas-fiscais/atualizar-uma-nota-fiscal
`PUT /{alias}/orders/{orderId}/invoices/{invoiceId}`
Atualiza uma nota fiscal específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| invoiceId | path | Sim | integer | ID da nota fiscal |
**Request body**
- `application/json` (obrigatório): » OrderInvoiceRequest
**Respostas**
- **200** Nota fiscal atualizada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido ou nota fiscal não encontrados
# Excluir uma nota fiscal
Source: https://docs.yampi.com.br/api-reference/pedidos/notas-fiscais/excluir-uma-nota-fiscal
`DELETE /{alias}/orders/{orderId}/invoices/{invoiceId}`
Exclui uma nota fiscal específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| invoiceId | path | Sim | integer | ID da nota fiscal |
**Respostas**
- **200** Nota fiscal excluída com sucesso
- **400** Requisição inválida
- **404** Pedido ou nota fiscal não encontrados
# Listar etiquetas de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/etiquetas/listar-etiquetas-de-um-pedido
`GET /{alias}/orders/{orderId}/labels`
Lista todas as etiquetas de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Etiquetas listadas com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido não encontrado
# Criar etiqueta
Source: https://docs.yampi.com.br/api-reference/pedidos/etiquetas/criar-etiqueta
`POST /{alias}/orders/{orderId}/labels`
Cria uma nova etiqueta para um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
**Request body**
- `application/json` (obrigatório): » OrderLabelRequest
**Respostas**
- **200** Etiqueta criada com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido não encontrado
# Visualizar detalhes de uma etiqueta
Source: https://docs.yampi.com.br/api-reference/pedidos/etiquetas/visualizar-detalhes-de-uma-etiqueta
`GET /{alias}/orders/{orderId}/labels/{labelId}`
Visualizar detalhes de uma etiqueta de um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | string | ID do pedido |
| labelId | path | Sim | string | ID da etiqueta |
**Respostas**
- **200** Detalhes de uma etiqueta de um pedido — `application/json`: object
# Atualizar etiqueta
Source: https://docs.yampi.com.br/api-reference/pedidos/etiquetas/atualizar-etiqueta
`PUT /{alias}/orders/{orderId}/labels/{labelId}`
Atualiza uma etiqueta existente para um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| labelId | path | Sim | integer | ID da etiqueta |
**Request body**
- `application/json` (obrigatório): » OrderLabelRequest
**Respostas**
- **200** Detalhes de uma etiqueta de um pedido — `application/json`: object
- **400** Requisição inválida
- **404** Pedido ou etiqueta não encontrados
# Excluir etiqueta
Source: https://docs.yampi.com.br/api-reference/pedidos/etiquetas/excluir-etiqueta
`DELETE /{alias}/orders/{orderId}/labels/{labelId}`
Exclui uma etiqueta existente de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| labelId | path | Sim | integer | ID da etiqueta |
**Respostas**
- **200** Etiqueta excluída com sucesso
- **400** Requisição inválida
- **404** Pedido ou etiqueta não encontrados
# Exibir rastreamento
Source: https://docs.yampi.com.br/api-reference/pedidos/rastreamento/exibir-rastreamento
`GET /{alias}/orders/{orderId}/tracking`
Exibe os detalhes de um determinado rastreamento da entrega de um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | string | ID do pedido |
**Respostas**
- **200** Detalhes do rastreamento de um pedido — `application/json`: object + » SimplePaginatorWithMeta
# Criar status de rastreamento
Source: https://docs.yampi.com.br/api-reference/pedidos/rastreamento/criar-status-de-rastreamento
`POST /{alias}/orders/{orderId}/tracking`
Criar status de rastreamento de um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | string | ID do pedido |
**Request body**
- `application/json` (obrigatório): » OrderTrackingRequest
**Respostas**
- **200** Detalhes do rastreamento de um pedido — `application/json`: » OrderTracking + » OrderTrackingAdditionalResponse
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 3 requisições por minuto.**
# Rastrear pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/rastreamento/rastrear-pedido
`GET /{alias}/orders/{id}/tracking`
Obtém o histórico de rastreamento de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Histórico de rastreamento do pedido — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404** Pedido não encontrado
# Listar e-mails
Source: https://docs.yampi.com.br/api-reference/pedidos/emails/listar-e-mails
`GET /{alias}/orders/{orderId}/emails`
Lista os e-mails relacionados a um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Lista de e-mails — `application/json`: object
- **400** Requisição inválida
- **404** Pedido não encontrado
# Visualizar e-mail
Source: https://docs.yampi.com.br/api-reference/pedidos/emails/visualizar-e-mail
`GET /{alias}/orders/{orderId}/emails/{messageId}`
Recupera os detalhes de um e-mail específico de um pedido
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| orderId | path | Sim | integer | ID do pedido |
| messageId | path | Sim | integer | ID da mensagem |
**Respostas**
- **200** Detalhes do e-mail — `application/json`: » OrderEmail
- **400** Requisição inválida
- **404** Pedido ou e-mail não encontrados
# Visão Geral
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/introduction
## Introdução
Esta página documenta os **includes** disponíveis para os recursos promocionais da API, sob o namespace `/pricing/*`, que abrangem:
- Combos (compre junto)
- Promoções de produtos
- Upsells
- Cupons de desconto
O parâmetro `include` permite expandir a resposta da API com dados relacionados, otimizando o consumo e evitando múltiplas chamadas subsequentes.
---
## Combos [`ver na documentação →`](https://docs.yampi.com.br/api-reference/promo%C3%A7%C3%B5es--combos/listar-combos-de-produtos)
Combos são promoções do tipo "compre junto", onde a compra combinada de produtos gera um benefício ou desconto.
### Includes disponíveis
| Include | Descrição |
|------------|--------------------------------------------|
| `products` | Produtos que fazem parte do combo |
### Endpoints
```http
GET /v2/{alias}/pricing/combos
GET /v2/{alias}/pricing/combos/{id}
```
### Exemplo com include
```http
GET /v2/{alias}/pricing/combos?include=products
```
---
## Promoções de Produtos [`ver na documentação →`](https://docs.yampi.com.br/api-reference/promo%C3%A7%C3%B5es--produtos/listar-promo%C3%A7%C3%B5es)
Promoções criadas para aplicar descontos com base em regras relacionadas a categorias, marcas, coleções ou produtos específicos.
### Includes disponíveis
| Include | Descrição |
|--------------|---------------------------------------------------|
| `categories` | Categorias vinculadas à promoção |
| `collections`| Coleções aplicáveis |
| `brands` | Marcas incluídas na promoção |
| `products` | Produtos individuais com desconto |
| `banners` | Banners promocionais vinculados |
### Endpoints
```http
GET /v2/{alias}/pricing/promotions
GET /v2/{alias}/pricing/promotions/{id}
```
### Exemplo com include
```http
GET /v2/{alias}/pricing/promotions?include=products,categories,banners
```
---
## Upsells [`ver na documentação →`](https://docs.yampi.com.br/api-reference/promo%C3%A7%C3%B5es--upsells/listar-upsells)
Upsells são ofertas sugeridas com base em um produto adquirido, apresentando produtos adicionais com possibilidade de desconto.
### Includes disponíveis
| Include | Descrição |
|---------------------|--------------------------------------------------|
| `purchased_product` | Produto que ativa o upsell |
| `suggested_product` | Produto sugerido como upsell |
| `promocode` | Cupom promocional associado (se aplicável) |
### Endpoint
```http
GET /v2/{alias}/pricing/upsells
```
### Exemplo com include
```http
GET /v2/{alias}/pricing/upsells?include=suggested_product,promocode
```
---
## Cupons de Desconto [`ver na documentação →`](https://docs.yampi.com.br/api-reference/promo%C3%A7%C3%B5es--cupons-de-desconto/listar-cupons)
Cupons de desconto são regras promocionais aplicáveis a compras específicas. Podem ter condições ligadas a produtos, coleções, categorias, marcas, formas de pagamento ou até a um cliente individual.
### Includes disponíveis
| Include | Descrição |
|--------------|-------------------------------------------------------------|
| `customer` | Cliente específico associado ao cupom (quando for o caso) |
| `categories` | Categorias nas quais o cupom pode ser aplicado |
| `collections`| Coleções onde o cupom é válido |
| `brand` | Marca específica (campo singular) |
| `products` | Produtos que aceitam o uso do cupom |
| `payments` | Meios de pagamento válidos para o cupom |
### Endpoints
```http
GET /v2/{alias}/pricing/promocodes
GET /v2/{alias}/pricing/promocodes/{id}
```
### Exemplo com include
```http
GET /v2/{alias}/pricing/promocodes?include=products,categories,brand
```
# Listar pedidos
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/listar-pedidos
`GET /{alias}/orders`
Lista os pedidos de uma loja em um determinado período, respeitando determinados filtros
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
| filters | query | Não | » OrderCriteria | Filtros de pedidos |
**Respostas**
- **200** Conjunto de pedidos disponíveis na loja — `application/json`: object
- **400** Caso esteja utilizando o filtro de busca ao invés de utilizar o endpoint /search/orders
Este endpoint contém limite de registros por **página**.
O valor máximo permitido para o parâmetro `limit` é **100 registros por página**. Saiba mais [aqui](https://docs.yampi.com.br/api-reference/introduction#pagina%C3%A7%C3%A3o)
# Criar pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/criar-pedido
`POST /{alias}/orders`
Cria um pedido na loja (é necessário ter um cliente pré-cadastrado)
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » OrderRequest
**Respostas**
- **200** Pedido criado com sucesso — `application/json`: » Order
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Visualizar detalhes de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/visualizar-detalhes-de-um-pedido
`GET /{alias}/orders/{id}`
Visualiza os detalhes de um determinado pedido a partir do seu ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
**Respostas**
- **200** Detalhes do pedido — `application/json`: object
- **404**
# Atualizar pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/atualizar-pedido
`PUT /{alias}/orders/{id}`
Atualiza os detalhes de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Pedido atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Pedido não encontrado
- **422** Dados inválidos. Pode ocorrer quando campos obrigatórios estão ausentes, o formato é incorreto, ou quando o valor enviado resulta em uma string vazia após sanitização e normalização.
# Listar transações de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/listar-transacoes-de-um-pedido
`GET /{alias}/orders/{id}/transactions`
Retorna uma lista de transações associadas a um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Lista de transações do pedido — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404**
# Listar produtos de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/listar-produtos-de-um-pedido
`GET /{alias}/orders/{id}/items`
Retorna a lista de produtos de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Lista de produtos do pedido — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
- **404**
# Listar histórico de status de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/listar-historico-de-status-de-um-pedido
`GET /{alias}/orders/{id}/statuses`
Retorna o histórico de status de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Histórico de status do pedido — `application/json`: object
- **400** Requisição inválida
- **404**
# Listar embalagens de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/listar-embalagens-de-um-pedido
`GET /{alias}/orders/{id}/boxes`
Retorna uma lista de embalagens associadas a um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
**Respostas**
- **200** Lista de embalagens do pedido — `application/json`: object
- **400** Requisição inválida
- **404**
# Exportar pedidos
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/exportar-pedidos
`GET /{alias}/orders/export`
Exporta pedidos com base nos filtros fornecidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| status_id | query | Não | integer | Filtrar por ID do status |
| q | query | Não | string | Consulta de busca |
| channel | query | Não | string | Filtrar por canal |
| affiliation_id | query | Não | integer | Filtrar por ID de afiliação |
| utm_campaign | query | Não | string | Filtrar por campanha UTM |
| utm_source | query | Não | string | Filtrar por fonte UTM |
| product_id | query | Não | integer | Filtrar por ID de produto |
| promocode_id | query | Não | integer | Filtrar por ID de código promocional |
**Respostas**
- **200** O sistema enviará para o usuário um e-mail com o link para download da planilha com os registros — `application/json`: object
- **400** Requisição inválida
# Listar filtros de busca de pedidos
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/listar-filtros-de-busca-de-pedidos
`GET /{alias}/orders/filters`
Retorna uma lista de filtros disponíveis para busca de pedidos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de filtros de busca — `application/json`: » OrderFilters
- **400** Requisição inválida
# Gerar declaração de conteúdo de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/gerar-declaracao-de-conteudo-de-um-pedido
`GET /{alias}/html/orders/{id}/content-statement/{token}`
Gera a declaração de conteúdo de um pedido específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
| token | path | Sim | string | Token de autenticação |
**Respostas**
- **200** Declaração de conteúdo gerada
- **400** Requisição inválida
- **404** Pedido não encontrado
# Exportar pedidos para um determinado serviço
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/exportar-pedidos-para-um-determinado-servico
`GET /{alias}/orders/export/{service}`
Exporta pedidos para um serviço específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| service | path | Sim | string | Nome do serviço para exportação |
**Respostas**
- **200** Pedidos exportados com sucesso — `application/json`: object
- **400** Requisição inválida
# Sincronizar as tags de um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/sincronizar-as-tags-de-um-pedido
`PUT /{alias}/orders/{id}/tags`
Substitui a lista de tags do pedido pela enviada. Envie uma lista vazia para remover todas. As tags são gravadas em minúsculo.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do pedido |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **204** Tags sincronizadas
- **404**
- **422** Payload inválido
# Adicionar tags a um pedido
Source: https://docs.yampi.com.br/api-reference/pedidos/pedido/adicionar-tags-a-um-pedido
`POST /{alias}/orders/{id}/tags`
Acrescenta as tags enviadas sem remover as existentes. Idempotente: reenviar a mesma tag não duplica.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | — |
| id | path | Sim | integer | — |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **204** Tags adicionadas
- **422** Payload inválido
# Endpoint de Ping
Source: https://docs.yampi.com.br/api-reference/sistema/endpoint-de-ping
`GET /ping`
Retorna se API está OK
**Respostas**
- **200** Retorna se API está OK — `application/json`: object
# Listar combos de produtos
Source: https://docs.yampi.com.br/api-reference/promocoes/combos/listar-combos-de-produtos
`GET /{alias}/pricing/combos`
Obtém a lista de combos de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| active | query | Não | boolean | Filtrar combos ativos |
| discount_type | query | Não | string | Tipo de desconto (p para percentual, v para valor) |
| name | query | Não | string | Nome do combo de produtos |
| start_at | query | Não | string | Data de início |
| end_at | query | Não | string | Data de término |
| discount_value | query | Não | number | Valor do desconto |
| products_ids | query | Não | array de integer | IDs dos produtos |
**Respostas**
- **200** Lista de combos de produtos — `application/json`: object + » SimplePaginatorWithMeta
- **404** Combos não encontrados
# Criar combo de produtos
Source: https://docs.yampi.com.br/api-reference/promocoes/combos/criar-combo-de-produtos
`POST /{alias}/pricing/combos`
Cria um novo combo de produtos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ComboRequest
**Respostas**
- **201** Combo de produtos criado com sucesso — `application/json`: » Combo
- **400** Requisição inválida
# Visualizar combo de produtos
Source: https://docs.yampi.com.br/api-reference/promocoes/combos/visualizar-combo-de-produtos
`GET /{alias}/pricing/combos/{id}`
Obtém os detalhes de um combo de produtos específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do combo de produtos |
**Respostas**
- **200** Detalhes do combo de produtos — `application/json`: » Combo
- **404** Combo não encontrado
# Atualizar combo de produtos
Source: https://docs.yampi.com.br/api-reference/promocoes/combos/atualizar-combo-de-produtos
`PUT /{alias}/pricing/combos/{id}`
Atualiza os detalhes de um combo de produtos específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do combo de produtos |
**Request body**
- `application/json` (obrigatório): » ComboRequest
**Respostas**
- **200** Combo atualizado com sucesso — `application/json`: » Combo
- **400** Dados inválidos fornecidos
- **404** Combo de produtos não encontrado
Envie **somente os campos alterados**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir combo de produtos
Source: https://docs.yampi.com.br/api-reference/promocoes/combos/excluir-combo-de-produtos
`DELETE /{alias}/pricing/combos/{id}`
Exclui um combo específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do combo de produtos |
**Respostas**
- **204** Combo excluído com sucesso
- **404** Combo não encontrado
# Criar regra de cashback
Source: https://docs.yampi.com.br/api-reference/cashback/rules/criar-regras-cashback
`POST /{alias}/pricing/cashbacks/rules`
Retorna a regra de cashback da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CashbackRuleRequest
**Respostas**
- **200** Regra de cashback criada com sucesso — `application/json`: » CashbackRule
- **400** Dados inválidos fornecidos
- **422** Verifique os campos obrigatórios e os formatos esperados.
# Visualizar Regra de Cashback
Source: https://docs.yampi.com.br/api-reference/cashback/rules/listar-regras-cashback
`GET /{alias}/pricing/cashbacks/rules`
Retorna as regras do cashback da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Retorna os detalhes das regras de um cashback — `application/json`: » CashbackRule
- **400** Dados inválidos fornecidos.
- **422** Verifique os campos obrigatórios e os formatos esperados.
# Listar Cashbacks
Source: https://docs.yampi.com.br/api-reference/cashback/listar-cashbacks
`GET /{alias}/pricing/cashbacks`
Listar todos os Cashbacks cadastrados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de Cashbacks — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Atualizar cashback
Source: https://docs.yampi.com.br/api-reference/cashback/criar-cashbacks
`POST /{alias}/pricing/cashbacks`
Atualiza os detalhes de um cashback específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » CashbackRequest
**Respostas**
- **200** Cashback criado com sucesso — `application/json`: » Cashback
- **404** Cashback não encontrado
- **422** Verifique os campos obrigatórios e os formatos esperados.
# Visualizar Cashback
Source: https://docs.yampi.com.br/api-reference/cashback/visualizar-cashbacks
`GET /{alias}/pricing/cashbacks/{id}`
Retorna os detalhes de um cashback específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cashback |
**Respostas**
- **200** Retorna os detalhes do cashback — `application/json`: » Cashback
- **400** Dados inválidos fornecidos.
- **404** Cashback não encontrado
# Atualizar cashback
Source: https://docs.yampi.com.br/api-reference/cashback/atualizar-cashbacks
`PUT /{alias}/pricing/cashbacks/{id}`
Atualiza os detalhes de um cashback específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cashback |
**Request body**
- `application/json` (obrigatório): » CashbackRequest
**Respostas**
- **200** Cashback atualizado com sucesso — `application/json`: » Cashback
- **400** Dados inválidos fornecidos.
- **404** Cashback não encontrado
- **422** Verifique os campos obrigatórios e os formatos esperados.
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Deletar um cashback
Source: https://docs.yampi.com.br/api-reference/cashback/excluir-cashbacks
`DELETE /{alias}/pricing/cashbacks/{id}`
Deleta um cashback específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cashback |
**Respostas**
- **200** Cashback deletado com sucesso — `application/json`: » Cashback
- **400** Dados inválidos fornecidos
- **404** Cashback de produtos não encontrado
# Listar regras de frete grátis
Source: https://docs.yampi.com.br/api-reference/promocoes/frete-gratis/listar-regras-de-frete-gratis
`GET /{alias}/pricing/free-shipment`
Retorna uma lista de regras de frete grátis
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (opcional): object
**Respostas**
- **200** Lista de regras de frete grátis — `application/json`: object + » BaseTimestamp
- **404** Regra de frete não encontrada
# Criar ou atualizar regras de frete grátis
Source: https://docs.yampi.com.br/api-reference/promocoes/frete-gratis/criar-ou-atualizar-regras-de-frete-gratis
`POST /{alias}/pricing/free-shipment`
Cria ou atualiza regras de frete grátis
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » FreeShipmentRequest
**Respostas**
- **200** Regras de frete grátis criadas ou atualizadas com sucesso — `application/json`: » FreeShipment
- **400** Requisição inválida
# Listar descontos progressivos
Source: https://docs.yampi.com.br/api-reference/promocoes/desconto-progressivo/listar-descontos-progressivos
`GET /{alias}/pricing/progressive-discounts`
Retorna uma lista de descontos progressivos
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| active | query | Não | boolean | — |
| min_value | query | Não | number | — |
| max_value | query | Não | number | — |
| start_at | query | Não | string | — |
| end_at | query | Não | string | — |
| percent | query | Não | number | — |
**Respostas**
- **200** Lista de descontos progressivos — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar desconto progressivo
Source: https://docs.yampi.com.br/api-reference/promocoes/desconto-progressivo/criar-desconto-progressivo
`POST /{alias}/pricing/progressive-discounts`
Cria um novo desconto progressivo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ProgressiveDiscountRequest
**Respostas**
- **201** Desconto progressivo criado com sucesso — `application/json`: » ProgressiveDiscount
- **400** Requisição inválida
# Listar upsells
Source: https://docs.yampi.com.br/api-reference/promocoes/upsells/listar-upsells
`GET /{alias}/pricing/upsells`
Lista os upsells disponíveis
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| q | query | Não | string | Query para filtrar os upsells |
**Respostas**
- **200** Lista de upsells — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar upsell
Source: https://docs.yampi.com.br/api-reference/promocoes/upsells/criar-upsell
`POST /{alias}/pricing/upsells`
Cria um novo upsell
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » UpsellRequest
**Respostas**
- **200** Upsell criado com sucesso — `application/json`: object
- **400** Requisição inválida
# Visualizar um upsell
Source: https://docs.yampi.com.br/api-reference/promocoes/upsells/visualizar-um-upsell
`GET /{alias}/pricing/upsells/{id}`
Visualiza um upsell específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do upsell |
**Respostas**
- **200** Detalhes do upsell — `application/json`: object
- **404** Upsell não encontrada
# Atualizar um upsell
Source: https://docs.yampi.com.br/api-reference/promocoes/upsells/atualizar-um-upsell
`PUT /{alias}/pricing/upsells/{id}`
Atualizar um upsell
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do upsell |
**Request body**
- `application/json` (obrigatório): » UpsellRequest
**Respostas**
- **200** Upsell atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Upsell não encontrado
# Deletar Upsell
Source: https://docs.yampi.com.br/api-reference/promocoes/upsells/deletar-upsell
`DELETE /{alias}/pricing/upsells/{id}`
Deleta um Upsell específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Upsell |
**Respostas**
- **204** Upsell deletado com sucesso — `application/json`: » Upsell
- **400** Dados inválidos fornecidos
- **404** Upsell não encontrado
# Listar cupons
Source: https://docs.yampi.com.br/api-reference/promocoes/cupons/listar-cupons
`GET /{alias}/pricing/promocodes`
Retorna uma lista de cupons de desconto de acordo com os filtros especificados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
| filters | query | Não | » PromocodeCriteria | Filtros de Cupons |
**Respostas**
- **200** Lista de cupons retornada com sucesso — `application/json`: object
- **404** Cupons não encontrados
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 120 requisições por minuto.**
# Criar cupom
Source: https://docs.yampi.com.br/api-reference/promocoes/cupons/criar-cupom
`POST /{alias}/pricing/promocodes`
Cria um novo cupom de desconto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » PromocodeRequest
**Respostas**
- **201** Cupom criado com sucesso — `application/json`: » Promocode
- **400** Dados inválidos fornecidos
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 60 requisições por minuto.**
# Visualizar cupom
Source: https://docs.yampi.com.br/api-reference/promocoes/cupons/visualizar-cupom
`GET /{alias}/pricing/promocodes/{id}`
Obtém detalhes de um cupom de desconto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cupom |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
**Respostas**
- **200** Detalhes do cupom — `application/json`: » Promocode + » PromocodeAdditionalResponse + » Restrictions
- **404** Cupom não encontrado
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 120 requisições por minuto.**
# Atualizar cupom
Source: https://docs.yampi.com.br/api-reference/promocoes/cupons/atualizar-cupom
`PUT /{alias}/pricing/promocodes/{id}`
Atualiza os detalhes de um cupom de desconto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cupom |
**Request body**
- `application/json` (obrigatório): » PromocodeRequest
**Respostas**
- **200** Cupom atualizado com sucesso — `application/json`: » Promocode
- **400** Dados inválidos fornecidos
- **404** Cupom não encontrado
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 30 requisições por minuto.**
# Excluir cupom
Source: https://docs.yampi.com.br/api-reference/promocoes/cupons/excluir-cupom
`DELETE /{alias}/pricing/promocodes/{id}`
Exclui um cupom de desconto específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cupom |
**Respostas**
- **204** Cupom excluído com sucesso
- **404** Cupom não encontrado
Esta API possui limites de requisições (rate limits) para garantir estabilidade.
Cada endpoint tem um limite específico de chamadas por minuto.
**Este endpoint em específico tem um limite de 30 requisições por minuto.**
# Listar clientes que usaram o cupom
Source: https://docs.yampi.com.br/api-reference/promocoes/cupons/listar-clientes-que-usaram-o-cupom
`GET /{alias}/pricing/promocodes/{id}/customers`
Retorna uma lista de clientes que usaram um cupom específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do cupom |
**Respostas**
- **200** Lista de clientes que usaram o cupom — `application/json`: » PromocodeCustomer
- **404** Cupom não encontrado
# Listar promoções
Source: https://docs.yampi.com.br/api-reference/promocoes/promocao/listar-promocoes
`GET /{alias}/pricing/promotions`
Lista todas as promoções
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » PromotionRequest
**Respostas**
- **200** Lista de promoções — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/promocao/criar-promocao
`POST /{alias}/pricing/promotions`
Cria uma nova promoção
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » PromotionRequest
**Respostas**
- **201** Promoção criada com sucesso — `application/json`: » Promotion
- **400** Requisição inválida
# Visualizar promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/promocao/visualizar-promocao
`GET /{alias}/pricing/promotions/{id}`
Obtém os detalhes de uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Respostas**
- **200** Detalhes da promoção — `application/json`: » Promotion + » PromotionAdditionalResponse
- **404** Promoção não encontrada
# Atualizar promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/promocao/atualizar-promocao
`PUT /{alias}/pricing/promotions/{id}`
Atualiza os detalhes de uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Request body**
- `application/json` (obrigatório): » Promotion
**Respostas**
- **200** Detalhes da promoção — `application/json`: » Promotion + » PromotionAdditionalResponse + » Restrictions
- **400** Dados inválidos fornecidos
- **404** Promoção não encontrada
# Excluir promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/promocao/excluir-promocao
`DELETE /{alias}/pricing/promotions/{id}`
Exclui uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Respostas**
- **204** Promoção excluída com sucesso
- **404** Promoção não encontrada
# Listar produtos da promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/promocao/listar-produtos-da-promocao
`GET /{alias}/pricing/promotions/{id}/products`
Obtém a lista de produtos associados a uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Respostas**
- **200** Lista de produtos da promoção — `application/json`: object + » SimplePaginatorWithMeta
- **404** Promoção ou produtos não encontrados
# Listar promoções
Source: https://docs.yampi.com.br/api-reference/promocoes/produtos/listar-promocoes
`GET /{alias}/pricing/promotions`
Lista todas as promoções
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » PromotionRequest
**Respostas**
- **200** Lista de promoções — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/produtos/criar-promocao
`POST /{alias}/pricing/promotions`
Cria uma nova promoção
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » PromotionRequest
**Respostas**
- **201** Promoção criada com sucesso — `application/json`: » Promotion
- **400** Requisição inválida
# Visualizar promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/produtos/visualizar-promocao
`GET /{alias}/pricing/promotions/{id}`
Obtém os detalhes de uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Respostas**
- **200** Detalhes da promoção — `application/json`: » Promotion + » PromotionAdditionalResponse
- **404** Promoção não encontrada
# Atualizar promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/produtos/atualizar-promocao
`PUT /{alias}/pricing/promotions/{id}`
Atualiza os detalhes de uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Request body**
- `application/json` (obrigatório): » Promotion
**Respostas**
- **200** Detalhes da promoção — `application/json`: » Promotion + » PromotionAdditionalResponse + » Restrictions
- **400** Dados inválidos fornecidos
- **404** Promoção não encontrada
# Excluir promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/produtos/excluir-promocao
`DELETE /{alias}/pricing/promotions/{id}`
Exclui uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Respostas**
- **204** Promoção excluída com sucesso
- **404** Promoção não encontrada
# Listar produtos da promoção
Source: https://docs.yampi.com.br/api-reference/promocoes/produtos/listar-produtos-da-promocao
`GET /{alias}/pricing/promotions/{id}/products`
Obtém a lista de produtos associados a uma promoção específica
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID da promoção |
**Respostas**
- **200** Lista de produtos da promoção — `application/json`: object + » SimplePaginatorWithMeta
- **404** Promoção ou produtos não encontrados
# Listar Order Bumps
Source: https://docs.yampi.com.br/api-reference/promocoes/orderbump/listar-order-bumps
`GET /{alias}/pricing/order-bumps`
Listar todos os Order Bumps cadastrados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
| filters | query | Não | » OrderBumpCriteria | Filtros de OrderBump |
**Respostas**
- **200** Lista de Order Bumps — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Visualizar Order Bump
Source: https://docs.yampi.com.br/api-reference/promocoes/orderbump/visualizar-order-bump
`GET /{alias}/pricing/order-bumps/{id}`
Retorna os detalhes de um Order Bump específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Order Bump |
| include | query | Não | array de string | Incluir relacionamentos adicionais |
**Respostas**
- **200** Retorna os detalhes do Order Bump — `application/json`: » OrderBump
- **400** Dados inválidos fornecidos.
- **404** Order Bump não encontrado
# Atualizar Order Bump
Source: https://docs.yampi.com.br/api-reference/promocoes/orderbump/atualizar-order-bump
`PUT /{alias}/pricing/order-bumps/{id}`
Atualiza os detalhes de um Order Bump específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Order Bump |
**Request body**
- `application/json` (obrigatório): » OrderBumpRequest
**Respostas**
- **200** Order Bump atualizado com sucesso — `application/json`: » OrderBump
- **400** Dados inválidos fornecidos.
- **404** Order Bump não encontrado
- **422** Verifique os campos obrigatórios e os formatos esperados.
# Deletar Order Bump
Source: https://docs.yampi.com.br/api-reference/promocoes/orderbump/deletar-order-bump
`DELETE /{alias}/pricing/order-bumps/{id}`
Deleta um Order Bump específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Order Bump |
**Respostas**
- **204** Order Bump deletado com sucesso
- **400** Dados inválidos fornecidos
- **404** Order Bump não encontrado
# Criar Order Bump
Source: https://docs.yampi.com.br/api-reference/promocoes/orderbump/criar-order-bump
`POST /{alias}/pricing/order-bumps`
Cria um novo Order Bump
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » OrderBumpRequest
**Respostas**
- **200** Order Bump criado com sucesso — `application/json`: » OrderBump
- **400** Requisição inválida
- **422** Verifique os campos obrigatórios e os formatos esperados.
# Deletar todos os Order Bumps
Source: https://docs.yampi.com.br/api-reference/promocoes/orderbump/deletar-todos-os-order-bumps
`DELETE /{alias}/pricing/order-bumps/batch-delete`
Deleta todos os Order Bump em massa
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **204** Todos os Order Bumps foram deletados com sucesso
- **400** Dados inválidos fornecidos
# Atualizar ordenação de Order Bumps
Source: https://docs.yampi.com.br/api-reference/promocoes/orderbump/atualizar-ordenacao-de-order-bumps
`PUT /{alias}/pricing/order-bumps/order`
Atualiza a ordem de exibição dos Order Bumps através de um array de IDs na posição desejada
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Ordenação atualizada com sucesso — `application/json`: object
- **400** Dados inválidos fornecidos
- **422** Validação falhou - verifique se todos os IDs existem e pertencem à loja
# Visualizar extrato de cashback
Source: https://docs.yampi.com.br/api-reference/promocoes/carteira/visualizar-extrato-de-cashback
`GET /{alias}/pricing/wallet/statement/{customerID}`
Retorna extrato com o histórico de um cashback de um cliente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| customerID | path | Sim | integer | ID do cliente que possui cashbacks. |
**Respostas**
- **200** Extrato do cashback retornado com sucesso — `application/json`: object
- **400** Requisição inválida
# Visualizar saldo de cashback do cliente
Source: https://docs.yampi.com.br/api-reference/promocoes/carteira/visualizar-saldo-de-cashback-do-cliente
`GET /{alias}/pricing/wallet/balance`
Retorna o saldo do cashback do cliente. É necessário informar ao menos um dos parâmetros: customer_id, customer_email_hash ou customer_email.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| customer_id | query | Não | integer | ID do cliente. Obrigatório quando customer_email_hash e customer_email não são informados. |
| customer_email_hash | query | Não | string | Hash do e-mail do cliente. Obrigatório quando customer_id e customer_email não são informados. |
| customer_email | query | Não | string | E-mail do cliente. Obrigatório quando customer_id e customer_email_hash não são informados. |
**Respostas**
- **200** Saldo do cashback retornado com sucesso — `application/json`: object
- **400** Requisição inválida
- **422** Nenhum parâmetro de identificação do cliente foi informado
# Criar transação na carteira de cashback
Source: https://docs.yampi.com.br/api-reference/promocoes/carteira/criar-transacao-na-carteira-de-cashback
`POST /{alias}/pricing/wallet/transaction`
Cria uma transação de crédito ou débito na carteira de cashback do cliente. O sufixo ' (via API)' é adicionado automaticamente à descrição. Rate limit: 5 requisições por minuto.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): object
**Respostas**
- **200** Transação criada com sucesso — `application/json`: object
- **422** Erro de validação
- **429** Rate limit excedido
# Listar grupos de usuários
Source: https://docs.yampi.com.br/api-reference/usuarios/grupos/listar-grupos-de-usuarios
`GET /{alias}/users/groups`
Lista os grupos de usuários da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista dos grupos de usuários cadastrados — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar grupo de usuários
Source: https://docs.yampi.com.br/api-reference/usuarios/grupos/criar-grupo-de-usuarios
`POST /{alias}/users/groups`
Cria um novo grupo de usuários com permissões específicas
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » UserGroupRequest
**Respostas**
- **200** Detalhes do grupo de usuários — `application/json`: object
- **400** Requisição inválida
# Visualizar grupo de usuários
Source: https://docs.yampi.com.br/api-reference/usuarios/grupos/visualizar-grupo-de-usuarios
`GET /{alias}/users/groups/{id}`
Obtém os dados de um grupo de usuários específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo de usuário |
**Respostas**
- **200** Detalhes do grupo de usuários — `application/json`: object
- **400** Requisição inválida
- **404**
# Atualizar grupo de usuários
Source: https://docs.yampi.com.br/api-reference/usuarios/grupos/atualizar-grupo-de-usuarios
`PUT /{alias}/users/groups/{id}`
Atualiza os dados de um grupo de usuários específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo de usuários |
**Request body**
- `application/json` (obrigatório): » UserGroupRequest
**Respostas**
- **200** Grupo de usuários atualizado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Grupo de usuários não encontrado
# Excluir grupo de usuários
Source: https://docs.yampi.com.br/api-reference/usuarios/grupos/excluir-grupo-de-usuarios
`DELETE /{alias}/users/groups/{id}`
Exclui um grupo de usuários específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do grupo de usuários |
**Respostas**
- **200** Grupo de usuários excluído com sucesso
- **400** Requisição inválida
- **404** Grupo de usuários não encontrado
# Listar convites de usuários
Source: https://docs.yampi.com.br/api-reference/usuarios/convites/listar-convites-de-usuarios
`GET /{alias}/users/invites`
Obtém a lista de convites de usuários enviados para a loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de convites de usuários — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Criar convite de usuário
Source: https://docs.yampi.com.br/api-reference/usuarios/convites/criar-convite-de-usuario
`POST /{alias}/users/invites`
Cria um novo convite para um usuário específico participar de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » UserInvite
**Respostas**
- **200** Convite enviado com sucesso — `application/json`: object
- **400** Requisição inválida
- **409** Usuário já convidado ou já é membro
# Visualizar convite de usuário
Source: https://docs.yampi.com.br/api-reference/usuarios/convites/visualizar-convite-de-usuario
`GET /{alias}/users/invites/{id}`
Obtém os detalhes de um convite de usuário específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do convite |
**Respostas**
- **200** Detalhes do convite de usuário — `application/json`: object
- **400** Requisição inválida
- **404** Convite de usuário não encontrado
# Excluir convite
Source: https://docs.yampi.com.br/api-reference/usuarios/convites/excluir-convite
`DELETE /{alias}/users/invites/{id}`
Excluir um convite de um usuário específico para participar de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do convite |
**Respostas**
- **200** Convite excluído com sucesso
- **400** Requisição inválida
# Reenviar um convite de usuário
Source: https://docs.yampi.com.br/api-reference/usuarios/convites/reenviar-um-convite-de-usuario
`GET /{alias}/users/invites/{id}/resend`
Reenvia o convite de um usuário especificado para participar de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do convite |
**Respostas**
- **200** Convite reenviado com sucesso — `application/json`: object
- **400** Requisição inválida
- **404** Convite de usuário não encontrado
# Listar permissões
Source: https://docs.yampi.com.br/api-reference/usuarios/permissoes/listar-permissoes
`GET /{alias}/users/permissions`
Lista todas as permissões
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de todas as permissões — `application/json`: object
- **400** Requisição inválida
# Consultar labels das permissões
Source: https://docs.yampi.com.br/api-reference/usuarios/permissoes/consultar-labels-das-permissoes
`GET /{alias}/users/permissions/label`
Retorna os valores (labels) das permissões pelas chaves.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Labels das permissões — `application/json`: object
# Visualizar dados do usuário logado
Source: https://docs.yampi.com.br/api-reference/usuarios/visualizar-dados-do-usuario-logado
`POST /auth/me`
Retorna os dados do usuário atualmente logado
**Respostas**
- **200** Dados do usuário logado — `application/json`: » User
- **401** Acesso não autorizado, verifique o User-Token e o User-Secret_Key
# Visualizar detalhes de um usuário
Source: https://docs.yampi.com.br/api-reference/usuarios/visualizar-detalhes-de-um-usuario
`GET /{alias}/users/{id}`
Visualiza os detalhes de uma determinado usuário a partir do seu ID
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do usuário |
**Respostas**
- **200** Detalhes do usuário — `application/json`: » User + object + object
- **404**
# Visão Geral
Source: https://docs.yampi.com.br/api-reference/webhooks/introduction
Webhooks permitem que a plataforma envie uma requisição `POST` para URLs cadastradas sempre que determinados eventos ocorrerem. O payload enviado contém todas as `includes` disponíveis relacionadas ao recurso.
## Crie webhooks via API
Você pode criar e gerenciar webhooks através da API de Webhooks. Para mais informações, consulte a [documentação da API de Webhooks](/api-reference/webhooks/listar-webhooks).
A criação dos webhooks é restrita ao limite definido ao plano da sua loja, acesse a [página de planos](https://www.yampi.com.br/planos) para consultar seu limite.
Webhooks criados por aplicativos homologados não são levados em consideração nessa contagem.
## Eventos disponíveis
Abaixo estão os eventos atualmente suportados. Você pode configurar webhooks para escutar um ou mais desses eventos:
| Evento | Descrição | Exemplos |
| --------------------------- | --------------------------------------- | ------------------------------- |
| order.created | Pedido criado | [Ver payload](#pedidos) |
| order.paid | Pedido aprovado | [Ver payload](#pedidos) |
| order.status.updated | O status de um pedido foi atualizado | [Ver payload](#pedidos) |
| order.invoice.created | Nota fiscal de um pedido foi criada | [Ver payload](#notas-fiscais) |
| order.invoice.updated | Nota fiscal de um pedido foi atualizada | [Ver payload](#notas-fiscais) |
| transaction.payment.refused | O pagamento de uma transação foi negado | [Ver payload](#transacoes) |
| cart.reminder | Notificação de carrinho abandonado | [Ver payload](#carrinho-abandonado) |
| customer.created | Cliente criado | [Ver payload](#clientes) |
| customer.address.created | Endereço do cliente criado | [Ver payload](#enderecos-de-clientes) |
| product.created | Produto criado | [Ver payload](#produtos) |
| product.updated | Produto atualizado | [Ver payload](#produtos) |
| product.deleted | Produto excluído | [Ver payload](#produtos) |
| product.inventory.updated | Estoque de produto atualizado | [Ver payload](#estoque) |
| cashback.expiring | Um Cashback está expirando | [Ver payload](#cashback) |
## Exemplos de payloads de Webhook
Aqui centralizaremos todos os payloads retornados por cada webhook.
Exemplos de payloads retornados em `order.created`, `order.updated`, `order.paid` e `order.status.updated`.
Onde, o campo `event` é enviado de acordo com o evento que disparou esse webhook.
```json
{
"event": "", // `order.created`, `order.updated`, `order.paid` ou `order.status.updated`
"time": "2025-01-01 12:00:00",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 1000001,
"merchant_id": 123,
"customer_id": 987654,
"status_id": 3,
"desire_status_id": [8, 4, 9],
"desire_status": ["cancelled", "paid", "refused"],
"promocode_id": null,
"marketplace_id": null,
"marketplace_account_id": null,
"authorized": false,
"sync_by_erp": false,
"has_recomm": false,
"has_upsell": false,
"has_freebie": false,
"has_order_bump": false,
"order_bump_types": [],
"has_payment": true,
"is_upsell": false,
"delivered": false,
"number": 123456789012,
"value_total": 199.90,
"buyer_value_total": 199.90,
"value_products": 180,
"value_shipment": 19.90,
"value_tax": 0,
"buyer_value_tax": 0,
"value_discount": 10,
"value_wallet_discount": 0,
"shipment_cost": 19.90,
"shipment_service": "CORREIOS_PAC",
"shipment_service_id": "12345",
"shipment_icon_url": null,
"shipment_quote_id": "abc123",
"track_code": null,
"track_url": null,
"days_delivery": 7,
"date_delivery": {
"date": "2025-01-08 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"cart_token": "cart-token-exemplo",
"utm_source": null,
"utm_campaign": null,
"utm_content": null,
"utm_term": null,
"utm_medium": null,
"total_comments": 0,
"payments": [
{
"alias": "credit_card",
"name": "Cartão de Crédito",
"icon_url": "https://icons.exemplo.com/svg/credit-card.svg"
}
],
"ip": "192.168.0.1",
"device": "desktop",
"reorder_url": "https://lojaexemplo.com.br/checkout?token=cliente123",
"content_statement_url": "https://api.exemplo.com.br/orders/content-statement/abc123",
"billet_whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000&text=",
"billet_whatsapp_app_link": "whatsapp://send?phone=5500000000000&text=",
"public_url": "https://api.exemplo.com.br/public/orders/abc123",
"created_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"status": {
"data": {
"id": 3,
"alias": "waiting_payment",
"name": "Aguardando pagamento",
"description": "Aguardando confirmação de pagamento"
}
},
"customer": {
"data": {
"id": 987654,
"merchant_id": 123,
"type": "f",
"name": "Cliente Exemplo",
"first_name": "Cliente",
"last_name": "Exemplo",
"email": "cliente@exemplo.com",
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"ip": "192.168.0.1",
"token": "cliente-token-exemplo",
"login_url": "https://lojaexemplo.com.br/auth/login?token=cliente-token-exemplo",
"anonymized": false,
"created_at": {
"date": "2022-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 11:59:59.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"items": {
"data": [
{
"id": 111,
"product_id": 5555,
"sku_id": 7777,
"price_cost": 150,
"price": 180,
"item_sku": "SKU123456",
"quantity": 1,
"shipment_cost": 19.90,
"gift": false,
"customizations": [],
"is_digital": false,
"sku": {
"data": {
"id": 7777,
"product_id": 5555,
"sku": "SKU123456",
"token": "sku-token-exemplo",
"title": "Produto Exemplo",
"price_cost": 150,
"price_sale": 180,
"price_discount": 10,
"purchase_url": "https://lojaexemplo.com.br/produto/sku-token-exemplo",
"customizations": { "data": [] }
}
}
}
]
},
"transactions": {
"data": [
{
"id": 9999,
"customer_id": 987654,
"payment_id": 1,
"authorized": true,
"captured": true,
"amount": 199.90,
"installments": 1,
"installment_value": 199.90,
"status": "paid",
"created_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"payment": {
"data": {
"id": 1,
"alias": "credit_card",
"name": "Cartão de Crédito",
"is_credit_card": true,
"icon_url": "https://icons.exemplo.com/svg/credit-card.svg"
}
}
}
]
},
"shipping_address": {
"data": {
"receiver": "Cliente Exemplo",
"zipcode": "00000000",
"street": "Rua Exemplo",
"number": "123",
"neighborhood": "Bairro Exemplo",
"city": "Cidade Exemplo",
"state": "EX",
"country": "BR"
}
},
"statuses": {
"data": [
{
"id": 3,
"alias": "waiting_payment",
"name": "Aguardando pagamento",
"description": "Aguardando confirmação de pagamento",
"created_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 12:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
]
},
"metadata": {
"data": [
{ "key": "cart_id", "value": "123456" },
{ "key": "source_platform", "value": "checkout_link" }
]
},
"spreadsheet": {
"data": [
{
"product": "Produto Exemplo",
"sku": "SKU123456",
"quantity": 1,
"total_cost": 150,
"total_item": 180,
"payment_date": "01/01/2025 12:00",
"customer": "Cliente Exemplo",
"customer_email": "cliente@exemplo.com",
"customer_phone": "00000000000",
"status": "Pagamento aprovado",
"payment": "Cartão de Crédito",
"shipping_address": "Rua Exemplo, 123 - Bairro Exemplo",
"shipping_city": "Cidade Exemplo",
"shipping_state": "Estado Exemplo",
"shipping_zip_code": "00000000"
}
]
}
}
}
```
Exemplo de payload retornados em `cart.reminder`.
```json
{
"event": "cart.reminder",
"time": "2025-01-01 10:40:38",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 111111111,
"merchant_id": 123,
"customer_id": 999999,
"token": "cart-token-exemplo",
"payment_alias": null,
"has_recommendation": false,
"is_upsell": false,
"totalizers": {
"total_items": 1,
"subtotal": 20,
"discount": 0,
"shipment": 9.16,
"shipment_original_value": 9.16,
"shipment_discount_value": 0,
"shipment_discount_percent": 0,
"progressive_discount_value": 0,
"combos_discount_value": 0,
"total": 29.16,
"shipment_formated": "R$ 9,16",
"subtotal_formated": "R$ 20,00",
"discount_formated": "R$ 0,00",
"total_formated": "R$ 29,16"
},
"shipping_service": "CORREIOS_PAC",
"tracking_data": {
"name": "João da Silva",
"email": "joao@email.com"
},
"total_transactions": 0,
"simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&customerToken=cliente-token",
"unauth_simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&forceLogout=1",
"utm_source": null,
"utm_campaign": null,
"utm_content": null,
"utm_term": null,
"utm_medium": null,
"last_transaction_status": null,
"created_at": {
"date": "2025-01-01 10:37:31.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:37:35.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"customer": {
"data": {
"id": 999999,
"merchant_id": 123,
"active": true,
"type": "f",
"name": "João da Silva",
"first_name": "João",
"last_name": "Silva",
"generic_name": "João da Silva",
"email": "joao@email.com",
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"newsletter": false,
"whatsapp": false,
"ip": "192.168.0.1",
"notes": "Observação exemplo",
"token": "cliente-token",
"login_url": "https://lojaexemplo.com.br/auth/login/force?token=cliente-token",
"anonymized": false,
"created_at": {
"date": "2022-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:37:49.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"items": {
"data": [
{
"id": 555555,
"product_id": 111111,
"sku_id": 222222,
"quantity": 1,
"price": 20,
"gift": false,
"has_recomm": false,
"customizations": [],
"created_at": {
"date": "2025-01-01 10:37:32.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:37:32.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"sku": {
"data": {
"id": 222222,
"product_id": 111111,
"sku": "SKU123456",
"token": "sku-token-exemplo",
"title": "Produto Exemplo",
"price_cost": 17,
"price_sale": 8,
"price_discount": 20,
"quantity_managed": true,
"total_in_stock": 20,
"purchase_url": "https://lojaexemplo.com.br/r/sku-token-exemplo",
"created_at": {
"date": "2025-01-01 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:13:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"customizations": { "data": [] }
}
}
}
]
},
"transactions": { "data": [] },
"spreadsheet": {
"data": {
"customer_phone": "00000000000",
"last_order_date": "2025-01-01",
"products": "Produto Exemplo",
"products_skus": "SKU123456",
"categories": "Categoria Exemplo",
"brands": "Marca Exemplo",
"purchase_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&forceLogout=1",
"abandoned_step": "shippment",
"count_recover_mail_sent": "0/4"
}
},
"metadata": {
"data": [
{ "key": "discount_highlight", "value": "deposit" },
{ "key": "source_platform", "value": "purchase_link" }
]
},
"search": {
"data": {
"has_shipment_service": true,
"has_address": true,
"has_customer": true,
"has_refused_payment": false,
"abandoned_step": "shippment",
"count_recover_mail_sent": 0,
"created_at": "2025-01-01",
"updated_at": "2025-01-01"
}
},
"emails": {
"data": [
{
"id": 1,
"cart_id": 111111111,
"promocode_id": null,
"turn": 1,
"email": "joao@email.com",
"fire_date": "2025-01-01 10:52:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
},
{
"id": 2,
"cart_id": 111111111,
"promocode_id": null,
"turn": 2,
"email": "joao@email.com",
"fire_date": "2025-01-01 12:37:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
},
{
"id": 3,
"cart_id": 111111111,
"promocode_id": null,
"turn": 3,
"email": "joao@email.com",
"fire_date": "2025-01-02 10:37:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
},
{
"id": 4,
"cart_id": 111111111,
"promocode_id": null,
"turn": 4,
"email": "joao@email.com",
"fire_date": "2025-01-03 10:37:35",
"sent_at": null,
"created_at": "2025-01-01 10:38:52",
"updated_at": "2025-01-01 10:38:52"
}
]
}
}
}
```
Exemplo de payload retornados em `customer.created`.
```json
{
"event": "customer.created",
"time": "2025-01-01 15:18:28",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 111111111,
"merchant_id": 123,
"marketplace_id": null,
"cluster_id": 999,
"active": true,
"type": "f",
"name": "João Exemplo",
"razao_social": null,
"first_name": "João",
"last_name": "Exemplo",
"generic_name": "João Exemplo",
"email": "joao@example.com",
"cnpj": null,
"state_registration": null,
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"social_driver": null,
"social_id": null,
"newsletter": false,
"whatsapp": false,
"utm_source": null,
"utm_campaign": null,
"ip": null,
"notes": null,
"token": "cliente-token-exemplo",
"login_url": "https://lojaexemplo.com.br/auth/login/force?token=cliente-token-exemplo",
"anonymized": false,
"created_at": {
"date": "2025-01-01 15:18:17.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 15:18:17.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"stats": {
"data": {
"orders_amount": 0,
"total_orders": 0,
"last_order_at": null,
"last_order_id": null,
"last_order_number": null,
"last_order_amount": null,
"total_carts": 0,
"purchased_categories": [],
"purchased_brands": []
}
},
"addresses": {
"data": []
},
"cluster": {
"data": {
"id": 999,
"name": "pessoa física",
"active": true,
"attach_on_signup": false,
"person_type": "f",
"min_order_value": "1.00",
"base_price_percent": 0,
"payments_ids": [1, 2, 3],
"carriers_ids": [1001, 1002, 1003],
"created_at": {
"date": "2025-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 11:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"spreadsheet": {
"data": {
"last_order_value": "",
"last_order_date": [],
"categories": "",
"brands": "",
"street": "",
"number": "",
"neighborhood": "",
"complement": "",
"city": "",
"uf": "",
"purchased_categories": "",
"purchased_brands": "",
"phone_code": "00",
"phone_number": "000000000",
"phone": "(00) 00000-0000"
}
},
"search": {
"data": {
"last_order_at": null,
"created_at": "2025-01-01",
"updated_at": "2025-01-01",
"total_orders": 0,
"states": [],
"purchased_products_ids": []
}
},
"deletion_request": {
"data": {
"pending_confirmation": false,
"scheduled_date": ""
}
}
}
}
```
Exemplo de payload retornados em `customer.address.created`.
```json
{
"event": "customer.address.created",
"time": "2025-05-16 13:59:45",
"merchant": {
"id": 999,
"alias": "loja-exemplo"
},
"resource": {
"id": 100000001,
"customer_id": 200000002,
"receiver": "João Exemplo",
"zip_code": "12345678",
"street": "Rua Exemplo",
"number": "123",
"neighborhood": "Bairro Central",
"complement": "Apto 45B",
"city": "Cidade Modelo",
"uf": "EX",
"full_address": "Rua Exemplo, 123 - Bairro Central",
"created_at": {
"date": "2025-05-16 13:59:35.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-16 13:59:35.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
}
```
Exemplo de payload retornados em `product.created` e `product.updated`.
```json
{
"event": "product.created",
"time": "2025-05-15 09:24:25",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"relevance": null,
"id": 10001,
"merchant_id": 123,
"seller_id": null,
"affiliation_id": null,
"active": true,
"gift_value": "0.00",
"searchable": true,
"simple": true,
"erp_id": null,
"ncm": null,
"has_variations": false,
"is_digital": false,
"warranty": 0,
"custom_shipping": false,
"shipping_price": "0.00",
"name": "Produto Exemplo Webhook",
"slug": "produto-exemplo-webhook",
"sku": "",
"rating": 0,
"priority": 1,
"url": "https://www.lojavirtual.com/produto-exemplo-webhook/p",
"redirect_url_card": null,
"redirect_url_billet": null,
"preview_url": "https://lojaexemplo.catalog.yampi.io/produto-exemplo-webhook/p",
"dates": {
"data": {
"created_at": {
"date": "2025-05-15 09:24:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"created_at_formated": "2025-05-15",
"updated_at": {
"date": "2025-05-15 09:24:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"brand": {
"data": {
"id": 100,
"active": true,
"featured": false,
"name": "Marca Genérica",
"description": null,
"logo_url": null,
"created_at": {
"date": "2020-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2020-01-01 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"filters": {
"data": []
},
"flags": {
"data": []
},
"variations": {
"data": []
},
"categories": {
"data": [
{
"id": 200,
"name": "Categoria Genérica",
"parent_id": null,
"slug": "categoria-generica",
"url_path": "/categoria-generica"
}
]
},
"skus": {
"data": [
{
"id": 9999,
"product_id": 10001,
"seller_id": null,
"sku": "SKU123456",
"token": "TOKEN123456",
"erp_id": null,
"blocked_sale": false,
"barcode": null,
"title": "Produto Exemplo Webhook",
"availability": 0,
"availability_soldout": -1,
"days_availability_formated": "Imediata",
"price_cost": 10,
"price_sale": 15,
"price_discount": 20,
"width": 0,
"height": 0,
"length": 0,
"weight": 0,
"quantity_managed": false,
"variations": [],
"combinations": "9999",
"order": 0,
"total_in_stock": 0,
"total_orders": null,
"allow_sell_without_customization": false,
"image_reference_sku_id": null,
"purchase_url": "https://lojaexemplo.pay.yampi.com.br/r/TOKEN123456",
"created_at": {
"date": "2025-05-15 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-15 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"images": {
"data": [
{
"id": 999001,
"processed": true,
"name": "produto-exemplo-webhook-1",
"order": 0,
"extension": "png",
"filter_image_url": null,
"small": {
"width": 50,
"height": 50,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-small.png"
},
"thumb": {
"width": 250,
"height": 250,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-thumb.png"
},
"medium": {
"width": 500,
"height": 500,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-medium.png"
},
"large": {
"width": 1000,
"height": 1000,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-large.png"
}
}
]
}
}
]
},
"firstImage": {
"data": {
"id": 999001,
"processed": true,
"name": "produto-exemplo-webhook-1",
"order": 0,
"extension": "png",
"filter_image_url": null,
"small": {
"width": 50,
"height": 50,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-small.png"
},
"thumb": {
"width": 250,
"height": 250,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-thumb.png"
},
"medium": {
"width": 500,
"height": 500,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-medium.png"
},
"large": {
"width": 1000,
"height": 1000,
"url": "https://images.yampi.me/assets/stores/lojaexemplo/uploads/images/produto-exemplo-webhook-1-large.png"
}
}
}
}
}
```
Exemplo de payload retornados em `cashback.expiring`. Esses webhooks são enviados 7 dias antes do cashback expirar.
```json
{
"event": "cashback.expiring",
"time": "2025-05-16T14:34:02-03:00",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 100001,
"transaction_type": "credit",
"amount": 2.72,
"status": "approved",
"expired": false,
"description": null,
"expires_at": "2025-05-23",
"customer": {
"id": 99999999,
"name": "Nome Sobrenome",
"email": "email@email.com",
"phone": "5500000000000"
},
"order": {
"id": 200001,
"number": 999999999999
},
"created_at": {
"date": "2025-05-15 09:42:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-15 09:42:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
}
```
Exemplo de payload retornados em `transaction.payment.refused`.
```json
{
"event": "transaction.payment.refused",
"time": "2025-01-01 09:33:37",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 111111,
"customer_id": 999999,
"payment_id": 9,
"affiliation_id": 555555,
"marketplace_id": null,
"marketplace_account_id": null,
"authorized": false,
"captured": false,
"cancelled": true,
"gateway_transaction_id": "",
"gateway_order_id": null,
"gateway_authorization_code": null,
"gateway_billet_id": null,
"amount": 29.16,
"buyer_amount": 0,
"installments": 1,
"installment_value": 29.16,
"buyer_installment_value": 0,
"installment_formated": "1x de R$ 29,16",
"buyer_installment_formated": "1x de R$ 0,00",
"bank_name": null,
"bank_alias": null,
"status": "refused",
"error_message": "Authorization has been denied for this request.",
"error_code": 5,
"truncated_card": null,
"holder_name": null,
"holder_document": null,
"billet_url": null,
"billet_barcode": null,
"billet_date": null,
"billet_our_number": null,
"billet_document_number": null,
"billet_whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000&text=",
"antifraud_sale_id": null,
"antifraud_status": null,
"antifraud_score": null,
"sent_to_antifraud": false,
"total_logs": 0,
"capture_date": null,
"authorized_at": null,
"captured_at": null,
"cancelled_at": {
"date": "2025-01-01 09:33:24.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"can_be_captured": false,
"can_be_cancelled": false,
"created_at": {
"date": "2025-01-01 09:33:24.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:33:24.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"payment": {
"data": {
"id": 9,
"alias": "billet",
"name": "Boleto Bancário",
"has_config": false,
"active_config": false,
"is_credit_card": false,
"is_deposit": false,
"is_billet": true,
"is_pix": false,
"is_pix_in_installments": false,
"is_wallet": false,
"icon_url": "https://icons.yampi.me/svg/card-billet.svg"
}
},
"metadata": { "data": [] },
"affiliation": {
"data": {
"id": 555555,
"auto_capture": true,
"backup": false,
"force_minimum_tax": false,
"has_payment_config": true,
"name": "Gateway Exemplo",
"statement_descriptor": "exemplo",
"active": true,
"params": [],
"status": "revoked",
"auth_type": "api_key",
"created_at": {
"date": "2023-01-01 09:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2023-01-01 17:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"gateway": {
"data": {
"alias": "gatewayalias",
"icon_url": "https://icons.yampi.me/svg/gateway.svg",
"name": "Gateway Exemplo",
"allow_backup": true,
"credit_card": true,
"installments_config": {
"allow_custom_installments": true,
"message": null,
"help_link": null
},
"auth_type": "api_key",
"gateway_exists": false,
"params": { "data": ["consumer_secret", "public_key"] }
}
}
}
},
"customer": {
"data": {
"id": 999999,
"merchant_id": 123,
"active": true,
"type": "f",
"name": "João da Silva",
"first_name": "João",
"last_name": "Silva",
"generic_name": "João da Silva",
"email": "joao@email.com",
"cpf": "00000000000",
"birthday": "1990-01-01",
"phone": {
"full_number": "5500000000000",
"area_code": "00",
"number": "000000000",
"formated_number": "(00) 00000-0000",
"whatsapp_link": "https://api.whatsapp.com/send?phone=5500000000000"
},
"newsletter": false,
"whatsapp": false,
"ip": "192.168.0.1",
"notes": null,
"token": "cliente-token",
"login_url": "https://lojaexemplo.com.br/auth/login/force?token=cliente-token",
"anonymized": false,
"created_at": {
"date": "2022-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:31:58.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"cart": {
"data": {
"id": 888888,
"merchant_id": 123,
"customer_id": 999999,
"token": "cart-token-exemplo",
"payment_alias": "pix",
"has_recommendation": false,
"is_upsell": false,
"totalizers": {
"total_items": 1,
"subtotal": 20,
"discount": 1,
"shipment": 9.16,
"shipment_original_value": 9.16,
"shipment_discount_value": 0,
"shipment_discount_percent": 0,
"progressive_discount_value": 0,
"combos_discount_value": 0,
"total": 28.16,
"shipment_formated": "R$ 9,16",
"subtotal_formated": "R$ 20,00",
"discount_formated": "R$ 1,00",
"total_formated": "R$ 28,16"
},
"shipping_service": "CORREIOS_PAC",
"tracking_data": {
"name": "João da Silva",
"email": "joao@email.com"
},
"total_transactions": 2,
"simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&customerToken=cliente-token",
"unauth_simulate_url": "https://lojaexemplo.com.br/cart?cart_token=cart-token-exemplo&forceLogout=1",
"utm_source": null,
"utm_campaign": null,
"utm_content": null,
"utm_term": null,
"utm_medium": null,
"last_transaction_status": {
"alias": "refused",
"name": "Pagamento não aprovado"
},
"created_at": {
"date": "2025-01-01 09:25:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:33:29.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"items": {
"data": [
{
"id": 777777,
"product_id": 111111,
"sku_id": 222222,
"quantity": 1,
"price": 20,
"gift": false,
"has_recomm": false,
"customizations": [],
"created_at": {
"date": "2025-01-01 09:25:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:25:14.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"sku": {
"data": {
"id": 222222,
"product_id": 111111,
"sku": "SKU123456",
"token": "sku-token-exemplo",
"title": "Produto Exemplo",
"availability": 0,
"availability_soldout": -1,
"days_availability_formated": "Imediata",
"price_cost": 17,
"price_sale": 8,
"price_discount": 20,
"width": 0,
"height": 0,
"length": 0,
"weight": 0,
"quantity_managed": false,
"variations": [],
"combinations": "222222",
"order": 0,
"total_in_stock": 0,
"total_orders": null,
"allow_sell_without_customization": false,
"image_reference_sku_id": null,
"purchase_url": "https://lojaexemplo.com.br/r/sku-token-exemplo",
"created_at": {
"date": "2025-01-01 09:24:15.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 09:24:48.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"customizations": { "data": [] }
}
}
}
]
}
}
}
}
}
```
Exemplo de payload retornados em `order.invoice.created` e `order.invoice.updated`.
```json
{
"event": "order.invoice.created",
"time": "2025-01-01 10:00:00",
"merchant": {
"id": 123,
"alias": "lojaexemplo"
},
"resource": {
"id": 999999,
"merchant_id": 123,
"order_id": 888888,
"series": "ABC1234567890",
"number": "123456789",
"key": "00000000000000000000000000000000000000000000",
"date": {
"date": "2025-01-02 00:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"value": 199.90,
"products_value": 180.00,
"cpfop": null,
"url": "https://exemplo.com.br/nfe/visualizar/00000000000000",
"created_at": {
"date": "2025-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-01-01 10:00:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
}
```
Exemplo de payload retornados em `product.inventory.updated`.
```json
{
"event": "product.inventory.updated",
"time": "2025-05-15 10:13:12",
"merchant": { "id": 0, "alias": "loja_anonima" },
"resource": {
"id": 0,
"stock_id": 0,
"quantity": 0,
"min_quantity": 1,
"created_at": {
"date": "2025-05-15 10:13:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2025-05-15 10:13:00.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"stock": {
"data": {
"id": 0,
"warehouse_id": null,
"priority": false,
"auto_refill": false,
"name": "Estoque Anônimo",
"delivery_days": 14,
"created_at": {
"date": "2022-03-25 15:42:29.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2022-03-25 15:42:29.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"warehouse": { "data": [] }
}
},
"spreadsheet": {
"data": {
"stock": "Estoque Anônimo",
"product": "Produto de Teste",
"sku": "XXXXXXX",
"quantity": 0,
"min_quantity": 1
}
}
}
}
```
> ⚠️ Sua aplicação **deve responder em até 5 segundos com um status code do nível 2XX**. Caso contrário, a Yampi abortará a requisição e marcará como uma falha. Após 30 falhas, o webhook será desativado automaticamente.
## Segurança
A validação do webhook serve para verificar se realmente ele foi enviado pela Yampi, e é de extrema importância a sua utilização para que suas transações estejam seguras.
Para fazer a validação, são necessárias duas informações de nosso webhook:
- Valor do header `X-Yampi-Hmac-SHA256`. Vamos chamar esse valor de "assinatura do webhook";
- Corpo da requisição (no mesmo formato mostrado acima). Com esses dois valores, basta realizar o base64 do algoritmo HMAC-SHA256 do corpo da requisição utilizando a chave secreta do Webhook e comparar com a assinatura do webhook. Se os valores forem iguais, excelente. Caso contrário, não fomos nós que enviamos essa requisição!
## Exemplo de validação em PHP
```php
function hmac_signature(array $body, $webHookSecret)
{
$payload = json_encode($body);
return base64_encode(hash_hmac('sha256', $payload, $webHookSecret, true));
}
// Calculando a assinatura
$body = [
'event' => 'order.created',
'time' => '2020-06-20 00:00:00',
'resource' => [
'id' => 1121333,
// Aqui vem todo o payload do resource.
],
];
$signature = hmac_signature($body, 'wh_FBmkbmkMSAKmkMBKmdsbUUHjnlmlm');
echo $signature; // Output: NzhjMmM3NzcwZDM5NmM1ZWYxNjhjMDI5NmVhYjgzOTFlNDNlNmU0OWU5ZWZhMTRiYTIyNTI0NzdhNTVhZTMxNQ
```
Importante: é esperado que o base64 seja calculado em cima do hmac em formato binário. No exemplo em PHP, é o terceiro argumento da função hash_hmac()
# Listar webhooks
Source: https://docs.yampi.com.br/api-reference/webhooks/listar-webhooks
`GET /{alias}/webhooks`
Retorna uma lista de webhooks
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de webhooks — `application/json`: » Webhook + » WebhookAdditionalResponse + » SimplePaginatorWithMeta
- **404** Webhooks não encontrados
# Criar um webhook
Source: https://docs.yampi.com.br/api-reference/webhooks/criar-um-webhook
`POST /{alias}/webhooks`
Criar um novo webhook
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » WebhookRequest
**Respostas**
- **201** Webhook criado com sucesso — `application/json`: » Webhook + » WebhookAdditionalResponse
- **400** Requisição inválida
A criação dos webhooks é restrita ao limite definido ao plano da sua loja, acesse a [página de planos](https://www.yampi.com.br/planos) para consultar seu limite.
Webhooks criados por aplicativos homologados não são levados em consideração nessa contagem.
# Visualizar webhook
Source: https://docs.yampi.com.br/api-reference/webhooks/visualizar-webhook
`GET /{alias}/webhooks/{id}`
Visualiza os detalhes de um webhook específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do webhook |
**Respostas**
- **200** Detalhes do webhook — `application/json`: » Webhook + » WebhookAdditionalResponse
- **404** Webhook não encontrado
# Atualizar um webhook
Source: https://docs.yampi.com.br/api-reference/webhooks/atualizar-um-webhook
`PUT /{alias}/webhooks/{id}`
Atualiza um webhook específico
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do webhook |
**Request body**
- `application/json` (obrigatório): » WebhookRequest
**Respostas**
- **200** Webhook atualizado com sucesso — `application/json`: » Webhook + » WebhookAdditionalResponse
- **400** Requisição inválida
- **404** Webhook não encontrado
Envie **somente os campos obrigatórios e os que deseja alterar**, para reduzir validações desnecessárias.
Caso não envie um campo, o mesmo será mantido com o valor atual.
# Excluir um webhook
Source: https://docs.yampi.com.br/api-reference/webhooks/excluir-um-webhook
`DELETE /{alias}/webhooks/{id}`
Exclui um webhook existente
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do webhook |
**Respostas**
- **204** Webhook excluído com sucesso
- **400** Requisição inválida
- **404** Webhook não encontrado
# Listar eventos de webhooks disponíveis
Source: https://docs.yampi.com.br/api-reference/webhooks/listar-eventos-de-webhooks-disponiveis
`GET /{alias}/webhooks/events`
Lista todos os eventos de webhooks disponíveis
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de eventos de webhooks — `application/json`: array de » WebhookEvent
- **404** Eventos de webhooks não encontrados
# Listar Scripts
Source: https://docs.yampi.com.br/api-reference/loja-virtual/scripts/listar-scripts
`GET /{alias}/store/scripts`
Listar todos os scripts cadastrados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de Scripts — `application/json`: object + » SimplePaginatorWithMeta
- **400** Requisição inválida
# Cadastrar um novo Script
Source: https://docs.yampi.com.br/api-reference/loja-virtual/scripts/cadastrar-um-novo-script
`POST /{alias}/store/scripts`
Cadastrar um novo Script
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ScriptsRequest
**Respostas**
- **200** Script cadastrado com sucesso! — `application/json`: » Scripts
- **400** Body da requisição inválido.
- **422** Verifique os campos obrigatórios: name, page e content.
# Visualizar um Script
Source: https://docs.yampi.com.br/api-reference/loja-virtual/scripts/visualizar-um-script
`GET /{alias}/store/scripts/{id}`
Visualizar um Script
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Script |
**Respostas**
- **200** Visualizar um Script — `application/json`: » Scripts
- **400** Requisição inválida
# Atualizar um Script
Source: https://docs.yampi.com.br/api-reference/loja-virtual/scripts/atualizar-um-script
`PUT /{alias}/store/scripts/{id}`
Atualizar um Script
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Script |
**Request body**
- `application/json` (obrigatório): » ScriptsRequest
**Respostas**
- **200** Script atualizado com sucesso! — `application/json`: » Scripts
- **400** Body da Requisição inválido.
- **404** Script não encontrado.
- **422** Verifique os campos obrigatórios: name, page e content.
# Excluir um Script
Source: https://docs.yampi.com.br/api-reference/loja-virtual/scripts/excluir-um-script
`DELETE /{alias}/store/scripts/{id}`
Excluir um Script
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | integer | ID do Script |
**Respostas**
- **200** Script excluído com sucesso
- **400** Requisição inválida
- **404** Script não encontrado
# Visualizar informações de banners
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-de-banners
`GET /{alias}/public/catalog/banners`
Retorna as Informações dos banners
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Retorna as Informações de banners — `application/json`: » BannersPublic
# Listar Categorias de uma loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-categorias-de-uma-loja
`GET /{alias}/public/catalog/categories{?id[]={categoryId}}`
Retorna as Informações públicas de categorias de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id[] | query | Sim | string | ID da categoria - exemplo: `/{alias}/public/catalog/categories?id[]=5287&id[]=7821` |
**Respostas**
- **200** Informações públicas das categorias da Loja — `application/json`: » CategoryPublic
- **404** Categorias não encontradas
# Listar Coleções de uma loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-colecoes-de-uma-loja
`GET /{alias}/public/catalog/collections{?id[]={collectionId}}`
Retorna as Informações públicas das coleções
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id[] | query | Sim | string | ID da coleção - exemplo: `/{alias}/public/catalog/collections?id[]=5287&id[]=7821` |
**Respostas**
- **200** Retorna as Informações públicas de uma Coleção — `application/json`: » CollectionPublic
- **404** Coleção não encontrada
# Visualizar informações das dúvidas do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-das-duvidas-do-produto
`GET /{alias}/public/catalog/products/comments`
Retorna as Informações das dúvidas do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Respostas**
- **200** Retorna as Informações das dúvidas no produto — `application/json`: » CommentPublic
# Visualizar informações dos pixels loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-dos-pixels-loja
`GET /{alias}/public/catalog/pixels`
Retorna as Informações dos pixels da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Retorna as Informações de pixels da loja — `application/json`: » PixelsPublic
# Visualizar informações públicas do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-publicas-do-produto
`GET /{alias}/public/catalog/products/{slug}`
Retorna as Informações públicas de um Produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| slug | path | Sim | string | slug do produto |
**Respostas**
- **200** Retorna as Informações públicas de um Produto — `application/json`: » ProductPublicGroup
- **404** Produto não encontrado
# Visualizar informações dos grupos do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-dos-grupos-do-produto
`GET /{alias}/public/catalog/products/{id}/groups`
Retorna as Informações dos produtos do grupo
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Respostas**
- **200** Retorna as Informações de grupos de produtos — `application/json`: » ProductPublicGroup
- **404** Produto não encontrado
# Visualizar informações dos selos do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-dos-selos-do-produto
`GET /{alias}/public/catalog/products/{id}/flags`
Retorna as Informações dos selos do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Respostas**
- **200** Retorna as Informações de selos no produto — `application/json`: » ProductPublicFlag
- **404** Produto não encontrado
# Visualizar informações de Compre Junto do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-de-compre-junto-do-produto
`GET /{alias}/public/catalog/products/{id}/combos`
Retorna as Informações de Compre Junto do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Respostas**
- **200** Retorna as Informações de Compre Junto do produto — `application/json`: » ComboPublic
- **404** Produto não encontrado
# Visualizar produtos relacionados
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-produtos-relacionados
`GET /{alias}/public/catalog/products/{id}/similars`
Retorna as Informações dos produtos relacionados
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Respostas**
- **200** Retorna as Informações de Produtos similares — `application/json`: » ProductPublicGroup
- **404** Produto não encontrado
# Visualizar informações dos pixels do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-dos-pixels-do-produto
`GET /{alias}/public/catalog/products/{id}/pixels`
Retorna as Informações dos pixels do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Respostas**
- **200** Retorna as Informações de pixels no produto — `application/json`: » PixelsPublic
- **404** Pixel não encontrado
# Visualizar informações dos parcelas do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-dos-parcelas-do-produto
`GET /{alias}/public/catalog/products/{id}/installments`
Retorna as Informações das parcelas do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Request body**
- `application/json` (obrigatório): » InstallmentsPublicRequest
**Respostas**
- **200** Retorna as Informações das parcelas do produto — `application/json`: » InstallmentsPublic
- **404** Produto não encontrado
# Visualizar informações dos filtros do produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/visualizar-informacoes-dos-filtros-do-produto
`GET /{alias}/public/catalog/products/{id}/filters`
Retorna as informações dos filtros do produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | path | Sim | string | id do produto |
**Respostas**
- **200** Retorna as Informações de filtros no produto — `application/json`: » FilterPublic
- **404** Produto não encontrado
# Listar as avaliações dos produtos de uma loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-as-avaliacoes-dos-produtos-de-uma-loja
`GET /{alias}/public/catalog/products/reviews`
Retorna as informações públicas das avaliações dos produtos de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Informações públicas das avaliações dos produtos de uma loja — `application/json`: » PublicProductReview
- **404** Loja não encontrada
# Listar as notas de avaliações dos produtos de uma loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-as-notas-de-avaliacoes-dos-produtos-de-uma-loja
`GET /{alias}/public/catalog/products/reviews/ratings`
Retorna as informações públicas das notas em avaliações dos produtos de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Informações públicas das notas em avaliações dos produtos de uma loja — `application/json`: » PublicRating
- **404** Loja não encontrada
# Listar avaliações de uma loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-avaliacoes-de-uma-loja
`GET /{alias}/public/catalog/reviews{?id[]={reviewId}}`
Retorna as informações públicas das avaliações
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| id | query | Sim | array de integer | IDs dos reviews. Enviar como array:`?id[]=5287&id[]=7821` |
**Respostas**
- **200** Retorna as Informações públicas de uma avaliação — `application/json`: » PublicProductReview
- **404** Avaliação não encontrada
# Listar Coleções de uma loja por produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-colecoes-de-uma-loja-por-produto
`GET /{alias}/public/catalog/products/{productId}/collections`
Retorna as informações públicas das coleções associadas a um produto
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| productId | path | Sim | integer | ID do produto |
**Respostas**
- **200** Lista de coleções públicas associadas ao produto — `application/json`: object
- **404** Produto não encontrado
# Listar marcas da loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-marcas-da-loja
`GET /{alias}/public/catalog/brands`
Retorna as informações públicas das marcas de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| active | query | Não | boolean | Filtrar por marcas ativas - exemplo: `/{alias}/public/catalog/brands?active=true` |
| id | query | Não | array de integer | ID das marcas - exemplo: `/{alias}/public/catalog/brands?id[]=1&id[]=2` |
| q | query | Não | string | Nome das marcas - exemplo: `/{alias}/public/catalog/brands?q=Marca1` |
**Respostas**
- **200** Informações públicas das marcas da Loja — `application/json`: » BrandSearch
- **404** Loja não encontrada
# Listar kits associados ao produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-kits-associados-ao-produto
`GET /{alias}/public/catalog/products/{productId}/bundles`
Retorna os kits que contêm o produto informado, incluindo os demais produtos que compõem cada kit.
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| productId | path | Sim | integer | ID do produto |
| page | query | Não | integer | Número da página |
| include_inactive | query | Não | boolean | Quando true, retorna todos os kits incluindo os inativos. Por padrão retorna apenas kits ativos. |
**Respostas**
- **200** Retorna os kits associados ao produto — `application/json`: » Bundles
# Listar coleções ativas de uma loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-colecoes-ativas-de-uma-loja
`GET /{alias}/public/catalog/collections/active`
Retorna as coleções ativas e dentro do período de validade, com banners incluídos por padrão
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| page | query | Não | integer | Número da página (padrão: 1) |
| limit | query | Não | integer | Quantidade de itens por página, entre 1 e 100 (padrão: 16) |
| featured | query | Não | integer | Filtra por destaque: `1` retorna apenas coleções em destaque, `0` apenas fora de destaque. Ausente ou inválido retorna todas. |
| q | query | Não | string | Busca por nome da coleção (contém, case-insensitive). Máximo de 100 caracteres. |
**Respostas**
- **200** Lista de coleções ativas da loja — `application/json`: object
- **404** Loja não encontrada
# Listar brindes ativos da loja
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-brindes-ativos-da-loja
`GET /{alias}/public/catalog/freebies`
Retorna todos os brindes ativos e vigentes da loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de brindes ativos da loja — `application/json`: object
# Listar descontos ativos de um produto
Source: https://docs.yampi.com.br/api-reference/publico/catalogo/listar-descontos-ativos-de-um-produto
`GET /{alias}/public/catalog/products/{productId}/discounts`
Retorna os descontos ativos que se aplicam ao produto: faixas de desconto legado (progressive_discounts), compre X leve Y (buy_x_get_y) e desconto progressivo multi-faixa (buy_x_pay_y)
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| productId | path | Sim | integer | ID do produto |
**Respostas**
- **200** Descontos ativos do produto — `application/json`: object
# Listar todas as Informações públicas de uma loja
Source: https://docs.yampi.com.br/api-reference/publico/loja/listar-todas-as-informacoes-publicas-de-uma-loja
`GET /whois/{domain}`
Retorna as Informações públicas de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| domain | path | Sim | string | Alias ou domínio da loja |
**Respostas**
- **200** Informações públicas da Loja — `application/json`: » MerchantPublic
- **404** Loja não encontrada
# Listar Produtos da loja
Source: https://docs.yampi.com.br/api-reference/publico/busca/listar-produtos-da-loja
`GET /{alias}/public/search/products/`
Retorna as informações públicas de produtos de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ProductSearchRequest
**Respostas**
- **200** Informações públicas dos produtos da Loja — `application/json`: » ProductSearchMeta
- **404** Loja não encontrada
# Mostrar marcas dos produtos da loja
Source: https://docs.yampi.com.br/api-reference/publico/busca/mostrar-marcas-dos-produtos-da-loja
`GET /{alias}/public/search/products/brands`
Retorna as informações públicas das marcas de produtos de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ProductSearchRequest
**Respostas**
- **200** Informações públicas sobre marcas dos produtos da Loja — `application/json`: » BrandSearch
- **404** Loja não encontrada
# Mostrar range de preços de produtos da loja
Source: https://docs.yampi.com.br/api-reference/publico/busca/mostrar-range-de-precos-de-produtos-da-loja
`GET /{alias}/public/search/products/prices`
Retorna as Informações públicas dos preços dos produtos de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ProductSearchRequest
**Respostas**
- **200** Informações públicas dos preços dos produtos da Loja — `application/json`: » PriceSearchRange
- **404** Loja não encontrada
# Listar Promoções da loja
Source: https://docs.yampi.com.br/api-reference/publico/busca/listar-promocoes-da-loja
`GET /{alias}/public/search/products/promotions`
Retorna as informações públicas das promocoes de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Request body**
- `application/json` (obrigatório): » ProductSearchRequest
**Respostas**
- **200** Informações públicas das Promoções da Loja — `application/json`: » PromotionSearch
- **404** Loja não encontrada
# Exibir paginação de produtos da loja
Source: https://docs.yampi.com.br/api-reference/publico/busca/exibir-paginacao-de-produtos-da-loja
`GET /{alias}/public/search/products/count`
Retorna as informações públicas da paginação de uma loja
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Informações públicas de paginação da Loja — `application/json`: » ProductSearchCount
- **404** Loja não encontrada
# Listar Resultados mais recentes retornados pela busca
Source: https://docs.yampi.com.br/api-reference/busca/global/listar-resultados-mais-recentes-retornados-pela-busca
`GET /{alias}/search/global`
lista as entradas mais recentes retornados pela busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de entradas retornados pela busca — `application/json`: object
- **400** Requisição inválida
- **404** URL inválida
# Listar Pedidos retornados pela busca
Source: https://docs.yampi.com.br/api-reference/busca/pedidos/listar-pedidos-retornados-pela-busca
`GET /{alias}/search/orders`
lista pedidos retornados pela busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
| filters | query | Não | » OrderSearchCriteria | Filtros de pedidos |
**Respostas**
- **200** Lista de pedidos através da busca — `application/json`: object
- **400** Requisição inválida
- **404** URL inválida
# Listar Produtos retornados pela busca
Source: https://docs.yampi.com.br/api-reference/busca/produtos/listar-produtos-retornados-pela-busca
`GET /{alias}/search/products`
lista produtos retornados pela busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de produtos através motor de busca — `application/json`: object
- **400** Requisição inválida
- **404** URL inválida
# Listar Clientes retornados pela busca
Source: https://docs.yampi.com.br/api-reference/busca/clientes/listar-clientes-retornados-pela-busca
`GET /{alias}/search/customers`
lista clientes retornados pela busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de clientes através da busca — `application/json`: object
- **400** Requisição inválida
- **404** URL inválida
# Listar Leads retornados pela busca
Source: https://docs.yampi.com.br/api-reference/busca/leads/listar-leads-retornados-pela-busca
`GET /{alias}/search/leads`
lista leads retornados pela busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de leads através da busca — `application/json`: » Lead
- **400** Requisição inválida
- **404** URL inválida
# Listar Carrinhos Abandonados retornados pela busca
Source: https://docs.yampi.com.br/api-reference/busca/carrinhos/listar-carrinhos-abandonados-retornados-pela-busca
`GET /{alias}/search/carts`
lista carrinhos abandonados retornados pela busca
**Parâmetros**
| Nome | Local | Obrigatório | Tipo | Descrição |
|---|---|---|---|---|
| alias | path | Sim | string | Alias da loja |
**Respostas**
- **200** Lista de carrinhos através da busca — `application/json`: object
- **400** Requisição inválida
- **404** URL inválida
## Editor de código
# Introdução
Source: https://docs.yampi.com.br/editor-codigo/intro
Sua loja, do seu jeito. O **Editor de Código** dá acesso completo ao código-fonte da sua loja — gerado pelo **Tema Rocket**, o tema oficial da Yampi, construído com Twig, Vue.js e SASS. Com ele, você vai além dos parâmetros visuais e edita diretamente templates, seções, componentes e estilos com controle total sobre cada detalhe da experiência de compra.
O Tema Rocket é a base de todas as lojas na Yampi. Entender sua estrutura é o primeiro passo para criar personalizações poderosas — de ajustes simples de layout até componentes Vue completamente novos.
## O que você pode personalizar
Edite o HTML e Twig de qualquer template ou seção — da home ao carrinho — sem limitações.
Crie componentes Vue para carrinho, seleção de SKU, sliders e qualquer comportamento dinâmico.
Personalize cores, tipografia e espaçamentos com SASS e variáveis CSS que afetam o tema inteiro.
## Arquitetura do Editor
O editor é construído sobre três tecnologias que atuam em camadas distintas e complementares:
Renderiza páginas com dados reais. Acessa produtos, categorias e configurações da loja para montar o HTML de cada página antes de chegar ao navegador.
Dá vida à sua loja. Componentes que rodam no navegador: carrinho, SKU, sliders — tudo que responde em tempo real ao cliente.
Estilo sem fronteiras. Variáveis CSS globais que controlam o visual de forma centralizada — mude o tema inteiro com poucas linhas.
## Por onde começar
No painel, navegue até **Loja Virtual → Temas** e clique em **Editar Código**. O botão aparece apenas para o tema instalado na loja.
Entenda para que serve cada diretório (`templates`, `sections`, `components`, `assets`...). Veja em [Pastas e Arquivos](/editor-codigo/estrutura/pastas-arquivos).
Edite um arquivo, pré-visualize e publique seguindo o guia [Primeiras Edições](/editor-codigo/como-fazer/primeiras-edicoes).
Consulte [Objetos](/editor-codigo/referencia/objetos), [Filtros](/editor-codigo/referencia/filtros) e [Variáveis JavaScript](/editor-codigo/referencia/variaveis-javascript) quando precisar acessar dados nos templates.
# Primeiras edições
Source: https://docs.yampi.com.br/editor-codigo/como-fazer/primeiras-edicoes
Este guia cobre o ciclo completo de desenvolvimento no Editor de Código: acessar o editor, explorar os arquivos, fazer uma edição, pré-visualizar e publicar. Siga as etapas na ordem — cada uma prepara para a próxima.
**Tempo estimado:** 15 minutos.
---
No painel da sua loja, navegue até **Loja Virtual → Temas**. Localize o tema ativo e clique em **Editar Código**.
O botão **Editar Código** só aparece para o tema que está instalado na loja. Se você não ver a opção, verifique se o tema está ativo em **Loja Virtual → Temas**.
Com o editor aberto, você verá no painel lateral os diretórios do tema. Cada pasta tem uma responsabilidade específica:
| Diretório | O que contém |
|---|---|
| `templates/` | Arquivo principal de cada página da loja (home, produto, categoria...) |
| `sections/` | Blocos de conteúdo editáveis como banners, destaques e coleções |
| `elements/` | Arquivos `.twig` de elementos menores e reutilizáveis (botões, ícones) |
| `components/` | Componentes Vue.js com lógica interativa (carrinho, seleção de SKU...) |
| `assets/` | Imagens e arquivos de estilo (`.css`, `.scss`) |
| `logs/` | Logs de erros gerados pelo editor |
Para a sua primeira edição, foque nos diretórios `sections/` e `templates/`. São os arquivos que controlam diretamente o que aparece em cada página da loja.
Vamos adicionar um botão de compra diretamente no card de produto. No painel lateral, abra **`elements/`** e clique no arquivo **`box-product.twig`**.
Localize o trecho onde o preço do produto é exibido e adicione o botão logo abaixo:
**Antes:**
```twig
{{ product.price }}
```
**Depois:**
```twig
{{ product.price }}
Comprar
```
Após editar, clique em **Salvar** (ou use `Ctrl+S` / `Cmd+S`).
O bloco `{% if product %}` garante que o link funcione tanto em páginas de produto (onde `product` existe como objeto Twig) quanto em listagens, onde os dados vêm do Vue via `data.product`.
Antes de publicar, veja como a edição ficou na loja. Clique em **Ver Prévia** no canto superior direito do editor.
Uma aba do navegador abrirá com uma versão da sua loja refletindo as alterações salvas. A pré-visualização não afeta os clientes — é um ambiente exclusivo para revisão.
Navegue pela loja na pré-visualização e confirme que a edição aparece corretamente. Se precisar ajustar algo, volte ao editor, edite, salve e recarregue a pré-visualização.
Quando estiver satisfeito com o resultado, clique em **Publicar** no canto superior direito do editor.
Um modal de confirmação será exibido. Clique em **Sim, publicar** para aplicar as alterações na loja.
As alterações podem levar alguns segundos para aparecer na loja por conta do cache. Aguarde antes de fazer novos testes após a publicação.
# Pastas e Arquivos
Source: https://docs.yampi.com.br/editor-codigo/estrutura/pastas-arquivos
A estrutura do Editor de Código organiza os arquivos do tema em seis diretórios, cada um com uma responsabilidade específica. Conhecer essa organização é essencial antes de fazer qualquer edição.
---
## Visão geral
Ao abrir o Editor de Código, você verá no painel lateral os seguintes diretórios:
```
loja/
├── assets/ # Imagens e arquivos de estilo
├── components/ # Componentes Vue reutilizáveis
├── elements/ # Elementos Twig pequenos e reutilizáveis
├── logs/ # Logs de erros gerados pelo editor
├── sections/ # Seções editáveis (banners, destaques, etc.)
└── templates/ # Arquivo principal de cada página
```
---
## Detalhamento dos diretórios
### `assets/`
Armazena recursos estáticos do tema, organizados em duas subpastas:
- **`assets/images/`** — imagens em `.png`, `.jpg`, `.jpeg`, `.webp` ou `.svg` até `2MB` cada.
- **`assets/styles/`** — arquivos de estilo em `.scss`.
Os arquivos de estilo seguem uma organização por contexto dentro de `assets/styles/`:
```
assets/styles/
├── elements/ # Estilos de componentes e elementos individuais
├── global/ # Estilos que afetam múltiplas páginas
├── pages/ # Estilos de cada página
│ └── mobile/ # Estilos responsivos por página
└── sections/ # Estilos de cada seção
```
---
### `components/`
Componentes Vue (`.vue`) reutilizáveis em qualquer arquivo Twig do tema. A propriedade `name` do componente define a tag HTML usada no template — por exemplo, `name: 'ProductPrice'` resulta em ``.
Veja como criar e usar componentes Vue em [Tecnologias → Vue.js](/editor-codigo/como-fazer/tecnologias).
---
### `elements/`
Arquivos `.twig` de elementos individuais e reutilizáveis, como botões, ícones e cards de produto. São incluídos em seções e templates via `{% include 'elements/...' %}`.
---
### `logs/`
Logs de erros gerados pelo editor durante a renderização das páginas. Útil para depurar problemas em produção.
Saiba como interpretar os logs em [Erros](/editor-codigo/como-fazer/erros).
---
### `sections/`
Arquivos `.twig` de seções editáveis pelo merchant no Editor de Temas — banners, destaques, coleções, listas de produtos. Cada seção pode receber parâmetros configurados no painel via `section.params`.
---
### `templates/`
Arquivo principal de cada página da loja (home, produto, categoria, busca, etc.). É o ponto de entrada que compõe a página incluindo seções e elementos.
# Tecnologias
Source: https://docs.yampi.com.br/editor-codigo/como-fazer/tecnologias
O Tema Rocket é construído sobre três tecnologias que trabalham em camadas complementares. Entender o papel de cada uma é fundamental para fazer qualquer personalização no Editor de Código.
**Twig** é uma linguagem de templates server-side: você escreve HTML com marcações especiais (`{{ }}`, `{% %}`) e o servidor as substitui pelos dados reais antes de entregar a página ao navegador.
---
### Acessando dados da loja
Os objetos mais comuns disponíveis nos templates são:
```twig
{{ merchantData.manifest.name }} {# Nome da loja #}
{{ merchantData.domain }} {# Domínio principal da loja #}
{{ product.name }} {# Nome do produto (páginas de produto) #}
{{ pageConfig.page }} {# Identificador da página atual (ex: 'product') #}
```
Algumas propriedades só existem em determinadas páginas. Use `default` para evitar erros quando o dado não está disponível:
```twig
{{ product.texts.description | default('') }} {# Descrição pode estar vazia #}
{{ product.brand.logo_url | default('') }} {# Marca pode não ter logo #}
```
Consulte a referência completa em [Objetos](/editor-codigo/referencia/objetos).
---
### Compondo páginas com seções e elementos
Os templates do Tema Rocket montam cada página incluindo seções e elementos reutilizáveis:
```twig
{% include 'elements/header.twig' %}
{% include 'sections/banner.twig' %}
{% include 'sections/product-list.twig' %}
```
---
### Iterando sobre dados da loja
Exibindo categorias disponíveis na loja:
```twig
```
Exibindo produtos de uma listagem (páginas de categoria, busca ou promoção):
```twig
{% for item in content.data %}
{{ item.name }}
{{ item.prices.price_formated }}
{% endfor %}
```
---
### Usando configurações do Editor de Temas
Os parâmetros configurados pelo merchant no Editor de Temas ficam disponíveis em `pageConfig.theme.params` (parâmetros gerais do tema) e em `section.params` (parâmetros específicos de cada seção):
```twig
{% if pageConfig.theme.params.show_banner %}
{% endif %}
```
```twig
{% if section.params.show_title %}
{{ section.params.title }}
{% endif %}
```
---
### Passando dados para componentes Vue
O padrão do Tema Rocket é passar dados da loja como props para componentes Vue diretamente nos atributos Twig:
```twig
```
---
### Filtros específicos da Yampi
| Filtro | O que faz |
|---|---|
| `vendor_url` | Gera URL completa para um arquivo estático do tema |
| `assets_url` | Gera link completo para um asset (imagem, JS, etc.) |
| `thumborize` | Gera thumbnail redimensionada para uma imagem |
| `mask` | Formata um texto seguindo uma máscara (ex: CEP, telefone) |
| `json_decode` | Converte uma string JSON em array |
| `font_link` | Gera link do Google Fonts para a fonte especificada |
Consulte a lista completa em [Filtros e Funções](/editor-codigo/referencia/filtros).
---
### Boas práticas
**Proteja acessos que podem ser nulos.** Algumas propriedades só existem em determinadas páginas. Use `default` para evitar erros de renderização:
```twig
{# ✅ Correto #}
{{ product.texts.description | default('') }}
{# ❌ Pode quebrar se a propriedade não existir #}
{{ product.texts.description }}
```
---
**Use `bool_text` para booleanos em props Vue.** Evita ternários e mantém o template legível:
```twig
{# ✅ Correto #}
:has-promotion="{{ product.prices.has_promotion | bool_text }}"
{# ❌ Evite #}
:has-promotion="{{ product.prices.has_promotion ? 'true' : 'false' }}"
```
---
**Mantenha a lógica no Vue.** O Twig é para estrutura e dados — lógica complexa pertence ao componente:
```twig
{# ✅ Twig entrega dados, Vue decide o que fazer #}
{# ❌ Lógica de apresentação no Twig — difícil de manter #}
{% if product.prices.has_promotion %}
{{ product.prices.price_formated }}
{% else %}
{{ product.prices.price_formated }}
{% endif %}
```
**Vue.js** é um framework JavaScript progressivo para construir interfaces interativas. Com ele, você cria componentes reativos que respondem em tempo real às ações do usuário, sem recarregar a página.
O editor utiliza **Vue 2**. Consulte a [documentação oficial do Vue 2](https://v2.vuejs.org/v2/guide/) para referências completas.
---
### Usando um componente em um template Twig
A tag HTML do componente no Twig é definida pela propriedade `name` do componente Vue — convertida automaticamente para kebab-case:
```html
```
```twig
{# Em qualquer arquivo .twig #}
```
---
### Acessando dados da loja no componente
O backend injeta os dados da loja em variáveis globais acessíveis dentro de qualquer componente Vue:
```javascript
window.merchant // Configurações da loja, frete, redes sociais
window.product // Dados do produto atual (somente em páginas de produto)
window.Yampi // Dados da sessão: carrinho, UTM e informações do cliente
```
Consulte todos os dados disponíveis em [Variáveis JavaScript](/editor-codigo/referencia/variaveis-javascript).
---
### Padrão de componente do Tema Rocket
O Tema Rocket usa esse padrão em todos os componentes nativos — siga-o ao criar os seus:
```html
Faltam {{ $formatMoney(remaining) }} para frete grátis
```
---
### Recebendo dados do Twig via props
O padrão mais comum no Tema Rocket é o Twig passar dados da loja para o componente Vue via props:
```twig
{# sections/product-info.twig #}
```
```html
```
---
### Boas práticas
**Sempre defina a propriedade `name`.** O `name` define a tag HTML usada nos templates Twig. Sem ele, o componente pode não ser registrado corretamente:
```html
```
---
**Declare todas as props com tipo e valor padrão.** Props sem validação geram erros silenciosos difíceis de depurar:
```html
```
---
**Use `scoped` no bloco `
{# ❌ Estilos vazam para o resto da página #}
```
---
**Acesse dados globais com optional chaining.** As variáveis globais (`window.merchant`, `window.product`) podem não estar disponíveis em todas as páginas:
```javascript
computed: {
// ✅ Correto
storeName() {
return window.merchant?.manifest?.name || '';
},
// ❌ Quebra se window.merchant for undefined
storeName() {
return window.merchant.manifest.name;
},
},
```
**SASS** (e sua sintaxe SCSS) é um pré-processador CSS que adiciona variáveis, aninhamento e funções ao CSS padrão. Os arquivos `.scss` são compilados automaticamente em CSS pelo build do tema.
---
### Design tokens do Tema Rocket
Sempre use as variáveis CSS do tema em vez de valores fixos. Isso garante que suas customizações acompanhem o tema configurado pelo merchant no Editor de Temas:
```scss
.meu-componente {
color: var(--color-general-primary);
background-color: var(--color-general-background);
font-family: var(--font-family-primary);
border-radius: var(--border-radius-base);
&:hover {
background-color: var(--color-general-primary);
color: var(--color-general-white);
}
}
```
Consulte todos os tokens disponíveis em [Variáveis CSS](/editor-codigo/variaveis-css/tema).
---
### Customizando componentes do tema
Para sobrescrever o estilo de um componente existente do Tema Rocket, crie um arquivo SCSS em `assets/styles/` usando o mesmo seletor do componente:
```scss
// assets/styles/product-card.scss
.product-card {
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
.product-card__title {
font-size: 16px;
color: var(--color-general-primary-text);
}
.product-card__price {
font-weight: var(--font-bold);
color: var(--color-general-primary);
}
}
```
---
### Adicionando estilos a um componente Vue
Para estilos exclusivos de um componente Vue, use `lang="scss" scoped` diretamente no arquivo `.vue`:
```html
```
---
### Boas práticas
**Use design tokens em vez de valores fixos.** Valores fixos quebram quando o merchant altera o tema no Editor de Temas:
```scss
// ✅ Correto — acompanha o tema
.btn {
background-color: var(--color-general-primary);
font-family: var(--font-family-primary);
border-radius: var(--border-radius-base);
}
// ❌ Valor fixo — não acompanha o tema
.btn {
background-color: #A85DEE;
font-family: 'Inter', sans-serif;
border-radius: 4px;
}
```
---
**Organize os arquivos por contexto em `assets/styles/`.** Cada subpasta tem uma responsabilidade específica:
```
assets/styles/
├── elements/ # Estilos de componentes e elementos individuais
├── global/ # Estilos que afetam múltiplas páginas
├── pages/ # Estilos de cada página
│ └── mobile/ # Estilos responsivos por página
└── sections/ # Estilos de cada seção
```
---
**Limite o aninhamento a 3 níveis.** Aninhamentos profundos aumentam a especificidade e dificultam a sobrescrita:
```scss
// ✅ Até 3 níveis — legível e fácil de sobrescrever
.product-card {
.content {
.price { ... }
}
}
// ❌ Aninhamento excessivo
.product-card {
.content {
.info {
.price {
span { ... }
}
}
}
}
```
# Buscar e substituir
Source: https://docs.yampi.com.br/editor-codigo/como-fazer/busca-substituir
O Editor de Código oferece três formas de localizar arquivos e trechos de código no tema, além de uma função de substituição em massa para renomear classes, componentes ou qualquer texto repetido.
---
## Formas de navegação
Ao abrir o editor, você verá no canto inferior do painel lateral os três modos de navegação disponíveis:

| Modo | Atalho | Quando usar |
|---|---|---|
| **Explorar** | `Ctrl + Shift + E` | Navegar pela árvore de pastas quando você já sabe onde o arquivo está. |
| **Pesquisar em Arquivos** | `Ctrl + Shift + F` | Buscar por um trecho de código, classe CSS ou nome de componente em todos os arquivos. |
| **Ir até Arquivo** | `Ctrl + P` | Abrir um arquivo rapidamente pelo nome, sem precisar navegar pela árvore. |
No macOS, substitua `Ctrl` por `Cmd` em todos os atalhos.
---
## Pesquisando em arquivos
A busca em arquivos é o recurso mais poderoso do editor. Ela varre o conteúdo de todos os arquivos do tema e retorna cada ocorrência com o trecho destacado.
Clique no ícone de lupa no painel lateral ou use o atalho `Ctrl + Shift + F`.
Digite o termo que deseja localizar. Os resultados são atualizados em tempo real, agrupados por pasta e arquivo, com a contagem total exibida no topo.

No exemplo acima, a busca por `box-product` retornou **73 resultados em 22 arquivos** — incluindo estilos SCSS, componentes Vue e templates Twig.
Para reduzir o escopo, use o campo **Arquivos a incluir** com um padrão glob. Por exemplo, `*.vue` limita a busca apenas a componentes Vue:

A mesma busca por `box-product`, agora filtrada para `*.vue`, retorna apenas **5 resultados em 3 arquivos**.
Você pode combinar padrões com vírgula (ex.: `*.vue, *.twig`) ou usar caminhos parciais (ex.: `components/product/**`) para restringir ainda mais a busca.
Clique em qualquer ocorrência para abrir o arquivo na linha correspondente.
---
## Substituindo conteúdo
A substituição funciona em conjunto com a busca: você define o termo a localizar, o termo de troca e aplica a substituição arquivo por arquivo ou em todas as ocorrências de uma vez.
Com o painel de busca aberto, clique na seta `>` à esquerda do campo de pesquisa para revelar o campo de substituição logo abaixo.
No campo superior, digite o termo a localizar. No campo inferior, digite o novo valor que substituirá o termo encontrado.
Os resultados exibem uma prévia da alteração: o termo original aparece riscado e o novo valor é destacado ao lado.

No exemplo acima, a classe `classe-antiga` será substituída por `classe-nova` no arquivo `MeuComponente.vue`.
Você pode substituir as ocorrências de duas formas:
- **Por resultado individual** — passe o mouse sobre uma ocorrência na lista de resultados e clique no ícone de substituir ao lado dela (atalho `Ctrl + Shift + 1`).
- **Por arquivo** — clique no resultado para abrir o arquivo, selecione as alterações que deseja aplicar e use o atalho `Ctrl + Shift + 1` dentro do arquivo.
A substituição altera o conteúdo do arquivo, mas a mudança só é persistida após salvar. Os arquivos modificados ficam marcados com um ponto ao lado do nome na aba.

Clique em **Salvar arquivo** no canto superior direito (ou use `Ctrl + S` / `Cmd + S`) para confirmar a alteração.
---
## Opções avançadas da busca
Ao lado do campo de busca, três botões alteram o comportamento da pesquisa:
| Botão | Significado |
|---|---|
| `Aa` | **Diferenciar maiúsculas e minúsculas** — `Product` deixa de ser equivalente a `product`. |
| `ab` | **Palavra inteira** — busca o termo apenas quando ele aparece como uma palavra completa (busca `product`, ignora `products`). |
| `.*` | **Expressão regular** — interpreta o termo como regex (ex.: `product-(card\|info)`). |
# Erros
Source: https://docs.yampi.com.br/editor-codigo/como-fazer/erros
O Editor de Código inclui um validador que identifica problemas em arquivos Twig, Vue e SCSS — como tags mal fechadas ou sintaxe inválida — diretamente na interface, indicando a linha exata do erro.
---
## Como o validador funciona
- As mensagens de erro aparecem diretamente na interface do editor ao salvar o arquivo.
- Cada mensagem indica o arquivo e a linha onde o problema foi detectado.
---
## Exemplo de erro
Considere o trecho a seguir, com uma tag `if` sem fechamento dentro de um `for`:
```twig
{% for section in sections %}
{% if section.visible %}
{% include 'sections/' ~ section.section_alias ~ '.twig' with section %}
{% endfor %}
```
O validador exibe a seguinte mensagem:
```plaintext
Erro de sintaxe na linha 14 do arquivo:
Unexpected "endfor" tag (expecting closing tag for the "if" tag defined near line 13).
```
---
## Corrigindo o erro
Abra o arquivo apontado pelo validador e vá até a linha indicada na mensagem.
Verifique se todas as tags abertas (`{% if %}`, `{% for %}`, `{% block %}`) têm o fechamento correspondente (`{% endif %}`, `{% endfor %}`, `{% endblock %}`).
Ajuste o código para fechar corretamente as tags:
```twig
{% for section in sections %}
{% if section.visible %}
{% include 'sections/' ~ section.section_alias ~ '.twig' with section %}
{% endif %}
{% endfor %}
```
Salve o arquivo (`Ctrl + S` / `Cmd + S`) e confirme que a mensagem de erro desapareceu.
# Versionamento
Source: https://docs.yampi.com.br/editor-codigo/estrutura/versionamento
O sistema de versionamento integrado ao Editor de Código armazena o histórico das últimas versões salvas de cada arquivo. Isso permite restaurar alterações acidentais ou recuperar estados anteriores sem precisar reescrever o código.
---
## Como funciona
- **Histórico de versões** — o editor armazena as **três últimas versões salvas** de cada arquivo.
- **Visualização** — as versões anteriores ficam disponíveis diretamente na interface do editor.
- **Armazenamento** — as versões permanecem disponíveis indefinidamente enquanto o arquivo existir.
---
## Quando usar
- **Reverter mudanças** — voltar a uma versão estável após uma alteração que causou erros.
- **Comparar versões** — entender o que mudou entre dois pontos do desenvolvimento.
- **Recuperar trechos** — reaproveitar código de uma versão anterior sem desfazer todas as alterações.
# Publicação
Source: https://docs.yampi.com.br/editor-codigo/estrutura/publicacao
Após finalizar as alterações no tema, a publicação aplica as mudanças na loja oficial — substituindo a versão atual vista pelos clientes.
---
## Publicando alterações
No canto superior direito do editor, clique em **Publicar loja**.
Revise as informações exibidas no modal e clique em **Sim, publicar** para aplicar as alterações.
As alterações podem levar alguns segundos para aparecer na loja por conta do cache.
Aguarde a propagação do cache antes de fazer novos testes após a publicação. Realizar testes imediatamente pode mostrar resultados inconsistentes.
# editor-codigo/referencia/objetos
Source: https://docs.yampi.com.br/editor-codigo/referencia/objetos
## Variáveis Globais
### `merchantData`
Contém informações gerais sobre a loja, como domínio, tema e configurações.
| Campo | Tipo | Descrição |
|:-----------|:--------|:---------------------------------------------|
| `id` | Integer | ID único da loja. |
| `alias` | String | Apelido interno da loja. |
| `domain` | String | Domínio principal da loja. |
| `base_url` | String | URL base da loja. |
| `logo_url` | String | URL do logotipo da loja. |
| `has_mp` | Boolean | Indica se há meios de pagamento habilitados. |
### `merchantData.checkout`
Contém informações sobre o processo de checkout.
| Campo | Tipo | Descrição |
|:---------------|:--------|:------------------------------------------------------|
| `base_domain` | String | URL base do checkout. |
| `skip_cart` | Boolean | Indica se o carrinho é pulado no checkout. |
| `items` | String | URL para obter os itens do carrinho. |
| `items_json` | String | URL para obter os itens do carrinho em formato JSON. |
| `redirect_to` | String | URL para redirecionamento ao carrinho. |
| `orders` | String | URL para histórico de pedidos do cliente. |
| `store_token` | String | Token da loja para autenticação nas URLs do checkout. |
| `default_card` | String | Cartão de crédito padrão do cliente, como `Visa`. |
| `shopper_url` | String | URL para a conta do cliente na loja. |
### `merchantData.manifest`
Contém dados específicos do manifesto da loja.
| Campo | Tipo | Descrição |
|:--------------|:-------|:-----------------------------------------------------------------|
| `name` | String | Nome completo da loja. |
| `short_name` | String | Nome curto da loja, utilizado em interfaces com espaço limitado. |
| `start_url` | String | URL inicial para carregar a loja como um aplicativo web. |
| `description` | String | Descrição da loja. |
| `lang` | String | Idioma da loja, no formato ISO (ex: `pt-BR`). |
### `merchantData.meta`
Contém informações de metadados adicionais.
| Campo | Tipo | Descrição |
|:--------------|:-------|:----------------------------------|
| `title` | String | Título da loja. |
| `description` | String | Descrição meta da loja para SEO. |
| `icons` | Array | Lista de ícones usados pela loja. |
### `merchantData.company`
Contém informações da empresa responsável pela loja.
| Campo | Tipo | Descrição |
|:---------------|:-------|:------------------------------------------------------|
| `person_type` | String | Tipo de pessoa física ou jurídica. |
| `cnpj` | String | CNPJ da empresa (caso aplicável). |
| `razao_social` | String | Razão social da empresa. |
| `name` | String | Nome fantasia ou comercial da loja. |
| `cpf` | String | CPF (caso a loja seja registrada como pessoa física). |
| `phone` | String | Telefone da loja ou empresa. |
| `whatsapp` | Array | Dados de contato do WhatsApp. |
| `email` | String | Endereço de e-mail de contato da loja. |
| `address` | Array | Endereço da empresa ou loja. |
| `social` | Array | Redes sociais da loja ou empresa. |
### `sections`
Contém detalhes sobre as seções da interface.
| Campo | Tipo | Descrição |
|:----------------|:--------|:--------------------------------------------------------------------|
| `section_alias` | String | Identificador único da seção, como `header`, `footer`, etc. |
| `position` | Integer | Posição da seção na interface, indicando sua ordem de apresentação. |
| `order` | Integer | Ordem específica para organização da seção em relação a outras. |
| `visible` | Boolean | Indica se a seção está visível ao usuário. |
| `params` | Array | Parâmetros adicionais para a seção. |
### `sorted_categories`
Contém informações sobre categorias organizadas.
| Campo | Tipo | Descrição |
|:-----------------|:--------|:----------------------------------------------------------------------------------------|
| `id` | Integer | Identificador único da categoria. |
| `featured` | Boolean | Indica se a categoria é destacada. |
| `parent_id` | Integer | ID da categoria pai (ou `null` se for uma categoria principal). |
| `is_parent` | Boolean | Indica se a categoria é uma categoria pai. |
| `name` | String | Nome da categoria. |
| `slug` | String | Identificador amigável para URL da categoria. |
| `url` | String | URL completa da categoria. |
| `url_path` | String | Caminho relativo para acesso direto à categoria, com parâmetros de ordenação incluídos. |
| `path` | String | Caminho completo de navegação da categoria, exibido no formato textual. |
| `category_cover` | Mixed | URL da imagem de capa da categoria (ou `null` se não tiver uma). |
| `order` | Integer | Ordem de exibição da categoria em relação às outras. |
| `children` | Array | Lista de subcategorias, se houver. |
### `featured_categories`
Contém informações sobre categorias destacadas.
| Campo | Tipo | Descrição |
|:-----------------|:--------|:----------------------------------------------------------------------------------------|
| `id` | Integer | Identificador único da categoria. |
| `featured` | Boolean | Indica se a categoria é destacada. |
| `parent_id` | Integer | ID da categoria pai (ou `null` se for uma categoria principal). |
| `is_parent` | Boolean | Indica se a categoria é uma categoria pai. |
| `name` | String | Nome da categoria. |
| `slug` | String | Identificador amigável para URL da categoria. |
| `url` | String | URL completa da categoria. |
| `url_path` | String | Caminho relativo para acesso direto à categoria, com parâmetros de ordenação incluídos. |
| `path` | String | Caminho completo de navegação da categoria, exibido no formato textual. |
| `category_cover` | Mixed | URL da imagem de capa da categoria (ou `null` se não tiver uma). |
| `order` | Integer | Ordem de exibição da categoria em relação às outras. |
### `categories`
Contém informações sobre todas as categorias disponíveis.
| Campo | Tipo | Descrição |
|:-----------------|:--------|:----------------------------------------------------------------------------------------|
| `id` | Integer | Identificador único da categoria. |
| `featured` | Boolean | Indica se a categoria é destacada. |
| `parent_id` | Integer | ID da categoria pai (ou `null` se for uma categoria principal). |
| `is_parent` | Boolean | Indica se a categoria é uma categoria pai. |
| `name` | String | Nome da categoria. |
| `slug` | String | Identificador amigável para URL da categoria. |
| `url` | String | URL completa da categoria. |
| `url_path` | String | Caminho relativo para acesso direto à categoria, com parâmetros de ordenação incluídos. |
| `path` | String | Caminho completo de navegação da categoria, exibido no formato textual. |
| `category_cover` | Mixed | URL da imagem de capa da categoria (ou `null` se não tiver uma). |
| `order` | Integer | Ordem de exibição da categoria em relação às outras. |
| `children` | Array | Lista de subcategorias, se houver. |
### `pageConfig`
Contém informações sobre a configuração da página.
| Campo | Tipo | Descrição |
|:-----------|:-------|:---------------------------------------------------------------|
| `page` | String | Nome da página atual (por exemplo, `product`). |
| `theme` | Array | Informações sobre o tema da página. |
| `sections` | Array | Lista de seções da página, contendo detalhes sobre cada seção. |
### `pageConfig.theme`
| Campo | Tipo | Descrição |
|:---------|:-------|:-----------------------------------|
| `alias` | String | Alias do tema. |
| `params` | Array | Todos os parâmetros gerais do tema |
### `pageConfig.sections`
| Campo | Tipo | Descrição |
|:----------------|:--------|:-----------------------------------------|
| `section_alias` | String | Alias da seção. |
| `order` | Number | Ordem de exibição relativa entre seções. |
| `visible` | Boolean | Define se a seção está visível. |
| `params` | Array | Parâmetros específicos da seção. |
## Variáveis na Página de Categoria/Busca/Promoção
### `content`
Contém informações sobre o conteúdo da página
| Campo | Tipo | Descrição |
|:----------|:-------|:---------------------------------------------------------------------------------|
| `meta` | Array | Metadados da página. |
| `data` | Array | Dados dos produtos da página. |
| `slug` | String | Slug da página. |
| `limit` | Number | Limite de produtos exibidos por página. |
| `context` | String | Contexto da página. Valores possíveis: **category**, **promotion** ou **search** |
### `content.meta`
Metadados da página
| Campo | Tipo | Descrição |
|:--------------|:-------|:----------------------------|
| `name` | String | Nome da categoria. |
| `description` | String | Descrição da categoria. |
| `seo` | Array | Propriedades SEO da página. |
| `parent` | Array | Lista de categorias-pai. |
| `data` | Array | Lista de produtos |
### `content.meta.seo`
Propriedades SEO da página
| Campo | Tipo | Descrição |
|:----------------|:-------|:--------------------------------|
| `title` | String | Título SEO da categoria. |
| `description` | String | Descrição SEO da categoria. |
| `keywords` | String | Palavras-chave SEO da categoria |
| `canonical_url` | String | URL canônica para SEO. |
### `content.data`
Lista de produtos da página
| Campo | Tipo | Descrição |
|:-------------------------|:--------|:-----------------------------------------------------------------|
| `id` | Number | ID do produto. |
| `sku_id` | Number | ID do SKU. |
| `gift_value` | Number | Valor de presente. |
| `simple` | Boolean | Indica se o produto é simples. |
| `has_variations` | Boolean | Indica se possui variações. |
| `is_digital` | Boolean | Indica se é um produto digital. |
| `warranty` | Number | Garantia do produto. |
| `custom_shipping` | Boolean | Se há frete personalizado. |
| `shipping_price` | Number | Preço do frete. |
| `name` | String | Nome do produto. |
| `slug` | String | Slug da URL do produto. |
| `sku` | String | Código SKU do produto. |
| `blocked_sale` | Boolean | Indica se está bloqueado para venda. |
| `rating` | String | Avaliação média. |
| `total_approved_reviews` | Number | Total de avaliações aprovadas. |
| `url` | String | URL completa do produto. |
| `url_path` | String | Caminho relativo da URL. |
| `use_different_images` | Boolean | Se usa imagens diferentes para variações. |
| `brand` | Array | Informações da marca. [Ver mais](#product-brand) |
| `images` | Array | Lista de imagens do produto. [Ver mais](#product-images) |
| `prices` | Array | Informações de preços. [Ver mais](#product-prices) |
| `flags` | Array | Lista de selos associados ao produto. [Ver mais](#product-flags) |
### `config`
Contém as informações de configuração da seção de categorias.
| Campo | Tipo | Descrição |
|:----------------|:--------|:----------------------------------------------|
| `section_alias` | String | Alias da seção (ex: `main_category_content`). |
| `position` | Number | Posição da seção na tela. |
| `order` | Number | Ordem de exibição relativa entre seções. |
| `visible` | Boolean | Define se a seção está visível. |
| `params` | Objeto | Parâmetros de configuração da seção. |
### `config.params`
Parâmetros da seção de categoria
| Campo | Tipo | Descrição |
|:---------------------|:--------|:--------------------------------------------|
| `products_per_page` | String | Quantidade de produtos por página. |
| `show_sort` | Boolean | Exibe ou não o seletor de ordenação. |
| `filters_enabled` | Boolean | Habilita ou não os filtros na seção. |
| `show_subcategories` | Boolean | Exibe ou não as subcategorias. |
| `show_price_slider` | Boolean | Exibe ou não o filtro de faixa de preço. |
| `show_brand` | Boolean | Exibe ou não o filtro de marcas. |
| `show_banners` | Boolean | Exibe ou não os banners na seção. |
| `slider_delay` | Number | Tempo de rotação dos banners (em segundos). |
## Variáveis na Página de Produto
### `product`
Contém informações detalhadas sobre o produto.
| Campo | Tipo | Descrição |
|:-------------------------|:--------|:------------------------------------------------------------------------|
| `id` | Integer | Identificador único do produto. |
| `sku_id` | Integer | ID do SKU do produto. |
| `gift_value` | Float | Valor associado ao produto como presente, se aplicável. |
| `simple` | Boolean | Indica se o produto é simples ou possui variações. |
| `has_variations` | Boolean | Indica se o produto possui variações. |
| `is_digital` | Boolean | Indica se o produto é digital. |
| `warranty` | Integer | Garantia do produto, em meses. |
| `custom_shipping` | Boolean | Indica se o produto possui frete personalizado. |
| `shipping_price` | Float | Valor do frete, se personalizado. |
| `name` | String | Nome do produto. |
| `slug` | String | Identificador amigável para URL do produto. |
| `sku` | String | SKU do produto. |
| `blocked_sale` | Boolean | Indica se a venda do produto está bloqueada. |
| `rating` | Float | Classificação do produto. |
| `total_approved_reviews` | Integer | Número total de avaliações aprovadas. |
| `url` | String | URL completa do produto. |
| `url_path` | String | Caminho relativo do produto. |
| `use_different_images` | Boolean | Indica se o produto usa imagens diferentes para variações. |
| `brand` | Array | Informações da marca do produto. |
| `images` | Array | Lista de URLs das imagens do produto. |
| `prices` | Array | Informações de preços e descontos do produto. |
| `flags` | Array | Selos do produto. |
| `variations` | Array | Lista de variações disponíveis do produto. |
| `skus` | Array | Conjunto de SKUs adicionais associados ao produto. |
| `extras` | Array | Informações extras associadas ao produto. |
| `texts` | Array | Textos adicionais relacionados ao produto, como descrição e instruções. |
| `seo` | Array | Informações de SEO do produto, como título e meta descrições. |
| `categories` | Array | Categorias às quais o produto pertence. |
| `breadcrumbs` | Array | Estrutura de navegação para o produto (breadcrumb). |
#### `product.brand`
Contém informações sobre a marca do produto.
| Campo | Tipo | Descrição |
|:-----------|:--------|:------------------------------------------|
| `id` | Integer | Identificador da marca. |
| `name` | String | Nome da marca. |
| `logo_url` | String | URL do logotipo da marca (se disponível). |
#### `product.images`
Contém URLs das imagens do produto.
| Campo | Tipo | Descrição |
|:------|:-------|:--------------------------|
| `url` | String | URL da imagem do produto. |
#### `product.prices`
Contém informações sobre preços e descontos.
| Campo | Tipo | Descrição |
|:--------------------------|:--------|:-------------------------------------------------|
| `currency` | String | Moeda do preço. |
| `price_cost` | Float | Custo do produto. |
| `price_cost_formated` | String | Custo do produto formatado. |
| `price` | Float | Preço do produto. |
| `price_formated` | String | Preço do produto formatado. |
| `price_sale` | Float | Preço de venda do produto. |
| `price_sale_formated` | String | Preço de venda formatado. |
| `price_discount` | Float | Preço com desconto do produto. |
| `price_discount_formated` | String | Preço com desconto formatado. |
| `has_promotion` | Boolean | Indica se o produto tem promoção. |
| `percent_discount` | Float | Percentual de desconto do produto. |
| `billet` | Array | Informações sobre o preço do produto via boleto. |
| `pix` | Array | Informações sobre o preço do produto via Pix. |
| `installments` | Array | Informações sobre as parcelas do produto. |
#### `product.flags`
Contém os selos do produto.
| Campo | Tipo | Descrição |
|:-------|:------|:---------------------------|
| `data` | Array | Lista de selos do produto. |
#### `product.flags.data`
Contém as informações de cada selo
| Campo | Tipo | Descrição |
|:-------------------|:-------|:--------------------------------------------|
| `id` | Number | Identificador do selo. |
| `name` | String | Nome do selo. |
| `slug` | String | Slug do selo. |
| `text_color` | String | Cor do texto (formato hexadecimal). |
| `background_color` | String | Cor de fundo do selo (formato hexadecimal). |
| `image_url` | String | URL de imagem associada. |
#### `product.variations`
Contém variações disponíveis do produto.
| Campo | Tipo | Descrição |
|:-------|:------|:-------------------------------------------|
| `data` | Array | Lista de variações disponíveis do produto. |
#### `product.skus`
Contém informações sobre SKUs adicionais.
| Campo | Tipo | Descrição |
|:-----------------------------------|:--------|:-------------------------------------------------|
| `id` | Integer | Identificador do SKU. |
| `product_id` | Integer | ID do produto associado ao SKU. |
| `sku` | String | SKU do produto. |
| `blocked_sale` | Boolean | Indica se a venda do SKU está bloqueada. |
| `title` | String | Título do SKU. |
| `availability` | Integer | Disponibilidade do SKU. |
| `days_availability_formated` | String | Disponibilidade formatada do SKU. |
| `price_sale` | Float | Preço de venda do SKU. |
| `price_discount` | Float | Preço com desconto do SKU. |
| `combinations` | String | Combinações disponíveis para o SKU. |
| `order` | Integer | Ordem de exibição do SKU. |
| `total_in_stock` | Integer | Total em estoque do SKU. |
| `allow_sell_without_customization` | Boolean | Indica se é permitido vender sem personalização. |
#### `product.extras`
Contém informações extras associadas ao produto.
| Campo | Tipo | Descrição |
|:-----------------|:--------|:-------------------------------------|
| `video` | String | URL do vídeo relacionado ao produto. |
| `total_in_stock` | Integer | Total em estoque do produto. |
| `for_gift` | Boolean | Indica se o produto é para presente. |
#### `product.texts`
Contém textos adicionais relacionados ao produto.
| Campo | Tipo | Descrição |
|:-----------------|:-------|:---------------------------|
| `description` | String | Descrição do produto. |
| `specifications` | String | Especificações do produto. |
| `measures` | String | Medidas do produto. |
#### `product.seo`
Contém informações de SEO do produto.
| Campo | Tipo | Descrição |
|:------------------|:-------|:-------------------------------|
| `seo_title` | String | Título SEO do produto. |
| `seo_description` | String | Descrição SEO do produto. |
| `seo_keywords` | String | Palavras-chave SEO do produto. |
| `canonical_url` | String | URL canônica do produto. |
#### `product.categories`
Contém categorias às quais o produto pertence.
| Campo | Tipo | Descrição |
|:------------|:--------|:----------------------------------------------|
| `id` | Integer | Identificador da categoria. |
| `name` | String | Nome da categoria. |
| `parent_id` | Integer | ID da categoria pai (se houver). |
| `slug` | String | Identificador amigável para URL da categoria. |
| `url_path` | String | Caminho relativo da categoria. |
#### `product.breadcrumbs`
Contém estrutura de navegação para o produto (breadcrumb).
| Campo | Tipo | Descrição |
|:-----------|:--------|:---------------------------------------------|
| `id` | Integer | Identificador da categoria de breadcrumb. |
| `name` | String | Nome da categoria de breadcrumb. |
| `url_path` | String | Caminho relativo da categoria de breadcrumb. |
# Filtros e Funções
Source: https://docs.yampi.com.br/editor-codigo/referencia/filtros
## Filtros
Filtros são operações simples que formatam uma variável ou expressão para serem exibidos para o usuário.
### `assets_url`
Gera um link completo para um asset(Imagem, arquivo JS, etc.)
```twig
{% assets_url(string): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `string` | `string` | |
#### Retorno
Tipo: `string`
### `bool_text`
Renderiza os textos `true` ou `false` dependendo da condição informada
```twig
{% bool_text(condition): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `condition` | `string` | |
#### Retorno
Tipo: `string`
Textos `true` ou `false`
### `boolean`
Converte um valor em texto para booleano
```twig
{% boolean(value): bool %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `value` | `string` | |
#### Retorno
Tipo: `bool`
### `components_url`
Gera um link completo para um componente
```twig
{% components_url(string): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `string` | `string` | |
#### Retorno
Tipo: `string`
### `font_link`
Gera links para incorporação do Google Fonts para a fonte especificada com todos os pesos conhecidos
```twig
{% font_link(font): string %}
```
#### Exemplo de uso
```twig
// https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;900&display=swap
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `font` | `string` | Nome da fonte (ex: Inter) |
#### Retorno
Tipo: `string`
Link do Google Fonts
### `json_decode`
Leitura de uma string JSON
```twig
{% json_decode(value): array %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `value` | `string` | |
#### Retorno
Tipo: `array`
### `mask`
Formata um texto seguindo a máscara informada
```twig
{% mask(string, mask): string %}
```
#### Exemplo de uso
```twig
{{ cep | mask('#####-###') }}
// 12345-678
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `string` | `string` | Texto a ser formatado |
| `mask` | `string` | Máscara (utilize `#` para representar um dígito) |
#### Retorno
Tipo: `string`
### `only_numbers`
Remove todos os caracteres não-numéricos de um texto
```twig
{% only_numbers(string): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `string` | `string` | |
#### Retorno
Tipo: `string`
### `vendor_url`
Gera um link completo para um arquivo estático
```twig
{% vendor_url(file): string %}
```
#### Exemplo de uso
```twig
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `file` | `string` | Nome do arquivo estático |
#### Retorno
Tipo: `string`
URL completa para o arquivo
### `youtube_url`
Gera links para incorporar vídeos do YouTube, junto com uma thumbnail
```twig
{% youtube_url(url): array %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `url` | `string` | |
#### Retorno
Tipo: `array`
Um array com os campos `video` com o link de embed do vídeo e `thumbnail` com o link da thumb
## Funções
Funções podem ser usadas para executar cálculos ou ações mais complexas que filtros, retornando valores mais elaborados
ou manipulando dados de uma maneira mais específica.
### `button_bg_color`
Retorna a cor para um botão
```twig
{% button_bg_color(type, color): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `type` | `string` | Tipo da cor (aceita apenas `solid`) |
| `color` | `string` | Cor desejada |
#### Retorno
Tipo: `string`
A cor informada se `$type` for `solid` ou `transparent` senão
### `calculate_colors_contrast`
Dados as luminancias relativas das cores $primary_color e $secondary_color, calcula qual o contraste entre elas
seguindo o guia: https://www.accessibility-developer-guide.com/knowledge/colours-and-contrast/how-to-calculate/#the-formula
```twig
{% calculate_colors_contrast(primary_color_luminance, secondary_color_luminance): float %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `primary_color_luminance` | `string` | |
| `secondary_color_luminance` | `float` | |
#### Retorno
Tipo: `float`
### `color_is_light`
Verifica se a cor é clara (`true`) ou escura (`false`)
```twig
{% color_is_light(color): bool %}
```
#### Exemplo de uso
```twig
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `color` | `string` | Cor em formato hexadecimal |
#### Retorno
Tipo: `bool`
### `font_weight`
Retorna o valor do `font-weight` de uma determinada fonte
```twig
{% font_weight(font, weight): int %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `font` | `string` | Nome da fonte |
| `weight` | `string` | Variação da fonte (`regular`, `medium`, `bold`, `black`, etc) |
#### Retorno
Tipo: `int|null`
### `generate_seo`
Gera as tags necessárias para o SEO da página
```twig
{% generate_seo(): string %}
```
#### Retorno
Tipo: `string`
### `get_contrasting_color`
Determina qual cor entre $default_color e $alternative_color contrasta mais a cor $primary_color
```twig
{% get_contrasting_color(primary_color, default_color, alternative_color): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `primary_color` | `string` | |
| `default_color` | `string` | |
| `alternative_color` | `string` | |
#### Retorno
Tipo: `string`
### `get_section_file`
Retorna o arquivo da respectiva seção
```twig
{% get_section_file(section, page): string %}
```
#### Exemplo de uso
```twig
{{ get_section_file('main_product_content') }}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `section` | `string` | |
| `page` | `string` | |
#### Retorno
Tipo: `string`
### `hex_to_rgb`
Converte um código em hexa para RGB
```twig
{% hex_to_rgb(hex): string %}
```
#### Exemplo de uso
```twig
{% hex_to_rgb("#000000") %}
"0, 0, 0"
{% hex_to_rgb("#ffffff") %}
"255, 255, 255"
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `hex` | `string` | Código hexa |
#### Retorno
Tipo: `string`
Código RGB
### `hex_to_rgba`
Converte uma cor hexadecimal em RGBA
```twig
{% hex_to_rgba(hex, opacity): string %}
```
#### Exemplo de uso
```twig
{% hex_to_rgba("#000000", 0.5) %}
"0, 0, 0, 0.5"
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `hex` | `string` | Cor em hexadecimal |
| `opacity` | `float` | Opacidade desejada (entre 0 e 1) |
#### Retorno
Tipo: `string`
RGBA calculado
### `is_color_contrasting`
Calcula se as cores $primary_color e $secondary_color contrastam, dado um limite default de 10.
```twig
{% is_color_contrasting(primary_color, secondary_color, threshold): bool %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `primary_color` | `string` | |
| `secondary_color` | `float` | |
#### Retorno
Tipo: `bool`
### `mix`
Retorna o caminho para um arquivo estático a ser compilado
```twig
{% mix(path): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `path` | `string` | |
#### Retorno
Tipo: `string`
### `relative_luminance`
Calcula a luminância relativa de uma cor, de acordo com a especificação em
https://www.w3.org/TR/WCAG20/#relativeluminancedef
```twig
{% relative_luminance(hex_color): float %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `hex_color` | `string` | |
#### Retorno
Tipo: `float`
### `social_media_fa`
```twig
{% social_media_fa(mediaUrl): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `mediaUrl` | `string` | |
#### Retorno
Tipo: `string`
### `strip_mustache`
Retira tags específicas da engine de templates Mustache
```twig
{% strip_mustache(string): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `string` | `string` | |
#### Retorno
Tipo: `string`
### `thumborize`
Gera uma thumbnail para uma determinada imagem
```twig
{% thumborize(url, params): string %}
```
#### Exemplo de uso
```twig
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `url` | `string` | URL da imagem |
| `params` | `array` | Parâmetros opcionais (para redimensionamento, por exemplo) |
#### Retorno
Tipo: `string`
### `type_border_radius`
Retorna o `border-radius` em pixels para determinados formatos
```twig
{% type_border_radius(type): string %}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `type` | `string` | `square`, `rounded` ou `pill` |
#### Retorno
Tipo: `string`
### `vuetify`
Retorna uma propriedade a partir do array informado
```twig
{% vuetify(array, varName, path, useMustacheSyntax): string %}
```
#### Exemplo de uso
```twig
{{ vuetify(product, 'product', 'name') }}
```
#### Parâmetros
| Parâmetro | Tipo | Descrição |
|:----------|:-----|:----------|
| `array` | `array` | |
| `varName` | `string` | |
| `path` | `string` | |
| `useMustacheSyntax` | `bool` | |
#### Retorno
Tipo: `string`
# Variáveis Javascript
Source: https://docs.yampi.com.br/editor-codigo/referencia/variaveis-javascript
## Variáveis disponíveis no ambiente Javascript
Essas variáveis podem ser acessadas através do objeto `window` em contextos Javascript.
`window.merchant` => Informações da loja, para detalhes das propriedades veja aqui.
`window.data` => Dados específicos de cada página, para detalhes das propriedades veja aqui.
`window.themeConfig` => Configurações do seu tema na Yampi, para detalhes das propriedades veja aqui.
### `window.Yampi`
Objetos relacionados à Yampi
| Campo | Tipo | Descrição |
|:-------------|:-------|:----------------------------------------------------|
| `api_domain` | String | Domínio base da API. |
| `page` | String | Tipo de página atual (ex: `category`). |
| `cart_token` | String | Token identificador do carrinho de compras. |
| `session` | Objeto | Informações da sessão, como dados de UTM e cliente. |
### `window.Yampi.session`
| Campo | Tipo | Descrição |
|:---------------|:-------|:--------------------------------|
| `utm_source` | String | Parâmetro de origem (UTM). |
| `utm_campaign` | String | Nome da campanha (UTM). |
| `utm_medium` | String | Meio de divulgação (UTM). |
| `utm_term` | String | Termo de busca (UTM). |
| `utm_content` | String | Conteúdo da campanha (UTM). |
| `utm_name` | String | Nome personalizado da campanha. |
| `utm_email` | String | Email relacionado à campanha. |
| `zipcode` | String | CEP do cliente. |
| `customer` | Objeto | Dados do cliente. |
# BuyTogetherCartGroup
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/buy-together-cart-group
Renderiza um grupo de produtos de combo ("Compre junto") como uma unidade no carrinho. Exibe os itens do conjunto, o desconto aplicado (percentual ou valor fixo) e o preço total do combo.
## Uso
```vue
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Descrição |
| :------------------ | :------: | :---------: | :-------- |
| `buyTogetherItems` | `Object` | ✅ | Objeto com os itens do combo, indexado por `kit_id`. Cada chave contém um array de produtos do conjunto. |
| `loading` | `Object` | ✅ | Objeto com o estado de carregamento de cada item, indexado por `kit_id`. |
## Eventos
| Evento | Payload | Descrição |
| :------------ | :----------------------------------------- | :-------- |
| `removeCombo` | `{ kitId: String, totalPrice: Number }` | Emitido ao clicar em remover o conjunto do carrinho. |
# CategorySubcategory
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/category-subcategory
Container que gerencia os estados de hover em desktop e interações de toque em mobile para menus de categoria com subcategorias. Calcula dinamicamente a altura do menu para animações suaves de abertura e fechamento.
## Uso
```twig
Subcategoria 1
Subcategoria 2
```
## Slots
| Slot | Descrição |
| :------ | :-------- |
| default | Conteúdo do menu de subcategorias. |
## Comportamentos automáticos
- Em desktop, abre o submenu ao passar o mouse sobre o item pai.
- Em mobile, abre o submenu ao tocar no item pai.
- A altura do submenu é calculada automaticamente para animação CSS fluida.
# DropdownCart
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/dropdown-cart
Exibe o carrinho como um painel suspenso (dropdown) abaixo do ícone do carrinho no header. Mostra os produtos, economia acumulada e opções de desconto por método de pagamento (PIX, boleto). Usado quando `cartType="suspended"` no `MiniCart`.
## Uso
Recomenda-se usar via `MiniCart` com `cart-type="suspended"`. Para uso direto:
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :-------------------- | :-------: | :---------: | :---------------------------------------: | :-------- |
| `mouseHover` | `Boolean` | ✅ | — | Controla a visibilidade do dropdown via hover no ícone do carrinho. |
| `emptyCartTextButton` | `String` | ✅ | — | Texto do botão exibido quando o carrinho está vazio. |
| `emptyCartHelperText` | `String` | ❌ | `'Navegue pela loja e adicione produtos.'`| Texto auxiliar exibido no estado de carrinho vazio. |
| `emptyCartLinkButton` | `String` | ❌ | `'/'` | URL do botão no estado de carrinho vazio. |
| `highlightedPrice` | `String` | ❌ | `''` | Destaca o preço de um método de pagamento. Valores: `'pix'`, `'billet'` ou `''`. |
# EmptyLogo
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/empty-logo
Fallback de logo para lojas sem imagem cadastrada. Renderiza o nome da loja em texto com tamanho de fonte que diminui automaticamente conforme o nome fica mais longo.
## Uso
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Descrição |
| :---------- | :------: | :---------: | :-------- |
| `storeName` | `String` | ✅ | Nome da loja exibido como logo textual. O tamanho da fonte é ajustado automaticamente com base no comprimento do texto. |
# FixedHeader
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/fixed-header
Container que monitora o scroll da página e aplica classes CSS ao header conforme o usuário rola. Quando `fixed` é `true`, o header permanece visível no topo mesmo ao rolar para baixo.
## Uso
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :---------- | :-------: | :---------: | :----------: | :-------- |
| `fixed` | `Boolean` | ❌ | `false` | Quando `true`, mantém o header fixo no topo ao fazer scroll. |
## Slots
| Slot | Descrição |
| :------ | :-------- |
| default | Conteúdo interno do header (logo, navegação, carrinho, etc.). |
# HShoppingPageRedirect
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/h-shopping-page-redirect
Exibe um ícone de carrinho no header que, em desktop, abre um dropdown ao passar o mouse e, ao clicar, redireciona para a página de compras (shopper). As cores dos ícones são configuráveis para se adaptar a diferentes temas de header.
## Uso
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :---------------- | :------: | :---------: | :----------: | :-------- |
| `section` | `String` | ✅ | — | Identificador da seção. Usado para geração de classes CSS específicas. |
| `headerIconColor` | `String` | ❌ | `'#333333'` | Cor do ícone de usuário/header em formato hex ou rgb. |
| `cartIconColor` | `String` | ❌ | `'#333333'` | Cor do ícone do carrinho em formato hex ou rgb. |
# MiniCart
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/mini-cart
Ponto de entrada do carrinho no header. Renderiza o `DropdownCart` ou o `SideCart` dependendo do valor de `cartType`. É o componente recomendado para incluir o carrinho em templates customizados de header.
## Uso
Carrinho dropdown (padrão):
```twig
```
Carrinho lateral (side cart):
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :------------------------ | :-------: | :---------: | :---------------------------------------: | :-------- |
| `emptyCartTextButton` | `String` | ✅ | — | Texto do botão exibido quando o carrinho está vazio. |
| `cartType` | `String` | ❌ | `'suspended'` | Tipo de exibição do carrinho. Valores: `'suspended'` (dropdown) ou `'side_cart'` (drawer lateral). |
| `showCartSavings` | `Boolean` | ❌ | `true` | Exibe o resumo de economia total no rodapé do carrinho. |
| `showProductCartSavings` | `Boolean` | ❌ | `true` | Exibe a economia individual de cada produto no carrinho. |
| `emptyCartHelperText` | `String` | ❌ | `'Navegue pela loja e adicione produtos.'`| Texto descritivo exibido quando o carrinho está vazio. |
| `emptyCartLinkButton` | `String` | ❌ | `''` | URL de destino do botão exibido no carrinho vazio. |
| `highlightedPrice` | `String` | ❌ | `''` | Destaca o preço de um método de pagamento específico. Valores: `'pix'`, `'billet'` ou `''`. |
| `cashbacks` | `Array` | ❌ | `[]` | Lista de cashbacks ativos para exibição no carrinho. |
# ProductCartBox
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/product-cart-box
Card de produto dentro do carrinho. Renderiza a imagem, nome, variação selecionada (SKU), campos de customização, preço unitário e total, além de controles para alterar a quantidade ou remover o item.
## Uso
```vue
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :----------------------- | :-------: | :---------: | :----------: | :-------- |
| `product` | `Object` | ✅ | — | Objeto do item no carrinho com `id`, `name`, `price`, `grids`, `customizations`, `quantity`, etc. |
| `showProductTotalPrice` | `Boolean` | ❌ | `true` | Exibe o preço total do item (preço unitário × quantidade). |
| `showProductQuantity` | `Boolean` | ❌ | `true` | Exibe os controles de quantidade (aumentar/diminuir/remover). |
## Comportamentos automáticos
- **Remoção:** ao clicar no botão de remover, o item é retirado do carrinho via Vuex.
- **Quantidade:** alterações na quantidade atualizam o carrinho em tempo real.
- **Brindes:** itens do tipo brinde são exibidos com indicação visual e sem controle de quantidade.
- **Combos:** itens de combo exibem o preço do conjunto, não individual.
# RocketCategoriesNav
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/rocket-categories-nav
Componente pai da navegação de categorias. Recebe os dados da categoria principal e delega a renderização para `RocketDesktopCategoriesNav` em desktop ou `RocketMobileCategoriesNav` em mobile. Disponibiliza os dados via `provide/inject` para os filhos.
## Uso
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Descrição |
| :------------------- | :------: | :---------: | :-------- |
| `mainCategory` | `Object` | ✅ | Objeto da categoria principal com filhos em `children.data`. |
| `categoriesDisplay` | `String` | ✅ | Controla a exibição do dropdown. Use `'both'` para exibir em desktop e mobile. |
## Comportamentos automáticos
- Em desktop, renderiza `RocketDesktopCategoriesNav` com menu dropdown multi-coluna.
- Em mobile, renderiza `RocketMobileCategoriesNav` com menu colapsável em drawer.
- O posicionamento do dropdown é ajustado automaticamente para evitar overflow do viewport.
# SearchBar
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/search-bar
Componente de busca do header. Exibe um input que, ao ser digitado, consulta a Search API e exibe uma lista de sugestões de produtos em dropdown. As últimas pesquisas são cacheadas localmente para respostas mais rápidas.
## Uso
```twig
```
## Observações
- Não recebe props — consome o estado do header e os dados do lojista via Vuex.
- A visibilidade é controlada pelo estado `header.showSearchBar` no Vuex.
- Suporta navegação pelas sugestões com as teclas `↑`, `↓` e `Enter`.
- Usa `cacheMixin` para armazenar resultados recentes e evitar chamadas redundantes à API.
# ShoppingPageRow
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/shopping-page-row
Renderiza uma linha clicável com ícone de carrinho que redireciona o usuário para a página de compras. Usado em contextos de marketplace ou lojas com página de comprador dedicada.
## Uso
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Descrição |
| :----------- | :------: | :---------: | :-------- |
| `redirectTo` | `String` | ✅ | URL de destino ao clicar no componente. |
# SideCart
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/side-cart
Exibe o carrinho como um painel que desliza da lateral direita da tela. Mostra os produtos adicionados, subtotal, descontos por método de pagamento e o botão de finalizar compra. Usado quando `cartType="side_cart"` no `MiniCart`.
## Uso
Recomenda-se usar via `MiniCart` com `cart-type="side_cart"`. Para uso direto:
```twig
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :-------------------- | :------: | :---------: | :---------------------------------------: | :-------- |
| `emptyCartTextButton` | `String` | ✅ | — | Texto do botão exibido quando o carrinho está vazio. |
| `emptyCartHelperText` | `String` | ❌ | `'Navegue pela loja e adicione produtos.'`| Texto auxiliar exibido abaixo do ícone de carrinho vazio. |
| `emptyCartLinkButton` | `String` | ❌ | `'/'` | URL do botão no estado de carrinho vazio. |
| `highlightedPrice` | `String` | ❌ | `''` | Destaca o preço de um método de pagamento. Valores: `'pix'`, `'billet'` ou `''`. |
## Comportamentos automáticos
- Abre ao adicionar um produto ao carrinho ou ao clicar no ícone do carrinho no header.
- Bloqueia o scroll da página quando aberto.
- Fecha ao clicar no backdrop ou no botão de fechar.
# SideBarTrigger
Source: https://docs.yampi.com.br/editor-codigo/componentes/cabecalho-e-carrinho/sidebar-trigger
Botão responsável por abrir e fechar o menu lateral em dispositivos móveis. Adiciona e remove uma classe no `document.body` para controlar o estado visual do sidebar. Respeita automaticamente o estado do menu de filtros da categoria.
## Uso
```twig
☰
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Descrição |
| :------------ | :------: | :---------: | :-------- |
| `activeClass` | `String` | ✅ | Classe CSS aplicada ao `document.body` quando o sidebar está aberto. |
| `name` | `String` | ✅ | Identificador do sidebar. Usado internamente para distinguir múltiplos triggers. |
## Slots
| Slot | Descrição |
| :------ | :-------- |
| default | Conteúdo do botão de trigger (ícone, texto, etc.). |
# CategoryOptions
Source: https://docs.yampi.com.br/editor-codigo/componentes/categoria-e-busca/category-options
Exibe os controles de usabilidade da página de categoria em mobile: dropdown de ordenação, toggle de layout (grade/lista) e botão para abrir o painel de filtros. Em desktop, esses controles geralmente ficam na sidebar.
## Uso
```vue
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :-------------- | :-------: | :---------: | :-------------: | :-------- |
| `isMosaic` | `Boolean` | ✅ | — | Estado atual do layout. `true` para grade (mosaico), `false` para lista. |
| `showSort` | `Boolean` | ✅ | — | Exibe ou oculta o dropdown de ordenação. |
| `showFilters` | `Boolean` | ✅ | — | Exibe ou oculta o botão de abertura dos filtros. |
| `selectedOrder` | `String` | ❌ | `'relevance'` | Ordenação atualmente ativa. Valores comuns: `'relevance'`, `'price_asc'`, `'price_desc'`, `'name_asc'`. |
## Eventos
| Evento | Payload | Descrição |
| :------------ | :-------- | :-------- |
| `change` | `String` | Emitido com o novo valor de ordenação ao alterar o select. |
| `change-grid` | `Boolean` | Emitido com o novo estado do layout (`true` = mosaico, `false` = lista). |
# Filters
Source: https://docs.yampi.com.br/editor-codigo/componentes/categoria-e-busca/filters
Componente container que renderiza automaticamente os filtros disponíveis para a categoria ou busca atual: faixa de preço, marcas, categorias, promoções e atributos customizados (como cor, tamanho, etc.). Os filtros ativos são aplicados via Vuex.
## Uso
```vue
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :----------------- | :----------------: | :---------: | :----------: | :-------- |
| `showBrand` | `Boolean` | ❌ | `true` | Exibe o filtro de marcas. |
| `showPrice` | `Boolean` | ❌ | `true` | Exibe o filtro de faixa de preço. |
| `showCategories` | `Boolean` | ❌ | `true` | Exibe o filtro de categorias. |
| `showPromotions` | `Boolean` | ❌ | `false` | Exibe o filtro de promoções. |
| `activeCategory` | `String` | ❌ | `''` | Slug da categoria atualmente ativa (usado para pré-selecionar no filtro de categorias). |
| `activePromotion` | `String` | ❌ | `''` | Slug da promoção atualmente ativa. |
| `productsPerPage` | `Number \| String` | ❌ | `10` | Número de produtos por página (afeta a paginação após filtrar). |
## Comportamentos automáticos
- Os filtros disponíveis são carregados automaticamente a partir dos dados da busca/categoria via Vuex.
- Ao selecionar um filtro, os produtos da página são atualizados automaticamente sem recarregar a página.
- Atributos customizados (variações do produto como "Cor", "Tamanho") são exibidos automaticamente quando disponíveis.
# Grid
Source: https://docs.yampi.com.br/editor-codigo/componentes/categoria-e-busca/grid
Componente de layout para exibição de produtos em grade ou carrossel. Expõe cada produto via slot com escopo, permitindo customizar o card de produto renderizado.
## Uso
```vue
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :---------------- | :-------: | :---------: | :----------: | :-------- |
| `products` | `Array` | ❌ | `[]` | Lista de objetos de produto a exibir. |
| `title` | `String` | ❌ | `''` | Título exibido acima da grade. |
| `carousel` | `Boolean` | ❌ | `false` | Exibe os produtos em carrossel em vez de grade fixa. |
| `productsPerLine` | `Number` | ❌ | `2` | Colunas por linha no mobile. Valores: `1` ou `2`. |
| `loading` | `Boolean` | ❌ | `false` | Exibe skeletons no lugar dos produtos enquanto carrega. |
| `link` | `String` | ❌ | `null` | URL para exibir o link "Ver todos" abaixo da grade. |
| `showLink` | `Boolean` | ❌ | `false` | Controla a exibição do link em mobile. |
## Slots
| Slot | Escopo | Descrição |
| :------ | :----------- | :-------- |
| default | `{ product }` | Renderiza cada produto. O objeto `product` contém todos os dados do produto. |
# Paginate
Source: https://docs.yampi.com.br/editor-codigo/componentes/categoria-e-busca/paginate
Renderiza controles de paginação com botões de página anterior/próxima e números de página. Compatível com `v-model` para integração direta com o estado da página atual.
## Uso
```vue
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :----------- | :-------: | :---------: | :----------: | :-------- |
| `value` | `Number` | ✅ | — | Número da página atual (use com `v-model`). |
| `pageCount` | `Number` | ❌ | `10` | Total de páginas disponíveis. |
| `pagerCount` | `Number` | ❌ | `7` | Quantidade máxima de botões de página exibidos simultaneamente. |
| `disabled` | `Boolean` | ❌ | `false` | Desabilita todos os controles de paginação. |
## Eventos
| Evento | Payload | Descrição |
| :------ | :------- | :-------- |
| `input` | `Number` | Emitido com o número da nova página ao clicar em um controle (compatível com `v-model`). |
# SelectedFilters
Source: https://docs.yampi.com.br/editor-codigo/componentes/categoria-e-busca/selected-filters
Lista os filtros atualmente aplicados na página de categoria ou busca como chips/tags clicáveis. Cada tag remove o filtro correspondente ao ser clicada. Inclui botão para limpar todos os filtros de uma vez.
## Uso
```vue
```
## Observações
- Não recebe props — lê os filtros ativos diretamente do Vuex.
- Quando não há filtros ativos, o componente não é renderizado.
- Ao remover um filtro, os produtos são atualizados automaticamente.
# CharacterLimitText
Source: https://docs.yampi.com.br/editor-codigo/componentes/formularios/character-limit-text
Contador de caracteres para uso junto a campos de texto. Muda o estilo visual automaticamente quando o usuário se aproxima ou ultrapassa o limite.
## Uso
```vue
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Descrição |
| :------------------ | :------: | :---------: | :-------- |
| `limit` | `Number` | ✅ | Total máximo de caracteres permitidos. |
| `currentTextLength` | `Number` | ✅ | Quantidade atual de caracteres digitados. |
# CustomCheckbox
Source: https://docs.yampi.com.br/editor-codigo/componentes/formularios/custom-checkbox
Checkbox customizável que permite adicionar cor ou imagem de fundo no indicador visual (útil para filtros de cor em produtos).
## Uso
Checkbox simples:
```vue
```
Filtro de cor:
```vue
(12)
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :---------- | :-------: | :---------: | :----------: | :-------- |
| `id` | `String` | ❌ | `''` | Atributo `id` do input. Deve ser único na página. |
| `name` | `String` | ❌ | `''` | Atributo `name` do input para agrupamento de formulário. |
| `text` | `String` | ❌ | `''` | Label exibida ao lado do checkbox. |
| `checked` | `Boolean` | ❌ | `false` | Estado inicial do checkbox. |
| `color` | `String` | ❌ | `null` | Cor de fundo do indicador visual em hexadecimal (ex.: `'#FF0000'`). |
| `image` | `String` | ❌ | `null` | URL de imagem de fundo do indicador visual. |
## Eventos
| Evento | Payload | Descrição |
| :------- | :-------- | :-------- |
| `change` | `Boolean` | Emitido com o novo estado (`true`/`false`) ao clicar. |
## Slots
| Slot | Descrição |
| :------ | :-------- |
| `count` | Conteúdo adicional exibido após o label, geralmente usado para mostrar a contagem de itens. |
# CustomRadioGroup
Source: https://docs.yampi.com.br/editor-codigo/componentes/formularios/custom-radio-group
Renderiza um grupo de radio buttons estilizados com suporte a slots para título e subtítulo, atributos de acessibilidade e navegação por teclado.
## Uso
```vue
Forma de pagamento
Selecione como deseja pagar
```
## Propriedades
| Propriedade | Tipo | Obrigatória | Valor padrão | Descrição |
| :------------- | :-------: | :---------: | :-----------: | :-------- |
| `options` | `Array` | ✅ | — | Lista de opções. Cada item deve ter `key` (String), `text` (String) e `value` (qualquer). |
| `initialValue` | `Boolean` | ✅ | — | Valor selecionado inicialmente. |
| `name` | `String` | ❌ | `''` | Atributo `name` do grupo de inputs para acessibilidade. |
| `value` | `Boolean` | ❌ | `undefined` | Valor selecionado atual. Use para atualização programática. |
## Eventos
| Evento | Payload | Descrição |
| :----- | :------ | :-------- |
| `pick` | `any` | Emitido com o `value` da opção selecionada. |
## Slots
| Slot | Descrição |
| :--------- | :-------- |
| `title` | Título exibido acima do grupo de radio buttons. |
| `subtitle` | Subtítulo ou descrição exibida abaixo do título. |
# CustomSelect
Source: https://docs.yampi.com.br/editor-codigo/componentes/formularios/custom-select
Wrapper para `