Create an account transfer
curl --request POST \
--url https://api-sandbox.circle.com/v1/accounts/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"source": {
"type": "account",
"id": "1000565227"
},
"destination": {
"type": "account",
"id": "1000662322"
},
"amount": {
"amount": "10.00",
"currency": "USD"
}
}
'import requests
url = "https://api-sandbox.circle.com/v1/accounts/transfers"
payload = {
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"source": {
"type": "account",
"id": "1000565227"
},
"destination": {
"type": "account",
"id": "1000662322"
},
"amount": {
"amount": "10.00",
"currency": "USD"
}
}
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',
source: {type: 'account', id: '1000565227'},
destination: {type: 'account', id: '1000662322'},
amount: {amount: '10.00', currency: 'USD'}
})
};
fetch('https://api-sandbox.circle.com/v1/accounts/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/accounts/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',
'source' => [
'type' => 'account',
'id' => '1000565227'
],
'destination' => [
'type' => 'account',
'id' => '1000662322'
],
'amount' => [
'amount' => '10.00',
'currency' => 'USD'
]
]),
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/accounts/transfers"
payload := strings.NewReader("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"source\": {\n \"type\": \"account\",\n \"id\": \"1000565227\"\n },\n \"destination\": {\n \"type\": \"account\",\n \"id\": \"1000662322\"\n },\n \"amount\": {\n \"amount\": \"10.00\",\n \"currency\": \"USD\"\n }\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/accounts/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"source\": {\n \"type\": \"account\",\n \"id\": \"1000565227\"\n },\n \"destination\": {\n \"type\": \"account\",\n \"id\": \"1000662322\"\n },\n \"amount\": {\n \"amount\": \"10.00\",\n \"currency\": \"USD\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.circle.com/v1/accounts/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 \"source\": {\n \"type\": \"account\",\n \"id\": \"1000565227\"\n },\n \"destination\": {\n \"type\": \"account\",\n \"id\": \"1000662322\"\n },\n \"amount\": {\n \"amount\": \"10.00\",\n \"currency\": \"USD\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "b8627ae8-732b-4d25-b947-1df8f4007a29",
"source": {
"type": "account",
"id": "1000565227",
"description": "Your Payments Account"
},
"destination": {
"type": "account",
"id": "1000662322",
"description": "Merchant Subledger Account"
},
"amount": {
"amount": "10.00",
"currency": "USD"
},
"status": "pending",
"createDate": "2020-04-10T02:13:30.000Z"
}
}{
"code": 400,
"message": "Bad request."
}{
"code": 401,
"message": "Malformed authorization."
}{
"code": 3,
"message": "Forbidden"
}{
"code": 500,
"message": "Internal server error."
}Create an account transfer
Create an internal transfer from an account to another account under the same parent. Supported paths are subaccount to subaccount, main wallet to subaccount, and subaccount to main wallet. Cross-parent transfers are rejected.
This endpoint creates internal transfers only. Sending funds to an external blockchain address is not
supported, and both source and destination must be of type account. If source is omitted, the
transfer is sourced from the parent main wallet.
POST
/
v1
/
accounts
/
transfers
Create an account transfer
curl --request POST \
--url https://api-sandbox.circle.com/v1/accounts/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"source": {
"type": "account",
"id": "1000565227"
},
"destination": {
"type": "account",
"id": "1000662322"
},
"amount": {
"amount": "10.00",
"currency": "USD"
}
}
'import requests
url = "https://api-sandbox.circle.com/v1/accounts/transfers"
payload = {
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"source": {
"type": "account",
"id": "1000565227"
},
"destination": {
"type": "account",
"id": "1000662322"
},
"amount": {
"amount": "10.00",
"currency": "USD"
}
}
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',
source: {type: 'account', id: '1000565227'},
destination: {type: 'account', id: '1000662322'},
amount: {amount: '10.00', currency: 'USD'}
})
};
fetch('https://api-sandbox.circle.com/v1/accounts/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/accounts/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',
'source' => [
'type' => 'account',
'id' => '1000565227'
],
'destination' => [
'type' => 'account',
'id' => '1000662322'
],
'amount' => [
'amount' => '10.00',
'currency' => 'USD'
]
]),
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/accounts/transfers"
payload := strings.NewReader("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"source\": {\n \"type\": \"account\",\n \"id\": \"1000565227\"\n },\n \"destination\": {\n \"type\": \"account\",\n \"id\": \"1000662322\"\n },\n \"amount\": {\n \"amount\": \"10.00\",\n \"currency\": \"USD\"\n }\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/accounts/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"source\": {\n \"type\": \"account\",\n \"id\": \"1000565227\"\n },\n \"destination\": {\n \"type\": \"account\",\n \"id\": \"1000662322\"\n },\n \"amount\": {\n \"amount\": \"10.00\",\n \"currency\": \"USD\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.circle.com/v1/accounts/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 \"source\": {\n \"type\": \"account\",\n \"id\": \"1000565227\"\n },\n \"destination\": {\n \"type\": \"account\",\n \"id\": \"1000662322\"\n },\n \"amount\": {\n \"amount\": \"10.00\",\n \"currency\": \"USD\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "b8627ae8-732b-4d25-b947-1df8f4007a29",
"source": {
"type": "account",
"id": "1000565227",
"description": "Your Payments Account"
},
"destination": {
"type": "account",
"id": "1000662322",
"description": "Merchant Subledger Account"
},
"amount": {
"amount": "10.00",
"currency": "USD"
},
"status": "pending",
"createDate": "2020-04-10T02:13:30.000Z"
}
}{
"code": 400,
"message": "Bad request."
}{
"code": 401,
"message": "Malformed authorization."
}{
"code": 3,
"message": "Forbidden"
}{
"code": 500,
"message": "Internal server error."
}Authorizations
Body
application/json
Request body for creating an internal account-to-account transfer.
Was this page helpful?