curl --request POST \
--url https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"country": "US",
"currency": "USD",
"name": "Primary Bank Account",
"paymentMethod": "ACH",
"details": {
"accountHolderName": "John Doe",
"bankAccountNumber": "123456789012",
"bankRoutingNumber": "123456789",
"bankAccountType": "Checking",
"bankName": "Example Bank",
"recipientRelationship": "first party"
}
}
'import requests
url = "https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions"
payload = {
"country": "US",
"currency": "USD",
"name": "Primary Bank Account",
"paymentMethod": "ACH",
"details": {
"accountHolderName": "John Doe",
"bankAccountNumber": "123456789012",
"bankRoutingNumber": "123456789",
"bankAccountType": "Checking",
"bankName": "Example Bank",
"recipientRelationship": "first party"
}
}
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({
country: 'US',
currency: 'USD',
name: 'Primary Bank Account',
paymentMethod: 'ACH',
details: {
accountHolderName: 'John Doe',
bankAccountNumber: '123456789012',
bankRoutingNumber: '123456789',
bankAccountType: 'Checking',
bankName: 'Example Bank',
recipientRelationship: 'first party'
}
})
};
fetch('https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions', 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.borderless.xyz/v1/identities/{identityId}/payment-instructions",
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([
'country' => 'US',
'currency' => 'USD',
'name' => 'Primary Bank Account',
'paymentMethod' => 'ACH',
'details' => [
'accountHolderName' => 'John Doe',
'bankAccountNumber' => '123456789012',
'bankRoutingNumber' => '123456789',
'bankAccountType' => 'Checking',
'bankName' => 'Example Bank',
'recipientRelationship' => 'first party'
]
]),
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://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions"
payload := strings.NewReader("{\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"name\": \"Primary Bank Account\",\n \"paymentMethod\": \"ACH\",\n \"details\": {\n \"accountHolderName\": \"John Doe\",\n \"bankAccountNumber\": \"123456789012\",\n \"bankRoutingNumber\": \"123456789\",\n \"bankAccountType\": \"Checking\",\n \"bankName\": \"Example Bank\",\n \"recipientRelationship\": \"first party\"\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://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"name\": \"Primary Bank Account\",\n \"paymentMethod\": \"ACH\",\n \"details\": {\n \"accountHolderName\": \"John Doe\",\n \"bankAccountNumber\": \"123456789012\",\n \"bankRoutingNumber\": \"123456789\",\n \"bankAccountType\": \"Checking\",\n \"bankName\": \"Example Bank\",\n \"recipientRelationship\": \"first party\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions")
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 \"country\": \"US\",\n \"currency\": \"USD\",\n \"name\": \"Primary Bank Account\",\n \"paymentMethod\": \"ACH\",\n \"details\": {\n \"accountHolderName\": \"John Doe\",\n \"bankAccountNumber\": \"123456789012\",\n \"bankRoutingNumber\": \"123456789\",\n \"bankAccountType\": \"Checking\",\n \"bankName\": \"Example Bank\",\n \"recipientRelationship\": \"first party\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"identityId": "<string>",
"name": "<string>",
"currency": "USD",
"country": "US",
"deleted": false,
"createdAt": "2023-11-07T05:31:56Z",
"details": {
"bankName": "Chase",
"accountHolderName": "John Doe",
"bankAccountNumberLast4": "6789",
"bankRoutingNumber": "021000021",
"address": {
"id": "<string>",
"street1": "<string>",
"street2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>"
},
"bankSlug": "<string>",
"bankCode": "<string>",
"phone": "<string>",
"taxId": "<string>",
"bankAccountNumber": "123456789"
}
}Create a new Payment Instruction
Create a new Payment Instruction using the data provided in the request body.
curl --request POST \
--url https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"country": "US",
"currency": "USD",
"name": "Primary Bank Account",
"paymentMethod": "ACH",
"details": {
"accountHolderName": "John Doe",
"bankAccountNumber": "123456789012",
"bankRoutingNumber": "123456789",
"bankAccountType": "Checking",
"bankName": "Example Bank",
"recipientRelationship": "first party"
}
}
'import requests
url = "https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions"
payload = {
"country": "US",
"currency": "USD",
"name": "Primary Bank Account",
"paymentMethod": "ACH",
"details": {
"accountHolderName": "John Doe",
"bankAccountNumber": "123456789012",
"bankRoutingNumber": "123456789",
"bankAccountType": "Checking",
"bankName": "Example Bank",
"recipientRelationship": "first party"
}
}
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({
country: 'US',
currency: 'USD',
name: 'Primary Bank Account',
paymentMethod: 'ACH',
details: {
accountHolderName: 'John Doe',
bankAccountNumber: '123456789012',
bankRoutingNumber: '123456789',
bankAccountType: 'Checking',
bankName: 'Example Bank',
recipientRelationship: 'first party'
}
})
};
fetch('https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions', 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.borderless.xyz/v1/identities/{identityId}/payment-instructions",
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([
'country' => 'US',
'currency' => 'USD',
'name' => 'Primary Bank Account',
'paymentMethod' => 'ACH',
'details' => [
'accountHolderName' => 'John Doe',
'bankAccountNumber' => '123456789012',
'bankRoutingNumber' => '123456789',
'bankAccountType' => 'Checking',
'bankName' => 'Example Bank',
'recipientRelationship' => 'first party'
]
]),
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://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions"
payload := strings.NewReader("{\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"name\": \"Primary Bank Account\",\n \"paymentMethod\": \"ACH\",\n \"details\": {\n \"accountHolderName\": \"John Doe\",\n \"bankAccountNumber\": \"123456789012\",\n \"bankRoutingNumber\": \"123456789\",\n \"bankAccountType\": \"Checking\",\n \"bankName\": \"Example Bank\",\n \"recipientRelationship\": \"first party\"\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://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"name\": \"Primary Bank Account\",\n \"paymentMethod\": \"ACH\",\n \"details\": {\n \"accountHolderName\": \"John Doe\",\n \"bankAccountNumber\": \"123456789012\",\n \"bankRoutingNumber\": \"123456789\",\n \"bankAccountType\": \"Checking\",\n \"bankName\": \"Example Bank\",\n \"recipientRelationship\": \"first party\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.borderless.xyz/v1/identities/{identityId}/payment-instructions")
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 \"country\": \"US\",\n \"currency\": \"USD\",\n \"name\": \"Primary Bank Account\",\n \"paymentMethod\": \"ACH\",\n \"details\": {\n \"accountHolderName\": \"John Doe\",\n \"bankAccountNumber\": \"123456789012\",\n \"bankRoutingNumber\": \"123456789\",\n \"bankAccountType\": \"Checking\",\n \"bankName\": \"Example Bank\",\n \"recipientRelationship\": \"first party\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"identityId": "<string>",
"name": "<string>",
"currency": "USD",
"country": "US",
"deleted": false,
"createdAt": "2023-11-07T05:31:56Z",
"details": {
"bankName": "Chase",
"accountHolderName": "John Doe",
"bankAccountNumberLast4": "6789",
"bankRoutingNumber": "021000021",
"address": {
"id": "<string>",
"street1": "<string>",
"street2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>"
},
"bankSlug": "<string>",
"bankCode": "<string>",
"phone": "<string>",
"taxId": "<string>",
"bankAccountNumber": "123456789"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
The country code in ISO-3166-2 format where the payment instructions are applied. See ISO-3166-2 documentation.
AF, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, CV, KH, CM, CA, KY, CF, TD, CL, CN, CX, CC, CO, KM, CD, CG, CK, CR, HR, CU, CW, CY, CZ, CI, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, MK, RO, RU, RW, RE, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, UM, US, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW, AX, ZZ "US"
The fiat currency for the payment instructions. Learn more about supported currencies at Currency Guide.
USD, EUR, BRL, ARS, MXN, COP, CLP, PEN, PYG, DOP, UYU, BOB, CRC, GTQ, BWP, CDF, GHS, KES, MWK, NGN, RWF, ZAR, TZS, UGX, ZMW, XOF, XAF, AUD, BDT, CAD, INR, JPY, NPR, PKR, PHP, SGD, GBP, CNY, HKD, IDR, MYR, KRW, LKR, THB, TRY, VND, CZK, DKK, NOK, PLN, RON, RSD, SEK, CHF, AED, SAR, QAR, ILS, EGP, JOD, HNL, JMD, NZD, DZD, GMD, GNF, HTG, MAD, TND "USD"
A unique identifier for a payment instruction, allowing to distinguish it from other accounts.
1 - 255"Primary Bank Account"
The method used to execute the payment instructions. Learn more at Payment Instructions Guide.
ACH, Wire, Sepa, Swift, Card, MobileMoney, PIX, TED, PSE, SPEI, COELSA, Transfers30, SPAV, CCE, SPI, LBTR, SINPE, Transfer365, NIP, GhIPSS, BankTransfer, EFT, RTP, BECS, FPS, IMPS_FIRC, Breb, NPSS, MADA, ZAHAV, IBFT, SIC "ACH"
The details of the payment instructions, which vary depending on the paymentMethod. Refer to Payment Instructions Guide for specifics.
- US Details (ACH and Wire)
- Bank Details
- Iban Bank Details
- Identifier (PIX)
- Bre-B Key (Colombia)
- SEPA (Europe)
- Mobile Money (Africa)
- UK FPS (Sort Code + IBAN)
Show child attributes
Show child attributes
Response
Successfully created Payment Instruction data.
ACH, Wire, Sepa, Swift, Card, MobileMoney, PIX, TED, PSE, SPEI, COELSA, Transfers30, SPAV, CCE, SPI, LBTR, SINPE, Transfer365, NIP, GhIPSS, BankTransfer, EFT, RTP, BECS, FPS, IMPS_FIRC, Breb, NPSS, MADA, ZAHAV, IBFT, SIC "USD"
AF, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, CV, KH, CM, CA, KY, CF, TD, CL, CN, CX, CC, CO, KM, CD, CG, CK, CR, HR, CU, CW, CY, CZ, CI, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, MK, RO, RU, RW, RE, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, UM, US, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW, AX, ZZ "US"
- US Details (ACH and Wire)
- Iban Bank Details
- Bank Details
- Identifier (PIX)
- Bre-B Key (Colombia)
- SEPA (Europe)
- Swift Details
- Mobile Money (Africa)
- UK FPS (Sort Code + IBAN)
Show child attributes
Show child attributes
Was this page helpful?