Payment Links
Estes endpoints não exigem autenticação (@Public()) e são usados por páginas de checkout consumidas pelo pagador final. A criação/edição de payment links e checkouts é feita no painel; aqui documentamos apenas o consumo público.
GET /public/payment-links/:id → 200
Seção intitulada “GET /public/payment-links/:id → 200”Retorna os dados de um payment link. Só links ACTIVE, não expirados, de empresas ACTIVE, com produto ativo (senão 404).
Resposta (GetPublicPaymentLinkOutput): id, productId, name, description|null, priceCents, companyName, paymentMethod, maxInstallments|null, expiresAt|null, isExpired (sempre false quando retornado).
POST /public/payment-links/:id/checkout → 201
Seção intitulada “POST /public/payment-links/:id/checkout → 201”Cria a order e gera o QR PIX.
Body (CheckoutPaymentLinkDto):
customer(obrigatório):name(1–255),email(máx 255),phone(opcional),documentNumber(11–14),documentType(CPF|CNPJ).address(opcional, todos opcionais):zipCode,street,streetNumber,complement,neighborhood,city,state(len 2),country(default"BR").paymentMethodenum['PIX']default"PIX".couponCodestring 1–64 opcional.
Resposta (201):
{ "orderId": "string", "subTransactionId": "string", "status": "PENDING", "pix": { "qrcode": "string", "expiresAt": "ISO" }, "amount": { "value": 10000, "currency": "BRL" }}POST /public/payment-links/:id/coupon-preview → 200
Seção intitulada “POST /public/payment-links/:id/coupon-preview → 200”Body: couponCode (1–64, obrigatório).
Resposta (union):
- inválido:
{ "valid": false, "reason": "string" } - válido:
{ "valid": true, "discountCents": 0, "finalAmountCents": 0 }