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!


What’s Next