POST
Initiate Inter-Organisation Transfer
Business-to-Business Payments: This endpoint facilitates secure payments between OneKhusa merchants in different organisations. For transfers within the same organisation, use the Intra-Organisation Transfer endpoint instead.

Validation Rules

  • Beneficiary must belong to a different organisation than the sender
  • Sender and beneficiary currencies must match
  • Sender must have sufficient balance (amount + fees)
  • Both accounts must be active
  • Cannot transfer to self

Workflow Behaviour

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer Token, Where accessToken is the access token used to authenticate the request.

Headers

Accept-Language
string
default:en

Preferred language for the response

X-Idempotency-Key
string

A unique key to ensure idempotent requests

Body

application/json
merchantAccountNumber
integer
required

Sender's 8-digit merchant account number

Required range: 10000000 <= x <= 99999999
Example:

52333818

transactionAmount
number<double>
required

Amount to transfer (must be greater than 0)

Example:

25000

transactionDescription
string
required

Purpose of transfer (5-99 characters)

Required string length: 5 - 99
Example:

"Payment to partner merchant"

beneficiaryName
string
required

Beneficiary name (3-99 characters)

Required string length: 3 - 99
Example:

"Partner Merchant Ltd"

beneficiaryAccountNumber
string
required

8-digit beneficiary merchant account number

Example:

"58931443"

capturedBy
string<email>
required

Email of the initiating user

Example:

"user@example.com"

sourceReferenceNumber
string

Merchant reference number (max 12 characters)

Maximum string length: 12
Example:

"INV-20260703"

Response

200 - application/json

Success - Inter-organisation transfer initiated

merchantAccountNumber
integer
Example:

52333818

responseCode
string
Example:

"S100"

transactionReferenceNumber
string
Example:

"260703X9Y8Z7"

collectionTransactionReferenceNumber
string
Example:

"260703X9Y8Z7"

beneficiaryMerchantAccountNumber
integer
Example:

58931443