Guide
Payment Links vs Checkout Sessions
Manza offers two ways to accept card payments. Both land the customer on a hosted Manza page that handles card entry, 3D Secure, and PCI compliance — the difference is how you create them and how you keep state in sync.
At a glance#
| Payment Links | Checkout Sessions | |
|---|---|---|
| Created | Once, by you, via API or dashboard | Per order, by your server, via API only |
| Shared | Manually — WhatsApp, email, SMS, QR | Programmatically — you redirect to the URL |
| Reusable | Yes (single or multi-payment) | No — one URL per order |
| Lifespan | Until cancelled or expires_at | 30 minutes by default, up to 7 days |
| State sync | payment_link.paid webhook or list endpoint | checkout_session.completed webhook or GET the session |
| Settlement | payment_link.payment_settled webhook (settled_at set) | checkout_session.settled webhook (settled_at set) |
| Metadata | None — use description / payment_reference | Structured metadata object (up to 50 keys) |
| Dashboard | Listed and manageable in the UI | Managed entirely from your server |
Choose Payment Links if…#
- You want a URL you can paste into a message and send to one customer.
- You're sending an invoice and want the customer to pay from the invoice email.
- You sell at a fixed price and want a reusable URL any number of customers can pay.
- You don't have a server-side integration — you operate from the dashboard.
- You need to bill on a recurring schedule (see Recurring billing).
Choose Checkout Sessions if…#
- A customer is checking out an order/cart in your app and you redirect them to pay, then back.
- You need structured metadata (order_id, user_id) to reconcile the payment on completion.
- You want the session to expire automatically after a short window (default 30 minutes).
- You want a programmatic, per-order flow without managing link objects in the dashboard.
Still not sure?#
If the customer drives the moment of payment (clicking “Pay now” in your checkout), use Checkout Sessions. If you drive the moment of payment (sending an invoice or a payment request), use Payment Links.