Loading funds
How to load funds onto a card account.
A load_funds
transfer is instantaneous and therefore cannot be canceled, modified, or reversed after you have successfully initiated it. All transfer results can be found in the ledger, (for details, see Retrieving transactions and histories.
To load funds, use the POST transfers
operation and provide 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 .Note, for type:
|
account_id required | string | Bond account UUID (36 characters) for the transfer destination account, for example 6f0e7dcb-6073-42df-bf02-ce71bd5fac3b .Note, for type:
|
type required | string | The type of transfer being initiated. Can be ach , card_to_card (see note at bottom of page), or load_funds . |
ach_class_code | string | ACH SEC code. |
ach_direction Conditionally required for ACH transfers | string | ACH transfer direction of the money movement. Possible 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_network Conditionally required for ACH transfers | string | ACH transfer network. Either ach or same-day-ach |
ach_description Conditionally required for ACH transfers | string | Freeform, alphanumeric description (maximum 10 characters) of the ACH transfer. Describes the purpose of the transfer and is displayed on the receiver's account statement. |
amount Conditionally required for ACH transfers | string | Transfer amount as a decimal string with two digits of precision, for example 85.50 .Currently only USD is supported. |
memo | string | Optional string field for a memo on the transaction, for example Office supplies for Atlanta branch .Only available for card-to-card transfers. |
Note
The
load_funds
transfer type does not require theorigination_account_id
. Instead, the card specified by theaccount_id
has the funds loaded to it from the funding source of the card program.
An example of a load_fund
transfer request for $75.00 is shown below.
curl --request POST \
--url https://sandbox.bond.tech/api/v0/transfers \
--header 'Authorization: YOUR-AUTHORIZATION' \
--header 'Content-Type: application/json' \
--header 'Identity: YOUR-IDENTITY' \
--data '
{
"origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
"type": "load-funds",
"account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
"ach_class_code": "CIE",
"ach_direction": "debit",
"ach_network": "same-day-ach",
"ach_description": "Petty cash",
"amount": "75.00",
"memo": "Office supplies for Atlanta branch"
}
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://sandbox.bond.tech/api/v0/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Identity"] = 'YOUR-IDENTITY'
request["Authorization"] = 'YOUR-AUTHORIZATION'
request.body = "{\"origination_account_id\":\"6f0e7dcb-6073-42df-bf02-ce71bd5fac3b\",\"type\":\"load-funds\",\"account_id\":\"225641a5-f6e4-4ae1-b5e0-326e6b98842e\",\"ach_class_code\":\"CIE\",\"ach_direction\":\"debit\",\"ach_network\":\"same-day-ach\",\"ach_description\":\"Petty cash\",\"amount\":\"75.00\",\"memo\":\"Office supplies for Atlanta branch\"}"
response = http.request(request)
puts response.read_body
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Identity: 'YOUR-IDENTITY',
Authorization: 'YOUR-AUTHORIZATION'
},
body: JSON.stringify({
origination_account_id: '6f0e7dcb-6073-42df-bf02-ce71bd5fac3b',
type: 'load-funds',
account_id: '225641a5-f6e4-4ae1-b5e0-326e6b98842e',
ach_class_code: 'CIE',
ach_direction: 'debit',
ach_network: 'same-day-ach',
ach_description: 'Petty cash',
amount: '75.00',
memo: 'Office supplies for Atlanta branch'
})
};
fetch('https://sandbox.bond.tech/api/v0/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/transfers"
payload = {
"origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
"type": "load-funds",
"account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
"ach_class_code": "CIE",
"ach_direction": "debit",
"ach_network": "same-day-ach",
"ach_description": "Petty cash",
"amount": "75.00",
"memo": "Office supplies for Atlanta branch"
}
headers = {
"Content-Type": "application/json",
"Identity": "YOUR-IDENTITY",
"Authorization": "YOUR-AUTHORIZATION"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
var client = new RestClient("https://sandbox.bond.tech/api/v0/transfers");
var request = new RestRequest(Method.POST);
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\",\"type\":\"load-funds\",\"account_id\":\"225641a5-f6e4-4ae1-b5e0-326e6b98842e\",\"ach_class_code\":\"CIE\",\"ach_direction\":\"debit\",\"ach_network\":\"same-day-ach\",\"ach_description\":\"Petty cash\",\"amount\":\"75.00\",\"memo\":\"Office supplies for Atlanta branch\"}", 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\",\"type\":\"load-funds\",\"account_id\":\"225641a5-f6e4-4ae1-b5e0-326e6b98842e\",\"ach_class_code\":\"CIE\",\"ach_direction\":\"debit\",\"ach_network\":\"same-day-ach\",\"ach_description\":\"Petty cash\",\"amount\":\"75.00\",\"memo\":\"Office supplies for Atlanta branch\"}");
Request request = new Request.Builder()
.url("https://sandbox.bond.tech/api/v0/transfers")
.post(body)
.addHeader("Content-Type", "application/json")
.addHeader("Identity", "YOUR-IDENTITY")
.addHeader("Authorization", "YOUR-AUTHORIZATION")
.build();
Response response = client.newCall(request).execute();
A successful request results in a transfer with a completed
status, represented by a transfer_id
.
Given the request example above, the successful 200 response is shown below. Note that the transfer amount is expressed as a decimal string in cents.
{
"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": "load-funds",
"ach_direction": "debit",
"ach_class_code": "CIE",
"ach_network": "same_day_ach",
"ach_description": "Petty cash",
"status": "completed",
"ach_return_code": null,
"failure_reason": null,
"amount_in_cents": "7500",
"iso_currency_code": "USD"
}
Note
Card-to-card transfers are not available for credit cards.
For a complete specification and interactive examples, see Create a transfer in the Bond API Reference.
ACH Standard Entry Class codes
The following are valid for ach_class_code
:
- ARC—Accounts Receivable Conversion
- CBR—Cross Border Entry (corporate)
- CCD—Cash Concentration or Disbursement
- CIE—Customer Initiated Entry
- COR—Notification of Change (NOC) or Refused NOC
- CTX—Corporate Trade Exchange
- IAT—International ACH Transactions
- MTE—Machine Transfer Entry
- PBR—Cross Border Entry (consumer)
- POP—Point-of-Purchase Entry
- POS—Point-of-Sale Entry
- PPD—Prearranged Payment and Depoit
- RCK—Represented Check
- TEL—Telephone-Initiated Entry
- WEB—Internet-Initiated Entry
Updated almost 3 years ago