Saltar al contenido principal

Cuentas en Patrones B y C

Esta guía cubre cómo crear cuentas recaudadoras cuando el owner no es solo un cliente. Para el caso simple (un cliente sin operador), ver Crear una cuenta recaudadora. Para entender los patrones conceptualmente y decidir cuál usar, ver Modelos de operación.

Las convenciones de los ejemplos (cliente HTTP maxpay, Idempotency-Key determinística) son las mismas que en la guía base.

Patrón B — Cuenta de operador

Caso típico: operadores que recaudan a granel y rinden al customer. Los clientes finales no se modelan.

const associate = await maxpay.post('/v1/associates', {
headers: { 'Idempotency-Key': `erp-asc-${erpAssociateId}` },
body: {
type: 'DRIVER',
name: 'Operario',
lastName: '042',
taxId: '20999999999',
documentNumber: '99999999',
phone: '+541111000042'
}
});

const account = await maxpay.post('/v1/receivable-accounts', {
headers: { 'Idempotency-Key': `erp-rac-asc-${erpAssociateId}` },
body: { associateId: associate.id }
});

Respuesta

201 Created
Location: /v1/receivable-accounts/4243

{
"id": 4243,
"cvu": null,
"alias": null,
"currencyCode": "ARS",
"status": "PROVISIONING",
"owner": { "type": "ASSOCIATE", "id": 88 },
"creationDate": "...",
"modificationDate": "..."
}

Patrón C — Cuenta de cliente con operador asignado

Este patrón se puede construir en una sola llamada (cliente y operador ya existen, se vinculan ambos al alta) o en dos fases (primero Patrón A, luego se agrega el operador con Vinculación post-hoc).

Caso C.1 — Cliente con chofer asignado

const account = await maxpay.post('/v1/receivable-accounts', {
headers: { 'Idempotency-Key': `erp-rac-${erpClientId}-${erpAssociateId}` },
body: {
clientId: 1042,
associateId: 88
}
});

Caso C.2 — Modelo educativo (alumno + tutor)

El alumno se modela como client y el pagador (mismo alumno mayor de edad, o tutor/padre) como associate. Ambos pueden compartir taxId.

const student = await maxpay.post('/v1/clients', {
headers: { 'Idempotency-Key': `inst-edu-alumno-${legajo}` },
body: {
businessName: '...',
taxId: '20998888887',
documentType: 'CUIL',
externalId: legajo
}
});

const payer = await maxpay.post('/v1/associates', {
headers: { 'Idempotency-Key': `inst-edu-tutor-${legajo}` },
body: {
type: 'GUARDIAN',
name: '...',
taxId: '20998888887',
documentNumber: '99888888'
}
});

const account = await maxpay.post('/v1/receivable-accounts', {
headers: { 'Idempotency-Key': `inst-edu-rac-${legajo}` },
body: {
clientId: student.id,
associateId: payer.id
}
});

Errores comunes

Los errores de creación son los mismos que en Patrón A. Ver la tabla en Crear una cuenta recaudadora.