# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api POST /v1/transfers/quotes/confirm \
--header 'Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000' \
--body '<request-json>'Confirm an unlocked transfer intent.
# Infinite MCP is read-only for this endpoint — use a dedicated MCP tool when one exists, otherwise run the CLI tab.import requests
url = "https://sandbox.api.infinite.dev/v1/transfers/quotes/confirm"
payload = {
"onBehalfOf": "cus_abc123",
"source": {
"currency": "USDC",
"paymentRail": "ETHEREUM",
"accountId": "inw_abc123",
"direction": "CREDIT",
"refundAccountId": "inw_abc123"
},
"destination": {
"accountId": "acc_def456",
"currency": "USDC",
"paymentRail": "ETHEREUM",
"correspondentBankName": "Bank of America",
"correspondentBankSwiftCode": "IRVTUS3NXXX",
"correspondentAccountNumber": "9876543210",
"wireMessage": "Payment for invoice INV-2026-001",
"sepaReference": "INV-2026-001",
"achReference": "ORDER123",
"blockchainMemo": "MEMO123456",
"swiftReference": "Payment for Invoice\nReference: INV-2026-001",
"rtpReference": "Payment for invoice INV-2026-001"
},
"amount": {
"value": "1000000",
"side": "SOURCE"
},
"clientReferenceId": "order_abc123",
"counterpartyId": "cp_abc123",
"remarks": "Partial payment - remaining balance to be paid next month",
"internalRemarks": "Approved by ops on 2026-04-15",
"developerFeeFixed": 100,
"developerFeePercent": 0.015,
"documentIds": ["doc_abc123", "doc_def456"],
"expiresAt": "2026-12-31T23:59:59Z",
"requiresAuthorization": False,
"lock": False
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
onBehalfOf: 'cus_abc123',
source: {
currency: 'USDC',
paymentRail: 'ETHEREUM',
accountId: 'inw_abc123',
direction: 'CREDIT',
refundAccountId: 'inw_abc123'
},
destination: {
accountId: 'acc_def456',
currency: 'USDC',
paymentRail: 'ETHEREUM',
correspondentBankName: 'Bank of America',
correspondentBankSwiftCode: 'IRVTUS3NXXX',
correspondentAccountNumber: '9876543210',
wireMessage: 'Payment for invoice INV-2026-001',
sepaReference: 'INV-2026-001',
achReference: 'ORDER123',
blockchainMemo: 'MEMO123456',
swiftReference: 'Payment for Invoice\nReference: INV-2026-001',
rtpReference: 'Payment for invoice INV-2026-001'
},
amount: {value: '1000000', side: 'SOURCE'},
clientReferenceId: 'order_abc123',
counterpartyId: 'cp_abc123',
remarks: 'Partial payment - remaining balance to be paid next month',
internalRemarks: 'Approved by ops on 2026-04-15',
developerFeeFixed: 100,
developerFeePercent: 0.015,
documentIds: ['doc_abc123', 'doc_def456'],
expiresAt: '2026-12-31T23:59:59Z',
requiresAuthorization: false,
lock: false
})
};
fetch('https://sandbox.api.infinite.dev/v1/transfers/quotes/confirm', 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://sandbox.api.infinite.dev/v1/transfers/quotes/confirm",
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([
'onBehalfOf' => 'cus_abc123',
'source' => [
'currency' => 'USDC',
'paymentRail' => 'ETHEREUM',
'accountId' => 'inw_abc123',
'direction' => 'CREDIT',
'refundAccountId' => 'inw_abc123'
],
'destination' => [
'accountId' => 'acc_def456',
'currency' => 'USDC',
'paymentRail' => 'ETHEREUM',
'correspondentBankName' => 'Bank of America',
'correspondentBankSwiftCode' => 'IRVTUS3NXXX',
'correspondentAccountNumber' => '9876543210',
'wireMessage' => 'Payment for invoice INV-2026-001',
'sepaReference' => 'INV-2026-001',
'achReference' => 'ORDER123',
'blockchainMemo' => 'MEMO123456',
'swiftReference' => 'Payment for Invoice\\nReference: INV-2026-001',
'rtpReference' => 'Payment for invoice INV-2026-001'
],
'amount' => [
'value' => '1000000',
'side' => 'SOURCE'
],
'clientReferenceId' => 'order_abc123',
'counterpartyId' => 'cp_abc123',
'remarks' => 'Partial payment - remaining balance to be paid next month',
'internalRemarks' => 'Approved by ops on 2026-04-15',
'developerFeeFixed' => 100,
'developerFeePercent' => 0.015,
'documentIds' => [
'doc_abc123',
'doc_def456'
],
'expiresAt' => '2026-12-31T23:59:59Z',
'requiresAuthorization' => false,
'lock' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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://sandbox.api.infinite.dev/v1/transfers/quotes/confirm"
payload := strings.NewReader("{\n \"onBehalfOf\": \"cus_abc123\",\n \"source\": {\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"accountId\": \"inw_abc123\",\n \"direction\": \"CREDIT\",\n \"refundAccountId\": \"inw_abc123\"\n },\n \"destination\": {\n \"accountId\": \"acc_def456\",\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"wireMessage\": \"Payment for invoice INV-2026-001\",\n \"sepaReference\": \"INV-2026-001\",\n \"achReference\": \"ORDER123\",\n \"blockchainMemo\": \"MEMO123456\",\n \"swiftReference\": \"Payment for Invoice\\\\nReference: INV-2026-001\",\n \"rtpReference\": \"Payment for invoice INV-2026-001\"\n },\n \"amount\": {\n \"value\": \"1000000\",\n \"side\": \"SOURCE\"\n },\n \"clientReferenceId\": \"order_abc123\",\n \"counterpartyId\": \"cp_abc123\",\n \"remarks\": \"Partial payment - remaining balance to be paid next month\",\n \"internalRemarks\": \"Approved by ops on 2026-04-15\",\n \"developerFeeFixed\": 100,\n \"developerFeePercent\": 0.015,\n \"documentIds\": [\n \"doc_abc123\",\n \"doc_def456\"\n ],\n \"expiresAt\": \"2026-12-31T23:59:59Z\",\n \"requiresAuthorization\": false,\n \"lock\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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://sandbox.api.infinite.dev/v1/transfers/quotes/confirm")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"onBehalfOf\": \"cus_abc123\",\n \"source\": {\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"accountId\": \"inw_abc123\",\n \"direction\": \"CREDIT\",\n \"refundAccountId\": \"inw_abc123\"\n },\n \"destination\": {\n \"accountId\": \"acc_def456\",\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"wireMessage\": \"Payment for invoice INV-2026-001\",\n \"sepaReference\": \"INV-2026-001\",\n \"achReference\": \"ORDER123\",\n \"blockchainMemo\": \"MEMO123456\",\n \"swiftReference\": \"Payment for Invoice\\\\nReference: INV-2026-001\",\n \"rtpReference\": \"Payment for invoice INV-2026-001\"\n },\n \"amount\": {\n \"value\": \"1000000\",\n \"side\": \"SOURCE\"\n },\n \"clientReferenceId\": \"order_abc123\",\n \"counterpartyId\": \"cp_abc123\",\n \"remarks\": \"Partial payment - remaining balance to be paid next month\",\n \"internalRemarks\": \"Approved by ops on 2026-04-15\",\n \"developerFeeFixed\": 100,\n \"developerFeePercent\": 0.015,\n \"documentIds\": [\n \"doc_abc123\",\n \"doc_def456\"\n ],\n \"expiresAt\": \"2026-12-31T23:59:59Z\",\n \"requiresAuthorization\": false,\n \"lock\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/transfers/quotes/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"onBehalfOf\": \"cus_abc123\",\n \"source\": {\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"accountId\": \"inw_abc123\",\n \"direction\": \"CREDIT\",\n \"refundAccountId\": \"inw_abc123\"\n },\n \"destination\": {\n \"accountId\": \"acc_def456\",\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"wireMessage\": \"Payment for invoice INV-2026-001\",\n \"sepaReference\": \"INV-2026-001\",\n \"achReference\": \"ORDER123\",\n \"blockchainMemo\": \"MEMO123456\",\n \"swiftReference\": \"Payment for Invoice\\\\nReference: INV-2026-001\",\n \"rtpReference\": \"Payment for invoice INV-2026-001\"\n },\n \"amount\": {\n \"value\": \"1000000\",\n \"side\": \"SOURCE\"\n },\n \"clientReferenceId\": \"order_abc123\",\n \"counterpartyId\": \"cp_abc123\",\n \"remarks\": \"Partial payment - remaining balance to be paid next month\",\n \"internalRemarks\": \"Approved by ops on 2026-04-15\",\n \"developerFeeFixed\": 100,\n \"developerFeePercent\": 0.015,\n \"documentIds\": [\n \"doc_abc123\",\n \"doc_def456\"\n ],\n \"expiresAt\": \"2026-12-31T23:59:59Z\",\n \"requiresAuthorization\": false,\n \"lock\": false\n}"
response = http.request(request)
puts response.read_body{
"transferId": "tfr_abc123",
"flow": "FIAT_TO_CRYPTO",
"status": "PENDING",
"fundingRequired": true,
"depositInstructions": {
"type": "crypto",
"paymentRail": "ETHEREUM",
"toAddress": "0x1234567890abcdef1234567890abcdef12345678",
"amount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"blockchainMemo": "<string>",
"accountId": "acc_abc123"
},
"fundingInstructions": {
"reference": "CDX-7K2A9V",
"currency": "EUR",
"amount": "10000",
"supportedRails": [
"SEPA"
],
"bank": {
"name": "Commerzbank AG",
"address": "Mainzer Landstraße 153, 60327 Frankfurt",
"country": "DE"
},
"accounts": [
{
"supportedRails": [
"SEPA"
],
"accountHolderName": "Acme Onramp Ltd",
"accountNumber": "12345678",
"iban": "DE89370400440532013000",
"bic": "COBADEFFXXX",
"sortCode": "12-34-56",
"routingNumber": "021000021"
}
],
"expiresAt": "2026-05-26T19:54:00.000Z",
"swiftRoutingBanks": [
{
"role": "INTERMEDIARY",
"bankName": "Citibank N.A.",
"bic": "CITIUS33XXX",
"abaRoutingNumber": "021000089"
}
]
},
"fundingDeadline": "2023-11-07T05:31:56Z"
}Confirm an unlocked transfer intent
Creates a transfer from a previewed corridor that cannot lock a firm quote.
# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api POST /v1/transfers/quotes/confirm \
--header 'Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000' \
--body '<request-json>'Confirm an unlocked transfer intent.
# Infinite MCP is read-only for this endpoint — use a dedicated MCP tool when one exists, otherwise run the CLI tab.import requests
url = "https://sandbox.api.infinite.dev/v1/transfers/quotes/confirm"
payload = {
"onBehalfOf": "cus_abc123",
"source": {
"currency": "USDC",
"paymentRail": "ETHEREUM",
"accountId": "inw_abc123",
"direction": "CREDIT",
"refundAccountId": "inw_abc123"
},
"destination": {
"accountId": "acc_def456",
"currency": "USDC",
"paymentRail": "ETHEREUM",
"correspondentBankName": "Bank of America",
"correspondentBankSwiftCode": "IRVTUS3NXXX",
"correspondentAccountNumber": "9876543210",
"wireMessage": "Payment for invoice INV-2026-001",
"sepaReference": "INV-2026-001",
"achReference": "ORDER123",
"blockchainMemo": "MEMO123456",
"swiftReference": "Payment for Invoice\nReference: INV-2026-001",
"rtpReference": "Payment for invoice INV-2026-001"
},
"amount": {
"value": "1000000",
"side": "SOURCE"
},
"clientReferenceId": "order_abc123",
"counterpartyId": "cp_abc123",
"remarks": "Partial payment - remaining balance to be paid next month",
"internalRemarks": "Approved by ops on 2026-04-15",
"developerFeeFixed": 100,
"developerFeePercent": 0.015,
"documentIds": ["doc_abc123", "doc_def456"],
"expiresAt": "2026-12-31T23:59:59Z",
"requiresAuthorization": False,
"lock": False
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
onBehalfOf: 'cus_abc123',
source: {
currency: 'USDC',
paymentRail: 'ETHEREUM',
accountId: 'inw_abc123',
direction: 'CREDIT',
refundAccountId: 'inw_abc123'
},
destination: {
accountId: 'acc_def456',
currency: 'USDC',
paymentRail: 'ETHEREUM',
correspondentBankName: 'Bank of America',
correspondentBankSwiftCode: 'IRVTUS3NXXX',
correspondentAccountNumber: '9876543210',
wireMessage: 'Payment for invoice INV-2026-001',
sepaReference: 'INV-2026-001',
achReference: 'ORDER123',
blockchainMemo: 'MEMO123456',
swiftReference: 'Payment for Invoice\nReference: INV-2026-001',
rtpReference: 'Payment for invoice INV-2026-001'
},
amount: {value: '1000000', side: 'SOURCE'},
clientReferenceId: 'order_abc123',
counterpartyId: 'cp_abc123',
remarks: 'Partial payment - remaining balance to be paid next month',
internalRemarks: 'Approved by ops on 2026-04-15',
developerFeeFixed: 100,
developerFeePercent: 0.015,
documentIds: ['doc_abc123', 'doc_def456'],
expiresAt: '2026-12-31T23:59:59Z',
requiresAuthorization: false,
lock: false
})
};
fetch('https://sandbox.api.infinite.dev/v1/transfers/quotes/confirm', 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://sandbox.api.infinite.dev/v1/transfers/quotes/confirm",
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([
'onBehalfOf' => 'cus_abc123',
'source' => [
'currency' => 'USDC',
'paymentRail' => 'ETHEREUM',
'accountId' => 'inw_abc123',
'direction' => 'CREDIT',
'refundAccountId' => 'inw_abc123'
],
'destination' => [
'accountId' => 'acc_def456',
'currency' => 'USDC',
'paymentRail' => 'ETHEREUM',
'correspondentBankName' => 'Bank of America',
'correspondentBankSwiftCode' => 'IRVTUS3NXXX',
'correspondentAccountNumber' => '9876543210',
'wireMessage' => 'Payment for invoice INV-2026-001',
'sepaReference' => 'INV-2026-001',
'achReference' => 'ORDER123',
'blockchainMemo' => 'MEMO123456',
'swiftReference' => 'Payment for Invoice\\nReference: INV-2026-001',
'rtpReference' => 'Payment for invoice INV-2026-001'
],
'amount' => [
'value' => '1000000',
'side' => 'SOURCE'
],
'clientReferenceId' => 'order_abc123',
'counterpartyId' => 'cp_abc123',
'remarks' => 'Partial payment - remaining balance to be paid next month',
'internalRemarks' => 'Approved by ops on 2026-04-15',
'developerFeeFixed' => 100,
'developerFeePercent' => 0.015,
'documentIds' => [
'doc_abc123',
'doc_def456'
],
'expiresAt' => '2026-12-31T23:59:59Z',
'requiresAuthorization' => false,
'lock' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$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://sandbox.api.infinite.dev/v1/transfers/quotes/confirm"
payload := strings.NewReader("{\n \"onBehalfOf\": \"cus_abc123\",\n \"source\": {\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"accountId\": \"inw_abc123\",\n \"direction\": \"CREDIT\",\n \"refundAccountId\": \"inw_abc123\"\n },\n \"destination\": {\n \"accountId\": \"acc_def456\",\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"wireMessage\": \"Payment for invoice INV-2026-001\",\n \"sepaReference\": \"INV-2026-001\",\n \"achReference\": \"ORDER123\",\n \"blockchainMemo\": \"MEMO123456\",\n \"swiftReference\": \"Payment for Invoice\\\\nReference: INV-2026-001\",\n \"rtpReference\": \"Payment for invoice INV-2026-001\"\n },\n \"amount\": {\n \"value\": \"1000000\",\n \"side\": \"SOURCE\"\n },\n \"clientReferenceId\": \"order_abc123\",\n \"counterpartyId\": \"cp_abc123\",\n \"remarks\": \"Partial payment - remaining balance to be paid next month\",\n \"internalRemarks\": \"Approved by ops on 2026-04-15\",\n \"developerFeeFixed\": 100,\n \"developerFeePercent\": 0.015,\n \"documentIds\": [\n \"doc_abc123\",\n \"doc_def456\"\n ],\n \"expiresAt\": \"2026-12-31T23:59:59Z\",\n \"requiresAuthorization\": false,\n \"lock\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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://sandbox.api.infinite.dev/v1/transfers/quotes/confirm")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"onBehalfOf\": \"cus_abc123\",\n \"source\": {\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"accountId\": \"inw_abc123\",\n \"direction\": \"CREDIT\",\n \"refundAccountId\": \"inw_abc123\"\n },\n \"destination\": {\n \"accountId\": \"acc_def456\",\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"wireMessage\": \"Payment for invoice INV-2026-001\",\n \"sepaReference\": \"INV-2026-001\",\n \"achReference\": \"ORDER123\",\n \"blockchainMemo\": \"MEMO123456\",\n \"swiftReference\": \"Payment for Invoice\\\\nReference: INV-2026-001\",\n \"rtpReference\": \"Payment for invoice INV-2026-001\"\n },\n \"amount\": {\n \"value\": \"1000000\",\n \"side\": \"SOURCE\"\n },\n \"clientReferenceId\": \"order_abc123\",\n \"counterpartyId\": \"cp_abc123\",\n \"remarks\": \"Partial payment - remaining balance to be paid next month\",\n \"internalRemarks\": \"Approved by ops on 2026-04-15\",\n \"developerFeeFixed\": 100,\n \"developerFeePercent\": 0.015,\n \"documentIds\": [\n \"doc_abc123\",\n \"doc_def456\"\n ],\n \"expiresAt\": \"2026-12-31T23:59:59Z\",\n \"requiresAuthorization\": false,\n \"lock\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/transfers/quotes/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"onBehalfOf\": \"cus_abc123\",\n \"source\": {\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"accountId\": \"inw_abc123\",\n \"direction\": \"CREDIT\",\n \"refundAccountId\": \"inw_abc123\"\n },\n \"destination\": {\n \"accountId\": \"acc_def456\",\n \"currency\": \"USDC\",\n \"paymentRail\": \"ETHEREUM\",\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"wireMessage\": \"Payment for invoice INV-2026-001\",\n \"sepaReference\": \"INV-2026-001\",\n \"achReference\": \"ORDER123\",\n \"blockchainMemo\": \"MEMO123456\",\n \"swiftReference\": \"Payment for Invoice\\\\nReference: INV-2026-001\",\n \"rtpReference\": \"Payment for invoice INV-2026-001\"\n },\n \"amount\": {\n \"value\": \"1000000\",\n \"side\": \"SOURCE\"\n },\n \"clientReferenceId\": \"order_abc123\",\n \"counterpartyId\": \"cp_abc123\",\n \"remarks\": \"Partial payment - remaining balance to be paid next month\",\n \"internalRemarks\": \"Approved by ops on 2026-04-15\",\n \"developerFeeFixed\": 100,\n \"developerFeePercent\": 0.015,\n \"documentIds\": [\n \"doc_abc123\",\n \"doc_def456\"\n ],\n \"expiresAt\": \"2026-12-31T23:59:59Z\",\n \"requiresAuthorization\": false,\n \"lock\": false\n}"
response = http.request(request)
puts response.read_body{
"transferId": "tfr_abc123",
"flow": "FIAT_TO_CRYPTO",
"status": "PENDING",
"fundingRequired": true,
"depositInstructions": {
"type": "crypto",
"paymentRail": "ETHEREUM",
"toAddress": "0x1234567890abcdef1234567890abcdef12345678",
"amount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"blockchainMemo": "<string>",
"accountId": "acc_abc123"
},
"fundingInstructions": {
"reference": "CDX-7K2A9V",
"currency": "EUR",
"amount": "10000",
"supportedRails": [
"SEPA"
],
"bank": {
"name": "Commerzbank AG",
"address": "Mainzer Landstraße 153, 60327 Frankfurt",
"country": "DE"
},
"accounts": [
{
"supportedRails": [
"SEPA"
],
"accountHolderName": "Acme Onramp Ltd",
"accountNumber": "12345678",
"iban": "DE89370400440532013000",
"bic": "COBADEFFXXX",
"sortCode": "12-34-56",
"routingNumber": "021000021"
}
],
"expiresAt": "2026-05-26T19:54:00.000Z",
"swiftRoutingBanks": [
{
"role": "INTERMEDIARY",
"bankName": "Citibank N.A.",
"bic": "CITIUS33XXX",
"abaRoutingNumber": "021000089"
}
]
},
"fundingDeadline": "2023-11-07T05:31:56Z"
}Authorizations
API Key in Bearer format (e.g., Bearer sk_test_...)
Headers
API key
Required UUID preventing duplicate unlocked confirmations.
Body
Primary customer ID (on whose behalf the transfer is made)
"cus_abc123"
Source payment details
Show child attributes
Show child attributes
Destination payment details
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Reason for the payment (compliance/AML).
CAPITAL_CONTRIBUTIONS, CHARITABLE_CONTRIBUTIONS, CONSULTING_FEES, CORPORATE_TAX_PAYMENTS, DOWN_PAYMENTS_FOR_REAL_ESTATE, EDUCATION_FEES, EMPLOYEE_SALARIES_OR_WAGES, EXPENSES_REIMBURSEMENT, GIFTS, GOVERNMENT_GRANTS, INCOME_TAX_PAYMENTS, INHERITANCE_PAYMENTS, INSURANCE_CLAIM_PAYOUTS, INSURANCE_PREMIUM_PAYMENTS, INVESTMENTS, LOAN_ADVANCES, MORTGAGE_PAYMENTS, OTHER, PAYMENT_FOR_GOODS_AND_SERVICES, PERSONAL_TRANSFERS, REAL_ESTATE_PURCHASES, REMITTANCES, RENT, REPAYMENT_OF_LOANS, ROYALTIES, SELF, TRADE_SETTLEMENT, TRUST_FUND_DISTRIBUTIONS, UTILITY_BILLS, WELFARE_OR_BENEFITS, WINNINGS_AND_PRIZES Client's internal reference ID (e.g., order ID, transaction ID)
256"order_abc123"
Counterparty ID for third-party recipient transfers. Omit for first-party transfers.
"cp_abc123"
Free-form remarks or notes about the transfer (e.g., invoice discrepancy explanations)
1000"Partial payment - remaining balance to be paid next month"
Internal remarks visible only within your organization. Never forwarded to payment rails (SWIFT, ACH, etc.) or counterparties.
1000"Approved by ops on 2026-04-15"
Fixed developer fee in minor units of source currency. Added on top of provider fees and deducted from the transfer amount.
100
Developer fee as decimal percentage (e.g., 0.015 for 1.5%). Deducted from the transfer amount before sending to the destination. Maximum 0.1 (10%).
x <= 0.10.015
Supporting document IDs for the transfer. Required for third-party SWIFT payments (when the destination account is marked as third-party or the destination customer differs from the originating customer).
["doc_abc123", "doc_def456"]
Optional transfer expiration timestamp. If omitted, the transfer expires 7 days after creation when funded by a fiat pay-in (wire/ACH) and 48 hours after creation otherwise.
"2026-12-31T23:59:59Z"
If true, this payment must be authorized before it is processed. Attach the supporting invoice via documentIds. The transfer parks in PENDING_AUTHORIZATION and does not move funds until it is approved.
Persist a firm quote that can be confirmed. Preview quotes omit this.
false
Response
Transfer created from the quoted intent.
"tfr_abc123"
Customer-facing transfer flow.
"FIAT_TO_CRYPTO"
Current customer-facing transfer status.
"PENDING"
Whether customer funding is required.
true
Deposit instructions when customer funding is required.
- Option 1
- Option 2
Show child attributes
Show child attributes
Bank funding instructions when a wire deposit is required.
Show child attributes
Show child attributes
Customer funding deadline when funding is required.
Was this page helpful?