Crear cuenta cuotapartista
Registra una empresa como cuotapartista de fondos comunes de inversión junto con las personas que la integran. Una empresa por request, identificada por su CUIT.
/v1/aperturas/unit-holder/accountsEl 202 significa que la cuenta se guardó y quedó en cola. Se crea de forma asíncrona: consultá Obtener cuenta cuotapartista hasta que creation_state sea final.
La creación de cuentas cuotapartistas se habilita por acuerdo. Si tus credenciales no están habilitadas, la llamada falla con 403: contactá a integraciones@allaria.com.ar.
Request
Headers
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
Authorization | string | Sí | Access token con formato Bearer ACCESS_TOKEN |
Content-Type | string | Sí | Debe ser application/json |
No aplica: Path Parameters, Query Parameters.
Body
Los campos marcados como valor de catálogo se envían exactamente como los devuelve Catálogos de cuotapartistas.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
account | object | Sí | La empresa. |
persons | array | Sí | Las personas que integran la cuenta, al menos una. Se conserva el orden: la primera queda en la posición 1. |
account
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
tax_id | string | Sí | CUIT de la empresa: 11 dígitos, sin guiones, con dígito verificador válido. Una cuenta por CUIT: ver Reenvío. |
legal_entity_name | string | Sí | Razón social. Máx. 255 caracteres. |
is_reporting_entity | boolean | Sí | Si la empresa es sujeto obligado ante la UIF. |
email | string | Sí | Email de contacto. Máx. 255 caracteres. |
requires_joint_signature | boolean | Sí | Si operar la cuenta requiere la firma conjunta de los titulares. |
taxpayer_type | string | Sí | Condición frente al IVA. Catálogo taxpayer_type. |
persons[]
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
surname | string | Sí | Apellido. Máx. 255 caracteres. |
names | string | Sí | Nombres. Máx. 255 caracteres. |
document_number | string | Sí | Número de DNI, de 6 a 10 dígitos. No puede repetirse dentro del request. El tipo de documento es siempre DNI. |
gender | string | Sí | Catálogo gender. |
tax_id | string | Sí | CUIT o CUIL de la persona: 11 dígitos, con dígito verificador válido. |
birthday | string | Sí | YYYY-MM-DD, anterior a hoy. |
is_pep | boolean | Sí | Persona expuesta políticamente. |
is_reporting_entity | boolean | Sí | Si la persona es sujeto obligado. |
email | string | Sí | Máx. 255 caracteres. |
nationality | string | Sí | Catálogo nationality. |
activity | string | Sí | Actividad económica. Catálogo activity. |
taxpayer_type | string | Sí | Condición frente al IVA. Catálogo taxpayer_type. |
address | object | Sí | Ver abajo. |
persons[].address
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
street | string | Sí | Máx. 255 caracteres. |
street_number | string | Sí | Máx. 12 caracteres. |
zip_code | string | Sí | Máx. 10 caracteres. |
city | string | Sí | Máx. 255 caracteres. |
province | string | Sí | Catálogo province. Debe pertenecer a country: algunos nombres existen en más de un país. |
country | string | Sí | Catálogo country. |
phone | string | Sí | Máx. 30 caracteres. |
Reenvío
Hay una cuenta por CUIT. Enviar un CUIT que ya existe solo se acepta cuando vos la creaste y su creation_state es FAILED o STUCK; la cuenta se reescribe con los datos nuevos y se envía de nuevo. Cualquier otro caso falla con 422 y Ya existe una cuenta para este CUIT.
Response
2XX Éxito
Status: 202 Accepted
| Campo | Tipo | Descripción |
|---|---|---|
success | boolean | Siempre true cuando el request fue aceptado. |
tax_id | string | CUIT de la empresa. Usalo para consultar la cuenta. |
state | string | Estado de la cuenta. Ingresado hasta que termina la creación, luego Operativo. |
creation_state | string | En qué punto está la creación. Ver estados de creación. |
Error Codes
| Status | Descripción |
|---|---|
401 | Unauthorized — access token inválido o ausente |
403 | Forbidden — tus credenciales no pueden crear cuentas cuotapartistas |
422 | La validación falló. El body lista cada campo con error (account.tax_id, persons.0.address.province, …). |
Code Example
- cURL
- JavaScript
- Python
- Node.js
curl -X POST "https://b2b.allaria.dev/v1/aperturas/unit-holder/accounts" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"account": {
"tax_id": "30712345833",
"legal_entity_name": "EMPRESA PRUEBA SA",
"is_reporting_entity": false,
"email": "empresa@example.com",
"requires_joint_signature": false,
"taxpayer_type": "Responsable inscripto"
},
"persons": [
{
"surname": "PEREZ",
"names": "JUAN CARLOS",
"document_number": "30123474",
"gender": "Masculino",
"tax_id": "20301234741",
"birthday": "1975-05-14",
"is_pep": false,
"is_reporting_entity": false,
"email": "juan.perez@example.com",
"nationality": "Argentina",
"activity": "Docente",
"taxpayer_type": "Consumidor final",
"address": {
"street": "Avenida Argentina",
"street_number": "100",
"zip_code": "8300",
"city": "Neuquén",
"province": "Neuquén",
"country": "Argentina",
"phone": "2991234567"
}
}
]
}'
const response = await fetch('https://b2b.allaria.dev/v1/aperturas/unit-holder/accounts', {
method: 'POST',
headers: {
'Authorization': 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
account: {
tax_id: '30712345833',
legal_entity_name: 'EMPRESA PRUEBA SA',
is_reporting_entity: false,
email: 'empresa@example.com',
requires_joint_signature: false,
taxpayer_type: 'Responsable inscripto'
},
persons: [
{
surname: 'PEREZ',
names: 'JUAN CARLOS',
document_number: '30123474',
gender: 'Masculino',
tax_id: '20301234741',
birthday: '1975-05-14',
is_pep: false,
is_reporting_entity: false,
email: 'juan.perez@example.com',
nationality: 'Argentina',
activity: 'Docente',
taxpayer_type: 'Consumidor final',
address: {
street: 'Avenida Argentina',
street_number: '100',
zip_code: '8300',
city: 'Neuquén',
province: 'Neuquén',
country: 'Argentina',
phone: '2991234567'
}
}
]
})
});
const data = await response.json();
console.log(data);
import requests
payload = {
'account': {
'tax_id': '30712345833',
'legal_entity_name': 'EMPRESA PRUEBA SA',
'is_reporting_entity': False,
'email': 'empresa@example.com',
'requires_joint_signature': False,
'taxpayer_type': 'Responsable inscripto'
},
'persons': [
{
'surname': 'PEREZ',
'names': 'JUAN CARLOS',
'document_number': '30123474',
'gender': 'Masculino',
'tax_id': '20301234741',
'birthday': '1975-05-14',
'is_pep': False,
'is_reporting_entity': False,
'email': 'juan.perez@example.com',
'nationality': 'Argentina',
'activity': 'Docente',
'taxpayer_type': 'Consumidor final',
'address': {
'street': 'Avenida Argentina',
'street_number': '100',
'zip_code': '8300',
'city': 'Neuquén',
'province': 'Neuquén',
'country': 'Argentina',
'phone': '2991234567'
}
}
]
}
response = requests.post(
'https://b2b.allaria.dev/v1/aperturas/unit-holder/accounts',
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/unit-holder/accounts',
{
account: {
tax_id: '30712345833',
legal_entity_name: 'EMPRESA PRUEBA SA',
is_reporting_entity: false,
email: 'empresa@example.com',
requires_joint_signature: false,
taxpayer_type: 'Responsable inscripto'
},
persons: [
{
surname: 'PEREZ',
names: 'JUAN CARLOS',
document_number: '30123474',
gender: 'Masculino',
tax_id: '20301234741',
birthday: '1975-05-14',
is_pep: false,
is_reporting_entity: false,
email: 'juan.perez@example.com',
nationality: 'Argentina',
activity: 'Docente',
taxpayer_type: 'Consumidor final',
address: {
street: 'Avenida Argentina',
street_number: '100',
zip_code: '8300',
city: 'Neuquén',
province: 'Neuquén',
country: 'Argentina',
phone: '2991234567'
}
}
]
},
{
headers: {
Authorization: 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
{
"success": true,
"tax_id": "30712345833",
"state": "Ingresado",
"creation_state": "DISPATCHED"
}