curl --request POST \
--url https://api-sandbox.endl.io/api/v0/pobo/recipients \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "INDIVIDUAL",
"firstName": "Juan",
"lastName": "Dela Cruz",
"email": "juan@example.com",
"phone": "+639181234567",
"bankName": "BDO Unibank",
"bankAccountNumber": "0012345678",
"swiftBic": "BNORPHMM",
"accountType": "SAVINGS",
"currency": "PHP",
"payoutRail": "BANK_TRANSFER",
"relationshipToCustomer": "FRIEND",
"recipientAddress": {
"addressLine1": "88 Mabini St",
"city": "Cebu City",
"country": "Philippines",
"countryThreeLetter": "PHL"
}
}
'import requests
url = "https://api-sandbox.endl.io/api/v0/pobo/recipients"
payload = {
"type": "INDIVIDUAL",
"firstName": "Juan",
"lastName": "Dela Cruz",
"email": "juan@example.com",
"phone": "+639181234567",
"bankName": "BDO Unibank",
"bankAccountNumber": "0012345678",
"swiftBic": "BNORPHMM",
"accountType": "SAVINGS",
"currency": "PHP",
"payoutRail": "BANK_TRANSFER",
"relationshipToCustomer": "FRIEND",
"recipientAddress": {
"addressLine1": "88 Mabini St",
"city": "Cebu City",
"country": "Philippines",
"countryThreeLetter": "PHL"
}
}
headers = {
"API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'INDIVIDUAL',
firstName: 'Juan',
lastName: 'Dela Cruz',
email: 'juan@example.com',
phone: '+639181234567',
bankName: 'BDO Unibank',
bankAccountNumber: '0012345678',
swiftBic: 'BNORPHMM',
accountType: 'SAVINGS',
currency: 'PHP',
payoutRail: 'BANK_TRANSFER',
relationshipToCustomer: 'FRIEND',
recipientAddress: {
addressLine1: '88 Mabini St',
city: 'Cebu City',
country: 'Philippines',
countryThreeLetter: 'PHL'
}
})
};
fetch('https://api-sandbox.endl.io/api/v0/pobo/recipients', 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.endl.io/api/v0/pobo/recipients",
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([
'type' => 'INDIVIDUAL',
'firstName' => 'Juan',
'lastName' => 'Dela Cruz',
'email' => 'juan@example.com',
'phone' => '+639181234567',
'bankName' => 'BDO Unibank',
'bankAccountNumber' => '0012345678',
'swiftBic' => 'BNORPHMM',
'accountType' => 'SAVINGS',
'currency' => 'PHP',
'payoutRail' => 'BANK_TRANSFER',
'relationshipToCustomer' => 'FRIEND',
'recipientAddress' => [
'addressLine1' => '88 Mabini St',
'city' => 'Cebu City',
'country' => 'Philippines',
'countryThreeLetter' => 'PHL'
]
]),
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>",
"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.endl.io/api/v0/pobo/recipients"
payload := strings.NewReader("{\n \"type\": \"INDIVIDUAL\",\n \"firstName\": \"Juan\",\n \"lastName\": \"Dela Cruz\",\n \"email\": \"juan@example.com\",\n \"phone\": \"+639181234567\",\n \"bankName\": \"BDO Unibank\",\n \"bankAccountNumber\": \"0012345678\",\n \"swiftBic\": \"BNORPHMM\",\n \"accountType\": \"SAVINGS\",\n \"currency\": \"PHP\",\n \"payoutRail\": \"BANK_TRANSFER\",\n \"relationshipToCustomer\": \"FRIEND\",\n \"recipientAddress\": {\n \"addressLine1\": \"88 Mabini St\",\n \"city\": \"Cebu City\",\n \"country\": \"Philippines\",\n \"countryThreeLetter\": \"PHL\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-KEY", "<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://api-sandbox.endl.io/api/v0/pobo/recipients")
.header("API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"INDIVIDUAL\",\n \"firstName\": \"Juan\",\n \"lastName\": \"Dela Cruz\",\n \"email\": \"juan@example.com\",\n \"phone\": \"+639181234567\",\n \"bankName\": \"BDO Unibank\",\n \"bankAccountNumber\": \"0012345678\",\n \"swiftBic\": \"BNORPHMM\",\n \"accountType\": \"SAVINGS\",\n \"currency\": \"PHP\",\n \"payoutRail\": \"BANK_TRANSFER\",\n \"relationshipToCustomer\": \"FRIEND\",\n \"recipientAddress\": {\n \"addressLine1\": \"88 Mabini St\",\n \"city\": \"Cebu City\",\n \"country\": \"Philippines\",\n \"countryThreeLetter\": \"PHL\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.endl.io/api/v0/pobo/recipients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"INDIVIDUAL\",\n \"firstName\": \"Juan\",\n \"lastName\": \"Dela Cruz\",\n \"email\": \"juan@example.com\",\n \"phone\": \"+639181234567\",\n \"bankName\": \"BDO Unibank\",\n \"bankAccountNumber\": \"0012345678\",\n \"swiftBic\": \"BNORPHMM\",\n \"accountType\": \"SAVINGS\",\n \"currency\": \"PHP\",\n \"payoutRail\": \"BANK_TRANSFER\",\n \"relationshipToCustomer\": \"FRIEND\",\n \"recipientAddress\": {\n \"addressLine1\": \"88 Mabini St\",\n \"city\": \"Cebu City\",\n \"country\": \"Philippines\",\n \"countryThreeLetter\": \"PHL\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 201,
"message": "Success",
"status": "SUCCESS",
"data": {},
"errors": []
}{
"code": 400,
"message": "Rail not supported for POBO",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Rail not supported for POBO",
"field": null
}
]
}{
"data": null,
"code": 401,
"message": "Authentication Failed!",
"status": "Error",
"errors": [
{
"code": "401",
"message": "Authentication Failed!",
"field": "Authentication Failed!"
}
]
}{
"data": null,
"code": 403,
"message": "API key does not have 'pobo' permission",
"status": "Error",
"errors": [
{
"code": "403",
"message": "API key does not have 'pobo' permission",
"field": "API key does not have 'pobo' permission"
}
]
}{
"code": 409,
"message": "A sender with this governmentId already exists for this partner",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "CONFLICT",
"message": "A sender with this governmentId already exists for this partner",
"field": null
}
]
}{
"data": null,
"code": 429,
"message": "Rate limit exceeded, please retry later",
"status": "Error",
"errors": [
{
"code": "429",
"message": "Rate limit exceeded, please retry later",
"field": "Rate limit exceeded, please retry later"
}
]
}{
"code": 500,
"message": "Unexpected error",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "INTERNAL_ERROR",
"message": "Unexpected error",
"field": null
}
]
}{
"data": null,
"code": 502,
"message": "Upstream service error",
"status": "Error",
"errors": null
}Create a recipient under your POBO scope.
Which fields are required varies by payoutRail and currency. Ask Get recipient required fields on the standard Partner API first and collect exactly what it returns.
The response returns a rec_ reference id.
curl --request POST \
--url https://api-sandbox.endl.io/api/v0/pobo/recipients \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "INDIVIDUAL",
"firstName": "Juan",
"lastName": "Dela Cruz",
"email": "juan@example.com",
"phone": "+639181234567",
"bankName": "BDO Unibank",
"bankAccountNumber": "0012345678",
"swiftBic": "BNORPHMM",
"accountType": "SAVINGS",
"currency": "PHP",
"payoutRail": "BANK_TRANSFER",
"relationshipToCustomer": "FRIEND",
"recipientAddress": {
"addressLine1": "88 Mabini St",
"city": "Cebu City",
"country": "Philippines",
"countryThreeLetter": "PHL"
}
}
'import requests
url = "https://api-sandbox.endl.io/api/v0/pobo/recipients"
payload = {
"type": "INDIVIDUAL",
"firstName": "Juan",
"lastName": "Dela Cruz",
"email": "juan@example.com",
"phone": "+639181234567",
"bankName": "BDO Unibank",
"bankAccountNumber": "0012345678",
"swiftBic": "BNORPHMM",
"accountType": "SAVINGS",
"currency": "PHP",
"payoutRail": "BANK_TRANSFER",
"relationshipToCustomer": "FRIEND",
"recipientAddress": {
"addressLine1": "88 Mabini St",
"city": "Cebu City",
"country": "Philippines",
"countryThreeLetter": "PHL"
}
}
headers = {
"API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'INDIVIDUAL',
firstName: 'Juan',
lastName: 'Dela Cruz',
email: 'juan@example.com',
phone: '+639181234567',
bankName: 'BDO Unibank',
bankAccountNumber: '0012345678',
swiftBic: 'BNORPHMM',
accountType: 'SAVINGS',
currency: 'PHP',
payoutRail: 'BANK_TRANSFER',
relationshipToCustomer: 'FRIEND',
recipientAddress: {
addressLine1: '88 Mabini St',
city: 'Cebu City',
country: 'Philippines',
countryThreeLetter: 'PHL'
}
})
};
fetch('https://api-sandbox.endl.io/api/v0/pobo/recipients', 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.endl.io/api/v0/pobo/recipients",
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([
'type' => 'INDIVIDUAL',
'firstName' => 'Juan',
'lastName' => 'Dela Cruz',
'email' => 'juan@example.com',
'phone' => '+639181234567',
'bankName' => 'BDO Unibank',
'bankAccountNumber' => '0012345678',
'swiftBic' => 'BNORPHMM',
'accountType' => 'SAVINGS',
'currency' => 'PHP',
'payoutRail' => 'BANK_TRANSFER',
'relationshipToCustomer' => 'FRIEND',
'recipientAddress' => [
'addressLine1' => '88 Mabini St',
'city' => 'Cebu City',
'country' => 'Philippines',
'countryThreeLetter' => 'PHL'
]
]),
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>",
"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.endl.io/api/v0/pobo/recipients"
payload := strings.NewReader("{\n \"type\": \"INDIVIDUAL\",\n \"firstName\": \"Juan\",\n \"lastName\": \"Dela Cruz\",\n \"email\": \"juan@example.com\",\n \"phone\": \"+639181234567\",\n \"bankName\": \"BDO Unibank\",\n \"bankAccountNumber\": \"0012345678\",\n \"swiftBic\": \"BNORPHMM\",\n \"accountType\": \"SAVINGS\",\n \"currency\": \"PHP\",\n \"payoutRail\": \"BANK_TRANSFER\",\n \"relationshipToCustomer\": \"FRIEND\",\n \"recipientAddress\": {\n \"addressLine1\": \"88 Mabini St\",\n \"city\": \"Cebu City\",\n \"country\": \"Philippines\",\n \"countryThreeLetter\": \"PHL\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-KEY", "<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://api-sandbox.endl.io/api/v0/pobo/recipients")
.header("API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"type\": \"INDIVIDUAL\",\n \"firstName\": \"Juan\",\n \"lastName\": \"Dela Cruz\",\n \"email\": \"juan@example.com\",\n \"phone\": \"+639181234567\",\n \"bankName\": \"BDO Unibank\",\n \"bankAccountNumber\": \"0012345678\",\n \"swiftBic\": \"BNORPHMM\",\n \"accountType\": \"SAVINGS\",\n \"currency\": \"PHP\",\n \"payoutRail\": \"BANK_TRANSFER\",\n \"relationshipToCustomer\": \"FRIEND\",\n \"recipientAddress\": {\n \"addressLine1\": \"88 Mabini St\",\n \"city\": \"Cebu City\",\n \"country\": \"Philippines\",\n \"countryThreeLetter\": \"PHL\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.endl.io/api/v0/pobo/recipients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"type\": \"INDIVIDUAL\",\n \"firstName\": \"Juan\",\n \"lastName\": \"Dela Cruz\",\n \"email\": \"juan@example.com\",\n \"phone\": \"+639181234567\",\n \"bankName\": \"BDO Unibank\",\n \"bankAccountNumber\": \"0012345678\",\n \"swiftBic\": \"BNORPHMM\",\n \"accountType\": \"SAVINGS\",\n \"currency\": \"PHP\",\n \"payoutRail\": \"BANK_TRANSFER\",\n \"relationshipToCustomer\": \"FRIEND\",\n \"recipientAddress\": {\n \"addressLine1\": \"88 Mabini St\",\n \"city\": \"Cebu City\",\n \"country\": \"Philippines\",\n \"countryThreeLetter\": \"PHL\"\n }\n}"
response = http.request(request)
puts response.read_body{
"code": 201,
"message": "Success",
"status": "SUCCESS",
"data": {},
"errors": []
}{
"code": 400,
"message": "Rail not supported for POBO",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Rail not supported for POBO",
"field": null
}
]
}{
"data": null,
"code": 401,
"message": "Authentication Failed!",
"status": "Error",
"errors": [
{
"code": "401",
"message": "Authentication Failed!",
"field": "Authentication Failed!"
}
]
}{
"data": null,
"code": 403,
"message": "API key does not have 'pobo' permission",
"status": "Error",
"errors": [
{
"code": "403",
"message": "API key does not have 'pobo' permission",
"field": "API key does not have 'pobo' permission"
}
]
}{
"code": 409,
"message": "A sender with this governmentId already exists for this partner",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "CONFLICT",
"message": "A sender with this governmentId already exists for this partner",
"field": null
}
]
}{
"data": null,
"code": 429,
"message": "Rate limit exceeded, please retry later",
"status": "Error",
"errors": [
{
"code": "429",
"message": "Rate limit exceeded, please retry later",
"field": "Rate limit exceeded, please retry later"
}
]
}{
"code": 500,
"message": "Unexpected error",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "INTERNAL_ERROR",
"message": "Unexpected error",
"field": null
}
]
}{
"data": null,
"code": 502,
"message": "Upstream service error",
"status": "Error",
"errors": null
}Authorizations
Your partner API key. Must carry the pobo permission.
Body
INDIVIDUAL or BUSINESS.
INDIVIDUAL, BUSINESS Given name.
Family name.
Your own label for this recipient.
Contact email.
Contact phone in E.164.
Receiving bank.
Account number at the receiving bank.
SWIFT/BIC of the receiving bank.
Account type — SAVINGS, CHECKING.
Destination currency, ISO 4217 — PHP.
Payout rail. POBO accepts Paywho rails only.
Relationship of the recipient to your customer.
Postal address. countryThreeLetter is the ISO 3166-1 alpha-3 code.
Show child attributes
Show child attributes
Response
Recipient created. data carries the rec_ reference id.