Create unit holder account
Registers a company as a mutual fund unit holder (cuotapartista) together with the people who hold it. One company per request, identified by its CUIT.
/v1/aperturas/unit-holder/accountsThe 202 means the account was saved and queued. It is created asynchronously — poll Get unit holder account until creation_state is final.
Creating unit holder accounts is enabled per arrangement. If your credentials are not enabled the call fails with 403 — contact integraciones@allaria.com.ar.
Request
Headers
| Field | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Access token in Bearer ACCESS_TOKEN format |
Content-Type | string | Yes | Must be application/json |
Not applicable: Path Parameters, Query Parameters.
Body
Fields marked as a catalogue value must be sent exactly as returned by Unit holder catalogues.
| Field | Type | Required | Description |
|---|---|---|---|
account | object | Yes | The company. |
persons | array | Yes | The people who hold the account, at least one. Their order is kept: the first one is position 1. |
account
| Field | Type | Required | Description |
|---|---|---|---|
tax_id | string | Yes | The company's CUIT: 11 digits, no hyphens, valid check digit. One account per CUIT — see Resubmitting. |
legal_entity_name | string | Yes | Legal name. Max 255 characters. |
is_reporting_entity | boolean | Yes | Whether the company is an obliged entity (sujeto obligado) before the UIF. |
email | string | Yes | Contact email. Max 255 characters. |
requires_joint_signature | boolean | Yes | Whether operating the account requires the holders' joint signature. |
taxpayer_type | string | Yes | VAT status. Catalogue taxpayer_type. |
persons[]
| Field | Type | Required | Description |
|---|---|---|---|
surname | string | Yes | Surname. Max 255 characters. |
names | string | Yes | Given names. Max 255 characters. |
document_number | string | Yes | DNI number, 6 to 10 digits. Must not repeat within the request. The document type is always DNI. |
gender | string | Yes | Catalogue gender. |
tax_id | string | Yes | The person's CUIT or CUIL: 11 digits, valid check digit. |
birthday | string | Yes | YYYY-MM-DD, before today. |
is_pep | boolean | Yes | Politically exposed person. |
is_reporting_entity | boolean | Yes | Whether the person is an obliged entity. |
email | string | Yes | Max 255 characters. |
nationality | string | Yes | Catalogue nationality. |
activity | string | Yes | Economic activity. Catalogue activity. |
taxpayer_type | string | Yes | VAT status. Catalogue taxpayer_type. |
address | object | Yes | See below. |
persons[].address
| Field | Type | Required | Description |
|---|---|---|---|
street | string | Yes | Max 255 characters. |
street_number | string | Yes | Max 12 characters. |
zip_code | string | Yes | Max 10 characters. |
city | string | Yes | Max 255 characters. |
province | string | Yes | Catalogue province. Must belong to country — some names exist in more than one country. |
country | string | Yes | Catalogue country. |
phone | string | Yes | Max 30 characters. |
Resubmitting
There is one account per CUIT. Sending a CUIT that already exists is only accepted when you created it and its creation_state is FAILED or STUCK; the account is then rewritten with the new data and submitted again. Any other case fails with 422 and Ya existe una cuenta para este CUIT.
Response
2XX Success
Status: 202 Accepted
| Field | Type | Description |
|---|---|---|
success | boolean | Always true when the request was accepted. |
tax_id | string | The company's CUIT. Use it to query the account. |
state | string | Account state. Ingresado until creation finishes, then Operativo. |
creation_state | string | Where creation is. See creation states. |
Error Codes
| Status | Description |
|---|---|
401 | Unauthorized — invalid or missing access token |
403 | Forbidden — your credentials cannot create unit holder accounts |
422 | Validation failed. The body lists each failing field (account.tax_id, persons.0.address.province, …). |
Code Example
- cURL
- JavaScript
- Python
- Node.js
curl -X POST "https://b2b.allaria.cloud/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.cloud/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.cloud/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.cloud/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"
}