Saltar al contenido principal

Clientes

Los clientes representan a los clientes finales del customer: empresas, comercios, o personas físicas a quienes el customer factura. En el modelo educativo, los alumnos también se modelan como clientes (ver modelos de operación).

Modelo

{
"id": 1042,
"businessName": "Kiosco Central",
"taxId": "30998888887",
"documentType": "CUIT",
"email": "[email protected]",
"branchExternalCode": null,
"branchDescription": null,
"branchReferenceAddress": null,
"externalId": "ERP-CLI-12345"
}
CampoTipoRequeridoDescripción
idint64(response)ID asignado por Max Pay
businessNamestringRazón social o nombre completo
taxIdstringCUIT/CUIL, 11 dígitos sin guiones
documentTypeenumCUIT o CUIL
emailstringNoEmail de contacto del cliente
branchExternalCodestringSolo si tiene sucursalCódigo identificador de sucursal
branchDescriptionstringSolo si tiene sucursalDescripción de la sucursal
branchReferenceAddressstringSolo si tiene sucursalDirección de la sucursal
externalIdstringNoID del cliente en el ERP del integrador

Sucursales

Un cliente con varias sucursales se modela como una fila por sucursal, con el mismo taxId y distinto branchExternalCode. Cada sucursal es un cliente separado a efectos de comprobantes y cuentas recaudadoras.

Ejemplo: BebidasPyme S.R.L. con 3 sucursales:

// Las 3 filas comparten taxId, varían en branchExternalCode
[
{ id: 1101, businessName: "BebidasPyme S.R.L.", taxId: "30997777776", branchExternalCode: "01", branchDescription: "Centro" },
{ id: 1102, businessName: "BebidasPyme S.R.L.", taxId: "30997777776", branchExternalCode: "02", branchDescription: "Norte" },
{ id: 1103, businessName: "BebidasPyme S.R.L.", taxId: "30997777776", branchExternalCode: "03", branchDescription: "Belgrano" }
]

Para listar todas las sucursales de un mismo CUIT:

GET /v1/clients?taxId=30997777776

Endpoints

MétodoPathDescripción
GET/v1/clientsLista con filtros
POST/v1/clientsCrea (upsert por taxId + branch)
GET/v1/clients/{id}Detalle
PUT/v1/clients/{id}Actualiza
GET/v1/clients/{id}/receivable-accountsCuentas recaudadoras del cliente
GET/v1/clients/{id}/associatesAsociados que comparten cuentas recaudadoras con este cliente (derivado)

POST es upsert

POST /v1/clients tiene comportamiento upsert por la clave de unicidad (customer, documentType, documentNumber, branchExternalCode). Si el cliente ya existe con esa combinación, devuelve 200 OK con el cliente existente (no 201 Created). Esto permite hacer sincronización inicial idempotente sin manejar errores de duplicado.

POST /v1/clients
Idempotency-Key: erp-cli-12345
Content-Type: application/json

{
"businessName": "Kiosco Central",
"taxId": "30998888887",
"documentType": "CUIT",
"email": "[email protected]",
"externalId": "ERP-CLI-12345"
}
StatusSignifica
201 CreatedCliente creado por primera vez
200 OKCliente ya existía y se devuelve tal cual está en el sistema

Filtros de búsqueda

GET /v1/clients
ParámetroTipoDescripción
customerIdint64(no aplica vía API pública — el customer es implícito)
taxIdstringCUIT/CUIL exacto, 11 dígitos sin guiones
branchExternalCodestringCódigo de sucursal
idsarray de int64Lista de IDs específicos
externalIdstringID del integrador
page, countintPaginación

Actualización

PUT /v1/clients/1042
Content-Type: application/json

{
"businessName": "Kiosco Central S.R.L.",
"email": "[email protected]",
"taxId": "30998888887",
"documentType": "CUIT"
}

No se puede modificar taxId, documentType ni branchExternalCode (son parte de la identidad del cliente). Para "renombrar" un cliente con CUIT distinto, hay que crear uno nuevo.

Errores comunes

EscenarioHTTPcode
taxId con formato inválido400validation
Cliente con sucursal sin branchDescription o branchReferenceAddress422incomplete-branch
Cliente sin sucursal con branchExternalCode setteado422incomplete-branch
documentType no soportado400validation

Sin alta masiva por ahora

El alta masiva de clientes no está expuesta por el momento; la exposición pública se está evaluando para futuras versiones. Si tu integración requiere alta masiva de clientes (más de 50 por día), contactá a tu account manager para evaluar opciones.

Para alta masiva de cuentas recaudadoras vinculadas a clientes ya existentes, ver Alta masiva de receivable-accounts.