Overview
A Payment Link is a hosted payment page that Payaza generates for you. Instead of building a checkout flow from scratch, you create a link via the API, share it with your customer, and they pay on a Payaza-hosted page — no frontend work needed on your end. Payment links are ideal for:- Invoices — send a payment link in an email instead of a bank account number
- Event tickets — one link handles unlimited attendee payments
- Donations — open-amount links let customers pay whatever they want
- One-time products — single-use links that expire after one payment
- Social selling — share on WhatsApp, Instagram bio, or anywhere a URL works
- Call Create Payment Link → get back a
linkURL (e.g.https://business.payaza.africa/pay/techmeetup2027) - Share that URL with your customers — by email, WhatsApp, SMS, or embed it as a button on your site
- Customers open the link, fill in their details, and pay — you get notified via your configured webhook
Key Requirements
Retrieve your API keys from your dashboard by following the steps on our
Authentication page. Use your public API key for
all payment link requests.
Fixed amount vs open amount
When creating a payment link, you choose whether it charges a set amount or lets the customer decide.Who pays the fee?
Transaction processing fees can be absorbed by you or passed to the customer. Set this withfee_bearer_type:
Step 1 — Create a Payment Link
Creates a new payment link. Thelink in the response is the URL you share with customers.
Sample response
Step 2 — Share the link
Once you havedata.link, you can share it anywhere:
- Email — paste it directly as a button or hyperlink
- WhatsApp / SMS — send it as a message
- Website — embed it as a button:
<a href="{{link}}">Pay Now</a> - Invoice — include it alongside the invoice total
Step 3 — Update a Payment Link
This is used to update the details of an existing payment link using itslink_id. All body fields are optional — include only the fields you want to change. The link URL itself (data.link) does not change when you update other fields.
payment_link_name cannot be updated after creation — the URL slug is fixed
at the time the link is created. To change the name, create a new payment
link.
Updatable body parameters (all optional)
Sample response
Step 4 — Deactivate a Payment Link
Temporarily disables a payment link. Customers who visit a deactivated link will not be able to complete a payment. The link is not deleted — you can reactivate it at any time. When to use it: Close registrations for an event once tickets sell out, pause a donation campaign, or temporarily suspend a link without losing its transaction history.Step 5 — Activate a Payment Link (optional)
Re-enables a previously deactivated payment link. Customers can immediately start making payments again once activated. No request body is needed — just thelink_id in the query string.
Step 6 — Fetch all Payment Links
Retrieve a paginated list of all payment links on your account. Use the optionalsearch parameter to filter by name. Each result includes total_collected_amount and number_of_usage so you can track performance at a glance.
Sample response
API reference: Fetch Payment Links
Step 7 — Fetch Payment Link Transactions
Retrieve a paginated list of all transactions made through a specific payment link. Use this for reconciliation, customer lookups, or building a payments dashboard.
Sample response
Key fields explained
API reference: Fetch Payment Link Transactions
Error handling
Developer notes
- Always save
data.id(link_id) from the Create Payment Link response — every other endpoint in this guide uses it. data.linkis the shareable URL. It is permanent and does not change even after you update the link’s other details.- Payment link names become URL slugs — keep them short, descriptive, and without spaces (use camelCase or hyphens).
TechMeetup2027becomes/pay/techmeetup2027. - You can set a custom slug after creation using the
custom_urlfield in the Update endpoint — useful if you want a cleaner URL like/pay/tech-meetup-2027. - Payment links support multiple payment methods on the hosted page (card, virtual account, etc.) — the
transaction_modefield in the transactions response tells you which method each customer used.