Payments rail — Yappy + ACH + card-link¶
PYMES in Panama get paid mostly via Yappy, transferencia, and cheque. The bank-statement parser already lifts Yappy; close the loop so the invoice → notification → receipt is automatic.
Related code: app/graphql/bank_statements/, app/graphql/invoices/, app/graphql/receipts/, app/graphql/payments/.
Items¶
- Yappy payment request per invoice — generate QR + deeplink with a unique reference id stamped onto the invoice and the bank-statement match key.
- Acceptance: customer scans the QR on the PDF, pays via Yappy app, and the receipt auto-creates against that invoice with no human action.
- Banco General / BAC / Banesco "pagar" deeplinks rendered on invoice PDFs and emails.
- Acceptance: clicking the link in the email opens the bank's transfer screen pre-filled with our IBAN/account, amount, and reference.
- Bank-detail block on every invoice PDF with the tenant's bank, account number, account holder, and RUC.
- Acceptance:
pdf_templates/supports an opt-in bank-detail section that pulls frombank_accounts/defaults. - Credit card payment link via Tilopay / Banistmo POS / Stripe.
- Acceptance: invoice page surfaces a "Pagar con tarjeta" button; successful charge posts a receipt + bank-fee expense.
- Auto-reconcile statement → receipt when the transaction reference matches a generated payment request.
- Acceptance:
bank_statements/services/matcher confidence == 1.0 when the reference matches; receipt is created without user confirmation. - "Recordatorio de pago" — one-click send invoice payment links via WhatsApp + email.
- Acceptance: button on invoice list "Recordar pago" sends both channels with the configured template.
Shipped¶
None yet.