INTERNAL
transfer, which allows you to move funds between your accounts within our platform. This is useful if you have multiple accounts and want to consolidate your funds or allocate them to different purposes. The second type is a PAYOUT
, which enables you to transfer funds from your internal account to an external account. This is beneficial if you need to pay external vendors or suppliers or simply want to withdraw funds to your personal bank account.
A transfer initiation consists of several stages:
VALIDATED
or REJECTED
. If the transfer initiation is approved, it will be executed immediately. On the other hand, if it is rejected, it will not be executed.transfer_initiation.json
containing:
reference
: A unique reference for the transfer initiation. This reference is essential to ensure that the transfer initiation is not duplicated.sourceAccountID
: The ID of the account from which the funds will be taken. It is crucial to provide the correct ID, which can be found in the account details. This ID is in the internal formance account format.destinationAccountID
: The ID of the account to which the funds will be sent. Similar to the sourceAccountID
, the correct internal formance account ID should be provided. It can be found in the account details.description
: A description of the transfer initiation. This field allows you to provide additional information about the purpose or nature of the transfer.provider
or ConnectorID
: You have to specify either the name of the payment service provider or the connector ID. If you specify the name of the payment service provider, the connector ID will be automatically retrieved from the database, but it will fail with a validation error if you have more than one connector for this payment service provider.type
: The type of transfer initiation. This field determines whether the transfer is a TRANSFER
or a PAYOUT
. If it is a TRANSFER
type, the funds will be moved between INTERNAL accounts. Both the source and destination accounts must be INTERNAL accounts. If it is a PAYOUT
type, the funds will be moved from an INTERNAL account to an EXTERNAL account. In this case, the source account should be an INTERNAL account, and the destination account should be an EXTERNAL account.amount
: The amount of funds to be transferred. Please specify the exact amount to ensure accurate and successful transfer.asset
: The asset of the funds to be transferred.validated
: A boolean value. If set to true, the transfer initiation will be created in a VALIDATED
state, indicating that it is ready for execution. If set to false, the transfer initiation will be in a pending state and will require approval before it can be executed.validated
field is set to false, the transfer initiation will be in a pending state and will require approval before it can be executed. You can approve a transfer initiation by using FCTL and the following command:
<Status>
being either VALIDATED
or REJECTED
.
If the transfer initiation is successfully approved or rejected, you will see the following:
TRANSFER
or PAYOUT
is initiated. This is an important step in the process as it ensures that the funds are properly transferred to the intended recipient.
In case there is an error during the creation process, you will receive a direct notification with the specific error when you approve it. This helps to quickly identify and resolve any issues that may arise. On the other hand, if there are no errors, the transfer initiation will be marked as PROCESSING
. This means that the transfer is currently being processed and the payment service provider is working on completing the transaction. It is important to note that this process may take some time depending on various factors such as the payment service provider’s internal procedures.
Once the transfer is successfully processed, it will be updated to PROCESSED
. This indicates that the transfer has been completed successfully and the funds have been successfully transferred to the recipient.
However, there may be cases where the transfer fails to process successfully. In such cases, the transfer initiation will be marked as FAILED
. This means that the transfer was not successfully completed and further actions may be required to address the issue. It is important to closely monitor the status of the transfer initiation to ensure that any issues are promptly addressed and resolved. Note that if the transfer initiation is in a FAILED
state, you will be able to see the error message that was returned by the payment service provider by fetching the details of the transfer initiation.
You will be able to retry a FAILED
transfer initiation (c.f. below).
FAILED
state, you can retry it by using FCTL and the following command:
FAILED
state.