2026-08-29 — El fondo solidario, completo y en litros
Para el front-end y mobile del cliente y del conductor, y el panel admin.
Summary
Al fondo solidario aportan tres partes, cada una con su 1%: el cliente, el conductor, y Agüita, que iguala lo que pone el conductor. El dato siempre se guardó bien, pero las pantallas mostraban solo dos. Como el total sí incluía los tres, el desglose no cuadraba con su propio total y faltaba explicar cerca de un tercio del fondo.
Aparte, los campos que se anunciaban como "litros donados" no usaban la tasa de 5 USD/1000 L: sumaban los litros entregados por las órdenes que aportaron. Eso daba una cifra inflada decenas de veces.
Ambas cosas quedan corregidas, y todo lo que se muestra en litros sale ahora de la misma tasa configurable.
Changes
El desglose del fondo muestra los tres aportes
| Endpoint | Campo nuevo |
|---|---|
GET /solidarity/stats |
aguitaContributionsUSD |
GET /admin/solidarity-fund |
aguita_contributions_usd |
En ambos se cumple ahora que cliente + conductor + Agüita = total.
Las contribuciones anteriores al 2026-06-08 son previas al aporte de Agüita: en ellas sale
0y los otros dos ya componen su total. No es un error, es que entonces Agüita todavía no aportaba.
El recibo del pedido
GET /orders/{orderId}/receipt suma aguita_solidary_usd al breakdown, junto a
los otros dos aportes. Antes se veían dos ítems que no sumaban el
solidary_fund_usd que el mismo recibo mostraba. El recibo del conductor
(GET /orders/{orderId}/driver-receipt) también lo incluye.
Ojo al mostrarlo: el aporte de Agüita sale de su propia comisión, así que
no se suma a client_pays_usd. Al cliente no le cuesta nada.
El conductor ve que Agüita iguala su aporte
GET /drivers/me/stats y GET /driver/stats agregan, en cada bloque:
| Campo | Para qué sirve |
|---|---|
matchedByAguitaUSD |
Lo que Agüita aportó igualando a ese conductor. |
matchedByAguitaLTS |
Lo mismo, en litros. |
totalImpactLTS |
Litros financiados entre su aporte y el de Agüita. |
GET /driver/stats además pasa a devolver solidaryLTS, que solo estaba en el
otro endpoint.
No asumas que matchedByAguitaUSD es igual a solidaryUSD. Se suma de las
órdenes reales: las entregas anteriores al 2026-06-08 no fueron igualadas, así que
para un conductor veterano las dos cifras difieren.
El cliente ve su aporte en litros
GET /solidarity/me agrega totalSolidaryLTS en el bloque user, y
totalSolidaryLTS / matchedByAguitaUSD / matchedByAguitaLTS /
totalImpactLTS en el bloque driver.
Agüita iguala al conductor, no al cliente, así que matchedByAguita*
solo aparece en el bloque driver. Ponerlo en el del cliente sería falso.
No confundas totalLitersOrdered / totalLitersDelivered (litros de agua pedidos
o entregados) con los campos *LTS (litros que financia el aporte).
Configuración
GET /admin/config/solidary devuelve aguita_solidary_pct. Es derivado y de
solo lectura: siempre vale lo mismo que driver_solidary_pct y no se guarda.
Mandarlo en el PATCH ahora da 422 en vez de ignorarse en silencio.
Cambios de valor (romper vs. antes)
Dos campos existentes cambian de valor sin cambiar de nombre. Si el front los muestra, hay que revisarlo antes de desplegar.
totalLitersDonated y total_liters_donated
Pasan a ser los litros que financia el fondo, a la tasa
aguita.solidary.usd_per_1000_liters (5 USD por cada 1000 L). Antes sumaban los
litros entregados por las órdenes que aportaron, que es otra cosa y daba un número
mucho mayor.
Con un fondo de $1.240,50: antes 15.600.000, ahora 248.100.
GET /admin/solidarity-fund suma además assigned_liters y remanent_liters, en
la misma unidad que sus equivalentes en dólares.
solidary_fund_usd en /admin/reports/orders
Se calculaba a mano como cliente + conductor, omitiendo el aporte de Agüita. Ahora usa el total real, así que sube. Afecta también a la columna "Fondo solidario (USD)" del CSV: una descarga vieja no cuadra con una nueva para los mismos pedidos. El valor viejo estaba mal; el mismo campo daba cifras distintas según el endpoint que preguntaras.