Skip to main content

Associates

Associates represent the customer's operators: drivers, distributors, paying students, guardians, club members. They are individuals tied to the customer's operations.

Model

{
"id": 88,
"type": "DRIVER",
"name": "Operario",
"lastName": "042",
"taxId": "20999999999",
"documentNumber": "99999999",
"email": "[email protected]",
"phone": "+541111000042",
"address": "Av. Las Heras 2000, CABA",
"parentAssociateId": null,
"status": "ACTIVE",
"creationDate": "2026-04-10T10:00:00-03:00",
"modificationDate": "2026-04-10T10:00:00-03:00"
}
FieldTypeRequiredDescription
idint64(response)ID assigned by Max Pay
typestringYesFree-form type. Conventions: DRIVER, DISTRIBUTOR, STUDENT, GUARDIAN, MEMBER, OTHER
namestringYesFirst name
lastNamestringYesLast name
taxIdstringYesCUIT/CUIL, 11 digits without dashes
documentNumberstringYesDNI
emailstringYesContact email
phonestringYesPhone number with country code
addressstringNoAddress
parentAssociateIdint64NoFor hierarchies (supervisor associate)
statusenum(response)ACTIVE or DISABLED
About the type field

type is a free-form string, not a closed enum. The customer can use any value that fits its business model. The recommended convention is uppercase values with underscores (DRIVER, GUARDIAN, STUDENT_PAYER, etc.). This makes it possible to add new types without breaking changes.

Endpoints

MethodPathDescription
GET/v1/associatesList with filters
POST/v1/associatesCreate an associate
GET/v1/associates/{id}Detail
PUT/v1/associates/{id}Update
DELETE/v1/associates/{id}Disable (soft delete)
POST/v1/associates/{id}/activationsRe-enable
GET/v1/associates/{id}/receivable-accountsReceivable accounts for the associate
GET/v1/associates/{id}/route-settlementsRoute settlements for the associate

Create an associate

POST /v1/associates
Idempotency-Key: erp-asc-12345
Content-Type: application/json

{
"type": "DRIVER",
"name": "Operario",
"lastName": "042",
"taxId": "20999999999",
"documentNumber": "99999999",
"email": "[email protected]",
"phone": "+541111000042"
}
Creation does not create a receivable account

POST /v1/associates creates only the associate entity. If the associate needs their own receivable account (model B or C), it must be created separately with POST /v1/receivable-accounts. See How to create receivable accounts.

Response

201 Created
Location: /v1/associates/88

{
"id": 88,
"type": "DRIVER",
...
"status": "ACTIVE",
"creationDate": "2026-05-15T10:00:00-03:00"
}

Upsert by taxId

POST /v1/associates is also an upsert keyed by (customer, taxId). If an active associate with that taxId already exists for the customer, the response is 200 OK with the existing associate.

List filters

GET /v1/associates
ParameterTypeDescription
taxIdstringExact CUIT/CUIL
documentNumberstringExact DNI
typestringSpecific type
parentAssociateIdint64Associates that report to a parent
statusenumDefaults to ACTIVE
idsarray of int64List of specific IDs
page, countintPagination

Disable

DELETE /v1/associates/88

204 No Content

This is a soft delete: the associate is set to status: DISABLED. Historical data remains accessible. Receivable accounts linked to this associate may become invalid or require reassignment (see operator reassignment).

Re-enable

POST /v1/associates/88/activations

200 OK
{
"id": 88,
"status": "ACTIVE",
...
}

Associate hierarchies

For models where some associates report to others (e.g., a supervisor over drivers), use parentAssociateId:

POST /v1/associates
{
"type": "DRIVER",
"name": "Operario",
"lastName": "100",
"taxId": "20888888880",
...
"parentAssociateId": 50 // supervisor ID
}

List the subordinates of a supervisor:

GET /v1/associates?parentAssociateId=50

Common errors

ScenarioHTTPcode
Duplicate associate by taxId200(upsert, returns existing)
taxId with invalid format400validation
Missing required field400validation
Operation on a DISABLED associate422associate-disabled

No bulk creation for now

Like clients, bulk creation of associates is being evaluated for future versions.