curl --request POST \
--url https://api-sandbox.circle.com/v1/businessAccount/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"destination": {
"type": "verified_blockchain",
"addressId": "f1f36b85-cafe-484e-a46b-02340bfdb927"
},
"amount": {
"amount": "3.14"
},
"customerExternalRef": "INV-2024-001234"
}
'import requests
url = "https://api-sandbox.circle.com/v1/businessAccount/transfers"
payload = {
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"destination": {
"type": "verified_blockchain",
"addressId": "f1f36b85-cafe-484e-a46b-02340bfdb927"
},
"amount": { "amount": "3.14" },
"customerExternalRef": "INV-2024-001234"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
idempotencyKey: 'ba943ff1-ca16-49b2-ba55-1057e70ca5c7',
destination: {type: 'verified_blockchain', addressId: 'f1f36b85-cafe-484e-a46b-02340bfdb927'},
amount: {amount: '3.14'},
customerExternalRef: 'INV-2024-001234'
})
};
fetch('https://api-sandbox.circle.com/v1/businessAccount/transfers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.circle.com/v1/businessAccount/transfers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'idempotencyKey' => 'ba943ff1-ca16-49b2-ba55-1057e70ca5c7',
'destination' => [
'type' => 'verified_blockchain',
'addressId' => 'f1f36b85-cafe-484e-a46b-02340bfdb927'
],
'amount' => [
'amount' => '3.14'
],
'customerExternalRef' => 'INV-2024-001234'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.circle.com/v1/businessAccount/transfers"
payload := strings.NewReader("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"verified_blockchain\",\n \"addressId\": \"f1f36b85-cafe-484e-a46b-02340bfdb927\"\n },\n \"amount\": {\n \"amount\": \"3.14\"\n },\n \"customerExternalRef\": \"INV-2024-001234\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.circle.com/v1/businessAccount/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"verified_blockchain\",\n \"addressId\": \"f1f36b85-cafe-484e-a46b-02340bfdb927\"\n },\n \"amount\": {\n \"amount\": \"3.14\"\n },\n \"customerExternalRef\": \"INV-2024-001234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.circle.com/v1/businessAccount/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"verified_blockchain\",\n \"addressId\": \"f1f36b85-cafe-484e-a46b-02340bfdb927\"\n },\n \"amount\": {\n \"amount\": \"3.14\"\n },\n \"customerExternalRef\": \"INV-2024-001234\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "b8627ae8-732b-4d25-b947-1df8f4007a29",
"source": {
"type": "wallet",
"id": "12345",
"identities": [
{
"type": "individual",
"name": "Satoshi Nakamoto",
"addresses": [
{
"line1": "100 Money Street",
"line2": "Suite 1",
"city": "Boston",
"district": "MA",
"postalCode": "01234",
"country": "US"
}
]
}
],
"useMainWalletFunding": false
},
"destination": {
"type": "blockchain",
"address": "0x8381470ED67C3802402dbbFa0058E8871F017A6F",
"addressTag": "123456789",
"chain": "ALGO"
},
"amount": {
"amount": "3.14",
"currency": "USD"
},
"fees": [
{
"amount": "10.00",
"currency": "USD",
"type": "network"
}
],
"transactionHash": "0x4cebf8f90c9243a23c77e4ae20df691469e4b933b295a73376292843968f7a63",
"status": "pending",
"errorCode": "transfer_failed",
"createDate": "2020-04-10T02:13:30.000Z",
"customerExternalRef": "INV-2024-001234"
}
}A transfer can be made from an existing business account to a blockchain location.
cirBTC transfers: When amount.currency=CIRBTC, the recipient’s chain (looked up from destination.addressId) determines how the transfer is processed:
- Recipients on
chain=ETHorchain=ARCreceive an onchain cirBTC transfer. - Recipients on
chain=BTCtrigger redemption to native Bitcoin: the cirBTC is burned and an equivalent amount of native Bitcoin (1:1) is released to the Bitcoin address.
curl --request POST \
--url https://api-sandbox.circle.com/v1/businessAccount/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"destination": {
"type": "verified_blockchain",
"addressId": "f1f36b85-cafe-484e-a46b-02340bfdb927"
},
"amount": {
"amount": "3.14"
},
"customerExternalRef": "INV-2024-001234"
}
'import requests
url = "https://api-sandbox.circle.com/v1/businessAccount/transfers"
payload = {
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"destination": {
"type": "verified_blockchain",
"addressId": "f1f36b85-cafe-484e-a46b-02340bfdb927"
},
"amount": { "amount": "3.14" },
"customerExternalRef": "INV-2024-001234"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
idempotencyKey: 'ba943ff1-ca16-49b2-ba55-1057e70ca5c7',
destination: {type: 'verified_blockchain', addressId: 'f1f36b85-cafe-484e-a46b-02340bfdb927'},
amount: {amount: '3.14'},
customerExternalRef: 'INV-2024-001234'
})
};
fetch('https://api-sandbox.circle.com/v1/businessAccount/transfers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-sandbox.circle.com/v1/businessAccount/transfers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'idempotencyKey' => 'ba943ff1-ca16-49b2-ba55-1057e70ca5c7',
'destination' => [
'type' => 'verified_blockchain',
'addressId' => 'f1f36b85-cafe-484e-a46b-02340bfdb927'
],
'amount' => [
'amount' => '3.14'
],
'customerExternalRef' => 'INV-2024-001234'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.circle.com/v1/businessAccount/transfers"
payload := strings.NewReader("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"verified_blockchain\",\n \"addressId\": \"f1f36b85-cafe-484e-a46b-02340bfdb927\"\n },\n \"amount\": {\n \"amount\": \"3.14\"\n },\n \"customerExternalRef\": \"INV-2024-001234\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api-sandbox.circle.com/v1/businessAccount/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"verified_blockchain\",\n \"addressId\": \"f1f36b85-cafe-484e-a46b-02340bfdb927\"\n },\n \"amount\": {\n \"amount\": \"3.14\"\n },\n \"customerExternalRef\": \"INV-2024-001234\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.circle.com/v1/businessAccount/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"verified_blockchain\",\n \"addressId\": \"f1f36b85-cafe-484e-a46b-02340bfdb927\"\n },\n \"amount\": {\n \"amount\": \"3.14\"\n },\n \"customerExternalRef\": \"INV-2024-001234\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "b8627ae8-732b-4d25-b947-1df8f4007a29",
"source": {
"type": "wallet",
"id": "12345",
"identities": [
{
"type": "individual",
"name": "Satoshi Nakamoto",
"addresses": [
{
"line1": "100 Money Street",
"line2": "Suite 1",
"city": "Boston",
"district": "MA",
"postalCode": "01234",
"country": "US"
}
]
}
],
"useMainWalletFunding": false
},
"destination": {
"type": "blockchain",
"address": "0x8381470ED67C3802402dbbFa0058E8871F017A6F",
"addressTag": "123456789",
"chain": "ALGO"
},
"amount": {
"amount": "3.14",
"currency": "USD"
},
"fees": [
{
"amount": "10.00",
"currency": "USD",
"type": "network"
}
],
"transactionHash": "0x4cebf8f90c9243a23c77e4ae20df691469e4b933b295a73376292843968f7a63",
"status": "pending",
"errorCode": "transfer_failed",
"createDate": "2020-04-10T02:13:30.000Z",
"customerExternalRef": "INV-2024-001234"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Universally unique identifier (UUID v4) idempotency key. This key is utilized to ensure exactly-once execution of mutating requests.
"ba943ff1-ca16-49b2-ba55-1057e70ca5c7"
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The wallet to be used as the source of the transfer. If not provided, the transfer will come from the main wallet of the account.
You can get wallet IDs associated with your account using the Core API for Institutions.
Show child attributes
Show child attributes
An optional customer-supplied reference for reconciliation purposes. Only supported for cross-entity transfers.
^[A-Za-z0-9-]{1,21}$"INV-2024-001234"
Response
Successfully created a transfer.
A transfer of funds.
Show child attributes
Show child attributes
Was this page helpful?