Create Onboarding
Start a new onboarding to register a recipient with a payment provider for split payouts
curl --request POST \
--url https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--data '
{
"account_id": "{{account-code}}",
"type": "PREVIOUSLY_ONBOARDED",
"workflow": "DIRECT",
"callback_url": "https://merchant.example.com/webhook/onboarding",
"provider": {
"id": "VR",
"connection_id": "d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4",
"recipient_id": "test01",
"recipient_type": "MULTI_BENEFITS"
},
"documentation": [
{
"file_name": "onboarding.pdf",
"content_type": "application/pdf",
"content_category": "IDENTIFICATION_DOCUMENT",
"content": "VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=="
}
],
"withdrawal_methods": {
"bank": {
"code": "002",
"branch": "002",
"account": "9876543210",
"account_type": "CHECKINGS",
"country": "US",
"currency": "USD",
"routing": "021000022"
}
},
"terms_of_service": {
"acceptance": true,
"date": "2025-07-21T20:43:54.786342Z",
"ip": "129.21.111.11"
}
}
'import requests
url = "https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings"
payload = {
"account_id": "{{account-code}}",
"type": "PREVIOUSLY_ONBOARDED",
"workflow": "DIRECT",
"callback_url": "https://merchant.example.com/webhook/onboarding",
"provider": {
"id": "VR",
"connection_id": "d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4",
"recipient_id": "test01",
"recipient_type": "MULTI_BENEFITS"
},
"documentation": [
{
"file_name": "onboarding.pdf",
"content_type": "application/pdf",
"content_category": "IDENTIFICATION_DOCUMENT",
"content": "VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=="
}
],
"withdrawal_methods": { "bank": {
"code": "002",
"branch": "002",
"account": "9876543210",
"account_type": "CHECKINGS",
"country": "US",
"currency": "USD",
"routing": "021000022"
} },
"terms_of_service": {
"acceptance": True,
"date": "2025-07-21T20:43:54.786342Z",
"ip": "129.21.111.11"
}
}
headers = {
"public-api-key": "<api-key>",
"private-secret-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
account_id: '{{account-code}}',
type: 'PREVIOUSLY_ONBOARDED',
workflow: 'DIRECT',
callback_url: 'https://merchant.example.com/webhook/onboarding',
provider: {
id: 'VR',
connection_id: 'd2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4',
recipient_id: 'test01',
recipient_type: 'MULTI_BENEFITS'
},
documentation: [
{
file_name: 'onboarding.pdf',
content_type: 'application/pdf',
content_category: 'IDENTIFICATION_DOCUMENT',
content: 'VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=='
}
],
withdrawal_methods: {
bank: {
code: '002',
branch: '002',
account: '9876543210',
account_type: 'CHECKINGS',
country: 'US',
currency: 'USD',
routing: '021000022'
}
},
terms_of_service: {acceptance: true, date: '2025-07-21T20:43:54.786342Z', ip: '129.21.111.11'}
})
};
fetch('https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings', 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.y.uno/v1/recipients/{recipient_id}/onboardings",
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([
'account_id' => '{{account-code}}',
'type' => 'PREVIOUSLY_ONBOARDED',
'workflow' => 'DIRECT',
'callback_url' => 'https://merchant.example.com/webhook/onboarding',
'provider' => [
'id' => 'VR',
'connection_id' => 'd2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4',
'recipient_id' => 'test01',
'recipient_type' => 'MULTI_BENEFITS'
],
'documentation' => [
[
'file_name' => 'onboarding.pdf',
'content_type' => 'application/pdf',
'content_category' => 'IDENTIFICATION_DOCUMENT',
'content' => 'VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=='
]
],
'withdrawal_methods' => [
'bank' => [
'code' => '002',
'branch' => '002',
'account' => '9876543210',
'account_type' => 'CHECKINGS',
'country' => 'US',
'currency' => 'USD',
'routing' => '021000022'
]
],
'terms_of_service' => [
'acceptance' => true,
'date' => '2025-07-21T20:43:54.786342Z',
'ip' => '129.21.111.11'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-api-key: <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://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings"
payload := strings.NewReader("{\n \"account_id\": \"{{account-code}}\",\n \"type\": \"PREVIOUSLY_ONBOARDED\",\n \"workflow\": \"DIRECT\",\n \"callback_url\": \"https://merchant.example.com/webhook/onboarding\",\n \"provider\": {\n \"id\": \"VR\",\n \"connection_id\": \"d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4\",\n \"recipient_id\": \"test01\",\n \"recipient_type\": \"MULTI_BENEFITS\"\n },\n \"documentation\": [\n {\n \"file_name\": \"onboarding.pdf\",\n \"content_type\": \"application/pdf\",\n \"content_category\": \"IDENTIFICATION_DOCUMENT\",\n \"content\": \"VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA==\"\n }\n ],\n \"withdrawal_methods\": {\n \"bank\": {\n \"code\": \"002\",\n \"branch\": \"002\",\n \"account\": \"9876543210\",\n \"account_type\": \"CHECKINGS\",\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"routing\": \"021000022\"\n }\n },\n \"terms_of_service\": {\n \"acceptance\": true,\n \"date\": \"2025-07-21T20:43:54.786342Z\",\n \"ip\": \"129.21.111.11\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("public-api-key", "<api-key>")
req.Header.Add("private-secret-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.y.uno/v1/recipients/{recipient_id}/onboardings")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"{{account-code}}\",\n \"type\": \"PREVIOUSLY_ONBOARDED\",\n \"workflow\": \"DIRECT\",\n \"callback_url\": \"https://merchant.example.com/webhook/onboarding\",\n \"provider\": {\n \"id\": \"VR\",\n \"connection_id\": \"d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4\",\n \"recipient_id\": \"test01\",\n \"recipient_type\": \"MULTI_BENEFITS\"\n },\n \"documentation\": [\n {\n \"file_name\": \"onboarding.pdf\",\n \"content_type\": \"application/pdf\",\n \"content_category\": \"IDENTIFICATION_DOCUMENT\",\n \"content\": \"VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA==\"\n }\n ],\n \"withdrawal_methods\": {\n \"bank\": {\n \"code\": \"002\",\n \"branch\": \"002\",\n \"account\": \"9876543210\",\n \"account_type\": \"CHECKINGS\",\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"routing\": \"021000022\"\n }\n },\n \"terms_of_service\": {\n \"acceptance\": true,\n \"date\": \"2025-07-21T20:43:54.786342Z\",\n \"ip\": \"129.21.111.11\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"{{account-code}}\",\n \"type\": \"PREVIOUSLY_ONBOARDED\",\n \"workflow\": \"DIRECT\",\n \"callback_url\": \"https://merchant.example.com/webhook/onboarding\",\n \"provider\": {\n \"id\": \"VR\",\n \"connection_id\": \"d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4\",\n \"recipient_id\": \"test01\",\n \"recipient_type\": \"MULTI_BENEFITS\"\n },\n \"documentation\": [\n {\n \"file_name\": \"onboarding.pdf\",\n \"content_type\": \"application/pdf\",\n \"content_category\": \"IDENTIFICATION_DOCUMENT\",\n \"content\": \"VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA==\"\n }\n ],\n \"withdrawal_methods\": {\n \"bank\": {\n \"code\": \"002\",\n \"branch\": \"002\",\n \"account\": \"9876543210\",\n \"account_type\": \"CHECKINGS\",\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"routing\": \"021000022\"\n }\n },\n \"terms_of_service\": {\n \"acceptance\": true,\n \"date\": \"2025-07-21T20:43:54.786342Z\",\n \"ip\": \"129.21.111.11\"\n }\n}"
response = http.request(request)
puts response.read_bodyOverview
Onboarding is the first step in the split payments marketplace workflow. Each recipient (submerchant) must be onboarded with payment providers before they can receive split payments. The onboarding process supports two flows:- Pre-onboarded accounts: For submerchants already registered with providers. Use
type: "PREVIOUSLY_ONBOARDED". - Dynamic onboarding: For new submerchant registration including KYC/KYB (Know Your Customer/Know Your Business) validation. Use
type: "ONE_STEP_ONBOARDING"ortype: "TWO_STEP_ONBOARDING"(previouslytype: "ONBOARD_ONTO_PROVIDER").
type: "TWO_STEP_ONBOARDING" flows, use the Continue Onboarding endpoint to complete the KYC process after account creation.Authorizations
Path Parameters
ID of the new recipient to whom the onboarding will be transferred
Body
Unique id of the account in Yuno
"9104911d-5df9-429e-8488-ad41abea1a4b"
Type of onboarding flow. PREVIOUSLY_ONBOARDED for pre-existing accounts, ONE_STEP_ONBOARDING for account creation + KYC in one step, TWO_STEP_ONBOARDING for account creation first then KYC later
PREVIOUSLY_ONBOARDED, ONE_STEP_ONBOARDING, TWO_STEP_ONBOARDING "PREVIOUSLY_ONBOARDED"
Workflow of the onboarding
HOSTED_BY_PROVIDER, DIRECT "HOSTED_BY_PROVIDER"
Show child attributes
Show child attributes
Optional description of the onboarding (MAX 255; MIN 3).
3 - 255URL in case to redirect your customer after the onboarding process with the provider, if needed.
"https://www.google.com"
Specifies the documentation object.
Show child attributes
Show child attributes
Specifies the withdrawal methods object.
Show child attributes
Show child attributes
Object to indicate the owners of the organization. Adyen, Stripe and dlocal have fields related to that.
Show child attributes
Show child attributes
Object describing terms of service.
Show child attributes
Show child attributes
Response
Created
The unique identifier of the recipient.
"3aaa4d82-11e8-48ce-8ef5-04eee3a10802"
The account identifier associated with this recipient.
"fe14c7c6-c75e-43b7-bdbe-4c87ad52c482"
Unique identifier of the recipient defined by the merchant.
"MERCHANT_182acf1d-faeb-4ff0-94cd-7fab11b282f6"
Beneficiary's national entity type.
"INDIVIDUAL"
Beneficiary's type of organization.
"PRIVATE"
Beneficiary's name.
"Juan"
Beneficiary's last name.
"Perez"
Beneficiary's legal name.
null
The Beneficiary's email.
"juan.perez@example.com"
Beneficiary's date of birth.
"1990-01-15"
The Beneficiary's country.
"CO"
The seller's website URL.
"https://juanperez.com"
The seller's industry.
"Technology"
The merchant category code (MCC) (MAX 235; MIN 1).
"5734"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Rules for automatic split calculation at the recipient level.
Show child attributes
Show child attributes
Recipient creation date (ISO 8601 MAX 27; MIN 27).
"2025-08-27T15:41:19.497413Z"
Last Recipient updated date (ISO 8601 MAX 27; MIN 27).
"2025-08-27T15:41:19.497425Z"
Was this page helpful?
curl --request POST \
--url https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--data '
{
"account_id": "{{account-code}}",
"type": "PREVIOUSLY_ONBOARDED",
"workflow": "DIRECT",
"callback_url": "https://merchant.example.com/webhook/onboarding",
"provider": {
"id": "VR",
"connection_id": "d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4",
"recipient_id": "test01",
"recipient_type": "MULTI_BENEFITS"
},
"documentation": [
{
"file_name": "onboarding.pdf",
"content_type": "application/pdf",
"content_category": "IDENTIFICATION_DOCUMENT",
"content": "VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=="
}
],
"withdrawal_methods": {
"bank": {
"code": "002",
"branch": "002",
"account": "9876543210",
"account_type": "CHECKINGS",
"country": "US",
"currency": "USD",
"routing": "021000022"
}
},
"terms_of_service": {
"acceptance": true,
"date": "2025-07-21T20:43:54.786342Z",
"ip": "129.21.111.11"
}
}
'import requests
url = "https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings"
payload = {
"account_id": "{{account-code}}",
"type": "PREVIOUSLY_ONBOARDED",
"workflow": "DIRECT",
"callback_url": "https://merchant.example.com/webhook/onboarding",
"provider": {
"id": "VR",
"connection_id": "d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4",
"recipient_id": "test01",
"recipient_type": "MULTI_BENEFITS"
},
"documentation": [
{
"file_name": "onboarding.pdf",
"content_type": "application/pdf",
"content_category": "IDENTIFICATION_DOCUMENT",
"content": "VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=="
}
],
"withdrawal_methods": { "bank": {
"code": "002",
"branch": "002",
"account": "9876543210",
"account_type": "CHECKINGS",
"country": "US",
"currency": "USD",
"routing": "021000022"
} },
"terms_of_service": {
"acceptance": True,
"date": "2025-07-21T20:43:54.786342Z",
"ip": "129.21.111.11"
}
}
headers = {
"public-api-key": "<api-key>",
"private-secret-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
account_id: '{{account-code}}',
type: 'PREVIOUSLY_ONBOARDED',
workflow: 'DIRECT',
callback_url: 'https://merchant.example.com/webhook/onboarding',
provider: {
id: 'VR',
connection_id: 'd2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4',
recipient_id: 'test01',
recipient_type: 'MULTI_BENEFITS'
},
documentation: [
{
file_name: 'onboarding.pdf',
content_type: 'application/pdf',
content_category: 'IDENTIFICATION_DOCUMENT',
content: 'VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=='
}
],
withdrawal_methods: {
bank: {
code: '002',
branch: '002',
account: '9876543210',
account_type: 'CHECKINGS',
country: 'US',
currency: 'USD',
routing: '021000022'
}
},
terms_of_service: {acceptance: true, date: '2025-07-21T20:43:54.786342Z', ip: '129.21.111.11'}
})
};
fetch('https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings', 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.y.uno/v1/recipients/{recipient_id}/onboardings",
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([
'account_id' => '{{account-code}}',
'type' => 'PREVIOUSLY_ONBOARDED',
'workflow' => 'DIRECT',
'callback_url' => 'https://merchant.example.com/webhook/onboarding',
'provider' => [
'id' => 'VR',
'connection_id' => 'd2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4',
'recipient_id' => 'test01',
'recipient_type' => 'MULTI_BENEFITS'
],
'documentation' => [
[
'file_name' => 'onboarding.pdf',
'content_type' => 'application/pdf',
'content_category' => 'IDENTIFICATION_DOCUMENT',
'content' => 'VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA=='
]
],
'withdrawal_methods' => [
'bank' => [
'code' => '002',
'branch' => '002',
'account' => '9876543210',
'account_type' => 'CHECKINGS',
'country' => 'US',
'currency' => 'USD',
'routing' => '021000022'
]
],
'terms_of_service' => [
'acceptance' => true,
'date' => '2025-07-21T20:43:54.786342Z',
'ip' => '129.21.111.11'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-api-key: <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://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings"
payload := strings.NewReader("{\n \"account_id\": \"{{account-code}}\",\n \"type\": \"PREVIOUSLY_ONBOARDED\",\n \"workflow\": \"DIRECT\",\n \"callback_url\": \"https://merchant.example.com/webhook/onboarding\",\n \"provider\": {\n \"id\": \"VR\",\n \"connection_id\": \"d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4\",\n \"recipient_id\": \"test01\",\n \"recipient_type\": \"MULTI_BENEFITS\"\n },\n \"documentation\": [\n {\n \"file_name\": \"onboarding.pdf\",\n \"content_type\": \"application/pdf\",\n \"content_category\": \"IDENTIFICATION_DOCUMENT\",\n \"content\": \"VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA==\"\n }\n ],\n \"withdrawal_methods\": {\n \"bank\": {\n \"code\": \"002\",\n \"branch\": \"002\",\n \"account\": \"9876543210\",\n \"account_type\": \"CHECKINGS\",\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"routing\": \"021000022\"\n }\n },\n \"terms_of_service\": {\n \"acceptance\": true,\n \"date\": \"2025-07-21T20:43:54.786342Z\",\n \"ip\": \"129.21.111.11\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("public-api-key", "<api-key>")
req.Header.Add("private-secret-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.y.uno/v1/recipients/{recipient_id}/onboardings")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"{{account-code}}\",\n \"type\": \"PREVIOUSLY_ONBOARDED\",\n \"workflow\": \"DIRECT\",\n \"callback_url\": \"https://merchant.example.com/webhook/onboarding\",\n \"provider\": {\n \"id\": \"VR\",\n \"connection_id\": \"d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4\",\n \"recipient_id\": \"test01\",\n \"recipient_type\": \"MULTI_BENEFITS\"\n },\n \"documentation\": [\n {\n \"file_name\": \"onboarding.pdf\",\n \"content_type\": \"application/pdf\",\n \"content_category\": \"IDENTIFICATION_DOCUMENT\",\n \"content\": \"VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA==\"\n }\n ],\n \"withdrawal_methods\": {\n \"bank\": {\n \"code\": \"002\",\n \"branch\": \"002\",\n \"account\": \"9876543210\",\n \"account_type\": \"CHECKINGS\",\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"routing\": \"021000022\"\n }\n },\n \"terms_of_service\": {\n \"acceptance\": true,\n \"date\": \"2025-07-21T20:43:54.786342Z\",\n \"ip\": \"129.21.111.11\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/recipients/{recipient_id}/onboardings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"{{account-code}}\",\n \"type\": \"PREVIOUSLY_ONBOARDED\",\n \"workflow\": \"DIRECT\",\n \"callback_url\": \"https://merchant.example.com/webhook/onboarding\",\n \"provider\": {\n \"id\": \"VR\",\n \"connection_id\": \"d2c1f0e9-8a90-432a-ab7c-fdee4c7d58e4\",\n \"recipient_id\": \"test01\",\n \"recipient_type\": \"MULTI_BENEFITS\"\n },\n \"documentation\": [\n {\n \"file_name\": \"onboarding.pdf\",\n \"content_type\": \"application/pdf\",\n \"content_category\": \"IDENTIFICATION_DOCUMENT\",\n \"content\": \"VGV4dG8gZGUgZWplbXBsbyBwYXJhIEJhc2U2NA==\"\n }\n ],\n \"withdrawal_methods\": {\n \"bank\": {\n \"code\": \"002\",\n \"branch\": \"002\",\n \"account\": \"9876543210\",\n \"account_type\": \"CHECKINGS\",\n \"country\": \"US\",\n \"currency\": \"USD\",\n \"routing\": \"021000022\"\n }\n },\n \"terms_of_service\": {\n \"acceptance\": true,\n \"date\": \"2025-07-21T20:43:54.786342Z\",\n \"ip\": \"129.21.111.11\"\n }\n}"
response = http.request(request)
puts response.read_body