Manage approvals for transfers
Introduction
Creating a transfer throught API to be submitted for approval is available. With this feature enabled, created transfers will be routed through the active transfer approval workflow in the Airwallex account.
Actions required to use this feature:
- Create or edit transfer approval workflows on the Transfers > Transfer approvals page. Users with the permission to manage Transfer approvals have access to do so.
- For API-initiated transfers go through the approval workflow, select "Yes" for the question: "Require API-initiated transfers to go through the same approval workflow?"
Handle approval for transfers
Submit transfers for approval
After a transfer has been created through the Client API, it may be routed through the approval process based on your active approval workflow, at which point its status will transition to IN_APPROVAL
. Subscribe to the payout.transfer.in_approval
webhook event to receive real-time notifications.
The submitter for the transfer depends on the authorization method.
- Your Airwallex account. This applies when the transfer creation requests are submitted with the Authorization token obtained using the method mentioned in Obtain access token API.
- A third-party app that you used to create the transfer. This applies when the transfer creation requests are submitted with the Authorization code obtained using the method mentioned in Airwallex OAuth 2.0 API API.
To ensure a transfer cannot be approved by the same person that manually submits it from the external system, you need to avoid assigning them as approvers in the transfer approval workflow.
Approve transfers
After a transfer has been approved by a user in the web app, if there is additional approval required from other users, its status will remain as IN_APPROVAL
. Otherwise, its status transitions to SCHEDULED
. Subscribe to the payout.transfer.scheduled
webhook event to receive real-time notifications of each transfer that has been fully approved for further processing.
Reject transfers
After a transfer has been rejected by a user in the web app, its status will transition to APPROVAL_REJECTED
. Subscribe to the payout.transfer.approval_rejected
webhook event to receive real-time notifications of each transfer that has been rejected in the approval flow. Users can edit and resubmit a rejected transfer in the web app.
Recall transfers
After a transfer has been recalled by a user in the web app, it exits the approval process, at which point its status will transition to APPROVAL_RECALLED
. Subscribe to the payout.transfer.approval_recalled
webhook event to receive real-time notifications of each transfer that has been recalled in the approval flow. Users can edit and resubmit a recalled transfer in the web app.
Handle blocked transfers
After a transfer has been approved by a user in the web app, if the next approver cannot be found, its status will transition to APPROVAL_BLOCKED
. Subscribe to the payout.transfer.approval_blocked
webhook event to receive real-time notifications of each transfer that has been blocked in the approval flow. The account owner or account admins need to review the active approval workflow and fix any issues before re-submitting the transfer for approval again.
Learn more about How to handle transfers that are blocked or stuck in approval .