💳 Cartão do Cliente
📋 Visão Geral
O cartão é um dos principais meios de pagamento em plataformas de e-commerce.
Durante o processo de compra, os dados do cartão são coletados e enviados diretamente a um gateway de pagamento. Nesse fluxo, apenas informações não sensíveis são armazenadas no banco de dados — nunca o número completo do cartão ou o código de segurança.
Os endpoints desta seção são utilizados principalmente nas telas de Minha Conta e Checkout, sendo operações totalmente controladas pelo cliente autenticado. O acesso é baseado no token de autenticação — não é necessário informar o ID do cliente na URL.
🔄 Entidades Envolvidas
As seguintes entidades participam do fluxo:
Cliente
O titular dos cartões cadastrados, identificado pelo token de autenticação. Toda consulta e operação é automaticamente filtrada pelo cliente do token.
Opção de Pagamento
Representa a instituição ou gateway ao qual o cartão foi vinculado. Cada cartão registrado carrega uma referência à opção de pagamento correspondente (paymentOptionId).
🗂️ Estrutura do Cartão
O objeto de cartão retornado pelos endpoints contém as seguintes informações:
id— identificador único do cartão cadastradopaymentOptionId— ID da opção de pagamento (instituição/gateway) à qual o cartão está vinculadofirstSix— primeiros seis dígitos do número do cartãolastFour— últimos quatro dígitos do número do cartãoflag— bandeira do cartão (por exemplo:"visa","master")main— indica se este é o cartão principal do cliente (trueoufalse)createdAt— data e hora de cadastro do cartão- Nenhuma informação sensível de cartão é armazenada pela API — o número completo, o CVV e os dados de validade são transmitidos ao gateway e nunca persistidos.
- Não se deve solicitar ou tentar acessar dados completos de cartão dos clientes.
- A plataforma atua em conformidade com a Lei Geral de Proteção de Dados (LGPD), e qualquer tentativa de manipulação indevida dessas informações pode resultar em penalidades legais.
- A segurança e a privacidade dos dados financeiros são tratadas como prioridade máxima 🔐.
📌 Notas e Considerações
💳 Listagem de Cartões do Cliente
/customer/cards
Lista todos os cartões do clientes cadastrado na loja
📄 Descrição
Endpoint responsável por retornar todos os cartões cadastrados do cliente atual.
O resultado é paginado e suporta filtragem por campos como id, paymentOptionId, flag, main e createdAt, além de ordenação pelos mesmos campos.
A utilização requer autenticação via CustomerAuth — o ID do cliente é identificado automaticamente pelo token de autenticação, não sendo necessário informá-lo na requisição.
📋 Parâmetros de Query
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do cliente |
Content-Type | application/json | Tipo de conteúdo |
🔍 Campos de Condição Disponíveis
| Campo | Tipo | Descrição |
|---|---|---|
id | integer | Filtrar por id do cartão do cliente |
paymentOptionId | integer | Filtrar pelo id da opção de pagamento (instituição do cartão) |
flag | string | Filtrar pela bandeira do cartão |
main | boolean | Filtrar pelo cartão principal cadastrado |
createdAt | string | Filtrar pela data de cadastro do cartão |
🔃 Campos de Ordenação Disponíveis
| Campo | Descrição |
|---|---|
id | Ordenar pelo id do cartão do cliente |
flag | Ordenar pela bandeira do cartão |
main | Ordenar pelos cartões principais |
createdAt | Ordenar pela data de cadastro do cartão |
💡 Exemplo de Requisição
1curl --request GET \2 --url '{{MAIN_URL}}/customer/cards' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json'💡 Exemplo com Filtros
1curl --request GET \2 --url '{{MAIN_URL}}/customer/cards?limit=10&offset=0&condition[conditions][0][field]=flag&condition[conditions][0][value]=Visa&condition[conditions][0][operator]==&order[0][field]=createdAt&order[0][order]=desc' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "registers": [5 {6 "id": 123,7 "paymentOptionId": 123,8 "firstSix": "123456",9 "lastFour": "1234",10 "flag": "Visa",11 "main": false,12 "createdAt": "2025-04-30 13:08:35"13 }14 ],15 "pagination": {16 "limit": 10,17 "offset": 0,18 "pages": 16,19 "registers": 15620 }21 }22}⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código HTTP | Descrição |
|---|---|---|
INVALID_AUTH_TOKEN | 401 | ❌ O token de autenticação é inválido ou está ausente. |
EXPIRED_AUTH_TOKEN | 401 | ❌ O token de autenticação está expirado. |
INVALID_AUTH_HOST | 403 | ❌ O domínio da requisição não corresponde ao domínio registrado no token. |
INVALID_CUSTOMER | 401 | ❌ O cliente associado ao token não foi encontrado ou está inativo. |
💳 Cadastrar cartão do cliente
/customer/cards
Endpoint responsável por cadastrar o cartão do cliente
📋 Descrição
Endpoint responsável por cadastrar um cartão do cliente, utilizado principalmente nos fluxos de Checkout e Minha Conta 💳.
O cadastro permite que o cliente associe um cartão para uso em futuras compras, seguindo os padrões de segurança exigidos pelo gateway de pagamento.
IMPORTANTE 🔐: nenhuma informação sensível de cartão é armazenada pela API.
Não solicite e não tente acessar dados completos de cartão dos clientes.
A plataforma atua em conformidade com a Lei Geral de Proteção de Dados (LGPD), e qualquer tentativa de manipulação indevida dessas informações poderá resultar em penalidades.
🔧 Parâmetros de Query
Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Content-Type | application/json | Tipo de conteúdo |
Authorization | Bearer {token} | Token de autenticação do cliente |
Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | ✅ | Nome do titular definido no cartão (máx. 100 caracteres) |
document | string | ✅ | Documento de identificação do titular (apenas dígitos numéricos; CPF, CNPJ, RG e outros — máx. 14 dígitos) |
number | string | ✅ | Número do cartão (mín. 13 e máx. 19 dígitos) |
cvv | string | ✅ | Código de segurança do cartão (mín. 3 e máx. 4 dígitos) |
month | string | ✅ | Mês de vencimento do cartão (máx. 2 dígitos) |
year | string | ✅ | Ano de vencimento do cartão (máx. 4 dígitos) |
main | boolean | ✅ | Determina se o cartão é o principal do cliente |
Exemplo de Requisição
1curl --request POST \2 --url {{MAIN_URL}}/customer/cards \3 --header "Authorization: Bearer SEU_TOKEN_AQUI" \4 --header "Content-Type: application/json" \5 --data '{6 "name": "Juvenal Souza",7 "document": "12345678911",8 "number": "4111111111111111",9 "cvv": "123",10 "month": "09",11 "year": "2033",12 "main": true13 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "id": 5,5 "paymentOptionId": 0,6 "firstSix": "411111",7 "lastFour": "1111",8 "flag": "master",9 "main": true,10 "createdAt": "2025-05-16 20:41:08"11 }12}⚠️ Possíveis Erros
Atenção: a seguir estão destacados os principais erros que podem ocorrer neste endpoint.
Os cenários descritos representam os erros mais relevantes do contexto atual, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código HTTP | Descrição |
|---|---|---|
INVALID_REQUEST_PAYLOAD | 400 | Um ou mais campos do corpo da requisição são inválidos ou ausentes. O campo details da resposta indica quais campos falharam na validação. |
EXPIRED_AUTH_TOKEN | 401 | O token de autenticação informado está expirado. |
INVALID_AUTH_TOKEN | 401 | O token de autenticação informado é inválido. |
INVALID_CUSTOMER | 401 | O cliente associado ao token está inativo ou não encontrado. |
INVALID_AUTH_HOST | 403 | O domínio da requisição não corresponde ao domínio registrado no token de autenticação. |
🗑️ Exclusão do cartão do cliente
/customer/cards/{cardId}
Endpoint responsável por excluir dados de cartão do cliente da loja. Este endpoint requer autenticação.
📄 Descrição
Endpoint responsável por excluir permanentemente um cartão cadastrado do cliente autenticado.
A operação remove o registro do cartão do banco de dados local. Caso o cartão excluído seja o cartão principal do cliente, o sistema promove automaticamente o cartão mais recente como novo principal, sem necessidade de ação adicional.
A utilização requer autenticação via CustomerAuth — o ID do cliente é identificado automaticamente pelo token de autenticação. O cardId informado deve pertencer ao cliente autenticado; caso contrário, o erro UAPPI_STORE_CUSTOMER_CARD_NOT_FOUND é retornado.
🔐 Permissão
CustomerAuth— autenticação do cliente via token JWT
📝 Parâmetros
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do cliente |
🔗 Parâmetros de URL
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cardId | integer | ✅ Sim | ID do cartão do cliente a ser excluído |
💡 Exemplo de Requisição
1curl --request DELETE \2 --url '{{MAIN_URL}}/customer/cards/42' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": true4}⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código Interno | Código HTTP | Descrição |
|---|---|---|
INVALID_AUTH_TOKEN | 401 | ❌ O token de autenticação é inválido ou está ausente. |
EXPIRED_AUTH_TOKEN | 401 | ❌ O token de autenticação está expirado. |
INVALID_AUTH_HOST | 403 | ❌ O domínio da requisição não corresponde ao domínio registrado no token. |
INVALID_CUSTOMER | 401 | ❌ O cliente associado ao token não foi encontrado ou está inativo. |
UAPPI_STORE_CUSTOMER_CARD_NOT_FOUND | 404 | ❌ O cartão solicitado não foi encontrado ou não pertence ao cliente autenticado. |