Un asiento en el libro de saldo de un "dueño de balance" (owner: una Account —de
clientes o repartidores—, una Branch, una Company o una ciudad
City). Es la única fuente de verdad de los saldos: los recursos
account-balances, branch-balances, client-balances y city-balances son rutas heredadas
que operan sobre esta misma tabla filtrando por dueño.
Todos en céntimos (× 100). initial_balance_e2 y final_balance_e2 son el saldo del dueño
antes y después del asiento; amount_e2 es el delta (positivo suma, negativo resta). number
es el correlativo del asiento para ese dueño. currency_iso es la moneda del saldo.
type)giftcard (canje de gift card), recharge (recarga de saldo), withdrawal (retiro),
change (vuelto de una compra), purchase (compra), reconciled (pago ya recibido),
fee / payment (comisión), delivery (envío), discount, refund (devolución),
transfer (transferencia entre dueños), adjustment (ajuste manual de un admin).
related es la entidad que originó el asiento (normalmente una Order); author es la
cuenta que lo registró. is_deferred marca los asientos diferidos (aún no aplicados al saldo).
owner_type / owner_id y related_type / related_id están en $hidden; la entidad
relacionada se expone como related_model.amount, final_balance, related_amount y related_final_balance son objetos Money
derivados.| Atributo | Tipo | Descripción |
|---|---|---|
id |
int |
|
number |
int |
Correlativo del asiento para su dueño de balance |
initial_balance_e2 |
int |
Saldo del dueño antes del asiento, en céntimos (× 100) |
amount_e2 |
int |
Delta del asiento, en céntimos (× 100); positivo suma, negativo resta |
final_balance_e2 |
int |
Saldo del dueño después del asiento, en céntimos (× 100) |
type |
string |
Tipo de movimiento (ver "Tipos") |
description |
string |
Descripción del movimiento |
is_deferred |
bool |
Si el asiento está diferido (aún no aplicado al saldo) |
created_at |
datetime\|null |
|
updated_at |
datetime\|null |
|
owner_id |
int |
Id del dueño de balance (oculto) |
owner_type |
string |
Tipo del dueño de balance: Account, Branch, Company o City (oculto) |
author_id |
int\|null |
{@link Account} que registró el asiento |
related_type |
string\|null |
Tipo de la entidad que originó el asiento (oculto) |
related_id |
int\|null |
Id de la entidad que originó el asiento (oculto) |
currency_iso |
string |
Moneda del saldo |
admin_url |
string\|null |
URL del asiento en el panel de administración |
allLogs |
ApiLog> |
|
amount |
Money\|null |
Monto del asiento como objeto Money |
author |
Account\|null |
{@link Account} que registró el asiento |
final_balance |
Money\|null |
Saldo final del dueño como objeto Money |
logs |
ApiLog> |
|
order_number |
string\|null |
uid de la orden relacionada, si aplica |
owner |
Model\|Eloquent |
Dueño de balance (Account, Branch, Company o City) |
ownerAccount |
Account\|null |
{@link Account} dueña, si el dueño es una cuenta |
related |
Model\|Eloquent |
Entidad que originó el asiento (normalmente una {@link Order}) |
related_amount |
Money\|null |
Monto del asiento espejo del otro dueño (en transferencias) |
related_final_balance |
Money\|null |
Saldo final del otro dueño (en transferencias) |
related_model |
string\|null |
Identificador legible de la entidad relacionada |
{
"id": 1,
"number": 1,
"initial_balance_e2": 0,
"amount_e2": 10000,
"final_balance_e2": 10000,
"type": "adjustment",
"description": "test",
"is_deferred": false,
"created_at": "2021-03-05 14:49:48",
"updated_at": "2021-03-05 14:49:48",
"author_id": 1,
"currency_iso": "USD",
"related_model": null,
"amount": {
"amount_e2": 10000,
"currency_iso": "USD",
"formatted_iso": "USD 100.00",
"formatted": "100.00$"
},
"related_amount": {
"amount_e2": 10000,
"currency_iso": "USD",
"formatted_iso": "USD 100.00",
"formatted": "100.00$"
},
"final_balance": {
"amount_e2": 10000,
"currency_iso": "USD",
"formatted_iso": "USD 100.00",
"formatted": "100.00$"
},
"related_final_balance": {
"amount_e2": 10000,
"currency_iso": "USD",
"formatted_iso": "USD 100.00",
"formatted": "100.00$"
}
}
{info} Soporta: Paginación Filters Carga dinámica
Listar movimientos de saldo
Devuelve los BalanceMovement del dueño de balance indicado por type + key
(account / branch / company / city y su id). Con report devuelve un resumen
agregado en vez del listado.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/balance-movements |
Authorization |
{
"type": "required|string|in:account,client,provider,branch,company,city",
"key": "required|integer|min:1",
"target_type": "string|regex:/^\w+(,\w+)*$/",
"report": "integer"
}
Devuelve el último BalanceMovement del dueño de balance indicado por type +
key, es decir su saldo actual.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/balance-movements/current |
Authorization |
{
"type": "required|string|in:account,client,provider,branch,company,city",
"key": "required|integer|min:1",
"target_type": "string|regex:/^\w+(,\w+)*$/",
"report": "integer"
}
Registra un BalanceMovement de tipo adjustment (ajuste manual, con motivo) sobre
el dueño de balance indicado por type + key.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/balance-movements/adjust |
Authorization |
{
"type": "required|string|in:account,client,provider,branch,company,city",
"key": "required|integer|min:1",
"amount_e2": "required|int",
"description": "string|max:128"
}
{info} Soporta: Paginación Filters Carga dinámica
BalanceMovement originados por la entidad indicada (p. ej. una Order). Para órdenes solo devuelve los asientos cuyo dueño es una Account.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/orders/{orderId}/balance-movements |
Authorization |
Registra el vuelto (change) entregado al cliente en una Order. Opcionalmente
carga el vuelto (o retira la comisión) al shopper o al repartidor con
is_affecting_provider / remove_provider_fee.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/orders/{orderId}/balance-movements/give-change |
Authorization |
{
"amount_e2": "required|int|min:1",
"description": "nullable|string|max:128",
"is_affecting_provider": "nullable|string|in:shopper,deliverer",
"remove_provider_fee": "nullable|string|in:shopper,deliverer"
}
| Código | HTTP | Cuándo ocurre |
|---|---|---|
EF502 |
400 | El monto debe ser positivo. |
EF504 |
400 | El vuelto total no puede superar el monto de la orden. |
Mueve saldo entre dos dueños de balance (un asiento transfer en cada uno), normalmente a
raíz de una orden.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/orders/{orderId}/balance-movements/transfer |
Authorization |
{
"type": "required|string|in:account,client,provider,branch,company,city",
"key": "required|integer|min:1",
"amount_e2": "required|int",
"target": "string",
"target_type": "string|in:account,client,provider,branch,company,city,client_uuid,email",
"description": "string|max:128"
}
Devuelve las deudas de wallet (wallet_debts) de la ciudad City
indicada.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/cities/{cityId}/balance-movements/debt |
Authorization |