Retrieve KYC Requirements
curl --request GET \
--url https://skala-sandbox.ripio.com/api/v1/kycRequirements/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://skala-sandbox.ripio.com/api/v1/kycRequirements/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://skala-sandbox.ripio.com/api/v1/kycRequirements/', 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://skala-sandbox.ripio.com/api/v1/kycRequirements/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://skala-sandbox.ripio.com/api/v1/kycRequirements/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://skala-sandbox.ripio.com/api/v1/kycRequirements/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/kycRequirements/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"kycRequiredFields": [
{
"fieldName": "country",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR",
"label": "Argentina"
}
]
},
{
"fieldName": "first_name",
"required": true,
"type": "TEXT"
},
{
"fieldName": "last_name",
"required": true,
"type": "TEXT"
},
{
"fieldName": "gender",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "F",
"label": "Femenino"
},
{
"value": "M",
"label": "Masculino"
}
]
},
{
"fieldName": "birthday",
"required": true,
"type": "DATE"
},
{
"fieldName": "nationality",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR",
"label": "AR"
},
{
"value": "BR",
"label": "BR"
},
{
"value": "…",
"label": "233 codes in total"
}
]
},
{
"fieldName": "id_number",
"required": true,
"type": "NUMERIC"
},
{
"fieldName": "address",
"required": true,
"type": "TEXT"
},
{
"fieldName": "address_flat",
"required": false,
"type": "TEXT"
},
{
"fieldName": "address_number",
"required": true,
"type": "NUMERIC"
},
{
"fieldName": "postal_code",
"required": true,
"type": "TEXT"
},
{
"fieldName": "city",
"required": true,
"type": "TEXT"
},
{
"fieldName": "state",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR.BA",
"label": "Buenos Aires"
},
{
"value": "AR.CB",
"label": "Córdoba"
},
{
"value": "…",
"label": "24 provinces in total"
}
]
},
{
"fieldName": "phone",
"required": true,
"type": "TEXT"
},
{
"fieldName": "registered_tax_payer",
"required": true,
"type": "BOOLEAN"
},
{
"fieldName": "cuit",
"required": true,
"type": "TEXT"
},
{
"fieldName": "net_income",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR.A",
"label": "Menos de 3.000.000 ARS"
},
{
"value": "…",
"label": "6 brackets in total"
}
]
},
{
"fieldName": "personal_activity",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR.1",
"label": "Empleado del Sector Privado"
},
{
"value": "…",
"label": "6 occupations in total"
}
]
},
{
"fieldName": "personal_activity_other",
"required": false,
"type": "CHOICE",
"requiredIf": {
"fieldName": "personal_activity",
"isOneOf": [
"AR.3",
"AR.4"
]
},
"choices": [
{
"value": "AR.1",
"label": "Fabricación de joyas finas…"
},
{
"value": "…",
"label": "64 activities in total"
}
]
}
]
}KYC
Retrieve KYC Requirements
Retrieves the specific Know Your Customer (KYC) requirements, detailing the fields and document types needed for customer verification.
GET
/
api
/
v1
/
kycRequirements
/
Retrieve KYC Requirements
curl --request GET \
--url https://skala-sandbox.ripio.com/api/v1/kycRequirements/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://skala-sandbox.ripio.com/api/v1/kycRequirements/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://skala-sandbox.ripio.com/api/v1/kycRequirements/', 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://skala-sandbox.ripio.com/api/v1/kycRequirements/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://skala-sandbox.ripio.com/api/v1/kycRequirements/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://skala-sandbox.ripio.com/api/v1/kycRequirements/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/kycRequirements/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"kycRequiredFields": [
{
"fieldName": "country",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR",
"label": "Argentina"
}
]
},
{
"fieldName": "first_name",
"required": true,
"type": "TEXT"
},
{
"fieldName": "last_name",
"required": true,
"type": "TEXT"
},
{
"fieldName": "gender",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "F",
"label": "Femenino"
},
{
"value": "M",
"label": "Masculino"
}
]
},
{
"fieldName": "birthday",
"required": true,
"type": "DATE"
},
{
"fieldName": "nationality",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR",
"label": "AR"
},
{
"value": "BR",
"label": "BR"
},
{
"value": "…",
"label": "233 codes in total"
}
]
},
{
"fieldName": "id_number",
"required": true,
"type": "NUMERIC"
},
{
"fieldName": "address",
"required": true,
"type": "TEXT"
},
{
"fieldName": "address_flat",
"required": false,
"type": "TEXT"
},
{
"fieldName": "address_number",
"required": true,
"type": "NUMERIC"
},
{
"fieldName": "postal_code",
"required": true,
"type": "TEXT"
},
{
"fieldName": "city",
"required": true,
"type": "TEXT"
},
{
"fieldName": "state",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR.BA",
"label": "Buenos Aires"
},
{
"value": "AR.CB",
"label": "Córdoba"
},
{
"value": "…",
"label": "24 provinces in total"
}
]
},
{
"fieldName": "phone",
"required": true,
"type": "TEXT"
},
{
"fieldName": "registered_tax_payer",
"required": true,
"type": "BOOLEAN"
},
{
"fieldName": "cuit",
"required": true,
"type": "TEXT"
},
{
"fieldName": "net_income",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR.A",
"label": "Menos de 3.000.000 ARS"
},
{
"value": "…",
"label": "6 brackets in total"
}
]
},
{
"fieldName": "personal_activity",
"required": true,
"type": "CHOICE",
"choices": [
{
"value": "AR.1",
"label": "Empleado del Sector Privado"
},
{
"value": "…",
"label": "6 occupations in total"
}
]
},
{
"fieldName": "personal_activity_other",
"required": false,
"type": "CHOICE",
"requiredIf": {
"fieldName": "personal_activity",
"isOneOf": [
"AR.3",
"AR.4"
]
},
"choices": [
{
"value": "AR.1",
"label": "Fabricación de joyas finas…"
},
{
"value": "…",
"label": "64 activities in total"
}
]
}
]
}KYC requirements are determined by the country your account is configured for — you do not need to filter by country, the response is already scoped to it. For example, an account operating in Argentina returns the fields and document types required by Argentine regulations, while a Brazil account additionally requires the
net_income field (income bracket).For every field returned as a CHOICE, submit the exact value from choices, never the label: MX.JA for Jalisco, BR.SP for São Paulo, AR.A for an income bracket. Labels are rejected. See KYC fields by country for what each field means and how it is validated.requiredIf — a field required only for certain values of another field. Entries in kycRequiredFields may carry a requiredIf object naming the field they depend on and the values that make them required. Today it appears on Argentina’s personal_activity_other:{
"fieldName": "personal_activity_other",
"required": false,
"type": "CHOICE",
"choices": [{ "value": "AR.1", "label": "..." }],
"requiredIf": { "fieldName": "personal_activity", "isOneOf": ["AR.3", "AR.4"] }
}
required will let the customer submit without a field the API then rejects.Two fields are validated but not published in
kycRequiredFields, so read their accepted values here rather than from the response: id_number_type for Argentina (DNI, R_P, OTHER; optional, defaults to DNI) and for Mexico (not used — the document is always a CURP).For Mexico, address_photo is published as required but is only enforced for accounts configured for the Ripio-provider widget flow.For Argentina, net_income and personal_activity are published as required but a payload that omits them is still accepted today, so that integrations already live are not turned away. Build the form as if they were required — that is the regulatory intent and the API will start refusing payloads without them. When the value is present it is validated against the catalog either way.nationality carries its own catalog. It is returned as a CHOICE with every accepted ISO 3166-1 alpha-2 code, so a form built from this response cannot offer one of the codes the identity provider refuses. Mexico’s birthday_place — the country of birth — carries the same catalog.For Brazil, identity documents (ID front/back and selfie) are collected through the KYC provider’s document-upload flow, not submitted as inline base64 fields in the KYC request.
Authorizations
Access token obtained via /oauth2/token/. Use as Authorization: Bearer <access_token>.
Response
Successfully retrieved KYC requirements.
Show child attributes
Show child attributes
Was this page helpful?