Haz que una comisión sea diferible
Define
deferrable: true en una comisión cuando creas o actualizas su paquete de comisiones.
- Solo una comisión con
isDeductibleFrom: falsepuede ser diferible. Midaz rechaza una comisión deducible que también sea diferible con el error0530. - Una comisión diferible abre una deuda solo en una transacción directa
/v2. En un hold/v2, Midaz rechaza una comisión sin cobertura con el error0018. - Cuando un saldo ya tiene 256 deudas de comisión abiertas, Midaz rechaza una nueva comisión diferible sin cobertura en él con el error
0018.
feeDebtOpenings de la transacción registra la deuda.
Cómo se liquida una deuda
Un crédito al saldo del pagador a través de la API
/v2 liquida sus deudas de comisión abiertas, de la más antigua a la más reciente. Esto incluye transacciones directas, commits y reversiones. Un crédito menor que una deuda liquida una parte de ella.
Cada liquidación mueve el valor del saldo del pagador a la cuenta de comisiones de la deuda. Midaz registra estos movimientos como operaciones de tipo FEE_SETTLEMENT, y la clave de metadatos feeDebtSettlements de la transacción registra las deudas liquidadas.
Para liquidar deudas sin un crédito, usa Cobrar deudas de comisión abiertas. Envía el accountAlias del pagador y, de forma opcional, un balanceKey y un maxAmount.
- Midaz paga las deudas abiertas de ese saldo con su monto disponible, de la más antigua a la más reciente, y no cobra comisión por el cobro.
- La respuesta incluye el monto
collectedy eltransactionIddel cobro. - Cuando no se cobra nada, la respuesta incluye
collected: "0"y Midaz no crea ninguna transacción. - No puedes revertir un cobro. Midaz lo rechaza con el error
0089.
Reversiones y deuda de comisión
Cuando reviertes la transacción que abrió una deuda, el pagador recupera la comisión completa:
- La reversión devuelve la parte de la comisión que el pagador pagó en la transacción original.
- Midaz cancela la parte de la deuda que sigue abierta.
- Midaz reembolsa la parte que los créditos siguientes liquidaron. La cuenta de comisiones paga el reembolso, y Midaz lo registra como operaciones de tipo
FEE_REFUND. En/v2, el reembolso luego liquida las otras deudas abiertas del pagador, de la más antigua a la más reciente.
0529 (HTTP 409) y no mueve nada. Inténtalo de nuevo más tarde.
Consulta las deudas de comisión
- Listar deudas de comisión devuelve las deudas de un ledger, de la más antigua a la más reciente. Filtra por
account_alias,balance_keyystatus(openosettled). Conaccount_alias, la respuesta también incluyeopenTotal, el total que debe el saldo. - Obtener una deuda de comisión devuelve una deuda con su monto
remainingy su historial de cambios.
midaz/fee-debts con get. Cobrar deuda de comisión requiere post.
Cada cambio tiene uno de estos tipos:
Cuentas y saldos con deuda de comisión
Midaz se niega a eliminar un saldo, o a eliminar o cerrar su cuenta, cuando:
- El saldo debe deuda de comisión (error
0527). Acredita el saldo o cobra la deuda primero. - Otros saldos deben deuda de comisión al saldo (error
0528), por ejemplo una cuenta de comisiones. Acredita primero los saldos que deben la deuda.
Antes de activar la deuda de comisión
- Ejecuta Midaz v4.2.0 o posterior en todas las instancias del ledger antes de definir
deferrableen una comisión. Una versión anterior no puede completar una transacción que lleva deuda de comisión. Después de definirlo, no hagas rollback del ledger a una versión anterior. - El ledger guarda las deudas de comisión abiertas en Valkey. Valkey debe ser persistente y conservar estas claves. Consulta Configuración de dependencias.

