Creating a transfer

How to perform a fund transfer between accounts.

To execute a transfer, use the POST /transfers operation and provide the body parameters as shown in the table below.

Parameter

Type

Description

origination_account_id
required

string

Bond account UUID (36 characters) for the originating account, for example 6f0e7dcb-6073-42df-bf02-ce71bd5fac3b.

destination_account_id
required

string

Bond account UUID (36 characters) for the transfer destination account, for example 6f0e7dcb-6073-42df-bf02-ce71bd5fac3b.

description

string

Freeform description for the transfer.

amount
required

string

Transfer amount as a decimal string, for example 8550 being $85.50.
Currently only USD is supported.

ach
required if the origination or destination account is an external account

object

Details of the ach transfer to be made, as shown in the ach object table below.

The ach object has the structure shown in the table below.

ACH object

Type

Description

class_code
required

string

ACH Standard Entry Class (SEC) code. One of:
ARC, CBR, CCD, CIE, COR, CTX, IAT, MTE, PBR, POP, POS, PPD, RCK, TEL, WEB

same_day
required

boolean

ACH transfer network. Either false=standard, or true=same-day-ach.

An example of a request to make a $10.00 internal transfer is shown below.

curl --request POST \
     --url https://sandbox.bond.tech/api/v0.1/transfers \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '
{
     "origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
     "destination_account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
     "description": "GIFT",
     "amount": 1000
}
'
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://sandbox.bond.tech/api/v0.1/transfers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request["Identity"] = 'YOUR-IDENTITY'
request["Authorization"] = 'YOUR-AUTHORIZATION'
request.body = "{\"origination_account_id\":\"6f0e7dcb-6073-42df-bf02-ce71bd5fac3b\",\"destination_account_id\":\"225641a5-f6e4-4ae1-b5e0-326e6b98842e\",\"description\":\"GIFT\",\"amount\":1000}"

response = http.request(request)
puts response.read_body
const options = {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    Identity: 'YOUR-IDENTITY',
    Authorization: 'YOUR-AUTHORIZATION'
  },
  body: JSON.stringify({
    origination_account_id: '6f0e7dcb-6073-42df-bf02-ce71bd5fac3b',
    destination_account_id: '225641a5-f6e4-4ae1-b5e0-326e6b98842e',
    description: 'GIFT',
    amount: 1000
  })
};

fetch('https://sandbox.bond.tech/api/v0.1/transfers', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
import requests

url = "https://sandbox.bond.tech/api/v0.1/transfers"

payload = {
    "origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
    "destination_account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
    "description": "GIFT",
    "amount": 1000
}
headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Identity": "YOUR-IDENTITY",
    "Authorization": "YOUR-AUTHORIZATION"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
var client = new RestClient("https://sandbox.bond.tech/api/v0.1/transfers");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Identity", "YOUR-IDENTITY");
request.AddHeader("Authorization", "YOUR-AUTHORIZATION");
request.AddParameter("application/json", "{\"origination_account_id\":\"6f0e7dcb-6073-42df-bf02-ce71bd5fac3b\",\"destination_account_id\":\"225641a5-f6e4-4ae1-b5e0-326e6b98842e\",\"description\":\"GIFT\",\"amount\":1000}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"origination_account_id\":\"6f0e7dcb-6073-42df-bf02-ce71bd5fac3b\",\"destination_account_id\":\"225641a5-f6e4-4ae1-b5e0-326e6b98842e\",\"description\":\"GIFT\",\"amount\":1000}");
Request request = new Request.Builder()
  .url("https://sandbox.bond.tech/api/v0.1/transfers")
  .post(body)
  .addHeader("Accept", "application/json")
  .addHeader("Content-Type", "application/json")
  .addHeader("Identity", "YOUR-IDENTITY")
  .addHeader("Authorization", "YOUR-AUTHORIZATION")
  .build();

Response response = client.newCall(request).execute();

An example of a response to a successful internal transfer request is shown below. The response includes the unique transfer_id representing the transfer. Note that the transfer amount is expressed as a decimal string in cents.

{
  "date_created": "2020-10-09T17:14:09.686688",
  "date_updated": "2020-10-09T17:14:09.686688",
  "date_settled": "2020-10-13T17:14:09.686688",
  "transfer_id": "4ead6cdc-77eb-45fa-9959-3f166385a60a",
  "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
  "origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
  "destination_account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
  "description": "GIFT",
  "amount": 1000
}

A successful request results in a completed status.

An example of a response to a successful ACH external transfer request is shown below.

{
  "date_created": "2020-10-09T17:14:09.686688",
  "date_updated": "2020-10-09T17:14:09.686688",
  "date_settled": "2020-10-13T17:14:09.686688",
  "transfer_id": "4ead6cdc-77eb-45fa-9959-3f166385a60a",
  "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
  "origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
  "destination_account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
  "description": "GIFT",
  "amount": 1000,
  "status": "submitted",
  "ach": {
    "ach_class_code": "WEB",
    "same_day": true
  }
}

For a complete specification and interactive examples, see Creating a transfer in the Bond API Reference.


Did this page help you?