Getting started
This guide shows you how to generate and use Payment Links with Hubpay.
Youβll learn how to:
- Create a payment link
- Share it with your customer
- Handle the result and confirm payment securely
π‘ Youβll need API credentials and access to the Collections API.
See our Authentication Guide for more details.
1. Create a payer (if needed)β
If you donβt already have a payerId, create one using the API.
This identifies the customer who will make the payment.
π API Reference β Create Payer
2. Upload a documentβ
Hubpay requires an official document (such as an Invoice, Purchase Order, Sales Purchase Agreement, Commercial Contract etc.) to verify the transaction details and ensure compliance with UAE regulatory requirements.
π API Reference β Upload Document
{
"id": "550e8400-e29b-41d4-a716-446655440000"
}
3. Create a payment requestβ
Use the API to create a new payment link.
Be sure to set executionMode to PAYMENT_LINK in your request payload.
Specify the amount, currency, payer details (if needed), and any metadata.
π API Reference β Create Payment Request
Part of the response will look like this:
{
"paymentUrl": "https://pay.hubpay.ae/AH-VGTJ-24GX",
"successRedirectUrl": "https://yourapp.com/success",
"cancelRedirectUrl": "https://yourapp.com/cancel"
}
When the payer completes their payment journey, Hubpay adds paymentRequestId and paymentId as query parameters to your success redirect URL:
https://yourapp.com/success?paymentRequestId=8a282576-18c0-4c0e-b158-44b92eda1afe&paymentId=46be2ff1-cdbf-4b3d-a4cd-beb0fb22ea0d
The successRedirectUrl redirect means the payer has completed their payment journey, not that funds have been received.
For example, with bank transfers, the payer may have successfully submitted payment instructions, but Hubpay has not yet received the funds.
Always verify payment status via webhook or API lookup before fulfilling orders or providing services.
4. Share the linkβ
Send the paymentUrl to your customer via email, SMS, WhatsApp, CRM, or any preferred channel.
After clicking the link, your customer will see a page similar to this:

5. Customer completes paymentβ
The customer reviews the payment details and completes payment using their preferred method.
6. Confirm the paymentβ
Do not rely solely on the redirect to successRedirectUrl. Always confirm payment via webhook or API.
The redirect to successRedirectUrl means the payer has completed their journey (e.g., submitted bank transfer instructions), but does not confirm that Hubpay has received the funds.
| Method | Description |
|---|---|
| Webhook | Listen for the payment_request.paid event on your backend. |
| API lookup | Poll GET /v1/collections/payment-requests/{id} for status. |

For secure confirmation of all payments, see Confirming payments.
Always confirm payment on your backend!
Never trust only the redirect or browser UI. The successRedirectUrl redirect indicates the payment journey is complete, not that funds have been received. Use webhooks or API lookup to validate actual payment status before delivering goods or services.
5. (Optional) Listen for webhooksβ
Set up webhooks to get real-time notifications of payment events:
v1.collection.payment_request.createdv1.collection.payment_request.paidv1.collection.payment_request.part_paidv1.collection.payment_request.cancelled
6. (Optional) Customize brandingβ
For details on branding your payment links, see Branding.
Need help?
Contact our team or check the API Reference for more details.