Cupons: consulta
Lista os cupons da loja com filtros e lê um cupom pelo id numérico.
Um cupom (voucher) é um código que o cliente digita no checkout para ganhar desconto ou frete grátis. Use estas duas operações para sincronizar os cupons com um sistema de marketing, conferir quantas vezes um código foi usado ou montar um relatório.
O cupom pode ser da loja inteira (vendor_id nulo) ou de um seller (vendor_id com o UUID do lojista); nesse caso o desconto vale só para os itens daquele seller. Para criar e alterar, veja Cupons: escrita.
/api/v2/couponsAdminListar cupons
A lista vem da criação mais recente para a mais antiga. Não há parâmetro de ordenação.
Parâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 20searchstringstatusstringactiveexpiredinactiveexhaustedactive: ligado e dentro da validade. expired: a data de fim já passou. inactive: desligado (is_active falso). exhausted: já usado o máximo de vezes (max_uses maior que zero e used_count igual ou maior). Outro valor é ignorado e a lista sai sem filtro.typestringfixedpercentagefree_shippingvendor_iduuidmarketplace_onlybooleantrue1yesvendor_id também vier, o vendor_id vale.fieldsstringid,code,is_active)./api/v2/coupons/{id}AdminLer um cupom
Devolve um cupom. O id é o inteiro do campo id da lista, não o código.
Parâmetros de caminho
idintegerobrigatórioParâmetros de consulta
fieldsstringExemplo de requisição
curl "$BASE_URL/api/v2/coupons?status=active&type=percentage&per_page=20" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"data": [
{
"id": 79,
"vendor_id": null,
"code": "INVERNO10",
"type": "percentage",
"value": 1000,
"min_order": 5000,
"max_uses": 100,
"used_count": 12,
"max_per_user": 1,
"starts_at": null,
"expires_at": "2026-12-31T23:59:59Z",
"is_active": true,
"description": "Campanha de inverno",
"created_at": "2026-09-15T14:20:55.610138Z",
"updated_at": "2026-09-15T14:20:55.610138Z"
}
],
"meta": { "pagination": { "page": 1, "per_page": 20, "total": 38, "total_pages": 2 } }
}Campos da resposta
data[].idintegerdata[].vendor_iduuid | nullnull vale para a loja inteira.data[].codestringdata[].typestringfixedpercentagefree_shippingfixed: valor fixo em centavos. percentage: porcentagem em pontos-base. free_shipping: frete grátis (o value é ignorado).data[].valueintegerfixed, centavos (500 = R$ 5,00). Em percentage, pontos-base (1000 = 10%, 10000 = 100%).data[].min_orderinteger0 é sem mínimo.data[].max_usesinteger0 é ilimitado.data[].used_countintegerdata[].max_per_userinteger0 é ilimitado.data[].starts_atstring | nullnull vale desde já.data[].expires_atstring | nullnull nunca expira.data[].is_activebooleandata[].descriptionstringdata[].created_atstringdata[].updated_atstringmeta.paginationobjectpage, per_page, total (todos os cupons que atendem ao filtro) e total_pages.A leitura de um cupom (GET /api/v2/coupons/{id}) devolve { "data": { ... } } com os mesmos campos, sem meta.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | {id} não numérico | {"error":{"code":"bad_request","message":"coupon id must be a positive integer"}} |
| 400 | {id} igual a 0 ou negativo | {"error":"invalid id parameter"} |
| 401 | Sem token | {"error":"missing authorization header"} |
| 403 | Token de seller ou de cliente | {"error":"insufficient permissions"} |
| 404 | Cupom inexistente | {"error":{"code":"not_found","message":"coupon not found"}} |