Skip to main content

Transactions

Get Transactions

GET /v1/api/transactions

This endpoint is used to retrieve all transactions done by a client’s virtual accounts.

Parameters

FieldMandatoryParameter TypeData TypeDescription
api-keyYesHeaderStringThe client’s API key
secretYesHeaderStringThe client's secret key for the environment to which the request is being made
page-sizeYesQueryStringThe number of items or records to return per page
page-numberYesQueryStringThe page number of the request
account-numberNoQueryStringThe account number to filter by
start-dateNoQueryStringThe start date to filter by. Mandatory if end-date is provided
end-dateNoQueryStringThe 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

FieldMandatoryParameter TypeData TypeDescription
api-keyYesHeaderStringThe client’s API key
secretYesHeaderStringThe client's secret key for the environment to which the request is being made
transactionIdYesPathStringThe 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

FieldMandatoryParameter TypeData TypeDescription
api-keyYesHeaderStringThe client’s API key
secretYesHeaderStringThe client's secret key for the environment to which the request is being made
transactionIdYesBodyStringThe 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

FieldMandatoryParameter TypeData TypeDescription
api-keyYesHeaderStringThe client’s API key
secretYesHeaderStringThe client's secret key for the environment to which the request is being made
accountNumberYesBodyStringThe 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

FieldMandatoryParameter TypeData TypeDescription
api-keyYesHeaderStringThe client’s API key
secretYesHeaderStringThe 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

FieldMandatoryParameter TypeData TypeDescription
api-keyYesHeaderStringThe client’s API key
secretYesHeaderStringThe client's secret key for the environment to which the request is being made
recipientAccountNumberYesBodyStringThe beneficiary’s account number
amountYesBodyStringThe amount (in Kobo) that is to be transferred
authKeyYesBodyStringThe 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"
}