Dados proxied do Stripe — não armazenados no banco de dados da aplicação. Cada consulta busca as informações diretamente na API do Stripe, garantindo que dados sensíveis de pagamento nunca sejam persistidos localmente.
Esquema (Union Type)
Card
| Campo | Tipo | Descrição |
|---|
paymentMethodId | string | ID do payment method |
organizationId | UUIDv7 | FK para Organization |
type | CARD | Tipo de pagamento |
brand | string | Bandeira (visa, mastercard, etc.) |
last4 | string | Últimos 4 dígitos |
expMonth | integer | Mês de expiração |
expYear | integer | Ano de expiração |
isDefault | boolean | Método de pagamento padrão |
billingDetails | object | Nome, email |
Boleto
| Campo | Tipo | Descrição |
|---|
paymentMethodId | string | ID do payment method |
organizationId | UUIDv7 | FK para Organization |
type | BOLETO | Tipo de pagamento |
isDefault | boolean | Método de pagamento padrão |
billingDetails | object | Nome, taxId (CPF/CNPJ) |
O taxId no billingDetails do boleto é obrigatório e deve ser um CPF ou CNPJ válido. Boletos gerados com taxId inválido serão rejeitados pelo Stripe.
Relacionamentos
Regras de Negócio
- Múltiplos métodos por organização
- Um pode ser definido como padrão
- Usado em invoices e subscriptions
Quando uma organização tem múltiplos métodos de pagamento, o marcado como isDefault: true é usado automaticamente para novas cobranças. Para invoices de boleto, o link de pagamento é gerado automaticamente e disponibilizado no campo boleto.url da invoice.
Exemplo
[
{
"paymentMethodId": "pm_1PqR2sT4uV6wX8yZ",
"organizationId": "019526a0-1a20-7d3b-a1c9-5f7e9b0d3f5b",
"type": "CARD",
"brand": "visa",
"last4": "4242",
"expMonth": 12,
"expYear": 2028,
"isDefault": true,
"billingDetails": {
"name": "AWsales Tecnologia Ltda",
"email": "financeiro@empresa.com.br"
}
},
{
"paymentMethodId": "pm_2QrS3tU5vW7xY9zA",
"organizationId": "019526a0-1a20-7d3b-a1c9-5f7e9b0d3f5b",
"type": "BOLETO",
"isDefault": false,
"billingDetails": {
"name": "AWsales Tecnologia Ltda",
"taxId": "12.345.678/0001-90"
}
}
]