Create Return Intent
Create a return intent for a settled incoming FI-to-FI SWIFT transfer. This is the first step in the two-step intent/confirm pattern. Use the GET Transaction endpoint to review the return details before confirming.
Return Transfer Flow
The return transfer follows a two-step intent/confirm pattern:
- Create return intent (POST
/v1/transfer/return) — validates the transaction, checks balance, and creates a return intent - Review intent (GET
/v1/transactions/:transactionID) — retrieve the transaction to review the return details before confirming - Confirm return (PUT
/v1/transfer/return) — confirms the intent and triggers the SWIFT Pacs008 return message - Cancel intent (DELETE
/v1/transfer/return/:transactionID) — optionally cancel the intent before confirmation
Example POST to create a return intent
This API will respond with a transaction_id
The transaction status changes from completed to intent_created.
Use this transaction_id in the GET Transaction endpoint to review the return details before confirming. The response will include the return transfer amount, fee amount, description, SWIFT reason code, and who initiated the return.
Preconditions
- The transaction must be in
completed(SETTLED) status - The creditor account must have sufficient balance to cover the return amount
Request body fields
| Field | Type | Required | Description |
|---|---|---|---|
| transfer_return_type | string | Yes | Must be "SWIFT_FI_TO_FI_RETURN" |
| transaction_id | string | Yes | The ID of the settled incoming transaction to return |
| return_amount | string | Yes | The amount to return in minor units (e.g. "1000000" for 10,000.00 in a 2-decimal currency) |
| description | string | No | A description for the return |
| status_reason_code | string | Yes | SWIFT ExternalStatusReason1Code (e.g. "FOCR", "AC03", "AM09") |
Common status reason codes
| Code | Description |
|---|---|
| FOCR | Following cancellation request |
| AC03 | Invalid creditor account number |
| AM09 | Wrong amount |
Reviewing the return intent
After creating the intent, use the GET Transaction endpoint to review the return details:
The response will include:
status:"intent_created"fi_to_fi_swift_incoming.return_transfer_amount: the return amountfi_to_fi_swift_incoming.return_fee_amount: always"0"(no fee charged)fi_to_fi_swift_incoming.return_description: the description providedfi_to_fi_swift_incoming.return_status_reason_code: the SWIFT reason codefi_to_fi_swift_incoming.return_initiated_by: the user who initiated the returnfi_to_fi_swift_incoming.return_created_at: timestamp of intent creationfi_to_fi_swift_incoming.return_updated_at: timestamp of last update
Status lifecycle
Authorization
AuthorizationRequiredBearer <token>Enter your token in the format: Bearer {token}
In: header
Request Body
application/jsonOptionaltransfer_return_typeRequiredstringThe type of return transfer
"SWIFT_FI_TO_FI_RETURN"transaction_idRequiredstringreturn_amountRequiredstringThe amount of money. Our API expect amount values to be in minor units - the smallest unit of a currency depending on the number of decimals. For example, USD has two decimals. So $10 is represented by 1000. JPY has no decimals, so ¥10 is 10.
descriptionstringA description for the return
status_reason_codeRequiredstringSWIFT ExternalStatusReason1Code. Common values: FOCR (following cancellation request), AC03 (invalid creditor account), AM09 (wrong amount)
Header Parameters
Idempotency-KeyRequiredstringResponse Body
Success response
transaction_idRequiredstring