curl --request POST \
--url https://sandbox.zapyd.com/cms/api/v1/bank/payout/create \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-SIGNATURE: <api-key>' \
--header 'X-TIMESTAMP: <api-key>' \
--data '
{
"customer_id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4",
"identifiers": {
"br_cpf": "12345678909"
},
"bank_account_type": "PIX",
"transfer_purpose": "FAMILY_MAINTENANCE",
"is_self_transfer": false
}
'import requests
url = "https://sandbox.zapyd.com/cms/api/v1/bank/payout/create"
payload = {
"customer_id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4",
"identifiers": { "br_cpf": "12345678909" },
"bank_account_type": "PIX",
"transfer_purpose": "FAMILY_MAINTENANCE",
"is_self_transfer": False
}
headers = {
"X-API-KEY": "<api-key>",
"X-TIMESTAMP": "<api-key>",
"X-SIGNATURE": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-TIMESTAMP': '<api-key>',
'X-SIGNATURE': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
customer_id: '84737c7d-7b62-4204-80d6-80f6ecb3ceb4',
identifiers: {br_cpf: '12345678909'},
bank_account_type: 'PIX',
transfer_purpose: 'FAMILY_MAINTENANCE',
is_self_transfer: false
})
};
fetch('https://sandbox.zapyd.com/cms/api/v1/bank/payout/create', 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.zapyd.com/cms/api/v1/bank/payout/create",
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([
'customer_id' => '84737c7d-7b62-4204-80d6-80f6ecb3ceb4',
'identifiers' => [
'br_cpf' => '12345678909'
],
'bank_account_type' => 'PIX',
'transfer_purpose' => 'FAMILY_MAINTENANCE',
'is_self_transfer' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>",
"X-SIGNATURE: <api-key>",
"X-TIMESTAMP: <api-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.zapyd.com/cms/api/v1/bank/payout/create"
payload := strings.NewReader("{\n \"customer_id\": \"84737c7d-7b62-4204-80d6-80f6ecb3ceb4\",\n \"identifiers\": {\n \"br_cpf\": \"12345678909\"\n },\n \"bank_account_type\": \"PIX\",\n \"transfer_purpose\": \"FAMILY_MAINTENANCE\",\n \"is_self_transfer\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-TIMESTAMP", "<api-key>")
req.Header.Add("X-SIGNATURE", "<api-key>")
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.zapyd.com/cms/api/v1/bank/payout/create")
.header("X-API-KEY", "<api-key>")
.header("X-TIMESTAMP", "<api-key>")
.header("X-SIGNATURE", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"customer_id\": \"84737c7d-7b62-4204-80d6-80f6ecb3ceb4\",\n \"identifiers\": {\n \"br_cpf\": \"12345678909\"\n },\n \"bank_account_type\": \"PIX\",\n \"transfer_purpose\": \"FAMILY_MAINTENANCE\",\n \"is_self_transfer\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.zapyd.com/cms/api/v1/bank/payout/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-TIMESTAMP"] = '<api-key>'
request["X-SIGNATURE"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_id\": \"84737c7d-7b62-4204-80d6-80f6ecb3ceb4\",\n \"identifiers\": {\n \"br_cpf\": \"12345678909\"\n },\n \"bank_account_type\": \"PIX\",\n \"transfer_purpose\": \"FAMILY_MAINTENANCE\",\n \"is_self_transfer\": false\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"id": "4e6f1b20-a73c-11ec-b909-0242ac120002",
"customer_id": "550e8400-e29b-41d4-a716-446655440000",
"country": "IND",
"bank_account_type": "ACCOUNT_DETAILS",
"identifiers": {
"account_number": "7627389201",
"ifsc": "SBIN0001829"
},
"bank_account_status": "VERIFIED",
"beneficiary_name": "JOHN DOE",
"bank_name": "State Bank of India",
"failure_reason": null
}
}{
"status": false,
"message": "Bad Request",
"data": null,
"errors": {
"identifiers": [
"'br_cpf' is required for BRA/PIX."
]
},
"err_code": "UNKNOWN_ERROR"
}{
"status": false,
"message": "Internal Server Error",
"data": null,
"errors": {},
"err_code": "SYS_INTERNAL_ERROR"
}Add Payout Bank Account
Adds a beneficiary bank account for a payout-only corridor. The identifiers depend on the country.
curl --request POST \
--url https://sandbox.zapyd.com/cms/api/v1/bank/payout/create \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'X-SIGNATURE: <api-key>' \
--header 'X-TIMESTAMP: <api-key>' \
--data '
{
"customer_id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4",
"identifiers": {
"br_cpf": "12345678909"
},
"bank_account_type": "PIX",
"transfer_purpose": "FAMILY_MAINTENANCE",
"is_self_transfer": false
}
'import requests
url = "https://sandbox.zapyd.com/cms/api/v1/bank/payout/create"
payload = {
"customer_id": "84737c7d-7b62-4204-80d6-80f6ecb3ceb4",
"identifiers": { "br_cpf": "12345678909" },
"bank_account_type": "PIX",
"transfer_purpose": "FAMILY_MAINTENANCE",
"is_self_transfer": False
}
headers = {
"X-API-KEY": "<api-key>",
"X-TIMESTAMP": "<api-key>",
"X-SIGNATURE": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-TIMESTAMP': '<api-key>',
'X-SIGNATURE': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
customer_id: '84737c7d-7b62-4204-80d6-80f6ecb3ceb4',
identifiers: {br_cpf: '12345678909'},
bank_account_type: 'PIX',
transfer_purpose: 'FAMILY_MAINTENANCE',
is_self_transfer: false
})
};
fetch('https://sandbox.zapyd.com/cms/api/v1/bank/payout/create', 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.zapyd.com/cms/api/v1/bank/payout/create",
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([
'customer_id' => '84737c7d-7b62-4204-80d6-80f6ecb3ceb4',
'identifiers' => [
'br_cpf' => '12345678909'
],
'bank_account_type' => 'PIX',
'transfer_purpose' => 'FAMILY_MAINTENANCE',
'is_self_transfer' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>",
"X-SIGNATURE: <api-key>",
"X-TIMESTAMP: <api-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.zapyd.com/cms/api/v1/bank/payout/create"
payload := strings.NewReader("{\n \"customer_id\": \"84737c7d-7b62-4204-80d6-80f6ecb3ceb4\",\n \"identifiers\": {\n \"br_cpf\": \"12345678909\"\n },\n \"bank_account_type\": \"PIX\",\n \"transfer_purpose\": \"FAMILY_MAINTENANCE\",\n \"is_self_transfer\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-TIMESTAMP", "<api-key>")
req.Header.Add("X-SIGNATURE", "<api-key>")
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.zapyd.com/cms/api/v1/bank/payout/create")
.header("X-API-KEY", "<api-key>")
.header("X-TIMESTAMP", "<api-key>")
.header("X-SIGNATURE", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"customer_id\": \"84737c7d-7b62-4204-80d6-80f6ecb3ceb4\",\n \"identifiers\": {\n \"br_cpf\": \"12345678909\"\n },\n \"bank_account_type\": \"PIX\",\n \"transfer_purpose\": \"FAMILY_MAINTENANCE\",\n \"is_self_transfer\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.zapyd.com/cms/api/v1/bank/payout/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-TIMESTAMP"] = '<api-key>'
request["X-SIGNATURE"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_id\": \"84737c7d-7b62-4204-80d6-80f6ecb3ceb4\",\n \"identifiers\": {\n \"br_cpf\": \"12345678909\"\n },\n \"bank_account_type\": \"PIX\",\n \"transfer_purpose\": \"FAMILY_MAINTENANCE\",\n \"is_self_transfer\": false\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "Success",
"data": {
"id": "4e6f1b20-a73c-11ec-b909-0242ac120002",
"customer_id": "550e8400-e29b-41d4-a716-446655440000",
"country": "IND",
"bank_account_type": "ACCOUNT_DETAILS",
"identifiers": {
"account_number": "7627389201",
"ifsc": "SBIN0001829"
},
"bank_account_status": "VERIFIED",
"beneficiary_name": "JOHN DOE",
"bank_name": "State Bank of India",
"failure_reason": null
}
}{
"status": false,
"message": "Bad Request",
"data": null,
"errors": {
"identifiers": [
"'br_cpf' is required for BRA/PIX."
]
},
"err_code": "UNKNOWN_ERROR"
}{
"status": false,
"message": "Internal Server Error",
"data": null,
"errors": {},
"err_code": "SYS_INTERNAL_ERROR"
}Add Payout Bank Account
Authorizations
API Key for authentication
Current timestamp in seconds since epoch
HMAC SHA256 signature of the request encoded in Base64
Body
Customer from Create Payout Customer
"84737c7d-7b62-4204-80d6-80f6ecb3ceb4"
Method-specific fields, e.g. {br_cpf} for PIX, {account_holder_name, account_number (IBAN), swift_code} for SEPA.
{ "br_cpf": "12345678909" }
Payout method for the country, e.g. PIX, SEPA, WIRE, SPEI, ACH_PUSH. Defaults to the country's default method.
"PIX"
Purpose of transfer (every country except India). Defaults to TRANSFER_TO_OWN_ACCOUNT.
TRANSFER_TO_OWN_ACCOUNT, FAMILY_MAINTENANCE, EDUCATION, MEDICAL_TREATMENT, HOTEL, TRAVEL, REPAYMENT_OF_LOANS, TAX_PAYMENT, PURCHASE_PROPERTY, PROPERTY_RENTAL, INSURANCE_PREMIUM, PRODUCT_INDEMNITY_INSURANCE, INSURANCE_CLAIMS, MUTUAL_FUND_INVESTMENT, INVESTMENT_SHARES, DONATIONS, SALARY, INFO_SERVICE, ADVERTISING, ROYALTY_FEES, BROKER_FEES, ADVISOR_FEES, REPRESENTATIVE_EXPENSES, CONSTRUCTION, TRANSPORTATION, EXPORTED_GOODS, DELIVERY_FEES, GENERAL_GOODS_OFFLINE "FAMILY_MAINTENANCE"
Whether the beneficiary is the sender (every country except India). Defaults to true.
false
Response
Success
true
"Success"
Hide child attributes
Hide child attributes
Bank account ID
"4e6f1b20-a73c-11ec-b909-0242ac120002"
Customer ID
"550e8400-e29b-41d4-a716-446655440000"
Customer country (alpha-3)
"IND"
Payment rail
ACCOUNT_DETAILS, UPI "ACCOUNT_DETAILS"
Rail-specific identifiers. ACCOUNT_DETAILS: account_number and ifsc. UPI: vpa.
{ "account_number": "7627389201", "ifsc": "SBIN0001829" }
Verification status
PROCESSING, VERIFIED, FAILED, MANUAL_REVIEW "VERIFIED"
Account holder name returned by bank verification
"JOHN DOE"
Bank name
"State Bank of India"
Set when bank_account_status is FAILED
null