Affinity API 1.0 Help

Making a transfer

Affinity enables partners to facilitate customer transfers from their accounts to their selected destination accounts. Transfer requests are processed asynchronously. Once a transfer is completed, a notification will be sent via your configured webhook. Please ensure a valid webhook URL is provided to receive updates.

Making the request

The following parameters are required to process a transfer

Field

Type

Description

Test examples

Notes

destinationGipCode

string

The GIP code from our Banks API (see here for more details)

999222

[required]

sourceAccountNumber

string

Account number of the customer making the transfer. It must an account created via your service (Partner).


Test source account numbers: 3020259864737, 3001478044804


Error samples: 8017897928209, 19820805000

[required]

destinationAccountNumber

string

Account number of beneficiary. It must an account belonging to the institution selected. Failure to validate the account number will fail the transfer.

Test bank account numbers: 1239583728222, 0982873728349


Error samples: 00038987100, 73667289272


Test MoMo account numbers: 05541234567, 02001234567


Error samples: 020000988, 0301678293

[required]

beneficiaryName

string

Name of the the destination account holder

[optional]

idempotencyKey

string (uuid)

Idempotency keys are unique keys that identify each request to prevent duplication regardless of the number of times it was submitted

[required]

currency

string

Currency - all amounts are displayed in GHS by default

[optional]

amount

number

The amount to be transferred.

[required]

customerReference

string

Reference or note

[optional]

{ "method": "post", "url": "https://open-orion.affnty.co/api/v1/transactions/transfer", "headers": { "Content-Type": "application/json", "X-API-KEY":"" }, "body": { "destinationGipCode": "string", "sourceAccountNumber": "string", "destinationAccountNumber": "string", "amount": 50, "currency": "GHS", "customerReference": "string", "idempotencyKey":"string" } }

Example

{ "reference": "string", "status": "PROCESSING", "statusCode": "03", "createdAt": "2023-04-16 13:29:05.260646", "updatedAt": "2023-04-16 13:30:05.260646", "currency": "GHS", "amount": "30.00", "fee": "0.00", "note": "Deposit", "serviceType": "DEPOSIT" }

Status Check

Sometimes, transactions may be in a pending status and require a status check. To verify the status of a transaction, use the idempotencyKey that was provided when initiating the transaction (see transaction API for more details).

Processing webhooks

Since all transactions are asynchronous, our partners are required to configure a webhook to receive notifications once a transaction has finished processing. It will be your responsibility to notify your customers about the status of a transaction based on the webhook payload that we send.

Please ensure to add a valid webhook URL to your dashboard on our developer platform

Last modified: 27 August 2025