Event catalog
Exhaustive list of events emitted by Max Pay. Each event has a stable type (lowercase with dots as separators) and a documented data structure.
Conventions
All events share the structure:
{
"id": "evt_b3f8a1c2d4e5f6789012345678901234",
"type": "<event-type>",
"createdAt": "2026-05-15T14:30:05-03:00",
"data": { ... }
}
data.* includes the full resource in its state at the moment of the event. Derived data (stats, balances, etc.) is not included to avoid discrepancies with the current state.
Receivable accounts
receivable-account.created
Fires when a receivable account is created. The account is in PROVISIONING, with no CVU yet.
{
"type": "receivable-account.created",
"data": {
"receivableAccount": {
"id": 4242,
"status": "PROVISIONING",
"cvu": null,
"owner": { "type": "CLIENT", "id": 1042 },
...
}
}
}
receivable-account.activated
Fires when the CVU is assigned and the account moves to ACTIVE. This is the event the integrator should wait for to know the account is ready to operate.
{
"type": "receivable-account.activated",
"data": {
"receivableAccount": {
"id": 4242,
"status": "ACTIVE",
"cvu": "0000000099887766554433",
"alias": "distribuidora.demo.kiosco.central",
"owner": { "type": "CLIENT", "id": 1042 },
...
}
}
}
receivable-account.disabled
{ "type": "receivable-account.disabled", "data": { "receivableAccount": { ... } } }
receivable-account.owner-changed
Fires when an associate is post-hoc bound (A → C) or when the operator is reassigned (C → C with a different associate).
{
"type": "receivable-account.owner-changed",
"data": {
"receivableAccount": { "id": 4242, ... },
"previousOwner": { "type": "CLIENT", "id": 1042 },
"newOwner": { "type": "CLIENT_AND_ASSOCIATE", "clientId": 1042, "associateId": 88 }
}
}
receivable-account.cvu-failed
Fires after Max Pay exhausts the automatic retries against the banking provider without provisioning the CVU. The account ends up in DISABLED and the integrator can retry provisioning with POST /v1/receivable-accounts/{id}/activations, or create a new account if the owner data needs adjustments.
Subscribing to this event is recommended in the minimum setup to detect stuck accounts (see Minimum recommended setup).
{
"type": "receivable-account.cvu-failed",
"data": {
"receivableAccount": { "id": 4242, "status": "DISABLED", ... },
"error": { "code": "external-provider-unavailable", "detail": "..." }
}
}
receivable-account.batch.completed
Fires when a bulk creation of receivable accounts (POST /v1/receivable-accounts/batches) finishes.
{
"type": "receivable-account.batch.completed",
"data": {
"batchId": 1203,
"totalItems": 250,
"successCount": 248,
"failureCount": 2,
"reportUrl": "https://files.maxpay.com.ar/batches/1203/report.csv?token=..."
}
}
The CSV report contains one row per account with its receivableAccountId, final status, and error.code on failure.
Receivables
receivable.created
{ "type": "receivable.created", "data": { "receivable": { ... } } }
receivable.updated
Changes to editable fields of the receivable (description, dueDate, etc.).
receivable.paid
Fires when a receivable transitions to PAID.
receivable.expired
Fires when a receivable transitions to EXPIRED (typically via the nightly job).
receivable.settled
Fires when a receivable transitions to SETTLED during a settlement cycle. Expect many events together when an account with many pending receivables is settled.
{
"type": "receivable.settled",
"data": {
"receivable": { ... },
"settlementId": 9001
}
}
receivable.disabled
Fires when a receivable is cancelled.
receivable.batch.completed
Fires when a bulk receivable creation finishes.
{
"type": "receivable.batch.completed",
"data": {
"batchId": 902,
"totalItems": 500,
"successCount": 498,
"failureCount": 2,
"reportUrl": "https://files.maxpay.com.ar/batches/902/report.csv?token=..."
}
}
Movements (collections and rollbacks)
movement.created
Fires for every new movement, whether credit or debit. It is the primary event for collection reconciliation. Particularly important because the system does not automatically link these movements to specific receivables.
{
"type": "movement.created",
"data": {
"movement": {
"id": 88123,
"receivableAccountId": 4242,
"movementType": "CREDIT",
"operationType": "DEPOSIT",
"amount": 45000.00,
"counterParty": { "name": "Kiosco Central", "taxId": "30998888887" }
}
}
}
Rollbacks
When an incoming movement is reversed (for example, a COELSA rejection after the funds were credited), a new movement.created is emitted with operationType: ROLLBACK referencing the original movement. There is no separate event for rollbacks: your movement.created handler must branch on operationType.
Settlements
settlement.scheduled
Fires when a settlement is scheduled for execution.
settlement.completed
Fires when a settlement completes successfully. Includes the full summary.
{
"type": "settlement.completed",
"data": { "settlement": { ... full object ... } }
}
settlement.failed
Fires when a settlement fails. Escalate to support.
{
"type": "settlement.failed",
"data": {
"settlement": { "id": 9001, "status": "FAILED", ... },
"error": { "code": "...", "detail": "..." }
}
}
Clients and associates
client.created
client.updated
associate.created
associate.updated
associate.disabled
associate.activated
Route settlements
route-settlement.created
route-settlement.updated
Webhooks (meta)
webhook.test
Test event sent by POST /v1/webhooks/{id}/deliveries. Useful for validating connectivity and signature verification from the ERP.
{
"id": "evt_test_...",
"type": "webhook.test",
"createdAt": "...",
"data": {
"message": "Test delivery from Max Pay",
"webhookId": 301
}
}
Recommendation: which events to subscribe to in a minimum setup
For a minimum viable setup of a typical integrator:
{
"events": [
"receivable-account.activated",
"receivable-account.cvu-failed",
"receivable.settled",
"movement.created",
"settlement.completed",
"receivable.batch.completed",
"receivable-account.batch.completed"
]
}
Subscribing to receivable-account.cvu-failed lets you react when an account fails to obtain a CVU after the automatic retries. If you also mark receivables as PAID from the ERP, add receivable.paid to confirm the change.