Skip to content
Tranzaq

API reference

People

Add and read the people you pay.

List people

GET/api/v1/beneficiariesscope beneficiaries.read

The people you pay, newest first, with their payout accounts.

Query

searchstringMatches name, phone number or your own reference.
pageintegerPage number, starting at 1. Default 1.
pageSizeintegerItems per page, 1 to 100. Default 20.
curl -X GET "https://api.tranzaq.com/api/v1/beneficiaries" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "success": true,
  "message": "Operation completed",
  "code": 200,
  "result": { "items": [ … ], "total": 46, "page": 1, "pageSize": 20 }
}

Errors

  • 401Missing, invalid or expired token.
  • 403The token does not have the beneficiaries.read scope.

Get a person

GET/api/v1/beneficiaries/{id}scope beneficiaries.read

One person and their accounts.

Path

iduuidrequiredThe person's id.
curl -X GET "https://api.tranzaq.com/api/v1/beneficiaries/PASTE_ID" \
  -H "Authorization: Bearer $TOKEN"

Answer · 200

{
  "success": true,
  "message": "Beneficiary created",
  "code": 201,
  "result": {
    "id": "8d2f6f40-5e7a-4b0e-b1a1-2f4c9d7e1a33",
    "name": "Ama Owusu",
    "email": null,
    "phoneNumber": "0241234567",
    "externalReference": "EMP-0042",
    "status": "Active",
    "createdAt": "2026-10-18T10:10:00+00:00",
    "destinations": [
      { "id": "e0a1b2c3-d4e5-4f60-8a7b-9c8d7e6f5a4b", "type": "MobileMoney", "maskedAccountNumber": "024****567", "accountName": "Ama Owusu", "network": "MTN", "isDefault": true, "verificationStatus": "Verified" }
    ]
  }
}

Errors

  • 404No such person in your business.

Add a person

POST/api/v1/beneficiariesscope beneficiaries.writeneeds Idempotency-Key

Add someone you pay, with a mobile money or bank account. We look up the name on the account and mark it Verified or not.

Body (JSON)

namestringrequiredUp to 200 characters.
emailstringOptional.
phoneNumberstringOptional.
externalReferencestringYour own id for this person, such as an employee number. Up to 100 characters.
destination.typestringMobileMoney or Bank.
destination.accountNumberstringThe phone number or bank account number.
destination.accountNamestringThe name on the account, as you know it.
destination.networkstringMobile money only: MTN, TELECEL or AIRTELTIGO.
destination.bankCodestringBank only: the bank's code.
curl -X POST "https://api.tranzaq.com/api/v1/beneficiaries" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: a-new-guid-for-each-request" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Ama Owusu", "phoneNumber": "0241234567", "externalReference": "EMP-0042", "destination": { "type": "MobileMoney", "accountNumber": "0241234567", "accountName": "Ama Owusu", "network": "MTN" } }'

Answer · 201

{
  "success": true,
  "message": "Beneficiary created",
  "code": 201,
  "result": {
    "id": "8d2f6f40-5e7a-4b0e-b1a1-2f4c9d7e1a33",
    "name": "Ama Owusu",
    "email": null,
    "phoneNumber": "0241234567",
    "externalReference": "EMP-0042",
    "status": "Active",
    "createdAt": "2026-10-18T10:10:00+00:00",
    "destinations": [
      { "id": "e0a1b2c3-d4e5-4f60-8a7b-9c8d7e6f5a4b", "type": "MobileMoney", "maskedAccountNumber": "024****567", "accountName": "Ama Owusu", "network": "MTN", "isDefault": true, "verificationStatus": "Verified" }
    ]
  }
}

Errors

  • 400A field is missing or not valid, or the Idempotency-Key header is missing.
  • 409The same Idempotency-Key was used for a different request that is still running.