Paga Wallet
Collect payment from Paga customer
Request payment from over 19 million Paga customer
Initiate a payment request and we’ll notify the customer to fulfil the payment from their wallet. After payment, we send you a callback with details of the payment
Please see a step-by-step process on how to get this done
Demo
How to manage value from your customers using Paga Wallet.
Step 1: Get all the needed information
These are the parameters you'll need to provide to request a payment from the Paga wallet holder
Argument | Data Type | Description | Required |
---|---|---|---|
referenceNumber | String | A unique reference number representing this request. The same reference number will be returned in the response and can be used to query the payment request status Hashindex-1 | True |
amount | Number | The amount being requested Hashindex-2 | True |
currency | String | The currency of the operation. NGN for Naira Hashindex-3 | True |
payer | Object | The person/entity from whom we are requesting a payment | True |
payer.name | String | Name of the payer | True |
payer.phoneNumber | String | Phone number of the payer. Either one of phone-number or e-mail address must be provided Hashindex-4 | True |
payer.email | String | E-mail address of the payer. Either one of phone-number or e-mail address must be provided Hashindex-5 | False |
payee | Object | The person/entity to receive the payment, if the payee identifier (eg. phone number, email, etc.) is not supplied, the payment request processor is automatically selected as recipient | True |
payee.name | String | Merchant Name - State this as your company name | True |
expiryDateTimeUTC | String | Time limit for the payment request to be fulfilled otherwise it will be automatically expired, this must be with one week of requesting payment. If not provided the default expiry window value is applied. | False |
isSuppressMessages | Boolean | Paga will send an email to the payer to fulfill payment. You can suppress direct messaging to payer and recipient by parsing the param as true. Default value is false | False |
payerCollectionFeeShare | Number | You can split Paga fees between yourself and the customer. If you need the customer to pay all the applicable fees, parse this param as 1.0 or split the value between 0.0 and 1.0. The combination of payerCollectionFeeShare and recipientCollectionFeeShare must equal to 1.0 | True |
payeeCollectionFeeShare | Number | You can split Paga fees between yourself and the customer. If you want to pay all the applicable fees, parse this param as 1.0 or split the value between 0 and 1. The combination of payerCollectionFeeShare and recipientCollectionFeeShare must be equal to 1.0 | True |
callBackUrl | String | The callback url that will be notified with updates on the payment request status | True |
paymentMethods | Array | Parse as REQUEST_MONEY | True |
Step 2: Generate a payment request to paga wallet customer
For this step, you’ll need to parse all the param above in a POST request to obtain the payment weblink
POST /paymentRequest HTTP/1.1
Host: collect.paga.com
hash:1f42eb2a076147063285d6321a969376472c2b2710220051c1736386ff01ea0f9c4ff8ddf43cd8e497327760a2faad9139a4a3af38a1e2c2f68b56851a5a99f1
Authorization: Basic e3t1c2VybmFtZX10Ont7cGnzc3dvcmR9fB==
Content-Type: application/json
Content-Length: 567
{
"referenceNumber": "2460039579797",
"amount": 50,
"currency": "NGN",
"payer": {
"name": "Mustapha Rasheed",
"phoneNumber": "07060823006"
},
"payee": {
"name": "Rami Nigeria Limited"
},
"expiryDateTimeUTC": "2022-04-26T16:35:00",
"isSuppressMessages": true,
"payerCollectionFeeShare": 1,
"payeeCollectionFeeShare": 0,
"callBackUrl": "https://webhook.site/efda4728-139e-4efa-b5c3-d7fb24e28475?",
"paymentMethods": [
"REQUEST_MONEY"
]
}
Sample Response
{
"referenceNumber": "2460039579797",
"statusCode": "0",
"statusMessage": "success",
"requestAmount": 50.0,
"totalPaymentAmount": 50.41,
"currency": "NGN",
"paymentMethods": [
{
"name": "REQUEST_MONEY",
"properties": {
"PaymentReference": "7f288693-de72-45fa-9c70-d1aa69b6cbc4",
"WebPaymentLink": "https://justpaga.me/7f288693-de72-45fa-9c70-d1aa69b6cbc4"
}
}
],
"expiryDateTimeUTC": "2022-04-28T16:35:00",
"isPayerPagaAccountHolder": true
}
Notice the isPayerPagaAccountHolder, the parameter let you know if the payer phoneNumber or Email is registered on Paga. If the param return false, notify the customer that the phone number of email provided is not registered to a Paga account
Step 3: Sample customer flow from Paga wallet
If the Payer Phone number or email provided is registered to a Paga wallet, the customer will receive an In-app notification on their Paga app and fulfil the payment
Step 4: After Payment
- We’ll send a webhook to the callback URL you provided in the initial request
- Also, you can call the status endpoint to confirm the payment received
Step 5: Check payment status
You’ll need to make a server to server call to get the status of transaction. Your JSON request should look like below
Host: collect.paga.com
hash: 1f42eb2a076147063285d6321a969376472c2b2710220051c1736386ff01ea0f9c4ff8ddf43cd8e497327760a2faad9139a4a3af38a1e2c2f68b56851a5a99f1
Authorization: Basic e3t1c7VybmFtZX19Ont7cGFzc3dvcmR9fb==
Content-Type: application/json
Content-Length: 51
{
"referenceNumber": "23534646579650395979"
}
{
"referenceNumber": "2460039509797",
"statusCode": "0",
"statusMessage": "success",
"data": {
"referenceNumber": "2460039509797",
"statusCode": "0",
"statusMessage": "success",
"requestAmount": 50.0,
"totalPaymentAmount": 50.41,
"currency": "NGN",
"paymentMethods": [
{
"name": "REQUEST_MONEY",
"properties": {
"PaymentReference": "0be92b6b-b057-4652-a773-2fc4f886637c",
"WebPaymentLink": "https://justpaga.me/0be92b6b-b057-4652-a773-2fc4f886637c"
}
}
],
"expiryDateTimeUTC": "2022-04-28T16:35:00",
"isPayerPagaAccountHolder": true
}
}
What if payment wasn’t made or completed
We will send you conclusive callback once the request expires and the customer didn’t make payment. Also, if the customer cancels the transaction we’ll notify you accordingly via callback
We are done!
Updated over 2 years ago