Create Account
Create a bank account for an entity whose onboarding status has succeeded
curl --request POST \
--url https://api-sandbox.y.uno/v1/banking/accounts \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"entity_id": "660e8400-e29b-41d4-a716-446655440000",
"onboarding_id": "990e8400-e29b-41d4-a716-446655440000",
"connection_id": "bb0e8400-e29b-41d4-a716-446655440000",
"account_type": "CHECKING",
"country": "US",
"currency": "USD"
}
'import requests
url = "https://api-sandbox.y.uno/v1/banking/accounts"
payload = {
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"entity_id": "660e8400-e29b-41d4-a716-446655440000",
"onboarding_id": "990e8400-e29b-41d4-a716-446655440000",
"connection_id": "bb0e8400-e29b-41d4-a716-446655440000",
"account_type": "CHECKING",
"country": "US",
"currency": "USD"
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"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: {
'x-idempotency-key': '<x-idempotency-key>',
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
account_id: '550e8400-e29b-41d4-a716-446655440000',
entity_id: '660e8400-e29b-41d4-a716-446655440000',
onboarding_id: '990e8400-e29b-41d4-a716-446655440000',
connection_id: 'bb0e8400-e29b-41d4-a716-446655440000',
account_type: 'CHECKING',
country: 'US',
currency: 'USD'
})
};
fetch('https://api-sandbox.y.uno/v1/banking/accounts', 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/banking/accounts",
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' => '550e8400-e29b-41d4-a716-446655440000',
'entity_id' => '660e8400-e29b-41d4-a716-446655440000',
'onboarding_id' => '990e8400-e29b-41d4-a716-446655440000',
'connection_id' => 'bb0e8400-e29b-41d4-a716-446655440000',
'account_type' => 'CHECKING',
'country' => 'US',
'currency' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-api-key: <api-key>",
"x-idempotency-key: <x-idempotency-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/banking/accounts"
payload := strings.NewReader("{\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"entity_id\": \"660e8400-e29b-41d4-a716-446655440000\",\n \"onboarding_id\": \"990e8400-e29b-41d4-a716-446655440000\",\n \"connection_id\": \"bb0e8400-e29b-41d4-a716-446655440000\",\n \"account_type\": \"CHECKING\",\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
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/banking/accounts")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"entity_id\": \"660e8400-e29b-41d4-a716-446655440000\",\n \"onboarding_id\": \"990e8400-e29b-41d4-a716-446655440000\",\n \"connection_id\": \"bb0e8400-e29b-41d4-a716-446655440000\",\n \"account_type\": \"CHECKING\",\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/banking/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"entity_id\": \"660e8400-e29b-41d4-a716-446655440000\",\n \"onboarding_id\": \"990e8400-e29b-41d4-a716-446655440000\",\n \"connection_id\": \"bb0e8400-e29b-41d4-a716-446655440000\",\n \"account_type\": \"CHECKING\",\n \"country\": \"US\",\n \"currency\": \"USD\"\n}"
response = http.request(request)
puts response.read_body{
"id": "aa0e8400-e29b-41d4-a716-446655440000",
"entity_id": "660e8400-e29b-41d4-a716-446655440000",
"onboarding_id": "990e8400-e29b-41d4-a716-446655440000",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"provider": {
"account_id": "col_bank_account_789"
},
"account_type": "CHECKING",
"status": "ACTIVE",
"account_number": "1234567890",
"routing_number": "123456789",
"iban": null,
"currency": "USD",
"balance": {
"available": 0,
"current": 0,
"pending": 0
},
"account_details": {
"account_name": "John Doe - Checking",
"sort_code": null,
"bsb": null,
"swift": null
},
"payment_rails": {
"incoming": [
"ACH_STANDARD",
"WIRE"
],
"outgoing": [
"ACH_STANDARD",
"WIRE"
]
},
"supports_book_transfers": true,
"created_at": "2026-02-01T10:10:00Z",
"updated_at": "2026-02-01T10:10:00Z"
}{
"code": "VALIDATION_ERROR",
"messages": [
"Onboarding status must be SUCCEEDED to create an account"
],
"http_code": 400
}{
"code": "ONBOARDING_NOT_FOUND",
"messages": [
"Onboarding not found"
],
"http_code": 404
}onboarding_id must have status: SUCCEEDED. An onboarding of type PREVIOUSLY_ONBOARDED cannot create an account today: the API answers 500 with PROVIDER_ACCOUNT_CREATION_FAILED.
The response includes region-specific banking identifiers. See Account identifiers by region for which fields are returned per region.Headers
Unique identifier used in HTTP headers to ensure that a request is processed only once, even if it is retried due to network issues or timeouts. See authentication for details (UUID).
Body
The unique identifier of the merchant's Yuno account. Found on the Yuno dashboard (UUID, 36 characters).
"550e8400-e29b-41d4-a716-446655440000"
The id of the entity that owns the account, obtained from Create Entity (UUID, 36 characters).
"660e8400-e29b-41d4-a716-446655440000"
The id of a successful onboarding obtained from Create Entity Onboarding (UUID, 36 characters). The onboarding must have status: SUCCEEDED.
"990e8400-e29b-41d4-a716-446655440000"
The id of the banking provider connection to open the account on (UUID, 36 characters).
"bb0e8400-e29b-41d4-a716-446655440000"
The type of bank account to create.
CHECKING, SAVINGS, INVESTMENT "CHECKING"
The country of the account (ISO 3166-1 alpha-2, 2 characters).
"US"
Response
Was this page helpful?
curl --request POST \
--url https://api-sandbox.y.uno/v1/banking/accounts \
--header 'Content-Type: application/json' \
--header 'private-secret-key: <api-key>' \
--header 'public-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"entity_id": "660e8400-e29b-41d4-a716-446655440000",
"onboarding_id": "990e8400-e29b-41d4-a716-446655440000",
"connection_id": "bb0e8400-e29b-41d4-a716-446655440000",
"account_type": "CHECKING",
"country": "US",
"currency": "USD"
}
'import requests
url = "https://api-sandbox.y.uno/v1/banking/accounts"
payload = {
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"entity_id": "660e8400-e29b-41d4-a716-446655440000",
"onboarding_id": "990e8400-e29b-41d4-a716-446655440000",
"connection_id": "bb0e8400-e29b-41d4-a716-446655440000",
"account_type": "CHECKING",
"country": "US",
"currency": "USD"
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"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: {
'x-idempotency-key': '<x-idempotency-key>',
'public-api-key': '<api-key>',
'private-secret-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
account_id: '550e8400-e29b-41d4-a716-446655440000',
entity_id: '660e8400-e29b-41d4-a716-446655440000',
onboarding_id: '990e8400-e29b-41d4-a716-446655440000',
connection_id: 'bb0e8400-e29b-41d4-a716-446655440000',
account_type: 'CHECKING',
country: 'US',
currency: 'USD'
})
};
fetch('https://api-sandbox.y.uno/v1/banking/accounts', 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/banking/accounts",
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' => '550e8400-e29b-41d4-a716-446655440000',
'entity_id' => '660e8400-e29b-41d4-a716-446655440000',
'onboarding_id' => '990e8400-e29b-41d4-a716-446655440000',
'connection_id' => 'bb0e8400-e29b-41d4-a716-446655440000',
'account_type' => 'CHECKING',
'country' => 'US',
'currency' => 'USD'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"private-secret-key: <api-key>",
"public-api-key: <api-key>",
"x-idempotency-key: <x-idempotency-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/banking/accounts"
payload := strings.NewReader("{\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"entity_id\": \"660e8400-e29b-41d4-a716-446655440000\",\n \"onboarding_id\": \"990e8400-e29b-41d4-a716-446655440000\",\n \"connection_id\": \"bb0e8400-e29b-41d4-a716-446655440000\",\n \"account_type\": \"CHECKING\",\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
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/banking/accounts")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("public-api-key", "<api-key>")
.header("private-secret-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"entity_id\": \"660e8400-e29b-41d4-a716-446655440000\",\n \"onboarding_id\": \"990e8400-e29b-41d4-a716-446655440000\",\n \"connection_id\": \"bb0e8400-e29b-41d4-a716-446655440000\",\n \"account_type\": \"CHECKING\",\n \"country\": \"US\",\n \"currency\": \"USD\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/banking/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["public-api-key"] = '<api-key>'
request["private-secret-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"entity_id\": \"660e8400-e29b-41d4-a716-446655440000\",\n \"onboarding_id\": \"990e8400-e29b-41d4-a716-446655440000\",\n \"connection_id\": \"bb0e8400-e29b-41d4-a716-446655440000\",\n \"account_type\": \"CHECKING\",\n \"country\": \"US\",\n \"currency\": \"USD\"\n}"
response = http.request(request)
puts response.read_body{
"id": "aa0e8400-e29b-41d4-a716-446655440000",
"entity_id": "660e8400-e29b-41d4-a716-446655440000",
"onboarding_id": "990e8400-e29b-41d4-a716-446655440000",
"account_id": "550e8400-e29b-41d4-a716-446655440000",
"provider": {
"account_id": "col_bank_account_789"
},
"account_type": "CHECKING",
"status": "ACTIVE",
"account_number": "1234567890",
"routing_number": "123456789",
"iban": null,
"currency": "USD",
"balance": {
"available": 0,
"current": 0,
"pending": 0
},
"account_details": {
"account_name": "John Doe - Checking",
"sort_code": null,
"bsb": null,
"swift": null
},
"payment_rails": {
"incoming": [
"ACH_STANDARD",
"WIRE"
],
"outgoing": [
"ACH_STANDARD",
"WIRE"
]
},
"supports_book_transfers": true,
"created_at": "2026-02-01T10:10:00Z",
"updated_at": "2026-02-01T10:10:00Z"
}{
"code": "VALIDATION_ERROR",
"messages": [
"Onboarding status must be SUCCEEDED to create an account"
],
"http_code": 400
}{
"code": "ONBOARDING_NOT_FOUND",
"messages": [
"Onboarding not found"
],
"http_code": 404
}