curl --request PUT \
--url https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"swiftCode": "<string>",
"countryCode": "<string>",
"recipientAddress": "<string>",
"recipientCity": "<string>",
"recipientState": "<string>",
"recipientZip": "<string>",
"iban": "<string>",
"accountNumber": "<string>",
"bankCode": "<string>",
"transitNumber": "<string>",
"canadianAccountNumber": "<string>",
"hongKongAccountNumber": "<string>",
"indianAccountNumber": "<string>",
"ifscCode": "<string>",
"chineseAccountNumber": "<string>",
"correspondentSwiftCode": "<string>"
}
'import requests
url = "https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire"
payload = {
"swiftCode": "<string>",
"countryCode": "<string>",
"recipientAddress": "<string>",
"recipientCity": "<string>",
"recipientState": "<string>",
"recipientZip": "<string>",
"iban": "<string>",
"accountNumber": "<string>",
"bankCode": "<string>",
"transitNumber": "<string>",
"canadianAccountNumber": "<string>",
"hongKongAccountNumber": "<string>",
"indianAccountNumber": "<string>",
"ifscCode": "<string>",
"chineseAccountNumber": "<string>",
"correspondentSwiftCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
swiftCode: '<string>',
countryCode: '<string>',
recipientAddress: '<string>',
recipientCity: '<string>',
recipientState: '<string>',
recipientZip: '<string>',
iban: '<string>',
accountNumber: '<string>',
bankCode: '<string>',
transitNumber: '<string>',
canadianAccountNumber: '<string>',
hongKongAccountNumber: '<string>',
indianAccountNumber: '<string>',
ifscCode: '<string>',
chineseAccountNumber: '<string>',
correspondentSwiftCode: '<string>'
})
};
fetch('https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire', 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://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'swiftCode' => '<string>',
'countryCode' => '<string>',
'recipientAddress' => '<string>',
'recipientCity' => '<string>',
'recipientState' => '<string>',
'recipientZip' => '<string>',
'iban' => '<string>',
'accountNumber' => '<string>',
'bankCode' => '<string>',
'transitNumber' => '<string>',
'canadianAccountNumber' => '<string>',
'hongKongAccountNumber' => '<string>',
'indianAccountNumber' => '<string>',
'ifscCode' => '<string>',
'chineseAccountNumber' => '<string>',
'correspondentSwiftCode' => '<string>'
]),
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://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire"
payload := strings.NewReader("{\n \"swiftCode\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"recipientAddress\": \"<string>\",\n \"recipientCity\": \"<string>\",\n \"recipientState\": \"<string>\",\n \"recipientZip\": \"<string>\",\n \"iban\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"bankCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"canadianAccountNumber\": \"<string>\",\n \"hongKongAccountNumber\": \"<string>\",\n \"indianAccountNumber\": \"<string>\",\n \"ifscCode\": \"<string>\",\n \"chineseAccountNumber\": \"<string>\",\n \"correspondentSwiftCode\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"swiftCode\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"recipientAddress\": \"<string>\",\n \"recipientCity\": \"<string>\",\n \"recipientState\": \"<string>\",\n \"recipientZip\": \"<string>\",\n \"iban\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"bankCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"canadianAccountNumber\": \"<string>\",\n \"hongKongAccountNumber\": \"<string>\",\n \"indianAccountNumber\": \"<string>\",\n \"ifscCode\": \"<string>\",\n \"chineseAccountNumber\": \"<string>\",\n \"correspondentSwiftCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"swiftCode\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"recipientAddress\": \"<string>\",\n \"recipientCity\": \"<string>\",\n \"recipientState\": \"<string>\",\n \"recipientZip\": \"<string>\",\n \"iban\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"bankCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"canadianAccountNumber\": \"<string>\",\n \"hongKongAccountNumber\": \"<string>\",\n \"indianAccountNumber\": \"<string>\",\n \"ifscCode\": \"<string>\",\n \"chineseAccountNumber\": \"<string>\",\n \"correspondentSwiftCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"vendorId": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Update vendor wire delivery method
Sets or replaces the vendor’s international wire delivery method — a SWIFT wire to a non-US beneficiary bank. Bill payments using this delivery method incur a $20 international wire fee, collected as a separate ACH debit from your funding source.
This endpoint does not configure US domestic (Fedwire) transfers.
countryCode must be one of the supported international wire destinations (see the field description on VendorWireUpdateRequest). Sending an unsupported country returns a 400 with bankCountry "<value>" is not a supported international wire destination.
Most destinations require iban. Country-specific local account fields replace iban for:
- Canada (
CA/CAN) —canadianAccountNumber,bankCode(3-digit institution number),transitNumber(5-digit branch transit). - Hong Kong (
HK/HKG) —hongKongAccountNumber. - India (
IN/IND) —indianAccountNumber,ifscCode. - China (
CN/CHN) —chineseAccountNumber(USD wires route on the beneficiary bank’s SWIFT/BIC; no CNAPS code). - Mexico (
MX/MEX) —accountNumber(the 18-digit CLABE). - Australia (
AU/AUS) —accountNumber,bankCode(6-digit BSB). - New Zealand (
NZ/NZL) —accountNumber(the full 15-16 digit account number, including bank, branch, and suffix). - Singapore (
SG/SGP) —accountNumber. - Japan (
JP/JPN) —accountNumber. - Chile (
CL/CHL) —accountNumber. - Peru (
PE/PER) —accountNumber(the bank account number or the 20-digit CCI). - Panama (
PA/PAN) —accountNumber. - South Korea (
KR/KOR) —accountNumber. - Taiwan (
TW/TWN) —accountNumber. - Thailand (
TH/THA) —accountNumber. - Indonesia (
ID/IDN) —accountNumber. - Malaysia (
MY/MYS) —accountNumber. - Philippines (
PH/PHL) —accountNumber. - Ecuador (
EC/ECU) —accountNumber. - Colombia (
CO/COL) —accountNumber. - Uruguay (
UY/URY) —accountNumber.
Also available at the legacy path PUT /vendor/{vendorId}/payoutMethod/wire.
curl --request PUT \
--url https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"swiftCode": "<string>",
"countryCode": "<string>",
"recipientAddress": "<string>",
"recipientCity": "<string>",
"recipientState": "<string>",
"recipientZip": "<string>",
"iban": "<string>",
"accountNumber": "<string>",
"bankCode": "<string>",
"transitNumber": "<string>",
"canadianAccountNumber": "<string>",
"hongKongAccountNumber": "<string>",
"indianAccountNumber": "<string>",
"ifscCode": "<string>",
"chineseAccountNumber": "<string>",
"correspondentSwiftCode": "<string>"
}
'import requests
url = "https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire"
payload = {
"swiftCode": "<string>",
"countryCode": "<string>",
"recipientAddress": "<string>",
"recipientCity": "<string>",
"recipientState": "<string>",
"recipientZip": "<string>",
"iban": "<string>",
"accountNumber": "<string>",
"bankCode": "<string>",
"transitNumber": "<string>",
"canadianAccountNumber": "<string>",
"hongKongAccountNumber": "<string>",
"indianAccountNumber": "<string>",
"ifscCode": "<string>",
"chineseAccountNumber": "<string>",
"correspondentSwiftCode": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
swiftCode: '<string>',
countryCode: '<string>',
recipientAddress: '<string>',
recipientCity: '<string>',
recipientState: '<string>',
recipientZip: '<string>',
iban: '<string>',
accountNumber: '<string>',
bankCode: '<string>',
transitNumber: '<string>',
canadianAccountNumber: '<string>',
hongKongAccountNumber: '<string>',
indianAccountNumber: '<string>',
ifscCode: '<string>',
chineseAccountNumber: '<string>',
correspondentSwiftCode: '<string>'
})
};
fetch('https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire', 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://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'swiftCode' => '<string>',
'countryCode' => '<string>',
'recipientAddress' => '<string>',
'recipientCity' => '<string>',
'recipientState' => '<string>',
'recipientZip' => '<string>',
'iban' => '<string>',
'accountNumber' => '<string>',
'bankCode' => '<string>',
'transitNumber' => '<string>',
'canadianAccountNumber' => '<string>',
'hongKongAccountNumber' => '<string>',
'indianAccountNumber' => '<string>',
'ifscCode' => '<string>',
'chineseAccountNumber' => '<string>',
'correspondentSwiftCode' => '<string>'
]),
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://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire"
payload := strings.NewReader("{\n \"swiftCode\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"recipientAddress\": \"<string>\",\n \"recipientCity\": \"<string>\",\n \"recipientState\": \"<string>\",\n \"recipientZip\": \"<string>\",\n \"iban\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"bankCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"canadianAccountNumber\": \"<string>\",\n \"hongKongAccountNumber\": \"<string>\",\n \"indianAccountNumber\": \"<string>\",\n \"ifscCode\": \"<string>\",\n \"chineseAccountNumber\": \"<string>\",\n \"correspondentSwiftCode\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"swiftCode\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"recipientAddress\": \"<string>\",\n \"recipientCity\": \"<string>\",\n \"recipientState\": \"<string>\",\n \"recipientZip\": \"<string>\",\n \"iban\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"bankCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"canadianAccountNumber\": \"<string>\",\n \"hongKongAccountNumber\": \"<string>\",\n \"indianAccountNumber\": \"<string>\",\n \"ifscCode\": \"<string>\",\n \"chineseAccountNumber\": \"<string>\",\n \"correspondentSwiftCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.staging.nickel.com/vendor/{vendorId}/deliveryMethod/wire")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"swiftCode\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"recipientAddress\": \"<string>\",\n \"recipientCity\": \"<string>\",\n \"recipientState\": \"<string>\",\n \"recipientZip\": \"<string>\",\n \"iban\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"bankCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"canadianAccountNumber\": \"<string>\",\n \"hongKongAccountNumber\": \"<string>\",\n \"indianAccountNumber\": \"<string>\",\n \"ifscCode\": \"<string>\",\n \"chineseAccountNumber\": \"<string>\",\n \"correspondentSwiftCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"vendorId": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the vendor
Body
International wire (SWIFT) delivery method details
Beneficiary bank's SWIFT/BIC code. Must be a valid 8- or 11-character ISO 9362 BIC — uppercase letters and digits only, matching ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$.
Beneficiary bank's country. Accepts either the ISO 3166-1 alpha-2 code (e.g. DE) or the alpha-3 code (e.g. DEU), case-insensitive. Must be one of the supported international wire destinations below — sending any other value returns a 400 with bankCountry "<value>" is not a supported international wire destination.
Supported destinations: Albania (AL/ALB), Andorra (AD/AND), Australia (AU/AUS), Austria (AT/AUT), Azerbaijan (AZ/AZE), Bahrain (BH/BHR), Belgium (BE/BEL), Bosnia and Herzegovina (BA/BIH), Brazil (BR/BRA), Bulgaria (BG/BGR), Canada (CA/CAN), Chile (CL/CHL), China (CN/CHN), Colombia (CO/COL), Costa Rica (CR/CRI), Croatia (HR/HRV), Cyprus (CY/CYP), Czech Republic (CZ/CZE), Denmark (DK/DNK), Dominican Republic (DO/DOM), Ecuador (EC/ECU), Egypt (EG/EGY), El Salvador (SV/SLV), Estonia (EE/EST), Faroe Islands (FO/FRO), Finland (FI/FIN), France (FR/FRA), Georgia (GE/GEO), Germany (DE/DEU), Gibraltar (GI/GIB), Greece (GR/GRC), Greenland (GL/GRL), Guatemala (GT/GTM), Hong Kong (HK/HKG), Hungary (HU/HUN), Iceland (IS/ISL), India (IN/IND), Indonesia (ID/IDN), Ireland (IE/IRL), Israel (IL/ISR), Italy (IT/ITA), Japan (JP/JPN), Jordan (JO/JOR), Kazakhstan (KZ/KAZ), Kuwait (KW/KWT), Latvia (LV/LVA), Liechtenstein (LI/LIE), Lithuania (LT/LTU), Luxembourg (LU/LUX), Malaysia (MY/MYS), Malta (MT/MLT), Mauritius (MU/MUS), Mexico (MX/MEX), Moldova (MD/MDA), Monaco (MC/MCO), Montenegro (ME/MNE), Netherlands (NL/NLD), New Zealand (NZ/NZL), North Macedonia (MK/MKD), Norway (NO/NOR), Oman (OM/OMN), Pakistan (PK/PAK), Panama (PA/PAN), Peru (PE/PER), Philippines (PH/PHL), Poland (PL/POL), Portugal (PT/PRT), Qatar (QA/QAT), Romania (RO/ROU), San Marino (SM/SMR), Saudi Arabia (SA/SAU), Serbia (RS/SRB), Singapore (SG/SGP), Slovakia (SK/SVK), Slovenia (SI/SVN), South Korea (KR/KOR), Spain (ES/ESP), Sweden (SE/SWE), Switzerland (CH/CHE), Taiwan (TW/TWN), Thailand (TH/THA), Tunisia (TN/TUN), Turkey (TR/TUR), Ukraine (UA/UKR), United Arab Emirates (AE/ARE), United Kingdom (GB/GBR), Uruguay (UY/URY).
Beneficiary street address. Sent as the SWIFT creditor_address line 1; must be 35 characters or fewer.
Beneficiary city. Must be 35 characters or fewer.
Beneficiary state, province, or region. Must be 35 characters or fewer.
Beneficiary postal code. Must be 16 characters or fewer.
Beneficiary IBAN. Required for every supported destination except Canada, Hong Kong, India, China, Mexico, Australia, New Zealand, Singapore, Japan, South Korea, Taiwan, Thailand, Indonesia, Malaysia, the Philippines, Chile, Peru, Panama, Ecuador, Colombia, and Uruguay (which use local account fields instead). Validated for structure and MOD-97 checksum against countryCode at save time.
Beneficiary local account number for non-IBAN destinations without a dedicated field. Required (in place of iban) when countryCode is:
MX/MEX— the 18-digit CLABE (no spaces or dashes).AU/AUS— 5-10 digit account number; also supplybankCodewith the 6-digit BSB.NZ/NZL— the full 15-16 digit account number (bank, branch, account, and suffix).SG/SGP— 6-17 digit account number.JP/JPN— 4-14 digit account number.CL/CHL— 7-20 digit account number.PE/PER— 8-20 digits: the bank account number, or the 20-digit CCI (Código de Cuenta Interbancario).PA/PAN— 6-20 digit account number.KR/KOR— 8-16 digit account number.TW/TWN— 8-16 digit account number.TH/THA— 8-15 digit account number.ID/IDN— 8-16 digit account number.MY/MYS— 8-16 digit account number.PH/PHL— 8-16 digit account number.EC/ECU— 6-20 digit account number.CO/COL— 8-20 digit account number.UY/URY— 6-20 digit account number.
Canadian institution number (exactly 3 digits, e.g. 003) when countryCode is CA/CAN — concatenated with transitNumber and sent to the payout provider as the SWIFT routing_number. Australian BSB (exactly 6 digits, e.g. 062000) when countryCode is AU/AUS. Required for both destinations.
Canadian branch transit number. Required when countryCode is CA/CAN. Must be exactly 5 digits.
Beneficiary account number for wires to Canada. Required when countryCode is CA/CAN; Canada does not use IBAN. Must be 5-12 digits with no spaces or dashes.
Beneficiary account number for wires to Hong Kong. Required when countryCode is HK/HKG; Hong Kong does not use IBAN. Must be 6-15 digits with no spaces or dashes.
Beneficiary account number for wires to India. Required when countryCode is IN/IND; India does not use IBAN. Must be 9-18 digits with no spaces or dashes.
Indian Financial System Code identifying the beneficiary bank branch. Required when countryCode is IN/IND. Must match ^[A-Z]{4}0[A-Z0-9]{6}$ (e.g. HDFC0001234).
Beneficiary account number for wires to China. Required when countryCode is CN/CHN; China does not use IBAN. Wires are sent in USD and route on the bank's SWIFT/BIC — no CNAPS code is needed. Must be 8-25 digits with no spaces or dashes.
Optional correspondent bank SWIFT/BIC used to route the wire when the beneficiary bank is not directly reachable. Must be a valid 8- or 11-character BIC when supplied.
Response
Successful operation
