Payment links

Every order includes a hosted checkout URL. Share it with customers — no SDK required on your frontend.

How it works

POST …/orders returns paymentLinkUrl when the link is enabled. Customer opens https://pay.andgroupco.com/pay/{token} and completes payment using your project's enabled gateway(s).

Flow

  1. Your server creates an order via API
  2. Response includes paymentLinkUrl
  3. Send the link to your customer (email, SMS, or redirect)
  4. Customer completes payment on the hosted checkout page using your project's enabled gateway
  5. Your webhook receives order.paid

Multi-gateway model

  • Enable one or more gateways per project (e.g. Stripe, Paystack, WeChat Pay personal QR, Alipay personal QR).
  • Personal QR (WeChat Pay / Alipay) is one integration type — configure collection profiles and per-order QRs in orders.
  • Redirect and card gateways use POST …/gateways/{slug}/payments with merchant credentials from the dashboard.
  • Hosted checkout routes the customer to whichever personal QR channels the merchant has configured; additional gateway UIs roll out per channel.

Supported gateways

Each project can enable one or more payment gateways. Merchants configure credentials and collection profiles per channel in the dashboard. Customers see only the methods enabled for that project at checkout.

Cards & embedded wallets

  • Stripe stripe
  • Visa (Cybersource) visa
  • Google Pay googlepay
  • Apple Pay applepay

Global checkout

  • PayPal paypal

China personal QR

  • WeChat Pay wechatpay
  • Alipay alipay

African gateways

  • Paystack paystack
  • Flutterwave flutterwave

Mobile money

  • M-Pesa mpesa
  • MTN MoMo mtnmomo
  • Airtel Money airtelmoney

Bank transfer & remittance

  • Bank Transfer banktransfer
  • Western Union westernunion
  • MoneyGram moneygram

The registry in src/lib/modules/payments/registry.ts is extensible — additional gateways can be added without changing your integration contract.

Configure gateways in the dashboard →

Manage payment links

POST/api/v1/projects/:projectId/orders/:id/payment-link

Regenerate payment link token for an existing order.

Permission: orders:write
DELETE/api/v1/projects/:projectId/orders/:id/payment-link

Disable the payment link for an order.

Permission: orders:write

Public checkout routes

These routes require no API key — they are customer-facing.

GET/pay/:token

Hosted checkout page.

POST/api/public/pay/:token/initiate

Start payment from the hosted checkout page (gateway slug in body).

POST/api/public/pay/:token/voucher

Upload payment proof from hosted checkout (personal QR flow).

One link per order

Payment links are tied to a single order and amount. For subscription renewals, create a new order per billing period — do not reuse links across cycles. See subscriptions.