# Pago insuficiente

> Un pago cripto que llega por debajo del monto debido. Cómo CryptoLike deja la dirección abierta para completarlo y qué te indica remaining_amount.

Source: https://cryptolike.net/es/glossary/underpaid-payment
Updated: 2026-09-25

Un pago cripto cuyas transferencias confirmadas suman menos que el monto debido: el pedido todavía no está cubierto y el pagador aún debe la diferencia.

## Cómo funciona en CryptoLike

CryptoLike marca un pago como `underpaid` (Pago insuficiente) cuando una transferencia confirmada cubre menos que `payer_amount` y el faltante queda fuera de la tolerancia de pago insuficiente de tu cuenta. El pago sigue abierto: el pagador puede enviar la parte que falta a la misma dirección hasta `ttl_expires_at`, y `remaining_amount` indica exactamente cuánto falta. Un envío adicional que completa el monto pasa el pago a `paid`.

Recibes `invoice.underpaid` con `paid_amount` y `remaining_amount`. La página de pago muestra cuánto se recibió y le pide al pagador enviar el resto a la misma dirección; su código QR y su URI de pago llevan el monto restante, no el original. Incluso antes de la confirmación, la página compara el monto detectado con el monto debido, así el pagador ve enseguida que la transferencia quedó corta.

Cuando pasa el TTL, `underpaid` se vuelve definitivo (`is_final: true`, con `expired_at` fijado) y la página le indica al pagador que contacte al comercio por el monto parcial. La parte recibida queda en tu saldo. Decide con el cliente: aceptarla, pedir el resto en un pago nuevo o devolverla con un retiro. Los fondos que lleguen después se acreditan como pago tardío (`invoice.late_payment`). Un faltante pequeño dentro de la tolerancia cuenta como `paid`. Una causa frecuente es un exchange que descuenta su comisión de retiro del monto enviado; consulta [pagos cripto insuficientes](https://cryptolike.net/blog/underpaid-crypto-payments).

## Ejemplo

Un webhook `invoice.underpaid` de CryptoLike trae el estado actual completo del pago, así tu código puede mostrarle al cliente el monto faltante y el plazo sin otra llamada a la API. Los valores son ilustrativos; los nombres de los campos son el contrato:

```json
{
  "type": "invoice.underpaid",
  "data": {
    "invoice": {
      "status": "underpaid",
      "ticker": "USDT",
      "payer_amount": "25",
      "paid_amount": "20",
      "remaining_amount": "5",
      "ttl_expires_at": "2026-09-16T12:30:00Z"
    }
  }
}
```
