Get Provider Catalog
curl --request GET \
--url https://api-sandbox.y.uno/v1/connections/catalog/{provider_id} \
--header 'PRIVATE-SECRET-KEY: <api-key>' \
--header 'PUBLIC-API-KEY: <api-key>'import requests
url = "https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}"
headers = {
"PUBLIC-API-KEY": "<api-key>",
"PRIVATE-SECRET-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'PUBLIC-API-KEY': '<api-key>', 'PRIVATE-SECRET-KEY': '<api-key>'}
};
fetch('https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}', 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/connections/catalog/{provider_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("PUBLIC-API-KEY", "<api-key>")
req.Header.Add("PRIVATE-SECRET-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}")
.header("PUBLIC-API-KEY", "<api-key>")
.header("PRIVATE-SECRET-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["PUBLIC-API-KEY"] = '<api-key>'
request["PRIVATE-SECRET-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"payment_method_type": [
"CARD",
"GOOGLE_PAY",
"APPLE_PAY",
"ACH",
"KLARNA_PAY_NOW",
"KLARNA_PAY_LATER",
"IDEAL",
"GIROPAY",
"BANCONTACT",
"SEPA_DEBIT"
],
"params": [
{
"param_id": "API_KEY",
"field_type": "string",
"description": "Stripe Secret API Key",
"editable_field": true,
"optional": false,
"secret": true
}
]
}{
"type": "auth_error",
"code": "INSUFFICIENT_SCOPE",
"message": "API key is missing required scope 'connections:read'"
}{
"type": "not_found",
"code": "PROVIDER_NOT_FOUND",
"message": "Provider 'NOT_A_PROVIDER' is not in the Yuno provider catalog"
}Connections
Get Provider Catalog
Returns the schema you need to fill in to create a connection for a given provider.
GET
/
connections
/
catalog
/
{provider_id}
Get Provider Catalog
curl --request GET \
--url https://api-sandbox.y.uno/v1/connections/catalog/{provider_id} \
--header 'PRIVATE-SECRET-KEY: <api-key>' \
--header 'PUBLIC-API-KEY: <api-key>'import requests
url = "https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}"
headers = {
"PUBLIC-API-KEY": "<api-key>",
"PRIVATE-SECRET-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'PUBLIC-API-KEY': '<api-key>', 'PRIVATE-SECRET-KEY': '<api-key>'}
};
fetch('https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}', 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/connections/catalog/{provider_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("PUBLIC-API-KEY", "<api-key>")
req.Header.Add("PRIVATE-SECRET-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}")
.header("PUBLIC-API-KEY", "<api-key>")
.header("PRIVATE-SECRET-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.y.uno/v1/connections/catalog/{provider_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["PUBLIC-API-KEY"] = '<api-key>'
request["PRIVATE-SECRET-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"payment_method_type": [
"CARD",
"GOOGLE_PAY",
"APPLE_PAY",
"ACH",
"KLARNA_PAY_NOW",
"KLARNA_PAY_LATER",
"IDEAL",
"GIROPAY",
"BANCONTACT",
"SEPA_DEBIT"
],
"params": [
{
"param_id": "API_KEY",
"field_type": "string",
"description": "Stripe Secret API Key",
"editable_field": true,
"optional": false,
"secret": true
}
]
}{
"type": "auth_error",
"code": "INSUFFICIENT_SCOPE",
"message": "API key is missing required scope 'connections:read'"
}{
"type": "not_found",
"code": "PROVIDER_NOT_FOUND",
"message": "Provider 'NOT_A_PROVIDER' is not in the Yuno provider catalog"
}Returns the schema you need to fill in to create a connection for a given provider: which payment methods the provider supports, and the recursive list of parameters (credentials, toggles, choices) the provider requires.
This is the discovery endpoint — call it first to find out what a provider expects, then use its response as the input to Create a Connection.
This endpoint is provider-scoped, not connection-scoped. It returns a schema, not your existing connections.
Path Parameters
string
required
Yuno provider identifier (
STRIPE, ADYEN, CYBERSOURCE, …). Case-sensitive, UPPER_SNAKE_CASE.Response
string[]
The Yuno payment-method enums this provider supports. Pass any of these values into
payment_methods[] on Create a Connection.object[]
Recursive parameter schema.
Show item
Show item
string
Identifier to echo back in
POST /v1/connections.params[].param_id. Pass casing verbatim.enum
One of
string, boolean, array, number.string | object
Display label. May be a plain string or a localization object
{ "EN": "...", "ES": "...", "PT": "..." }.string | object
Optional placeholder text. Same shape rules as
description.string | null
Optional helper text.
boolean
If
false, value is fixed/read-only.boolean
If
true, the value is sensitive — stored encrypted and surfaced as "***" on subsequent reads.boolean
Only meaningful when
options[] is present. If true, you may submit a free-form value alongside the catalog options (combobox semantics).boolean
If
false, you must supply a value.boolean
If
true, the param exists but should not be rendered to end users.boolean
If
true, the value is also required when configuring the Yuno SDK on the client side.string[] | object[]
Present when the field is a constrained enum. With
field_type = "string" → single-select. With field_type = "array" → multi-select. Plain strings or {value, params} objects (the latter when an option carries its own nested params).object[]
Nested children — activated when this node’s value is
true (boolean parent) or matches one of the options (string/array parent).curl -X GET 'https://api.y.uno/v1/connections/catalog/STRIPE' \
-H 'public-api-key: <YOUR_PUBLIC_KEY>' \
-H 'private-secret-key: <YOUR_SECRET_KEY>'
{
"payment_method_type": [
"CARD",
"GOOGLE_PAY",
"APPLE_PAY",
"ACH",
"KLARNA_PAY_NOW",
"KLARNA_PAY_LATER",
"IDEAL",
"GIROPAY",
"BANCONTACT",
"SEPA_DEBIT"
],
"params": [
{
"param_id": "API_KEY",
"field_type": "string",
"secret": true,
"description": "Stripe Secret API Key",
"editable_field": true,
"optional": false
},
{
"param_id": "PUBLISHABLE_KEY",
"field_type": "string",
"description": "Stripe Publishable Key",
"editable_field": true,
"optional": false
},
{
"param_id": "INTEGRATION_TYPE",
"field_type": "string",
"description": "Stripe integration variant",
"editable_field": true,
"optional": false,
"options": [
"PAYMENT_INTENTS",
"CHARGES",
"CONNECT_DESTINATION"
]
},
{
"param_id": "3DS_ENABLED",
"field_type": "boolean",
"description": "Enable 3DS validation flow",
"editable_field": true,
"optional": true,
"params": [
{
"param_id": "ORIGIN_URL",
"field_type": "string",
"description": "Your checkout origin URL",
"editable_field": true,
"optional": true
}
]
}
]
}
{
"type": "not_found",
"code": "PROVIDER_NOT_FOUND",
"message": "Provider 'NOT_A_PROVIDER' is not in the Yuno provider catalog",
"details": { "provider_id": "NOT_A_PROVIDER" }
}
{
"type": "auth_error",
"code": "INSUFFICIENT_SCOPE",
"message": "API key is missing required scope 'connections:read'",
"details": { "required_scope": "connections:read" }
}
How to read a node
| What you see | What it means |
|---|---|
field_type: "string", no options[] | Free-form text input. |
field_type: "string", secret: true | Password / API key — write-only. Returned as "***" on GET. |
field_type: "string", options[] present | Single-choice enum. The value you submit must be one of options[]. |
field_type: "string", options[] present, allow_custom: true | Combobox. Submit one of options[] or a free-form value. |
field_type: "boolean" | Toggle. Setting it to true activates nested params[] and makes their optional: false children required. |
field_type: "array", options[] present | Multi-select. Submit a JSON array whose elements are a subset of options[]. |
field_type: "array", no options[] | Free-form list of strings. |
Errors
| HTTP | code | When |
|---|---|---|
404 | PROVIDER_NOT_FOUND | The provider_id is not in Yuno’s provider catalog. |
403 | INSUFFICIENT_SCOPE | Your API key is missing the connections:read scope. |
Authorizations
Path Parameters
Example:
"ADYEN"
Was this page helpful?
⌘I