Payment Links
Create payment links from the dashboard or through the SDK invoice flow
Payment links give your customers a hosted page where they can pay you. Send a URL through email, SMS, WhatsApp, or your site. The customer opens it, chooses how to pay, and completes the payment on the hosted page.
Dashboard Payment Links
Create a payment link directly from the merchant dashboard in a few clicks and share the URL immediately. Each link stays active for multiple customers until it expires or you revoke it.
Create a Link
- Open the Payment Links tab from the dashboard sidebar and click Create link.
- Choose an API key. The key determines both the merchant account that receives payments and whether the link operates in live or test mode.
- Enter the amount, currency, and optionally add a description, line items, a redirect URL, and tags.
- Select which payment methods to accept: Mobile Money, Credit/Debit Card, or Bank Transfer.
- Set an expiry time, from 1 hour to never expiring.
- Customize the look under the Design tab: brand color, logo upload, page layout, and button style.
- Click Create. The link URL is copied to your clipboard and ready to share.
Expiry Options
| Option | Link stops accepting payments |
|---|---|
| 1 hour | 1 hour after creation |
| 24 hours | 24 hours after creation |
| 7 days | 7 days after creation |
| 30 days | 30 days after creation |
| Never | Only when you revoke it |
Share the Link
Copy the URL from the Payment Links table and share it through any channel. Every customer who opens it sees a hosted payment page with your branding.
What the Customer Sees
The hosted page lets the customer:
- Choose a payment method from the ones you enabled
- Enter their payment details
- Confirm the payment on their phone or card
- See a confirmation screen, then optionally redirect to your site
Managing Links
Search and filter links by name, status, or tag from the Payment Links table. Each row has a menu with the following actions:
| Action | When available |
|---|---|
| Copy link URL | Any time |
| Edit | While the link is Active |
| Revoke | While the link is Active |
Revoking a link permanently disables it. Customers who open the URL after revocation cannot complete a payment.
Editable Fields
While a link is Active you can change:
- Name
- Description
- Payment methods
- Expiry date
- Redirect URL
- Branding (logo, color, layout, button style)
- Tags
Amount and currency cannot be changed after the link is created.
Branding Options
| Setting | Options |
|---|---|
| Logo | Upload your logo image |
| Brand color | Any hex color |
| Page layout | Default, Minimal, Centered |
| Button style | Rounded, Square, Pill |
Link Status
| Status | What it means |
|---|---|
| Active | Accepting payments |
| Successful | A payment through this link completed |
| Failed | A payment attempt through this link failed |
| Cancelled | Link was revoked |
SDK Payment Links
When you need to generate a payment URL from your server, use the SDK's invoice API. This is useful for scenarios like emailing an invoice after a customer places an order or creating a payment link on a schedule.
The createInvoice method returns a payment URL that works the same way as a dashboard link: the customer opens it and pays on the hosted page. The difference is that an invoice is tied to one reference and expires after payment, whereas a dashboard link stays reusable until you revoke or expire it.
createInvoice() → Payment URL → Send to customer
↓
Customer opens link
↓
Hosted payment page
↓
Payment processed
↓
Webhook notification / getStatus()For the full API reference including request fields, response shape, status tracking, and webhook events, see the Invoices SDK page.
Dashboard vs Invoice
| Dashboard link | SDK invoice | |
|---|---|---|
| Created from | Dashboard UI | Your server code |
| Reusable | Yes, multiple customers can pay | No, tied to one reference |
| Branding | Logo, color, layout, button style | Description and items only |
| Payment methods | Choose per link | Mobile money only |
| Requires code | No | Yes |
| Best for | Sharing broadly via email, SMS, or messaging apps | Programmatic generation from your backend |
See Also
- Invoices SDK reference,
createInvoicerequest fields and response - Webhooks guide, receive payment notifications
- Transaction Lifecycle, status flow explained