Digital Wallets
OPay "Wallet as A Service" (Digital wallet) is a cutting-edge solution that empowers businesses to integrate digital wallet systems effortlessly, transforming the way you handle financial transactions through employees or affiliated entities.
Key Benefits:
- Enhanced Security and Speedy Transactions: Funds collected via subordinate digital wallets are directly funnelled into your company's primary account, bypassing the risks associated with cash handling and significantly speeding up the collection process compared to traditional methods.
- Unmatched Transparency and Visibility: Our platform not only ensures prompt fund transfers but also provides employees and sub-merchants with continuous, real-time access to payment statuses. This level of transparency eliminates the need for cumbersome payment confirmation processes.
Ideal Applications: "Wallet as A Service" is exceptionally beneficial for industries such as FMCG distribution, food and supermarket delivery, logistics, and any business operating on a Cash on Delivery (COD) model or with a multi-tiered merchant structure or network. With OPay WaaS, you can streamline your financial operations and boost efficiency across the board.
Create Digital Wallet
URL: https://payapi.opayweb.com/api/v2/third/depositcode/generateStaticDepositCode
Request Parameters
Parameter | Type | Required | Description |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
name | String | Yes | Digital Wallet holder's name |
refId | String | Optional |
Digital Wallet holder's Ref ID (15 characters including digits and/or letters).
Creating wallet requires at least one of these three: Ref ID, email address, and Phone number.
|
String | Optional |
Digital Wallet holder's email address.
Creating wallet requires at least one of these three: Ref ID, email address, and Phone number.
| |
phone | String | Optional |
Digital Wallet holder's phone number.
Creating wallet requires at least one of these three: Ref ID, email address, and Phone number.
|
accountType | String | Yes | Collection account types: If you choose "Merchant", the money collected via this Digital Wallet will be credited directly into the company's OPay account (Business/Branch account); If you choose "User", the money collected via this Digital Wallet will stay in the Digital Wallet, and the company can sweep all the money into its OPay account. |
sendPassWordFlag | String | No | This parameter defines the sending of OPay Business APP account credentials for using the Digital Wallet. If you pass Y, or empty, or do not pass any data, OPay will send out the account credentials to the Digital Wallet holders via email or SMS. If you pass N, no emails or SMS will be sent. Make sure you pass Y/N in capital letters. |
{
"opayMerchantId":"256621072768092",
"refId": "refer1200000850",
"name": "abc",
"email":"234432@163.com",
"phone":"2341231231231",
"accountType":"Merchant",
"sendPassWordFlag":"N"
}
2
3
4
5
6
7
8
9
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
depositCode | String | Digital Wallet Number |
name | String | Digital Wallet holder's name |
refId | String | Digital Wallet holder's Ref ID (15 characters including digits and/or letters) |
emailOrPhone | String | Digital Wallet holder's email address or phone number |
accountType | String | Collection account types: If you choose "Merchant", the money collected via this Digital Wallet will be credited directly into the company's OPay account (Business/Branch account); If you choose "User", the money collected via this Digital Wallet will stay in the Digital Wallet, and the company can sweep all the money into its OPay account. |
{
"code": "00000",
"data": {
"depositCode": "6126390625",
"name": "aa",
"refId": "refer1200000850",
"emailOrPhone": "+2341234567890",
"accountType": "Merchant"
},
"message": "SUCCESSFUL"
}
2
3
4
5
6
7
8
9
10
11
Query Wallet Details
URL: https://payapi.opayweb.com/api/v2/third/depositcode/queryStaticDepositCodeInfo
Request Parameters Request Parameters
Parameter | Type | Required | Description |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
depositCode | String | Yes | Digital Wallet Number |
{
"opayMerchantId": "256621072768092",
"depositCode": "6126390625"
}
2
3
4
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
depositCode | String | Digital Wallet Number |
name | String | Digital Wallet holder's name |
refId | String | Digital Wallet holder's Ref ID (15 characters including digits and/or letters) |
String | Digital Wallet holder's email address | |
phone | String | Digital Wallet holder's phone number |
createTime | String | Digital Wallet creation time |
formatDateTime | String | Digital Wallet creation time (Nigerian time: yyyy-MM-dd HH:mm:ss) |
{
"code": "00000",
"message": "SUCCESSFUL",
"data": {
"depositCode": "6126390625",
"name": "aaa",
"refId": "refer1200000850",
"email": "234432@163.com",
"phone": "2341231231231",
"createTime": 34124243242000,
"formatDateTime":"2022-09-27 13:34:36",
"accountType": "Merchant"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
Query Transaction History
URL: https://payapi.opayweb.com/api/v2/third/depositcode/queryStaticDepositCodeTransList
Request Parameters
Parameter | Type | Required | Description |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
depositCodes | List<String> | No | Digital Wallet Number - up to 1000 |
pageNo | long | Yes | Page number |
pageSize | long | Yes | Number of transactions in one page - 500 at most |
startTime | long | No | Start time (in ms) |
endTime | long | No | End time (in ms) |
{
"opayMerchantId": "256621072768092",
"depositCodes": ["6126390625", "6126390626"],
"pageNo": 1,
"pageSize": 10,
"startTime": 1651334396400,
"endTime": 1664467200000
}
2
3
4
5
6
7
8
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
total | long | Total number of transactions |
list | list | |
list.depositCode | String | Digital Wallet Number |
list.merchantId | String | Branch ID of the Digital Wallet |
list.orderNo | String | Reference number of your payment order |
list.orderStatus | String | Transaction status: SUCCESS, FAIL, PENDING |
list.depositTime | long | Transaction time |
{
"code": "00000",
"message": "SUCCESSFUL",
"data": {
"total": 2,
"list": [
{
"merchantId": "256622022480363",
"depositCode": "6126390625",
"orderNo": "20220319702512368471543808",
"depositTime": 1663153219000,
"depositAmount": "800.00",
"currency": "NGN",
"orderStatus":"SUCCESS",
"formatDateTime":"2022-09-27 13:34:36",
"transactionId":"20220319702512368471543808",
"notes":"test"
},
{
"merchantId": "256622022480363",
"depositCode": "6126390626",
"orderNo": "20220319702512368471543808",
"depositTime": 1663153219000,
"depositAmount": "800.00",
"currency": "NGN",
"orderStatus":"SUCCESS",
"formatDateTime":"2022-09-27 13:34:36",
"transactionId":"20220319702512368471543808",
"notes":"test"
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Query Wallet Balance
URL: https://payapi.opayweb.com/api/v2/third/depositcode/queryWalletBalance
Request Parameters
Parameter | Type | Required | Description |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
depositCode | String | Yes | Digital Wallet Number |
{
"opayMerchantId": "256621072768092",
"depositCode": "6126390625"
}
2
3
4
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
name | String | Digital Wallet holder's name |
refId | String | Digital Wallet holder's Ref ID (15 characters including digits and/or letters) |
amount | String | Amount |
currency | String | Currency |
queryTime | long | Query time (Nigerian time: yyyy-mm-dd hh:mm:ss) |
{
"code": "00000",
"message": "SUCCESSFUL",
"data": {
"name": "aaa",
"refId": "refer1200000850",
"amount": "234",
"currency": "NGN",
"queryTime": "2022-09-29 08:47:55"
}
}
2
3
4
5
6
7
8
9
10
11
Sweep
URL: https://payapi.opayweb.com/api/v2/third/depositcode/transferToMerchant
Request Parameters
Parameter | Type | Required | Description |
amount | String | Yes | Sweep amount - the money transferred from Digital Wallet to the company's OPay account (in Naira) |
depositCode | String | Yes | Digital Wallet Number |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
collectionMerchantId | String | Yes | Branch ID of the sweep-in account |
requestSerialNo | String | Yes | Request Serial No. |
description | String | Yes | Sweep description |
{
"amount": "123",
"depositCode": "6126390625",
"opayMerchantId":"256621072768092",
"collectionMerchantId": "256621072768092",
"requestSerialNo": "2333232322323233",
"description": "message"
}
2
3
4
5
6
7
8
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
orderNo | String | Sweep order No. |
status | String | Sweep order status |
amount | String | Sweep amount |
currency | String | Currency |
tradeTime | String | Transaction time (Nigerian time: yyyy-MM-dd HH:mm:ss) |
errorMessage | String | Failure reason |
{
"code": "00000",
"message": "SUCCESSFUL",
"data": {
"orderNo": "2333331231",
"status": "2333331231",
"amount": "234",
"currency": "NGN",
"tradeTime": "2022-09-29 08:47:55",
"errorMessage": "order does not exist"
}
}
2
3
4
5
6
7
8
9
10
11
12
Query Sweep Status
URL: https://payapi.opayweb.com/api/v2/third/depositcode/queryTransferStatus
Request Parameters
Parameter | Type | Required | Description |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
orderNo | String | Yes | Sweep order No. |
requestSerialNo | String | Yes | Request Serial no. |
{
"opayMerchantId": "256621072768092",
"orderNo": "233333423424",
"requestSerialNo": "2333232322323233"
}
2
3
4
5
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
status | String | Sweep status |
amount | String | Sweep amount |
currency | String | Currency |
errorMessage | String | Failure reason |
{
"code": "00000",
"message": "SUCCESSFUL",
"data": {
"status": "2333331231",
"amount": "234",
"currency": "NGN",
"errorMessage": "order does not exist"
}
}
2
3
4
5
6
7
8
9
10
Modify Wallet Details
URL: https://payapi.opayweb.com/api/v2/third/depositcode/updateWallet
Request Parameters
Parameter | Type | Required | Description |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
String | Optional |
Digital Wallet holder's email address
Modifying wallet details require at least one of these two: email address and phone number.
| |
phone | String | Optional |
Digital Wallet holder's phone number
Modifying wallet details require at least one of these two: email address and phone number.
|
name | String | No | Digital Wallet holder's name |
depositCode | String | Yes | Digital Wallet Number |
sendPassWordFlag | String | No | This parameter defines the sending of OPay Business APP account credentials for using the Digital Wallet. If you pass Y, or empty, or do not pass any data, OPay will send out the account credentials to the Digital Wallet holders via email or SMS. If you pass N, no emails or SMS will be sent. Make sure you pass Y/N in capital letters. |
refId | String | No | Your Reference ID |
{
"opayMerchantId": "256621072768092",
"email": "321312@163.com",
"phone":"",
"name":"xqqtest",
"depositCode": "6123929200",
"sendPassWordFlag":"N",
"refId":"111111"
}
2
3
4
5
6
7
8
9
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
depositCode | String | Digital Wallet Number |
name | String | Digital Wallet holder's Name |
refId | String | Digital Wallet holder's Ref ID (15 characters including digits and/or letters) |
String | Digital Wallet holder's email address | |
phone | String | Digital Wallet holder's phone number |
createTime | String | Digital Wallet creation time |
formatDateTime | String | Digital Wallet creation time (Nigerian time: yyyy-MM-dd HH:mm:ss) |
{
"code": "00000",
"message": "SUCCESSFUL",
"data": {
"depositCode": "6126390625",
"name": "xqqtest",
"refId": "refer1200000850",
"email": "321312@163.com",
"phone": "43242432421",
"createTime": 34124243242000,
"formatDateTime":"2022-09-27 13:34:36",
"accountType": "Merchant"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
Delete Wallet
URL: https://payapi.opayweb.com/api/v2/third/depositcode/deleteWallet
Request Parameters
Parameter | Type | Required | Description |
opayMerchantId | String | Yes | Branch ID of the Digital Wallet |
depositCodes | List<String> | No | Digital Wallet Number |
{
"opayMerchantId": "256621072768092",
"depositCodes": ["6126390625", "6126390626"]
}
2
3
4
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String | |
data | Object | |
list | list | |
list.depositCode | String | Digital Wallet Number |
list.status | String | Status of the Digital Wallet, Active/Inactive |
{
"code": "00000",
"message": "SUCCESSFUL",
"data": {
"list": [
{
"depositCode": "6126390625",
"status": "Inactive"
},
{
"depositCode": "6126390626",
"status": "Inactive"
}
]
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Webhook (Payment Notification)
URL: {your.server.baseUrl}/callback
Request Header
Parameter | Type | Required | Description |
Content-Type | String | Yes | |
X-Opay-Tranid | String | Yes | Transaction ID |
merchantId | String | Yes | Merchant ID |
Request Body Here are the data you will get from OPay's payment notification:
Parameter | Type | Required | Description |
status | String | Yes | Transaction status: SUCCESS, FAIL, PENDING |
transactionId | String | Yes | Transaction ID |
depositCode | String | Yes | Digital Wallet Number |
refId | String | Yes | Digital Wallet holder's Ref ID |
depositTime | String | Yes | Transaction time |
depositAmount | String | Yes | Transaction amount (in Naira) |
currency | String | Yes | Currency: NGN |
errorCode | String | Yes | Error code (for non-SUCCESS transactions) |
errorMsg | String | Yes | Error message (for non-SUCCESS transactions) |
formatDateTime | String | Yes | Transaction Time (Nigeria time, yyyy-mm-dd hh:mm:ss) |
{
"status": "SUCCESS",
"transactionId": "20220319702512368471543808",
"reference": "220617145660907314088",
"depositCode": "6126390625",
"refId": "refer1200000850",
"currency": "NGN",
"depositAmount": "800.00",
"depositTime": "1663153219000",
"formatDateTime":"2022-09-27 13:34:36",
"orderNo":"230221010175463341",
"notes":"test"
}
2
3
4
5
6
7
8
9
10
11
12
13
{
"status": "FAIL",
"transactionId": "20220319702512368471543808",
"reference": "220617145660907314088",
"errorCode": "00003",
"errorMsg": "SYSTEM ERROR"
}
2
3
4
5
6
7
Response
Parameter | Type | Description |
code | String | 00000 stands for successful response, otherwise failed |
message | String |