Business Units are independent sub-accounts that can be created under a client’s main account.
Each Business Unit is treated as its own legal entity; it has a CLABE, its own balance, and when a CEP (Comprobante Electrónico de Pago) is generated, it shows the Business Unit’s name, not the parent client’s.
This structure allows companies to organize their operations while maintaining the legal and accounting separation they require.
Business Units are represented as Customers in the API.
Each Customer is essentially a Business Unit account, treated as its own legal entity: it has a RFC, CLABE, and independent balance.
All Customers (Business Units) belong to a parent Merchant account, which must be provisioned by Monato before you can create or manage Private accounts.
Typical use cases include:
- Assigning CLABEs to subsidiaries or affiliates.
- Handling projects or business units that require independent balances and reporting.
- Ensuring that CEP receipts match the correct legal entity for compliance and accounting.
- Structuring private debt facilities by modeling SPVs, facilities, and reserve accounts as Business Units, enabling clear separation of balances and automated allocation of inflows.
- Legal & Accounting Compliance: Each Business Unit appears as a distinct legal entity, simplifying audits and tax obligations.
- Simplified Finance Management: Centralize treasury while avoiding the complexity of opening multiple bank accounts.
- Operational Flexibility: Receive and send payments directly from each entity’s CLABE.
- Scalable Setup: Add new Business Unit quickly as the business grows, without extra bureaucracy.
- Integration Ready: Manage entities via API, enabling automation and custom workflows.
- Business Unit Main Account: A Merchant account (the “parent” of all Business Units) is required. This step is handled by Monato. Please contact us if you do not yet have a Merchant account.
- Customer Creation and Validation: When a Business Unit (Customer) is first created, its
customerValidationStatus
will bePENDING
until KYB checks are completed. OnlyVALIDATED
Customers should be used for production operations. This step si also performed by Monato - Processing Time: Account creation and activation may take a few seconds to propagate across systems.
- Account Status: Newly created accounts start in
ACTIVE
if successful. - Unique CLABE: Each Business Unit account generates a unique CLABE that cannot be reused or reassigned.
- Prerequisites
- A valid
clientId
andcustomerId
must exist. - Authentication token must be included in the request headers.
- A valid
Endpoint POST /v1/clients/{{clientId}}/customers/{{customersId}}/private_accounts
Path parameters: none
Query Parameters: none
Request Body:
{
"client_id": "{{client_id}}",
"client_bank_adapter_id": "{{client_bank_adapter_id}}",
"bank_id": "{{bank_id}}",
"owner_id": "{{owner_id}}"
}
Response
Status Code: 200 OK
Response Body:
{
"id": "9bde649b-a109-4304-848d-4af4dd898f5b",
"bankId": "14b392f6-0dd9-4cd9-ac51-d13c5547c137",
"clientId": "d9836d30-b235-4k4b-8c51-f994326c0888",
"clientBankAdapterId": "848af863-fe20-4f3a-96a5-a8d4909995c1",
"accountId": "ac8e89e6-fbfa-41ce-8c77-058b6c485891",
"instrumentId": "53826860-8426-4876-90e0-3ffc5314d35c",
"ownerId": "85cb81bb-f3ff-4294-8864-988e83f02b3c",
"ownerType": "CUSTOMER",
"accountNumber": "123456789012",
"clabeNumber": "734180123456789012",
"availableBalance": "0.00",
"accountType": "PRIVATE_ACCOUNT",
"accountStatus": "ACTIVE",
"audit": {
"createdAt": "2025-09-08 16:56:30.668821-06:00",
"updatedAt": "2025-09-08 16:56:30.668821-06:00",
"deletedAt": "None",
"blockedAt": "None",
"activatedAt": "None",
"suspendedAt": "None"
},
"bankAdapter": "SIES"
}
As you can see, the response includes not only the account identifiers (such as accountId
, accountNumber
, and clabeNumber
), but also metadata like the audit trail (createdAt
, updatedAt
) and the current accountStatus
.
This detailed payload ensures you can immediately confirm the account’s state, trace when it was created, and map it to your internal systems with certainty.
Once Business Units (Customers) are created, you can retrieve them and their details using the following endpoint:
ℹ️ Note: Customers always start with customerValidationStatus = PENDING
and move to VALIDATED
once KYB checks are completed.
- Prerequisites
- A valid
clientId
must exist. - Authentication token must be included in the request headers.
- A valid
EndpointGET /v1/clients/{{clientId}}/customers
Request
Path Parameters: none
Query Parameters: none
Request Body: none
Response
Status Code: 200 OK
Response Body:
{
"currentPage": 1,
"perPage": 50,
"totalItems": 3,
"data": [
{
"id": "85cb81bb-f3ff-4294-8864-938e83f02b3c",
"clientId": "d9836d30-b235-4f4b-8c51-f974326c0888",
"name": "Pedro Juarez Aguila",
"rfc": "XAXX010101000",
"legalRepresentativeName": "Pedro Juarez Aguilar",
"legalRepresentativeRfc": "XAXX010101000",
"legalRepresentativePhone": "1234567890",
"legalRepresentativeEmail": "mail1@mail.com",
"domain": "mydomain.com3",
"customerAlias": "Peter",
"customerStatus": "ACTIVE",
"customerValidationStatus": "VALIDATED",
"audit": {
"createdAt": "2025-09-05 11:14:22.883546-06:00",
"updatedAt": "2025-09-05 11:14:22.883546-06:00",
"deletedAt": "None",
"blockedAt": "None"
}
},
{
"id": "95ba5a24-4312-4bc5-9dd8-61c7e6767d7a",
"clientId": "d9836d30-b235-4f4b-8c51-f974326c0888",
"name": "Raul Gonzalez Sanchez",
"rfc": "XAXX010101000",
"legalRepresentativeName": "Raul Gonzalez Sanchez",
"legalRepresentativeRfc": "XAXX010101000",
"legalRepresentativePhone": "1234567890",
"legalRepresentativeEmail": "mail@mail.com",
"domain": "mydomain.com4",
"customerAlias": "Raul",
"customerStatus": "ACTIVE",
"customerValidationStatus": "VALIDATED",
"audit": {
"createdAt": "2025-09-05 11:18:58.559081-06:00",
"updatedAt": "2025-09-05 11:18:58.559081-06:00",
"deletedAt": "None",
"blockedAt": "None"
}
},
{
"id": "997792b0-2d2d-4bb0-bf1d-2b0c90c42ec9",
"clientId": "d9836d30-b235-4f4b-8c51-f974326c0888",
"name": "Juan Perez Arguelles",
"rfc": "XAXX010101000",
"legalRepresentativeName": "Juan Perez Arguelles",
"legalRepresentativeRfc": "XAXX010101000",
"legalRepresentativePhone": "1234567890",
"legalRepresentativeEmail": "name@mail.com",
"domain": "mydomain.com5",
"customerAlias": "Juan",
"customerStatus": "ACTIVE",
"customerValidationStatus": "VALIDATED",
"audit": {
"createdAt": "2025-09-05 11:21:11.091527-06:00",
"updatedAt": "2025-09-05 11:21:11.091527-06:00",
"deletedAt": "None",
"blockedAt": "None"
}
}
]
}
- Ensure your Business Units are fully VALIDATED before using them in production.
- Use the generated CLABEs to start receiving funds into each Business Unit.
- Refer to the Webhooks documentation to integrate notifications for incoming transactions.