Transactions
Get Transactions
GET /v1/api/transactions
This endpoint is used to retrieve all transactions done by a client’s virtual accounts.
Parameters
Field | Mandatory | Parameter Type | Data Type | Description |
---|---|---|---|---|
api-key | Yes | Header | String | The client’s API key |
secret | Yes | Header | String | The client's secret key for the environment to which the request is being made |
page-size | Yes | Query | String | The number of items or records to return per page |
page-number | Yes | Query | String | The page number of the request |
account-number | No | Query | String | The account number to filter by |
start-date | No | Query | String | The start date to filter by. Mandatory if end-date is provided |
end-date | No | Query | String | The end-date to filter by. Mandatory if start-date is provided |
Sample Request
curl --location '{BASE_URL}/api/v1/transactions?page-size=10&page-number=1s&account-number=9000002360&start-date=2024-02-28&end-date=2024-02-28' \ --header 'secret: {SECRET_KEY}' \ --header 'api-key: {API_KEY}' \ --header 'Content-Type: application/json' \
Sample Response (200 - OK)
{
"totalCount": 6,
"status": "SUCCESS",
"message": "Operation successful.",
"statusCode": "00",
"data": [
{
"transactionId": "a0994787-f6d8-4fd1-87eb-74f21b4a778c",
"transactionReference": "AXFHPHROM9DH3Q63QKUUZJ",
"accountNumber": "9000002360",
"transactionType": "Credit",
"amount": 100000,
"narration": "9JAPAY TRANSFER TO 9JAPAY TEST 28|Test",
"transactionDate": "2024-02-28T01:55:54.615Z",
"notificationStatus": "Success"
"metadata": {
"senderAccountName": "ALEXANDER ROBERTS",
"senderAccountNumber": "3000005101",
"senderBank": "9jaPay MFB",
"senderBankCode": "090629",
"recipients": [
{
"accountName": "CANDDY E1/TestPermVee 01",
"bank": "9jaPay MFB"
}
]
}
},
{
"transactionId": "59db60fa-56fd-4288-9841-052dfa4f2fc7",
"transactionReference": "SRA4GAMRPIN5V8LDHOXA8L",
"accountNumber": "9000002360",
"transactionType": "Credit",
"amount": 150000,
"narration": "9JAPAY TRANSFER TO 9JAPAY TEST 28|Test",
"transactionDate": "2024-02-28T02:00:53.816Z",
"notificationStatus": "Pending"
"metadata": {
"senderAccountName": "MIDE JANE",
"senderAccountNumber": "3000003262",
"senderBank": "9jaPay MFB",
"senderBankCode": "090629",
"recipients": [
{
"accountName": "Sylvia TVA1",
"bank": "9jaPay MFB"
}
]
}
},
{
"transactionId": "8d22a6ca-a150-47b7-bd54-57246d9e11ec",
"transactionReference": "UVDBZAHFLGOM5EJW5E9UKW",
"accountNumber": "9000002360",
"transactionType": "Debit",
"amount": 200000,
"narration": "TRF|SHEROES SHOP|VA",
"transactionDate": "2024-02-28T02:05:45.814Z",
"notificationStatus": "Failed"
"metadata": {
"senderAccountName": "MICHAEL ONYIRIMBA",
"senderAccountNumber": "9000003673",
"senderBank": "9jaPay MFB",
"senderBankCode": "090629",
"recipients": [
{
"accountName": "SHEROES SHOP",
"bank": "Providus Bank"
}
]
}
}
]
}
Sample Response (400 - Bad Request)
{
"status": "FAILED",
"message": "Page Size must be an integer.",
"statusCode": "09"
}
Get Transaction by Id
GET /v1/api/transactions/{transactionId}
This endpoint is used to retrieve a single transaction by id.
Parameters
Field | Mandatory | Parameter Type | Data Type | Description |
---|---|---|---|---|
api-key | Yes | Header | String | The client’s API key |
secret | Yes | Header | String | The client's secret key for the environment to which the request is being made |
transactionId | Yes | Path | String | The unique id of the transaction to be retrieved |
Sample Request
curl --location '{BASE_URL}/api/v1/transactions/{transactionId}' \ --header 'secret: {SECRET_KEY}' \ --header 'api-key: {API_KEY}' \ --header 'Content-Type: application/json'
Sample Response (200 - OK)
{
"status": "SUCCESS",
"message": "Operation successful.",
"statusCode": "00",
"data": {
"transactionId": "a0994787-f6d8-4fd1-87eb-74f21b4a778c",
"transactionReference": "IEKPGABMVNVGSMJFZBSAYW",
"accountNumber": "9000005361",
"transactionType": "Credit",
"amount": 54550,
"narration": "TRF|CANDDY E1/TestPermVee 01|qatest NATrans",
"transactionDate": "2024-08-15T13:23:36.915",
"notificationStatus": "Success",
"metadata": {
"senderAccountName": "ALEXANDER ROBERTS",
"senderAccountNumber": "3000005101",
"senderBank": "9jaPay MFB",
"senderBankCode": "090629",
"recipients": [
{
"accountName": "CANDDY E1/TestPermVee 01",
"bank": "9jaPay MFB"
}
]
}
}
}
Sample Response (400 - Bad Request)
{
"status": "FAILED",
"message": "Id is required and must be a valid Guid",
"statusCode": "09"
}
Resend a single failed notification
POST /v1/api/transactions/resend-notification
This endpoint is used to resend the failed webhook of a transaction.
Parameters
Field | Mandatory | Parameter Type | Data Type | Description |
---|---|---|---|---|
api-key | Yes | Header | String | The client’s API key |
secret | Yes | Header | String | The client's secret key for the environment to which the request is being made |
transactionId | Yes | Body | String | The unique id of the transaction for which the webhook is to be resent |
Sample Request
curl --location '{BASE_URL}/v1/api/transactions/resend-notification' \ --header 'secret: {SECRET_KEY}' \ --header 'api-key: {API_KEY}' \ --header 'Content-Type: application/json' \ --data '{"transactionId": "bf9f22a5-fc19-410c-81a9-40a84aca2bbb"}'
Sample Response (200 - OK)
{
"status": "SUCCESS",
"message": "Operation successful.",
"statusCode": "00"
}
Sample Response (400 - Bad Request)
{
"status": "FAILED",
"message": "Transaction Id is required",
"statusCode": "09"
}
Resend failed notifications for account
POST /v1/api/transactions/resend-notifications-for-account
This endpoint is used to resend all failed webhooks for an account.
Parameters
Field | Mandatory | Parameter Type | Data Type | Description |
---|---|---|---|---|
api-key | Yes | Header | String | The client’s API key |
secret | Yes | Header | String | The client's secret key for the environment to which the request is being made |
accountNumber | Yes | Body | String | The account number for which failed webhooks are to be resent |
Sample Request
curl --location '{BASE_URL}/v1/api/transactions/resend-notifications-for-account' \ --header 'secret: {SECRET_KEY}' \ --header 'api-key: {API_KEY}' \ --header 'Content-Type: application/json' \ --data '{"accountNumber": "9000001253"}'
Sample Response (200 - OK)
{
"status": "SUCCESS",
"message": "Operation successful.",
"statusCode": "00",
"data": {
"numberOfResentNotifications": 10
}
}
Sample Response (400 - Bad Request)
{
"status": "FAILED",
"message": "Account Number is required",
"statusCode": "09"
}
Resend all failed notifications
POST /v1/api/transactions/resend-all-notifications
This endpoint is used to resend all failed webhooks.
Parameters
Field | Mandatory | Parameter Type | Data Type | Description |
---|---|---|---|---|
api-key | Yes | Header | String | The client’s API key |
secret | Yes | Header | String | The client's secret key for the environment to which the request is being made |
Sample Request
curl --location '{BASE_URL}/v1/api/transactions/resend-all-notifications' \ --header 'secret: {SECRET_KEY}' \ --header 'api-key: {API_KEY}' \ --header 'Content-Type: application/json' \ --data ''
Sample Response (200 - OK)
{
"status": "SUCCESS",
"message": "Operation successful.",
"statusCode": "00",
"data": {
"numberOfResentNotifications": 19
}
}
Simulate Deposit
POST /v1/api/transactions/simulate-deposit
This endpoint is used to simulate deposit into a virtual account (only in the test environment).
Parameters
Field | Mandatory | Parameter Type | Data Type | Description |
---|---|---|---|---|
api-key | Yes | Header | String | The client’s API key |
secret | Yes | Header | String | The client's secret key for the environment to which the request is being made |
recipientAccountNumber | Yes | Body | String | The beneficiary’s account number |
amount | Yes | Body | String | The amount (in Kobo) that is to be transferred |
authKey | Yes | Body | String | The key to authorize the transaction |
Sample Request
curl --location '{BASE_URL}/v1/api/transactions/simulate-deposit' \ --header 'secret: {SECRET_KEY}' \ --header 'api-key: {API_KEY}' \ --header 'Content-Type: application/json' \ --data '{ "recipientAccountNumber": "9000001239", "amount": “280000”, "authKey": {AUTH_KEY} }'
Sample Response (200 - OK, Success)
{
"status": "SUCCESS",
"message": "Operation successful.",
"statusCode": "00"
}
Sample Response (400 - Bad Request)
{
"status": "FAILED",
"message": "Recipient Account Number must be 10 digits",
"statusCode": "09"
}