Skip to main content

Making ACH transfers

Introduction

To execute an internal transfer, use the POST /transfers endpoint and provide the body parameters as shown in the following table.

▶ Run in Postman

ParameterRequiredTypeDescription
account_idYesstringBond account UUID (36 characters) for the transfer destination account, for example 6f0e7dcb-6073-42df-bf02-ce71bd5fac3b.
Use the external_account_id.
ach_class_codeYesstringACH SEC code.
ach_descriptionYesstringFreeform, alphanumeric description (maximum 10 characters) of the ACH transfer. Describes the purpose of the transfer and is displayed on the receiver's account statement.
ach_directionYesstringACH transfer direction of the money movement. Valid values are debit or credit.
The direction is in reference to the funds at the receiving account. An ACH debit "pulls" funds to the originating account, debiting the receiver. An ACH credit "pushes" funds from the originator to the receiver, crediting the receiver.
ach_networkYesstringACH transfer network. Either ach or same-day-ach
amountYesstringTransfer amount as a decimal string with two digits of precision, for example 175.00.
Currently only USD is supported.
origination_account_idYesstringBond account UUID (36 characters) for the originating account, for example 6f0e7dcb-6073-42df-bf02-ce71bd5fac3b.
Use the card_account_id.
typeYesstringThe type of transfer being initiated. Use ach.

📘 Note

The Transfers endpoint is idempotent and repeated requests using the same Idempotency-Key within a 24 hour period will fail.

Example request

The following is an example of a request to transfer $175.00.

curl --request POST \
--url https://sandbox.bond.tech/api/v0/transfers \
--header 'Accept: application/json' \
--header 'Authorization: <YOUR_AUTHORIZATION>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "ach",
"amount": "175.00",
"origination_account_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"account_id": "9dc86a8a-4c12-4107-84a8-e7cf6a76586f",
"ach_class_code": "WEB",
"ach_direction": "credit",
"ach_network": "ach",
"ach_description": "GIFT"
}'

Example response

The response shown below includes the unique transfer_id representing the transfer. Note that the transfer amount is expressed as a decimal string in cents.

JSON
{
"date_created": "2020-10-09T17:14:09.686688",
"transfer_id": "4ead6cdc-77eb-45fa-9959-3f166385a60a",
"origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
"account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
"type": "ach",
"ach_direction": "credit",
"ach_class_code": "WEB",
"ach_network": "ach",
"ach_description": "GIFT",
"status": "pending",
"ach_return_code": null,
"failure_reason": null,
"amount_in_cents": "17500",
"iso_currency_code": "USD"
}

A successful request results in a completed status.

For a complete specification with interactive examples, see Creating a transfer in the Atelio API Reference.