Skip to main content
POST
/
v1
/
accounts
/
withdrawals
Create an account bank withdrawal
curl --request POST \
  --url https://api-sandbox.circle.com/v1/accounts/withdrawals \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
  "destination": {
    "type": "wire",
    "id": "b8627ae8-732b-4d25-b947-1df8f4007a29"
  },
  "amount": {
    "amount": "3.14",
    "currency": "USD"
  }
}
'
import requests

url = "https://api-sandbox.circle.com/v1/accounts/withdrawals"

payload = {
"idempotencyKey": "ba943ff1-ca16-49b2-ba55-1057e70ca5c7",
"destination": {
"type": "wire",
"id": "b8627ae8-732b-4d25-b947-1df8f4007a29"
},
"amount": {
"amount": "3.14",
"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',
destination: {type: 'wire', id: 'b8627ae8-732b-4d25-b947-1df8f4007a29'},
amount: {amount: '3.14', currency: 'USD'}
})
};

fetch('https://api-sandbox.circle.com/v1/accounts/withdrawals', 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/withdrawals",
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' => 'wire',
'id' => 'b8627ae8-732b-4d25-b947-1df8f4007a29'
],
'amount' => [
'amount' => '3.14',
'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/withdrawals"

payload := strings.NewReader("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"wire\",\n \"id\": \"b8627ae8-732b-4d25-b947-1df8f4007a29\"\n },\n \"amount\": {\n \"amount\": \"3.14\",\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/withdrawals")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"idempotencyKey\": \"ba943ff1-ca16-49b2-ba55-1057e70ca5c7\",\n \"destination\": {\n \"type\": \"wire\",\n \"id\": \"b8627ae8-732b-4d25-b947-1df8f4007a29\"\n },\n \"amount\": {\n \"amount\": \"3.14\",\n \"currency\": \"USD\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.circle.com/v1/accounts/withdrawals")

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\": \"wire\",\n \"id\": \"b8627ae8-732b-4d25-b947-1df8f4007a29\"\n },\n \"amount\": {\n \"amount\": \"3.14\",\n \"currency\": \"USD\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "data": {
    "id": "b8627ae8-732b-4d25-b947-1df8f4007a29",
    "sourceAccountId": "<string>",
    "destination": {
      "type": "wire",
      "id": "b8627ae8-732b-4d25-b947-1df8f4007a29",
      "name": "COMMERZBANK AG ****3000"
    },
    "amount": {
      "amount": "3.14",
      "currency": "USD"
    },
    "toAmount": {
      "currency": "USD",
      "amount": "3.14"
    },
    "fees": {
      "amount": "3.14",
      "currency": "USD"
    },
    "trackingRef": "<string>",
    "externalRef": "b8627ae8-732b-4d25-b947-1df8f4007a29",
    "riskEvaluation": {
      "reason": "3000"
    },
    "adjustments": {
      "fxCredit": {
        "amount": "3.14",
        "currency": "USD"
      },
      "fxDebit": {
        "amount": "3.14",
        "currency": "USD"
      }
    },
    "return": {
      "id": "b8627ae8-732b-4d25-b947-1df8f4007a29",
      "payoutId": "abdb500d-4a59-457c-801f-2d418c8703ac",
      "amount": {
        "amount": "3.14",
        "currency": "USD"
      },
      "fees": {
        "amount": "3.14",
        "currency": "USD"
      },
      "reason": "payout_returned",
      "createDate": "2020-04-10T02:13:30.000Z",
      "updateDate": "2020-04-10T02:13:30.000Z"
    },
    "description": "<string>",
    "customerExternalRef": "<string>",
    "createDate": "2020-04-10T02:13:30.000Z",
    "updateDate": "2020-04-10T02:13:30.000Z"
  }
}
{
"code": 2,
"message": "API parameter invalid."
}
{
"code": 4,
"message": "Unauthorized."
}
{
"code": -1,
"message": "Something went wrong. errId: 1f0b0c455e40f753f07b4f0ae6abd4b4"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
idempotencyKey
string<uuid>
required

Universally unique identifier (UUID v4) idempotency key. This key is utilized to ensure exactly-once execution of mutating requests.

Example:

"ba943ff1-ca16-49b2-ba55-1057e70ca5c7"

destination
object
required

The destination bank account.

amount
object
required
source
object

The source account for the withdrawal. The type must be account.

toAmount
object

To be used when requesting currency exchange.

Response

Successfully created a withdrawal.

data
object