POST
/
api
/
v1
/
transfer
curl --location 'https://api.recital.finance/api/v1/transfer' \
--header 'Authorization: Bearer apiKey' \
--header 'Content-Type: application/json' \
--data-raw '{
  "providerID":"002",
  "amount": 100,
  "currency": "NGN",
  "connectID":"ZIrfGJRaKjaGY62",
  "accountTo":"0000000000",
  "accountToBankCode":"057",
  "accountToName":"Tolu Robert",
  "narration":"test"
}'
{
  "message": "PIN successfully sent to email",
  "success": true,
  "transferReference": "BAL-YA9S0J0UQKDVF4EXV2CK4RO5F2",
  "shouldFinalize": true
}
providerID
string

Identifier of the transfer provider (e.g., Flutterwave, Paystack, etc.).

amount
number

The amount to transfer (in the smallest currency unit if required).

currency
string

The transaction currency (e.g., NGN).

connectID
string

The ID used to identify the connected merchant or user.

accountTo
string

The recipient’s bank account number.

accountToBankCode
string

The bank code of the recipient’s bank (e.g., 057 for Zenith Bank).

accountToName
string

The full name of the account holder.

narration
string

A note or description for the transfer (e.g., “Salary Payment”).


curl --location 'https://api.recital.finance/api/v1/transfer' \
--header 'Authorization: Bearer apiKey' \
--header 'Content-Type: application/json' \
--data-raw '{
  "providerID":"002",
  "amount": 100,
  "currency": "NGN",
  "connectID":"ZIrfGJRaKjaGY62",
  "accountTo":"0000000000",
  "accountToBankCode":"057",
  "accountToName":"Tolu Robert",
  "narration":"test"
}'

Response

message
string

Message indicating result of the request.

success
boolean

Indicates whether the transfer was successfully initiated.

transferReference
string

A unique reference for the initiated transfer.

shouldFinalize
boolean

If true, a second step is required to finalize the transfer using a PIN.


{
  "message": "PIN successfully sent to email",
  "success": true,
  "transferReference": "BAL-YA9S0J0UQKDVF4EXV2CK4RO5F2",
  "shouldFinalize": true
}

Notes

  • You must store the transferReference for use in the /finalize_transfer step.
  • The shouldFinalize flag indicates whether an OTP or PIN confirmation is required.

Best Practices

âś… Always validate recipient bank details before initiating the transfer.
âś… Store and track transferReference values.
âś… Listen for webhooks or poll status if supported.
âś… Always handle shouldFinalize = true logic by prompting for PIN and finalizing transfer.