Making a card-to-card transfer

How to make card-to-card transfers.

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

▶ Run in Postman

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:

  • `ach` use the `card_account_id`
  • `card-to-card` use the `card_account_id`

account_id
required

string

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

  • `ach` use the `external_account_id`
  • `card-to-card` use the `card_account_id`

type
required

string

The type of transfer being initiated. Either ach or card_to_card

amount
required

string

Transfer amount as a decimal string with two digits of precision, for example 85.50.
Currently only USD is supported.

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

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["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request["Authorization"] = 'YOUR-AUTHORIZATION'
request.body = "{\"type\":\"card-to-card\",\"amount\":\"175.00\"}"

response = http.request(request)
puts response.read_body
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["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request["Authorization"] = 'YOUR-AUTHORIZATION'
request.body = "{\"type\":\"card-to-card\",\"amount\":\"175.00\"}"

response = http.request(request)
puts response.read_body
const options = {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: 'YOUR-AUTHORIZATION'
  },
  body: JSON.stringify({type: 'card-to-card', amount: '175.00'})
};

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 = {
    "type": "card-to-card",
    "amount": "175.00"
}
headers = {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "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("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "YOUR-AUTHORIZATION");
request.AddParameter("application/json", "{\"type\":\"card-to-card\",\"amount\":\"175.00\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"type\":\"card-to-card\",\"amount\":\"175.00\"}");
Request request = new Request.Builder()
  .url("https://sandbox.bond.tech/api/v0/transfers")
  .post(body)
  .addHeader("Accept", "application/json")
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "YOUR-AUTHORIZATION")
  .build();

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

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.

{
  "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": "card-to-card",
  "status": "pending",
  "failure_reason": null,
  "amount_in_cents": "17500",
  "iso_currency_code": "USD"
}

A successful request results in a completed status.

📘

Note

Card-to-card transfers are instantaneous so they cannot be cancelled, modified, or reversed after successful creation.

For details related to ACH transfers, see ACH transfers.

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


Next Steps
Did this page help you?