Alterar, desativar e histórico
Altera os dados de um vale, desativa e lista onde ele foi usado.
Depois de emitido, o vale só muda em poucos campos: destinatário, mensagem, validade, estado e dono. O valor e o código ficam fixos.
Alterar um vale
Altera destinatário, mensagem, validade, estado e dono do vale. Só os campos enviados mudam. O valor e o código não podem ser alterados depois da emissão: o vale pode já ter saldo gasto e o código pode já ter circulado.
/api/v1/admin/gift-certificates/{id}AdminAltera os dados de um vale
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órioCorpo da requisição
statusstringactivedisabledusedactive, disabled ou used.recipient_emailstringrecipient_namestringfrom_namestringmessagestringexpires_atstringvendor_iduuidExemplo de requisição
curl -X PUT "$BASE_URL/api/v1/admin/gift-certificates/d5ccd9e1-dd21-458c-90a5-4a7f3c2b9e10" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expires_at": "2027-03-31T23:59:59-03:00",
"message": "Parabéns!"
}'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": "Parabéns!",
"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 envio de amount, code ou created_by | {"error":"immutable_field","detail":"o campo \"amount\" não pode ser alterado por este endpoint: ..."} |
| 500 | Corpo sem nenhum campo alterável, id inexistente ou que não é UUID | {"error":"failed to update gift certificate","detail":"no fields to update"} |
Desativar um vale
Passa o vale para D (desativado) e ele deixa de ser aceito no checkout. O saldo e o histórico permanecem. Não tem corpo.
/api/v1/admin/gift-certificates/{id}/disableAdminDesativa 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 -X PUT "$BASE_URL/api/v1/admin/gift-certificates/d5ccd9e1-dd21-458c-90a5-4a7f3c2b9e10/disable" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"code": "GC-ZLCC-UULU-UHUP",
"amount": 5000,
"balance": 5000,
"status": "D",
"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"} |
| 500 | Vale inexistente ou id que não é UUID | {"error":"failed to disable gift certificate","detail":"gift certificate not found"} |
Histórico de uso
Lista cada vez que o vale abateu um pedido, com o valor e a data. Quando o pedido é cancelado ou estornado, o uso é revertido: ganha refunded_at e o valor volta para o saldo.
/api/v1/admin/gift-certificates/{id}/usageAdminLista os pedidos em que o vale foi usado
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/usage" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"records": [
{
"id": "ae831726-ceae-49b4-93f7-3974cf237548",
"certificate_id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"order_id": "00fd1798-7189-4e58-aa9a-af7cfe93221f",
"amount_used": 5000,
"created_at": "2026-07-12T19:49:32.506284Z",
"refunded_at": "2026-07-12T19:50:21.081224Z",
"log_id": "ae831726-ceae-49b4-93f7-3974cf237548",
"gift_cert_id": "ffdb1863-1392-48b8-932a-01a79223fd1a",
"amount_used_str": "50.00",
"timestamp": 1783885772
}
],
"total": 1
}Campos da resposta
recordsarrayrecords[].iduuidrecords[].certificate_iduuidrecords[].order_iduuidrecords[].amount_usedintegerrecords[].created_atstringrecords[].refunded_atstring | nullnull se continua valendo.records[].log_idstringid, para clientes da plataforma antiga.records[].gift_cert_iduuidcertificate_id.records[].amount_used_strstringamount_used como texto decimal.records[].timestampintegercreated_at em segundos Unix.totalintegerErros
| 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 | id que não é UUID ou falha na consulta | {"error":"failed to list usage","detail":"..."} |