Esquemas
Los endpoints de esquemas devuelven definiciones de JSON Schema (draft-07) específicas por país para personas, cuentas y payouts. Consúltalos antes de construir un recipient para que tu formulario muestre exactamente los campos — y las reglas de validación — que requiere ese corredor.
Dado que los campos requeridos, los formatos de código postal, los tipos de documento y los métodos de payout varían por país, un formulario codificado de forma fija para un corredor fallará en otro. En su lugar, genera el formulario a partir del esquema:
- Construye formularios dinámicos que se adaptan a cada país de destino
- Valida las entradas del lado del cliente usando
pattern,enum,minLengthyrequireddel esquema - Muestra los campos correctos para cada método de payout (depósito bancario, PIX, billetera)
Formato del código de país: el parámetro de consulta
countryCodees ISO 3166-1 alpha-3 (p. ej.BRA,MEX,PHL,USA). Dentro del esquema devuelto, el campoaddress.countryCodees alpha-2 (p. ej.BR,MX,PH). No los confundas.
Todas las respuestas son documentos JSON Schema draft-07: un objeto con type, required y properties, donde los objetos anidados (address, payoutMethod) y los arrays (documents) llevan sus propios required/properties.
Person Schema
Devuelve el esquema de identidad y dirección del destinatario para un país de destino — los campos que necesitas para construir la sección del beneficiario del formulario.
Endpoint
GET https://{FQDN}/schema/person
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer {accessToken} |
Parámetros de Consulta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
countryCode | string | Sí | Código de país ISO 3166-1 alpha-3 (p. ej., "PHL", "BRA", "ESP") |
Ejemplo de Solicitud
curl -X GET 'https://{FQDN}/schema/person?countryCode=PHL' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...'
Respuesta (200)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Inyo Global Recipient Data - Philippines",
"description": "Schema for a PHL person.",
"version": "1.0.0",
"type": "object",
"required": ["firstName", "lastName", "address"],
"properties": {
"firstName": { "type": "string", "description": "The first name of the person.", "minLength": 1 },
"lastName": { "type": "string", "description": "The last name of the person.", "minLength": 1 },
"address": {
"type": "object",
"description": "The physical address of the person.",
"required": ["countryCode", "stateCode", "city", "line1", "zipcode"],
"properties": {
"countryCode": { "type": "string", "description": "ISO 3166-1 alpha-2 country code.", "enum": ["PH"] },
"stateCode": { "type": "string", "description": "State or province code.", "enum": ["ABR", "AGN", "ALB", "CEB", "NCR", "..."] },
"city": { "type": "string", "minLength": 1 },
"line1": { "type": "string", "minLength": 1 },
"line2": { "type": "string", "minLength": 1 },
"zipcode": { "type": "string", "description": "Postal code.", "pattern": "^[0-9]{4}$" }
}
}
}
}
Algunos corredores agregan un array documents para la captura del documento nacional de identidad (consulta Diferencias por País — Brasil requiere un CPF):
"documents": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["document"],
"properties": {
"document": { "type": "string", "description": "CPF (11 digits)", "pattern": "^\\d{11}$" }
}
}
}
Account Schema
Devuelve el esquema de cuenta y método de payout del destinatario para un país de destino. La respuesta agrupa dos cosas:
asset— la divisa de liquidación del payoutpayoutMethod— un objeto anidado que describe cómo llegan los fondos (depósito bancario, PIX, billetera), con los campos específicos del método
Nota: Los campos del método de payout están incrustados en el esquema de cuenta como
payoutMethod. No necesitas obtener el Payout Schema por separado para renderizar el formulario del destinatario — existe para quienes quieren el sub-esquema del método de payout por sí solo.
Endpoint
GET https://{FQDN}/schema/account
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer {accessToken} |
Parámetros de Consulta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
countryCode | string | Sí | Código de país ISO 3166-1 alpha-3 (p. ej., "BRA", "MEX", "USA") |
Ejemplo de Solicitud
curl -X GET 'https://{FQDN}/schema/account?countryCode=BRA' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...'
Respuesta (200)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Inyo Global Account Data - Brazil",
"version": "1.0.0",
"type": "object",
"required": ["asset", "payoutMethod"],
"properties": {
"asset": { "type": "string", "description": "Settlement currency (ISO 4217).", "enum": ["BRL"] },
"payoutMethod": {
"type": "object",
"required": ["type", "countryCode", "bankCode", "routingNumber", "accountNumber"],
"properties": {
"type": { "type": "string", "description": "Payout method.", "enum": ["BANK_DEPOSIT", "PIX"] },
"countryCode": { "type": "string", "description": "ISO 3166-1 alpha-2 country code.", "enum": ["BR"] },
"bankCode": { "type": "string", "description": "Bank code (3 digits).", "pattern": "^\\d{3}$" },
"routingNumber": { "type": "string", "description": "Branch / agência.", "pattern": "^\\d{1,5}$" },
"accountNumber": { "type": "string", "pattern": "^\\d{1,13}$" },
"key": { "type": "string", "description": "PIX key value." },
"keyType": { "type": "string", "description": "PIX key type.", "enum": ["EMAIL", "PHONE", "DOCUMENT", "EVP"] }
}
}
}
}
El enum de payoutMethod.type te indica qué campos aplican:
type | Campos relevantes |
|---|---|
BANK_DEPOSIT | bankCode, routingNumber, accountNumber (varía por corredor) |
PIX | keyType, key |
WALLET | walletId, walletType, walletOperator |
Payout Schema
Devuelve el sub-esquema del método de payout por sí solo — la misma forma que el objeto payoutMethod incrustado en el Account Schema. Úsalo cuando solo necesites los campos del método de payout (p. ej., revalidar un método de payout sin el contexto completo de la cuenta). Para construir el formulario del destinatario, el esquema de cuenta ya incluye todo.
Endpoint
GET https://{FQDN}/schema/payout
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer {accessToken} |
Parámetros de Consulta
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
countryCode | string | Sí | Código de país ISO 3166-1 alpha-3 (p. ej., "PHL", "BRA", "MEX") |
Ejemplo de Solicitud
curl -X GET 'https://{FQDN}/schema/payout?countryCode=PHL' \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...'
Respuesta (200)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Inyo Global Payout Method - Philippines",
"version": "1.0.0",
"type": "object",
"required": ["type", "countryCode", "accountNumber"],
"properties": {
"type": { "type": "string", "description": "Payout method.", "enum": ["BANK_DEPOSIT", "WALLET"] },
"countryCode": { "type": "string", "description": "ISO 3166-1 alpha-2 country code.", "enum": ["PH"] },
"bankCode": { "type": "string", "description": "Destination bank code." },
"accountNumber": { "type": "string", "description": "Bank account number." },
"walletId": { "type": "string", "description": "Wallet identifier." },
"walletType": { "type": "string", "description": "Wallet identifier type (e.g. PHONENUMBER)." },
"walletOperator": { "type": "string", "description": "Wallet operator / provider." }
}
}
Diferencias por País
Los esquemas son la fuente de verdad, pero algunos corredores tienen particularidades que vale la pena destacar. Renderiza siempre a partir del esquema en vivo en lugar de codificar estos valores de forma fija — pueden cambiar.
| País | Diferencia |
|---|---|
Brasil (BRA) | Solo depósito bancario en algunos flujos — payoutMethod.type reducido a ["BANK_DEPOSIT"], se eliminan key/keyType de PIX. El destinatario requiere un CPF vía documents[].document (11 dígitos, numérico, validado con dígito verificador). bankCode (3 dígitos), routingNumber = sucursal/agência. |
México (MEX) | La CLABE (accountNumber) ya codifica el banco, por lo que routingNumber no se usa — está ausente del esquema y de la lista de requeridos. bankCode típicamente se obtiene de un selector de bancos. |
Filipinas (PHL) | address.stateCode es un enum de ~70 códigos de provincia (ABR, AGN, … ZSI). Dirección completa requerida; zipcode debe coincidir con ^[0-9]{4}$. |
UE (AUT, BEL, FRA, IRL, ITA, PRT, ESP) | La address es opcional — solo firstName y lastName son requeridos. El pattern del código postal difiere por país (p. ej. ^\d{5}$ para ES/FR/IT, ^\d{4}$ para AT/BE, ^\d{4}-\d{3}$ para PT). |
Cómo Consumir un Esquema
Lectura de las palabras clave de draft-07 al renderizar un campo:
| Palabra clave | Uso |
|---|---|
type | Tipo de dato: "string", "object", "array", "number", "boolean" |
required | Array de nombres de propiedades obligatorias (al nivel de ese objeto) |
properties | Definiciones de campos de un objeto |
items | Esquema de los elementos de un array (p. ej. documents) |
enum | Valores permitidos — renderiza un enum de un solo valor como de solo lectura, un enum de múltiples valores como un select |
pattern | Regex que el valor debe cumplir (códigos postales, CPF, números de cuenta) |
minLength | Longitud mínima de la cadena |
description | Pista legible para humanos — buen valor por defecto para un placeholder o etiqueta |
Flujo recomendado:
- Lee el país de destino del paso 1 de tu formulario y conviértelo a ISO-3.
- Llama a
GET /schema/personyGET /schema/accountpara ese código ISO-3. - Renderiza el formulario del destinatario a partir de
personSchema.propertiesyaccountSchema.properties(este último incluyepayoutMethod). - Valida los valores contra el
pattern/enum/requiredde cada campo. - Envía el
recipientrecopilado (identidad +address+documentsopcional) y elpaymentMethoden el payload de Push Transaction.
Qué Sigue
- Push Transaction — Construye el
recipienty elpaymentMethoda partir de estos esquemas - Payment Person — Crea y valida personas usando los campos del esquema
- Bancos — Busca códigos de banco para poblar los campos
bankCode - Check Account — Valida los datos de la cuenta antes de transaccionar
