Skip to main content

Esquema

CampoTipoDescrição
voucherIdUUIDv7Identificador único
organizationIdUUIDv7FK para Organization
externalRefstring?Credit grant no Stripe
namestringNome do voucher, máx 255
amountintegerCrédito em centavos
currencyenumUSD, BRL, EUR
effectiveAtdatetime?Data de ativação
expiresAtdatetime?Data de expiração
amountRedeemedintegerValor utilizado em centavos
statusenumPENDING, ACTIVE, DEPLETED, EXPIRED
createdByUUIDv7Criador
createdAtdatetimeCriação
updatedByUUIDv7Último atualizador
updatedAtdatetimeÚltima atualização
deletedByUUIDv7?Quem deletou
deletedAtdatetime?Soft delete
Vouchers são criados via padrão Saga com o Stripe billing credit grant. A criação local e no Stripe acontecem de forma coordenada — se qualquer etapa falhar, a saga compensa automaticamente para garantir consistência entre os sistemas.

Transições de Estado

Um voucher com effectiveAt nulo fica ACTIVE imediatamente. Use effectiveAt para agendar promoções futuras — o voucher aparece como PENDING até a data de ativação.

Relacionamentos

  • Belongs to Organization
  • Has many VoucherFees
  • Has many VoucherUsages

Regras de Negócio

  • Criado via padrão Saga com Stripe billing credit grant
  • Restrições opcionais por fee via VoucherFees
  • Status gerenciado pelas datas effectiveAt/expiresAt
Se um voucher tem VoucherFees configurados, ele só pode ser aplicado em invoices que contenham line items referentes àquelas fees específicas. Sem VoucherFees, o voucher se aplica a qualquer invoice da organização.

Exemplo

{
  "voucherId": "019528d5-7a80-7d9b-f8c6-2e4a0c6d8f1b",
  "organizationId": "019526a0-1a20-7d3b-a1c9-5f7e9b0d3f5b",
  "externalRef": "cg_1AbCdEfGhIjKlMnOpQ",
  "name": "Crédito de onboarding",
  "amount": 50000,
  "currency": "BRL",
  "effectiveAt": "2026-02-01T00:00:00Z",
  "expiresAt": "2026-08-01T23:59:59Z",
  "amountRedeemed": 18750,
  "status": "ACTIVE",
  "feeRestrictions": [
    {
      "feeId": "019527a2-4e50-7b6f-d5a3-0b1d7e3a5c8e",
      "name": "Uso de IA — Agentes"
    }
  ],
  "usages": [
    {
      "invoiceId": "019527b3-5e60-7b7f-d6a4-0c2e8a4b6d9f",
      "amount": 8750,
      "appliedAt": "2026-02-15T00:00:00Z"
    },
    {
      "invoiceId": "019528c6-8b90-7e0c-a9d7-3f5b1d7e9a2c",
      "amount": 10000,
      "appliedAt": "2026-03-15T00:00:00Z"
    }
  ],
  "createdBy": "019525fc-1234-7a1b-8c2d-3e4f5a6b7c8d",
  "createdAt": "2026-01-28T14:00:00Z",
  "updatedBy": "019525fc-1234-7a1b-8c2d-3e4f5a6b7c8d",
  "updatedAt": "2026-03-15T00:00:00Z"
}