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

ArgumentData TypeDescriptionRequired
referenceNumberStringA 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
amountNumberThe amount being requested
Hashindex-2
True
currencyStringThe currency of the operation. NGN for Naira
Hashindex-3
True
payerObjectThe person/entity from whom we are requesting a paymentTrue
payer.nameStringName of the payerTrue
payer.phoneNumberStringPhone number of the payer. Either one of phone-number or e-mail address must be provided
Hashindex-4
True
payer.emailStringE-mail address of the payer. Either one of phone-number or e-mail address must be provided
Hashindex-5
False
payeeObjectThe 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 recipientTrue
payee.nameStringMerchant Name - State this as your company nameTrue
expiryDateTimeUTCStringTime 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
isSuppressMessagesBooleanPaga 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 falseFalse
payerCollectionFeeShareNumberYou 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.0True
payeeCollectionFeeShareNumberYou 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.0True
callBackUrlStringThe callback url that will be notified with updates on the payment request statusTrue
paymentMethodsArrayParse 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!


What’s Next