Abrir cuenta de persona humana
Abre una cuenta en Allaria para una persona humana que tu empresa ya verificó. Una cuenta por request — el array cuentas toma exactamente un ítem.
/v1/aperturas/apertura-cuentaVarios de los campos de abajo están marcados como Condicional porque es tu grupo de PSP el que define si son obligatorios — ver PSPs internos y externos. Además, la apertura de cuentas se acepta únicamente de 09:30 a 17:00 en días hábiles.
Request
Headers
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
Authorization | string | Sí | Access token en formato Bearer ACCESS_TOKEN |
Content-Type | string | Sí | Debe ser application/json |
No aplica: Path Parameters, Query Parameters.
Body
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
cuentas | array | Sí | Cuentas a abrir. Exactamente una cuenta por request. |
Identidad
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
nombres | string | Sí | Nombres. Máximo 255 caracteres. |
apellido | string | Sí | Apellido. Máximo 255 caracteres. |
tipo_documento | string | Sí | Tipo de documento. El codigo de tipos-documento. Varios otros campos se validan de forma más estricta cuando este es el código de DNI. |
documento | integer | Sí | Número de documento. Se valida distinto para tipos de documento extranjeros. |
numero_tramite_dni | integer | Condicional | Número de trámite del DNI, 11 dígitos. Obligatorio para DNI argentino. |
cuil | integer | Sí | CUIL. Para titulares extranjeros, ver tomar_cuil_como. |
cuit | integer | No | CUIT, de 10 a 13 dígitos. |
tomar_cuil_como | string | No | Interpretar cuil como otro identificador: cuil, cdi, cie o nif. |
fecha_nacimiento | string | Sí | Fecha de nacimiento, YYYY-MM-DD HH:mm:ss. |
sexo | string | Sí | 1, 2 o 3 — el codigo de sexo. |
estado_civil | string | Sí | El codigo de estado-civil. Los códigos no son secuenciales. |
nacionalidad | string | Sí | Nacionalidad. El codigo del catálogo paises de Esco — un catálogo distinto de paises-cv. |
lugar_nacimiento | string | Sí | Lugar de nacimiento. El name de paises-cv, por ejemplo Argentina — no un código. |
emails | string | Sí | Una o más direcciones de email, separadas por coma. |
Domicilio
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
calle | string | Sí | Nombre de la calle. Máximo 255 caracteres. |
altura_domicilio | string | Sí | Altura. Máximo 12 caracteres. |
piso | string | No | Piso. Acepta un string, por ejemplo "PB". |
departamento | string | No | Departamento. Máximo 10 caracteres. |
cp | integer | No | Código postal. |
localidad | string | Sí | Localidad. El code de localidades-cv — no el nombre de la localidad. |
codigo_pais_domicilio | integer | Sí | País. El codigo del catálogo paises de Esco. |
codigo_provincia_domicilio | integer | Sí | Provincia. El codigo del catálogo provincias de Esco. |
telefono | string | No | Teléfono. Máximo 100 caracteres. |
Datos impositivos y actividad
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
actividad | string | Sí | Actividad económica. El codigo de actividades. |
residencia_fiscal | string | Sí | Residencia fiscal. La opcion de residencia-fiscal, por ejemplo Argentina. Determina numero_impositivo y ssn. |
provincia_fiscal | string | Sí | Provincia fiscal. La opcion de provincia-fiscal. |
tipo_contribuyente_iva | string | Condicional | El codigo de tipos-contrib-iva. Obligatorio cuando tipo_documento no es el código de DNI — es decir, para un documento extranjero. Se ignora con DNI argentino. |
numero_impositivo | string | Condicional | Identificación tributaria del exterior (NIT). Obligatorio cuando residencia_fiscal no es Argentina. Máximo 24 caracteres. |
ssn | string | Condicional | Social Security Number de Estados Unidos. Obligatorio cuando residencia_fiscal es Estados Unidos. Máximo 24 caracteres. |
Compliance
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
es_pep | string | Sí | Condición de persona expuesta políticamente. La opcion de es-pep. |
motivo_consideracion_pep | string | Condicional | Motivo de la condición PEP. Obligatorio para PSPs externos cuando es_pep no es No. Máximo 255 caracteres. |
es_sujeto_obligado | boolean | Sí | Si el titular de la cuenta es a su vez sujeto obligado. |
frente_dni | string | Condicional | Frente del documento, codificado en base64. Obligatorio para PSPs externos — Allaria lo usa para el chequeo de Renaper. |
dorso_dni | string | Condicional | Dorso del documento, codificado en base64. Misma condición que frente_dni. |
pri | string | Condicional | Perfil de Riesgo del Inversor: Riesgo Bajo, Riesgo Medio o Riesgo Alto. Obligatorio para PSPs internos. Para un PSP externo lo calcula Allaria a partir de la matriz de riesgo — no lo envíes. |
matriz_riesgo_descripcion | string | Condicional | Resultado de la matriz de riesgo: Bajo, Medio, Medio Forzado, Alto, Alto Forzado o Alto-Comité. Misma condición que pri: obligatorio para PSPs internos. |
Inversor calificado
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
es_inversor_calificado | boolean | No | Cuando es true, exactamente uno de tope_uva o sujeto_institucional también debe ser true. |
tope_uva | boolean | No | Califica por el tope en UVA. Mutuamente excluyente con sujeto_institucional. |
sujeto_institucional | boolean | No | Califica como sujeto institucional. Mutuamente excluyente con tope_uva. |
Cuenta e identificadores
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
external_id | string | Condicional | Tu propio identificador para esta cuenta. Obligatorio u opcional según el acuerdo que Allaria configuró para vos, y siempre obligatorio cuando crypto es true. Es con lo que después consultás el estado, así que enviá uno incluso cuando sea opcional. |
comitente | integer | Condicional | Número de comitente. Solo se acepta si Allaria te lo habilitó; en el resto se asigna desde un rango reservado y enviarlo se rechaza. No debe existir previamente. |
ingresos_mensuales | string | Condicional | Rango de ingresos mensuales. Obligatorio en casi todos los acuerdos. Valores vigentes: Menos de 1.300.000, De 1.300.000 a 2.600.000, De 2.600.000 a 4.000.000, De 4.000.000 a 5.500.000, De 5.500.000 a 6.500.000, Más de 6.500.000. Los rangos anteriores (Menos de 1.000.000 … Más de 5.000.000) se siguen aceptando. |
patrimonio_estimado | string | Condicional | Rango de patrimonio estimado. Misma condición que ingresos_mensuales. Valores vigentes: Menos de 12.000.000, De 12.000.000 a 20.000.000, De 20.000.000 a 40.000.000, De 40.000.000 a 80.000.000, De 80.000.000 a 100.000.000, Más de 100.000.000. Los rangos anteriores se siguen aceptando. |
terminos_condiciones | string | Sí | Cuándo el titular aceptó los términos y condiciones, YYYY-MM-DD HH:mm:ss. |
fecha_psp_apertura_cuenta | string | Sí | Cuándo el titular solicitó la cuenta de tu lado, YYYY-MM-DD HH:mm:ss. |
referente | string | No | Referente. |
crypto | boolean | No | Abre una cuenta habilitada para cripto. Solo disponible si Allaria te lo habilitó, y vuelve obligatorios a external_id y comitente. |
Response
2XX Éxito
Status: 201 Created. La respuesta es siempre 201 cuando el request fue aceptado — no dice nada sobre si las cuentas se crearon. Leé errores y los campos por cuenta.
Cuenta creada:
| Campo | Tipo | Descripción |
|---|---|---|
data.total_cuentas | integer | Cuentas recibidas en el request |
data.errores | boolean | true cuando la cuenta falló |
data.ejecutado | string | Cuándo se procesó el request |
data.renaper | object | null | Rechazos de Renaper indexados por CUIL, o null si no hubo. Solo se completa para PSPs externos |
data.repet | object | null | Rechazos de Repet indexados por CUIL, o null si no hubo. Misma condición que renaper |
data.esco | object | null | Resultado por cuenta indexado por CUIL. null cuando el request nunca llegó a Esco |
data.esco[cuil].error | boolean | Si esta cuenta falló en Esco |
data.esco[cuil].errorMensaje | string | Mensaje de Esco. String vacío en caso de éxito |
data.esco[cuil].cuenta_creada | boolean | Si la cuenta se creó en Esco |
data.esco[cuil].habilitada | string | null | Cuándo queda habilitada la cuenta |
data.detalle_errores | object | Errores de validación a nivel campo, indexados como cuentas.N.campo. Ausente cuando no hay ninguno |
Rechazo de Renaper o Repet: errores es true, esco es null, y el servicio que falló trae un objeto indexado por CUIL. detalle_errores no aparece.
{
"data": {
"total_cuentas": 1,
"errores": true,
"ejecutado": "2026-08-20T14:53:22+00:00",
"renaper": [{ "27412010812": "No vigente." }],
"repet": null,
"esco": null
}
}
Mensaje de renaper | Significado |
|---|---|
Error de conexión con Renaper. Por favor, volver a intentar. | Falla de conexión o resultado desconocido |
No vigente. | El DNI no está vigente |
El cuit y el cuil no son idénticos. | CUIT ≠ CUIL |
El documento no está incluido en el cuil/cuit | El número de documento no está contenido en el CUIL |
Persona posiblemente fallecida según RENAPER. | Posiblemente fallecida |
Error. | Cualquier otro error de Renaper |
Mensaje de repet | Significado |
|---|---|
Error. Por favor, volver a intentar. | Error de red con Repet |
Listado por REPET | La persona está listada en Repet |
Rechazo por validación de campos: aparece detalle_errores. Puede ocurrir antes de que corran Renaper y Repet (reglas de formato y longitud) o después (blacklist, menor de edad, provincia que no corresponde, problemas de comitente).
{
"data": {
"total_cuentas": 1,
"errores": true,
"ejecutado": "2026-08-20T18:53:40+00:00",
"renaper": null,
"repet": null,
"esco": null,
"detalle_errores": {
"cuentas.0.numero_tramite_dni": ["La cuentas.0.numero_tramite_dni debe tener 11 dígitos."]
}
}
}
| Campo | Mensaje de detalle_errores | Significado |
|---|---|---|
cuentas.N.cuil | El campo cuentas.N.cuit está blacklisted. | El CUIL/CUIT está en la blacklist |
cuentas.N.fecha_nacimiento | El campo cuentas.N.fecha_nacimiento es menor de 18 años según renaper. | Menor de 18 según Renaper |
cuentas.N.codigo_provincia_domicilio | El campo cuentas.N.codigo_provincia_domicilio no pertenece al país ingresado en el campo codigo_pais_domicilio | La provincia no pertenece al país que enviaste |
cuentas.N.comitente | El campo cuentas.N.comitente ya existe en la base de datos. | Ese comitente ya está tomado |
cuentas.N.comitente | El campo cuentas.N.comitente está vacío, y para la campaña ingresada se necesita el comitente. | Tu acuerdo exige que lo envíes |
cuentas.N.comitente | El campo cuentas.N.comitente debe ser mayor a 100000000 para allaria+ pero menor a 200000000. | Fuera del rango de Allaria+ |
cuentas.N.comitente | El campo cuentas.N.comitente documento existe en este rango. | Ese documento ya tiene un comitente en este rango |
cuentas.N.comitente | El campo cuentas.N.comitente No se pudo procesar la cuenta en este momento por alta concurrencia. Por favor, reintente en unos segundos. | No se pudo tomar el lock — reintentá en unos segundos |
cuentas.N.terminos_condiciones | El campo cuentas.N.terminos_condiciones no se encuentra firmado. | El timestamp de aceptación de términos y condiciones no fue aceptado como firma válida |
La cuenta se crea de forma asincrónica. Consultá Estado de la cuenta hasta que llegue a CREACION_FINALIZADA.
Códigos de error
| Status | Descripción |
|---|---|
401 | Unauthorized — access token inválido o ausente |
403 | Forbidden — tus credenciales no están autorizadas para Aperturas |
422 | Falló la validación. El body varía según la causa: errores de campo ({"cuentas.0.campo": ["mensaje"]}), fuera de la ventana de operación ({"cuentas": ["La ventana de operación es de 9.30hs a 17hs de lunes a viernes días hábiles..."]}), o sin grupo de PSP asignado ({"error": "No hay una campania asociada al usuario. Hablar con Allaria."}) |
500 | Un sistema externo no está disponible: {"error": true, "msg": "El sistema X está caído, por favor reintente más tarde"}, donde msg nombra RENAPER o REPET. También se devuelve ante errores internos inesperados |
Ejemplo de código
- cURL
- JavaScript
- Python
- Node.js
curl -X POST "https://b2b.allaria.dev/v1/aperturas/apertura-cuenta" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"cuentas": [
{
"external_id": "12a34",
"nombres": "Juan Gabriel",
"apellido": "Pérez",
"tipo_documento": "6",
"documento": 31232123,
"numero_tramite_dni": 12345678910,
"cuil": 20312321234,
"fecha_nacimiento": "1985-04-12 00:00:00",
"sexo": "1",
"estado_civil": "2",
"nacionalidad": "1",
"lugar_nacimiento": "ARGENTINA",
"emails": "juan.perez@example.com",
"telefono": "1155551234",
"calle": "Calle Falsa",
"altura_domicilio": "123",
"piso": "2",
"departamento": "B",
"cp": 1425,
"localidad": "CABALLITO",
"codigo_pais_domicilio": 1,
"codigo_provincia_domicilio": 1,
"actividad": "16",
"residencia_fiscal": "Argentina",
"provincia_fiscal": "Ciudad Autonoma de Buenos Aires",
"es_pep": "No",
"es_sujeto_obligado": false,
"ingresos_mensuales": "Menos de 1.300.000",
"patrimonio_estimado": "Menos de 12.000.000",
"pri": "Riesgo Medio",
"matriz_riesgo_descripcion": "Bajo",
"terminos_condiciones": "2026-08-20 14:30:00",
"fecha_psp_apertura_cuenta": "2026-08-20 14:30:00"
}
]
}'
const response = await fetch('https://b2b.allaria.dev/v1/aperturas/apertura-cuenta', {
method: 'POST',
headers: {
'Authorization': 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cuentas: [
{
external_id: '12a34',
nombres: 'Juan Gabriel',
apellido: 'Pérez',
tipo_documento: '6',
documento: 31232123,
numero_tramite_dni: 12345678910,
cuil: 20312321234,
fecha_nacimiento: '1985-04-12 00:00:00',
sexo: '1',
estado_civil: '2',
nacionalidad: '1',
lugar_nacimiento: 'ARGENTINA',
emails: 'juan.perez@example.com',
calle: 'Calle Falsa',
altura_domicilio: '123',
cp: 1425,
localidad: 'CABALLITO',
codigo_pais_domicilio: 1,
codigo_provincia_domicilio: 1,
actividad: '16',
residencia_fiscal: 'Argentina',
provincia_fiscal: 'Ciudad Autonoma de Buenos Aires',
es_pep: 'No',
es_sujeto_obligado: false,
ingresos_mensuales: 'Menos de 1.300.000',
patrimonio_estimado: 'Menos de 12.000.000',
pri: 'Riesgo Medio',
matriz_riesgo_descripcion: 'Bajo',
terminos_condiciones: '2026-08-20 14:30:00',
fecha_psp_apertura_cuenta: '2026-08-20 14:30:00'
}
]
})
});
const data = await response.json();
console.log(data);
import requests
payload = {
'cuentas': [
{
'external_id': '12a34',
'nombres': 'Juan Gabriel',
'apellido': 'Pérez',
'tipo_documento': '6',
'documento': 31232123,
'numero_tramite_dni': 12345678910,
'cuil': 20312321234,
'fecha_nacimiento': '1985-04-12 00:00:00',
'sexo': '1',
'estado_civil': '2',
'nacionalidad': '1',
'lugar_nacimiento': 'ARGENTINA',
'emails': 'juan.perez@example.com',
'calle': 'Calle Falsa',
'altura_domicilio': '123',
'cp': 1425,
'localidad': 'CABALLITO',
'codigo_pais_domicilio': 1,
'codigo_provincia_domicilio': 1,
'actividad': '16',
'residencia_fiscal': 'Argentina',
'provincia_fiscal': 'Ciudad Autonoma de Buenos Aires',
'es_pep': 'No',
'es_sujeto_obligado': False,
'ingresos_mensuales': 'Menos de 1.300.000',
'patrimonio_estimado': 'Menos de 12.000.000',
'pri': 'Riesgo Medio',
'matriz_riesgo_descripcion': 'Bajo',
'terminos_condiciones': '2026-08-20 14:30:00',
'fecha_psp_apertura_cuenta': '2026-08-20 14:30:00'
}
]
}
response = requests.post(
'https://b2b.allaria.dev/v1/aperturas/apertura-cuenta',
headers={
'Authorization': 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
},
json=payload
)
print(response.json())
const axios = require('axios');
const response = await axios.post(
'https://b2b.allaria.dev/v1/aperturas/apertura-cuenta',
{
cuentas: [
{
external_id: '12a34',
nombres: 'Juan Gabriel',
apellido: 'Pérez',
tipo_documento: '6',
documento: 31232123,
numero_tramite_dni: 12345678910,
cuil: 20312321234,
fecha_nacimiento: '1985-04-12 00:00:00',
sexo: '1',
estado_civil: '2',
nacionalidad: '1',
lugar_nacimiento: 'ARGENTINA',
emails: 'juan.perez@example.com',
calle: 'Calle Falsa',
altura_domicilio: '123',
cp: 1425,
localidad: 'CABALLITO',
codigo_pais_domicilio: 1,
codigo_provincia_domicilio: 1,
actividad: '16',
residencia_fiscal: 'Argentina',
provincia_fiscal: 'Ciudad Autonoma de Buenos Aires',
es_pep: 'No',
es_sujeto_obligado: false,
ingresos_mensuales: 'Menos de 1.300.000',
patrimonio_estimado: 'Menos de 12.000.000',
pri: 'Riesgo Medio',
matriz_riesgo_descripcion: 'Bajo',
terminos_condiciones: '2026-08-20 14:30:00',
fecha_psp_apertura_cuenta: '2026-08-20 14:30:00'
}
]
},
{
headers: {
Authorization: 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
{
"data": {
"total_cuentas": 1,
"errores": false,
"ejecutado": "2026-08-20T15:03:54+00:00",
"renaper": null,
"repet": null,
"esco": {
"23253177349": {
"error": false,
"errorMensaje": "",
"cuenta_creada": true,
"habilitada": "2026-08-24T15:03:54+00:00"
}
}
}
}