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.