> ## Documentation Index
> Fetch the complete documentation index at: https://docs.recital.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Initiate Transfer

> Send funds to a specified bank account. This initiates the transfer process and sends a confirmation PIN to finalize.

<ParamField body="providerID" type="string">
  Identifier of the transfer provider (e.g., Flutterwave, Paystack, etc.).
</ParamField>

<ParamField body="amount" type="number">
  The amount to transfer (in the smallest currency unit if required).
</ParamField>

<ParamField body="currency" type="string">
  The transaction currency (e.g., NGN).
</ParamField>

<ParamField body="connectID" type="string">
  The ID used to identify the connected merchant or user.
</ParamField>

<ParamField body="accountTo" type="string">
  The recipient’s bank account number.
</ParamField>

<ParamField body="accountToBankCode" type="string">
  The bank code of the recipient’s bank (e.g., 057 for Zenith Bank).
</ParamField>

<ParamField body="accountToName" type="string">
  The full name of the account holder.
</ParamField>

<ParamField body="narration" type="string">
  A note or description for the transfer (e.g., "Salary Payment").
</ParamField>

***

<RequestExample>
  ```bash Example Request theme={null}
  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"
  }'
  ```
</RequestExample>

***

### Response

<ResponseField name="message" type="string">
  Message indicating result of the request.
</ResponseField>

<ResponseField name="success" type="boolean">
  Indicates whether the transfer was successfully initiated.
</ResponseField>

<ResponseField name="transferReference" type="string">
  A unique reference for the initiated transfer.
</ResponseField>

<ResponseField name="shouldFinalize" type="boolean">
  If `true`, a second step is required to finalize the transfer using a PIN.
</ResponseField>

***

<ResponseExample>
  ```json Response theme={null}
  {
    "message": "PIN successfully sent to email",
    "success": true,
    "transferReference": "BAL-YA9S0J0UQKDVF4EXV2CK4RO5F2",
    "shouldFinalize": true
  }
  ```
</ResponseExample>

### 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.
