Account movements
Each credit or debit on a receivable account is recorded as a movement. Movements are the operational statement of the account.
Endpoint
GET /v1/receivable-accounts/{id}/movements
Filters
| Parameter | Type | Description |
|---|---|---|
fromDate | ISO 8601 | Filters by movementDate >= |
toDate | ISO 8601 | Filters by movementDate <= (inclusive) |
movementType | enum | CREDIT or DEBIT |
operationType | enum | DEPOSIT, WITHDRAW, TAX_CREDIT, TAX_DEBIT, TAX_ADJUSTMENT_CREDIT, TAX_ADJUSTMENT_DEBIT, ROLLBACK |
minAmount | decimal | Minimum amount (absolute) |
maxAmount | decimal | Maximum amount (absolute) |
counterPartyTaxId | string | Counterparty CUIT/CUIL |
linkedReceivableId | int64 | Movements associated with a specific receivable |
unsettledOnly | boolean | Only movements pending settlement |
sort | string | Default -movementDate. Accepts movementDate, -movementDate, amount, -amount |
page, count | int | Pagination |
Model
{
"id": 88123,
"receivableAccountId": 4242,
"amount": 45000.00,
"currencyCode": "ARS",
"movementType": "CREDIT",
"operationType": "DEPOSIT",
"movementDate": "2026-05-15T14:30:00-03:00",
"balanceAfter": 165000.00,
"detail": "Incoming transfer",
"counterParty": {
"name": "Kiosco Central",
"taxId": "30998888887",
"routingCode": "0000000099887766554433",
"routingType": "CBU"
},
"linkedReceivableId": null,
"linkedSettlementId": null,
"originalMovementId": null,
"rollbackMovementId": null,
"creationDate": "2026-05-15T14:30:01-03:00"
}
Fields
| Field | Description |
|---|---|
movementType | CREDIT (money in) or DEBIT (money out). |
operationType | More specific sub-type. DEPOSIT is an incoming transfer, TAX_CREDIT/TAX_DEBIT are tax withholdings, ROLLBACK is a reversal. |
balanceAfter | Account balance after this movement. |
counterParty | Data of the originator of the movement (in CREDIT) or the destination (in DEBIT). |
linkedReceivableId | If this movement is the result of an operation on a specific receivable. Generally null for incoming deposits. |
linkedSettlementId | If this movement is part of a settlement cycle. |
originalMovementId | If this movement is a ROLLBACK, points to the original reversed movement. |
rollbackMovementId | If this movement was reversed by another, points to the rollback movement. |
The system does not automatically link incoming DEPOSITs to specific receivables. If a client has several pending invoices, the system cannot infer which one is being paid. Matching, if the customer needs it, is done from the ERP. See Receivable lifecycle.
Rollbacks
When a movement is reversed (for example, a transfer rejected by COELSA after being credited), a new movement appears with:
operationType: ROLLBACKmovementTypeopposite to the original (if the original wasCREDIT, the rollback isDEBIT)originalMovementId: the ID of the reversed movement- Same absolute amount as the original
The original movement is also updated with rollbackMovementId pointing to the rollback. This enables traceability in both directions.
Example: last month's statement
const movements = [];
let page = 1;
while (true) {
const res = await fetch(
`/v1/receivable-accounts/${accountId}/movements?` +
`fromDate=2026-04-01T00:00:00-03:00&toDate=2026-04-30T23:59:59-03:00&` +
`page=${page}&count=200`,
{ headers: { Authorization: `Bearer ${token}` } }
);
if (res.status === 204) break;
const batch = await res.json();
movements.push(...batch);
const total = parseInt(res.headers.get('X-Total-Count'), 10);
if (page * 200 >= total) break;
page++;
}
console.log(`Total movements in April: ${movements.length}`);
Asynchronous exports
For large volumes, it is preferable to use asynchronous reports instead of paginating. See Reports (coming soon).