Emitir e consultar vales
Lista, consulta e emite vales-presente.
Um vale-presente (gift certificate) é crédito pré-pago identificado por um código. O cliente digita o código no checkout e o valor abate o pedido; o que sobra continua no vale, até esgotar ou expirar.
Listar vales
Lista os vales emitidos, do mais recente ao mais antigo.
/api/v1/admin/gift-certificatesAdminLista os vales-presente
Autenticação: Authorization: Bearer <token> de um administrador. Requer os módulos promotions e gift-certificates ativos. Leitura: view_promotions, view_gift_certificates (ou os equivalentes manage_). Escrita: manage_gift_certificates ou manage_promotions.
Parâmetros de consulta
statusstringactivedisabledusedADFactive, disabled, used (esgotado) ou a letra A, D, F.searchstringvendor_iduuidmarketplace_onlybooleantrue, 1 ou yes lista só os vales da loja inteira (sem seller). Ignorado se vendor_id vier.pageintegerpadrão: 1per_pageintegerpadrão: 20Exemplo de requisição
curl "$BASE_URL/api/v1/admin/gift-certificates?status=active&per_page=20" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"certificates": [
{
"id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"code": "GC-ZLCC-UULU-UHUP",
"amount": 5000,
"balance": 5000,
"status": "A",
"recipient_email": "ana.souza@example.com",
"recipient_name": "Ana Souza",
"from_name": "Equipe da Loja",
"message": "Feliz aniversário!",
"created_by": "67bf291c-0846-4053-9528-8cfd5ab0ebf1",
"created_at": "2026-07-12T19:48:19.102787Z",
"updated_at": "2026-07-12T19:50:21.081224Z",
"gift_cert_id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"gift_cert_code": "GC-ZLCC-UULU-UHUP",
"amount_str": "50.00",
"balance_str": "50.00",
"timestamp": 1783885699
}
],
"total": 1,
"page": 1,
"per_page": 20,
"total_pages": 1
}Campos da resposta
certificatesarraycertificates[].iduuidcertificates[].vendor_iduuidcertificates[].codestringcertificates[].amountintegercertificates[].balanceintegercertificates[].statusstringADFA ativo, D desativado, F esgotado (usado até zerar).certificates[].recipient_emailstringcertificates[].recipient_namestringcertificates[].from_namestringcertificates[].messagestringcertificates[].created_byuuidcertificates[].used_atstringcertificates[].expires_atstringcertificates[].created_atstringcertificates[].updated_atstringcertificates[].gift_cert_iduuidid, para clientes da plataforma antiga.certificates[].gift_cert_codestringcode, para clientes da plataforma antiga.certificates[].amount_strstringamount como texto decimal ("50.00").certificates[].balance_strstringbalance como texto decimal.certificates[].timestampintegercreated_at em segundos Unix.totalintegerpageintegerper_pageintegertotal_pagesintegerErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"gift-certificates"} / {"error":"insufficient privileges","required":"manage_promotions"} |
| 500 | vendor_id que não é UUID ou falha na consulta | {"error":"failed to list gift certificates","detail":"..."} |
Consultar um vale
Devolve um vale pelo identificador.
/api/v1/admin/gift-certificates/{id}AdminConsulta um vale-presente
Autenticação: Authorization: Bearer <token> de um administrador. Requer os módulos promotions e gift-certificates ativos. Leitura: view_promotions, view_gift_certificates (ou os equivalentes manage_). Escrita: manage_gift_certificates ou manage_promotions.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/admin/gift-certificates/d5ccd9e1-dd21-458c-90a5-4a7f3c2b9e10" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"code": "GC-ZLCC-UULU-UHUP",
"amount": 5000,
"balance": 5000,
"status": "A",
"recipient_email": "ana.souza@example.com",
"recipient_name": "Ana Souza",
"from_name": "Equipe da Loja",
"message": "Feliz aniversário!",
"created_by": "67bf291c-0846-4053-9528-8cfd5ab0ebf1",
"created_at": "2026-07-12T19:48:19.102787Z",
"updated_at": "2026-07-12T19:50:21.081224Z",
"gift_cert_id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"gift_cert_code": "GC-ZLCC-UULU-UHUP",
"amount_str": "50.00",
"balance_str": "50.00",
"timestamp": 1783885699
}Campos da resposta
iduuidvendor_iduuidcodestringamountintegerbalanceintegerstatusstringADFA ativo, D desativado, F esgotado (usado até zerar).recipient_emailstringrecipient_namestringfrom_namestringmessagestringcreated_byuuidused_atstringexpires_atstringcreated_atstringupdated_atstringgift_cert_iduuidid, para clientes da plataforma antiga.gift_cert_codestringcode, para clientes da plataforma antiga.amount_strstringamount como texto decimal ("50.00").balance_strstringbalance como texto decimal.timestampintegercreated_at em segundos Unix.Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"gift-certificates"} / {"error":"insufficient privileges","required":"manage_promotions"} |
| 404 | Vale inexistente | {"error":"gift certificate not found"} |
| 500 | id que não é UUID ou falha interna | {"error":"failed to get gift certificate","detail":"..."} |
Emitir um vale
Emite um vale com o valor e o saldo iguais. O cliente usa o código no checkout e o saldo vai baixando a cada compra. Um vale da loja inteira vale para qualquer item; um vale de um seller (vendor_id) só abate os itens daquele seller.
/api/v1/admin/gift-certificatesAdminEmite um vale-presente
Autenticação: Authorization: Bearer <token> de um administrador. Requer os módulos promotions e gift-certificates ativos. Leitura: view_promotions, view_gift_certificates (ou os equivalentes manage_). Escrita: manage_gift_certificates ou manage_promotions.
Corpo da requisição
amountintegerobrigatóriocodestringGC-XXXX-XXXX-XXXX. Já existente: erro.recipient_emailstringrecipient_namestringfrom_namestringmessagestringexpires_atstring2027-01-31T23:59:59-03:00). Omitido: não expira.vendor_iduuidExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/gift-certificates" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"recipient_email": "ana.souza@example.com",
"recipient_name": "Ana Souza",
"from_name": "Equipe da Loja",
"message": "Feliz aniversário!",
"expires_at": "2027-01-31T23:59:59-03:00"
}'Resposta
{
"id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"code": "GC-ZLCC-UULU-UHUP",
"amount": 5000,
"balance": 5000,
"status": "A",
"recipient_email": "ana.souza@example.com",
"recipient_name": "Ana Souza",
"from_name": "Equipe da Loja",
"message": "Feliz aniversário!",
"created_by": "67bf291c-0846-4053-9528-8cfd5ab0ebf1",
"created_at": "2026-07-12T19:48:19.102787Z",
"updated_at": "2026-07-12T19:50:21.081224Z",
"gift_cert_id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"gift_cert_code": "GC-ZLCC-UULU-UHUP",
"amount_str": "50.00",
"balance_str": "50.00",
"timestamp": 1783885699
}Campos da resposta
iduuidvendor_iduuidcodestringamountintegerbalanceintegerstatusstringADFA ativo, D desativado, F esgotado (usado até zerar).recipient_emailstringrecipient_namestringfrom_namestringmessagestringcreated_byuuidused_atstringexpires_atstringcreated_atstringupdated_atstringgift_cert_iduuidid, para clientes da plataforma antiga.gift_cert_codestringcode, para clientes da plataforma antiga.amount_strstringamount como texto decimal ("50.00").balance_strstringbalance como texto decimal.timestampintegercreated_at em segundos Unix.Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"gift-certificates"} / {"error":"insufficient privileges","required":"manage_promotions"} |
| 400 | Corpo inválido ou amount menor ou igual a zero (a mensagem diz amount_bps, mas o campo é amount) | {"error":"amount_bps must be positive"} |
| 500 | Código já existente, vendor_id inválido ou falha ao gravar | {"error":"failed to create gift certificate","detail":"..."} |