curl --request GET \
--url https://sandbox-api.sakawave.example/v1/transactions/{transactionId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.sakawave.example/v1/transactions/{transactionId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.sakawave.example/v1/transactions/{transactionId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "01K2Z3AB4K5M6N7P8QRSTVWXYZ",
"account": {
"id": "01K2Z3AB4D5E6F7G8H9JKMNPQR",
"name": "Ada NGN wallet",
"tag": "AA0271849366",
"type": "operational",
"category": "fiat"
},
"amount": "2500000",
"amountFormatted": "25000.00",
"fee": "5000",
"feeFormatted": "50.00",
"balanceBefore": "5000000",
"balanceBeforeFormatted": "50000.00",
"balanceAfter": "2495000",
"balanceAfterFormatted": "24950.00",
"currency": "NGN",
"type": "debit",
"category": "transfer",
"subCategory": "outward",
"status": "completed",
"channel": "internal",
"internalReference": "txn_sandbox_tutorial_001",
"externalReference": "payout_20260814_001",
"groupReference": null,
"reversalOfTransactionId": null,
"narration": "Sandbox tutorial transfer",
"createdAt": "2026-08-14T09:08:00.000Z",
"relatedOperation": {
"type": "transfer",
"id": "01K2Z3AB4J5K6M7N8PQRSTVWXY",
"status": "completed",
"transferReference": "SKWV-TRF-01K2Z3AB4J5K6M7N8PQRSTVWXY",
"destinationType": "own_account",
"recipient": "Treasury NGN",
"institutionName": null,
"accountNumberLast4": null,
"sourceAmount": "25000.00",
"sourceCurrency": "NGN",
"destinationAmount": "25000.00",
"destinationCurrency": "NGN",
"failureCode": null,
"failureReason": null
}
}{
"statusCode": 400,
"message": "Must be a valid identifier.",
"code": "validation_failed",
"errors": [
{
"message": "Must be a valid identifier.",
"field": "accountId",
"code": "custom",
"path": [
"accountId"
]
}
]
}{
"statusCode": 401,
"code": "INVALID_API_KEY",
"message": "Invalid or inactive API credentials."
}{
"statusCode": 404,
"code": "resource_not_found",
"message": "Resource not found."
}{
"statusCode": 409,
"code": "resource_conflict",
"message": "The request conflicts with the current resource state."
}{
"statusCode": 429,
"message": "Too many API requests. Try again later.",
"code": "api_key_rate_limit_exceeded",
"retryAfterSeconds": 17
}{
"statusCode": 500,
"code": "internal_server_error",
"message": "An unexpected error occurred."
}Get a transaction
Returns a transaction and its related transfer, bill payment, card payment, or card operation when available.
curl --request GET \
--url https://sandbox-api.sakawave.example/v1/transactions/{transactionId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.sakawave.example/v1/transactions/{transactionId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://sandbox-api.sakawave.example/v1/transactions/{transactionId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "01K2Z3AB4K5M6N7P8QRSTVWXYZ",
"account": {
"id": "01K2Z3AB4D5E6F7G8H9JKMNPQR",
"name": "Ada NGN wallet",
"tag": "AA0271849366",
"type": "operational",
"category": "fiat"
},
"amount": "2500000",
"amountFormatted": "25000.00",
"fee": "5000",
"feeFormatted": "50.00",
"balanceBefore": "5000000",
"balanceBeforeFormatted": "50000.00",
"balanceAfter": "2495000",
"balanceAfterFormatted": "24950.00",
"currency": "NGN",
"type": "debit",
"category": "transfer",
"subCategory": "outward",
"status": "completed",
"channel": "internal",
"internalReference": "txn_sandbox_tutorial_001",
"externalReference": "payout_20260814_001",
"groupReference": null,
"reversalOfTransactionId": null,
"narration": "Sandbox tutorial transfer",
"createdAt": "2026-08-14T09:08:00.000Z",
"relatedOperation": {
"type": "transfer",
"id": "01K2Z3AB4J5K6M7N8PQRSTVWXY",
"status": "completed",
"transferReference": "SKWV-TRF-01K2Z3AB4J5K6M7N8PQRSTVWXY",
"destinationType": "own_account",
"recipient": "Treasury NGN",
"institutionName": null,
"accountNumberLast4": null,
"sourceAmount": "25000.00",
"sourceCurrency": "NGN",
"destinationAmount": "25000.00",
"destinationCurrency": "NGN",
"failureCode": null,
"failureReason": null
}
}{
"statusCode": 400,
"message": "Must be a valid identifier.",
"code": "validation_failed",
"errors": [
{
"message": "Must be a valid identifier.",
"field": "accountId",
"code": "custom",
"path": [
"accountId"
]
}
]
}{
"statusCode": 401,
"code": "INVALID_API_KEY",
"message": "Invalid or inactive API credentials."
}{
"statusCode": 404,
"code": "resource_not_found",
"message": "Resource not found."
}{
"statusCode": 409,
"code": "resource_conflict",
"message": "The request conflicts with the current resource state."
}{
"statusCode": 429,
"message": "Too many API requests. Try again later.",
"code": "api_key_rate_limit_exceeded",
"retryAfterSeconds": 17
}{
"statusCode": 500,
"code": "internal_server_error",
"message": "An unexpected error occurred."
}Prerequisites
Use a transactions-capable business account and a valid API key.Authorizations
A secret API key, sent as Authorization: Bearer sk_test_… in sandbox or Bearer sk_live_… in live.
Path Parameters
Transaction ULID. A 26-character ULID.
26^[0-7][0-9A-HJKMNP-TV-Z]{25}$"01K2Z3AB4C5D6E7F8G9HJKMNPQ"
Response
Successful response.
A 26-character ULID.
26^[0-7][0-9A-HJKMNP-TV-Z]{25}$"01K2Z3AB4C5D6E7F8G9HJKMNPQ"
Show child attributes
Show child attributes
An integer number of the asset’s smallest unit. Use this value for arithmetic.
^-?\d+$"2500000"
An integer number of the asset’s smallest unit. Use this value for arithmetic.
^-?\d+$"2500000"
An integer number of the asset’s smallest unit. Use this value for arithmetic.
^-?\d+$"2500000"
An integer number of the asset’s smallest unit. Use this value for arithmetic.
^-?\d+$"2500000"
NGN, USD, GBP, EUR, GHS, ZAR, UGX, CAD, MXN, AED, BTC, ETH, USDT, USDC debit, credit card, transfer, bills_payment, crypto charge, card_funding, card_withdrawal, refund, crypto_deposit, crypto_withdrawal, utility, data, airtime, cable_tv, education, betting, donation, internet, transport, other, inward, outward pending, completed, failed, reversed, rejected A 26-character ULID.
26^[0-7][0-9A-HJKMNP-TV-Z]{25}$"01K2Z3AB4C5D6E7F8G9HJKMNPQ"
"2026-08-14T09:00:00.000Z"
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes