Cartão Presente
Visão Geral
O módulo de Cartão Presente (Gift Card) 🎁 é uma solução estratégica que permite à loja oferecer créditos pré-pagos como produtos do catálogo.
Ele possibilita que créditos sejam adquiridos por consumidores ou gerados administrativamente para campanhas de fidelização, bonificações ou estornos.
Diferente de um cupom de desconto, o Gift Card atua como um valor monetário real vinculado ao ecossistema da loja.
Ao ser resgatado, o saldo é creditado diretamente na carteira virtual (wallet) do cliente, permitindo o abatimento total ou parcial no valor de novos pedidos durante o checkout.
O sistema suporta tanto a geração automática (após a confirmação de pagamento de um produto configurado como gift card) quanto a geração manual em lote para ações promocionais, garantindo rastreabilidade completa de cada código gerado.
Entidades Envolvidas
* Produto Gift Card: Produto do catálogo (tipo serviço) que contém as definições base, como o valor nominal padrão.
* Gift Card Gerado: O registro individual contendo o código único (code), o valor atual, e o status de resgate.
* Cliente (Customer): O usuário final que recebe o vínculo do crédito em sua carteira virtual.
* Usuário Administrativo: Responsável pela configuração, geração manual e auditoria dos lotes.
Notas e Considerações
As operações deste módulo exigem os escopos de permissão GIFT_CARD_READ para consultas e GIFT_CARD_WRITE para ações que alteram o estado dos registros.
É importante destacar que um gift card gerado manualmente pode ser removido apenas se não possuir vínculo com um cliente.
Gift cards originados de pedidos de venda possuem regras de segurança mais rígidas para garantir a integridade financeira do crédito do consumidor.
Listagem de gift cards
/products/gift-cards
Retorna lista paginada de gift cards da loja, com resumo do produto associado, ordenação e condições de busca
Descrição
O endpoint de listagem permite consultar todos os gift cards gerados no ecossistema da loja 🎁.
Ele é essencial para processos de auditoria, permitindo que o lojista visualize códigos ativos, valores nominais e o status de resgate de cada cartão.
Para acessar este recurso, é necessário possuir a permissão GIFT_CARD_READ.
O retorno inclui dados detalhados da geração (como o usuário responsável) e, caso o cartão já tenha sido utilizado ou vinculado, as informações do cliente (customer) correspondente.
Cada registro também traz um objeto product, que fornece o contexto do produto do catálogo que originou o gift card, facilitando a identificação da campanha ou tipo de oferta vinculada ao código.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo da requisição |
Authorization | Bearer {userToken} | Token de autenticação do usuário |
Campos de Condição Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
| code | string | Código único do gift card |
| productId | integer | ID do produto do catálogo vinculado ao gift card |
| orderItemId | integer | ID do item de pedido que originou o gift card (em casos de geração automática) |
| userId | integer | ID do usuário administrativo que gerou o cartão |
| userName | string | Nome do usuário que gerou o cartão |
| userEmail | string | E-mail do usuário que gerou o cartão |
| value | number | Valor nominal do gift card |
| createdAt | string | Data de criação do registro |
Campos de Ordenação Disponíveis
| Campo | Descrição |
|---|---|
| id | Identificador único do gift card |
| createdAt | Data de criação do registro |
Exemplo de Requisição
1curl --request GET \2 --url "{{MAIN_URL}}/products/gift-cards" \3 --header "Content-Type: application/json" \4 --header "Authorization: Bearer SEU_TOKEN_AQUI" \5 --data '{6 "order": [7 {8 "field": "createdAt",9 "order": "DESC"10 }11 ],12 "condition": {13 "type": "AND",14 "conditions": [15 {16 "field": "value",17 "value": 5018 }19 ]20 },21 "limit": 10,22 "offset": 023 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "registers": [5 {6 "id": 1,7 "productId": 38,8 "product": {9 "productId": 38,10 "brandId": 1,11 "brandName": "Techbrand",12 "mainCategoryId": 10,13 "mainCategoryName": "Eletrônicos",14 "type": "product",15 "sku": "GIFT-100",16 "name": "Cartão Presente R$ 100",17 "active": true,18 "url": "/gift-card-100.html",19 "comparisonPrice": 100,20 "stock": 999,21 "medias": [],22 "combination": [],23 "currentAttributes": [],24 "restriction": null25 },26 "orderItemId": null,27 "code": "ABC123XYZ9",28 "value": 100,29 "userId": 2,30 "userName": "Admin Uappi",31 "userEmail": "admin@uappi.com.br",32 "createdAt": "2026-05-22 10:00:00",33 "activatedAt": ""34 }35 ],36 "pagination": {37 "limit": 10,38 "offset": 0,39 "pages": 1,40 "registers": 141 }42 }43}Geração de gift cards em lote
/products/gift-cards/generate
Gera múltiplos gift cards (códigos) por produto, informando productId, valor e quantidade em cada item do lote
Descrição
O endpoint de geração permite a criação manual de códigos de gift card em massa 🎁.
Ele é utilizado quando o lojista deseja gerar um lote de cartões para campanhas promocionais ou bonificações, sem que haja necessariamente um pedido de compra associado.
Para realizar esta operação, é necessário o escopo de permissão GIFT_CARD_WRITE.
O lojista pode definir a quantidade de códigos a serem gerados para cada produto (productId) e, opcionalmente, especificar um valor nominal customizado.
Caso o valor não seja informado, o sistema utilizará o valor configurado no cadastro do produto.
A resposta fornece um detalhamento individual para cada item do lote enviado, permitindo identificar quais produtos tiveram seus códigos gerados com sucesso e quais apresentaram inconsistências (como produtos que não são do tipo Gift Card).
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo da requisição |
Authorization | Bearer {userToken} | Token de autenticação do usuário |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| giftCards | array | Sim | Lista de lotes para geração de códigos |
| giftCards.*.productId | integer | Sim | ID do produto (deve ser configurado como Gift Card no catálogo) |
| giftCards.*.quantity | integer | Sim | Quantidade de códigos únicos a serem gerados |
| giftCards.*.value | number | Não | Valor nominal de cada cartão do lote. Se omitido, usa o valor da configuração do produto |
Exemplo de Requisição
1curl --request POST \2 --url "{{MAIN_URL}}/products/gift-cards/generate" \3 --header "Content-Type: application/json" \4 --header "Authorization: Bearer SEU_TOKEN_AQUI" \5 --data '{6 "giftCards": [7 {8 "productId": 1,9 "value": 100,10 "quantity": 211 }12 ]13 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": [4 {5 "productId": 38,6 "orderItemId": null,7 "value": 100,8 "quantity": 2,9 "error": null,10 "giftCards": [11 {12 "id": 10,13 "productId": 38,14 "orderItemId": null,15 "code": "GIFT789XYZ",16 "value": 100,17 "userId": 2,18 "userName": "Admin Uappi",19 "userEmail": "admin@uappi.com.br",20 "createdAt": "2026-05-22 11:00:00",21 "activatedAt": ""22 },23 {24 "id": 11,25 "productId": 38,26 "orderItemId": null,27 "code": "GIFT456ABC",28 "value": 100,29 "userId": 2,30 "userName": "Admin Uappi",31 "userEmail": "admin@uappi.com.br",32 "createdAt": "2026-05-22 11:00:00",33 "activatedAt": ""34 }35 ]36 }37 ]38}⚠️ Possíveis erros:
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_PRODUCT_GIFT_CARD_NOT_FOUND | 404 | O produto solicitado não possui configuração de gift card ativa. |
| UAPPI_STORE_GIFT_CARD_ALREADY_GENERATED | 400 | Já foram gerados gift cards para o item informado. |
Configuração de gift card do produto
/products/gift-cards/{productId}
Salva a configuração de gift card vinculada a um produto do catálogo (valor padrão e metadados da configuração)
Descrição
O endpoint de configuração permite estabelecer as regras básicas para produtos do tipo Gift Card no catálogo 🎁.
Por meio dele, o lojista define parâmetros globais para o produto, como o valor nominal (value) que será sugerido ou aplicado durante a geração automática ou manual de códigos.
Esta operação exige o escopo de permissão GIFT_CARD_WRITE.
É importante notar que as alterações realizadas aqui afetam a configuração do produto no catálogo e não os códigos de gift card que já foram gerados anteriormente.
Para utilizar este endpoint, o produto já deve estar previamente cadastrado no catálogo e configurado como um serviço.
A resposta confirma os dados gravados, incluindo o registro do usuário responsável pela última alteração.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo da requisição |
Authorization | Bearer {userToken} | Token de autenticação do usuário |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| productId | integer | Sim | ID único do produto no catálogo que receberá a configuração de gift card |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| value | number | Sim | Valor nominal padrão do gift card (formato decimal) |
Exemplo de Requisição
1curl --request PUT \2 --url "{{MAIN_URL}}/products/gift-cards/38" \3 --header "Content-Type: application/json" \4 --header "Authorization: Bearer SEU_TOKEN_AQUI" \5 --data '{6 "value": 1507 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "productId": 1,5 "value": 150,6 "userId": 2,7 "userName": "Admin Uappi",8 "userEmail": "admin@uappi.com.br",9 "createdAt": "2026-05-22 13:00:00"10 }11}⚠️ Possíveis erros:
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_PRODUCT_NOT_FOUND | 404 | O produto solicitado não foi encontrado. |
| UAPPI_STORE_PRODUCT_MUST_BE_SERVICE | 400 | O produto deve estar configurado como um serviço para aceitar configurações de gift card. |
| UAPPI_STORE_PRODUCT_IS_PARENT | 400 | Não é possível configurar gift card em um produto pai (com variações). |
| UAPPI_STORE_PRODUCT_IS_VARIATION | 400 | Não é possível configurar gift card diretamente em uma variação individual. |
Remoção da configuração de gift card do produto
/products/gift-cards/{productId}
Remove a configuração de gift card de um produto do catálogo (valor padrão e vínculo de configuração no produto)
Descrição
O endpoint de remoção permite excluir as definições de gift card de um produto específico do catálogo 🎁.
Ao executar esta ação, o produto deixa de ser identificado pelo sistema como um emissor de gift cards, removendo parâmetros como o valor nominal padrão.
Esta operação exige o escopo de permissão GIFT_CARD_WRITE.
É fundamental destacar que a remoção da configuração do produto não afeta os códigos de gift card que já foram gerados e estão ativos na loja; ela apenas interrompe a capacidade do produto de originar novos cartões.
Não é necessário o envio de corpo (body) na requisição, apenas a identificação do produto através do productId na URL.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {userToken} | Token de autenticação do usuário |
Parâmetros da URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| productId | integer | Sim | ID único do produto no catálogo cuja configuração de gift card será removida |
Exemplo de Requisição
1curl --request DELETE \2 --url "{{MAIN_URL}}/products/gift-cards/38" \3 --header "Authorization: Bearer SEU_TOKEN_AQUI"✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": true4}⚠️ Possíveis erros:
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_PRODUCT_GIFT_CARD_NOT_FOUND | 404 | O produto informado não possui uma configuração de gift card ativa para ser removida. |
Vínculo de gift cards em lote
/products/gift-cards/link
Associa múltiplos gift cards já gerados a clientes, com resultado por item do array links
Descrição
O endpoint de vínculo permite associar códigos de gift card a clientes registrados 🎁.
Esta operação é o passo final para a ativação do crédito, onde o valor nominal do cartão é transferido para a carteira virtual (wallet) do consumidor.
Para realizar esta associação, é necessário o escopo de permissão GIFT_CARD_WRITE.
O lojista pode identificar o gift card através do seu giftCardId ou diretamente pelo code impresso no cartão.
É fundamental que o cliente (customerId) já exista na base de dados e que o gift card ainda não possua um vínculo ativo.
A resposta detalha o status de cada tentativa de vínculo no lote, confirmando a transação na carteira do cliente ou indicando falhas de validação.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo da requisição |
Authorization | Bearer {userToken} | Token de autenticação do usuário |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| links | array | Sim | Lista de vínculos a serem processados |
| links.*.customerId | integer | Sim | ID único do cliente que receberá o crédito |
| links.*.giftCardId | integer | Condicional | ID do registro do gift card. Obrigatório se code não for informado |
| links.*.code | string | Condicional | Código alfanumérico do gift card. Obrigatório se giftCardId não for informado |
Exemplo de Requisição
1curl --request PUT \2 --url "{{MAIN_URL}}/products/gift-cards/link" \3 --header "Content-Type: application/json" \4 --header "Authorization: Bearer SEU_TOKEN_AQUI" \5 --data '{6 "links": [7 {8 "giftCardId": 10,9 "customerId": 100110 },11 {12 "code": "GIFT456ABC",13 "customerId": 100214 }15 ]16 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": [4 {5 "giftCardId": 10,6 "code": null,7 "customerId": 1001,8 "error": null9 },10 {11 "giftCardId": null,12 "code": "GIFT456ABC",13 "customerId": 1002,14 "error": "UAPPI_STORE_GIFT_CARD_ALREADY_LINKED"15 }16 ]17}⚠️ Possíveis erros:
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_GIFT_CARD_NOT_FOUND | 404 | O gift card solicitado não foi encontrado. |
| UAPPI_STORE_CUSTOMER_NOT_FOUND | 404 | O cliente solicitado não foi encontrado. |
| UAPPI_STORE_GIFT_CARD_ALREADY_LINKED | 400 | O gift card já possui um vínculo ativo e não pode ser reassociado. |
Remoção de gift cards em lote
/products/gift-cards
Remove múltiplos gift cards já gerados, com resultado por id informado no corpo
Descrição
O endpoint de remoção permite a exclusão definitiva de códigos de gift card gerados na loja 🎁.
Esta ação é útil para invalidar lotes gerados incorretamente ou códigos promocionais que perderam a validade antes de serem distribuídos.
Para executar esta remoção, é necessário o escopo de permissão GIFT_CARD_WRITE.
O sistema impõe regras rígidas de segurança para evitar a invalidação de créditos em posse dos consumidores:
- Apenas gift cards gerados manualmente podem ser removidos.
- Gift cards que já possuem vínculo com um cliente ou que foram gerados automaticamente através de pedidos de venda não podem ser excluídos por este endpoint.
A resposta detalha o sucesso ou a falha para cada ID enviado, garantindo que o lojista tenha controle total sobre quais códigos foram efetivamente invalidados.
Parâmetros
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo da requisição |
Authorization | Bearer {userToken} | Token de autenticação do usuário |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| ids | integer[] | Sim | Array contendo os IDs dos gift cards que devem ser removidos |
Exemplo de Requisição
1curl --request DELETE \2 --url "{{MAIN_URL}}/products/gift-cards" \3 --header "Content-Type: application/json" \4 --header "Authorization: Bearer SEU_TOKEN_AQUI" \5 --data '{6 "ids": [10, 11]7 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": [4 {5 "giftCardId": 10,6 "error": null7 },8 {9 "giftCardId": 11,10 "error": "UAPPI_STORE_GIFT_CARD_ALREADY_LINKED"11 }12 ]13}⚠️ Possíveis erros:
| Código Interno | Código Http | Descrição |
|---|---|---|
| UAPPI_STORE_GIFT_CARD_NOT_FOUND | 404 | O gift card solicitado não foi encontrado. |
| UAPPI_STORE_GIFT_CARD_ALREADY_LINKED | 400 | O gift card já possui um vínculo com cliente e não pode ser removido. |
| UAPPI_STORE_GIFT_CARD_IS_AUTOMATIC | 400 | O gift card foi gerado automaticamente por um pedido e sua remoção manual não é permitida. |