Skip to content
RugWard
☰ Menú

RugWard Pay

Estados, confirmaciones y pruebas de pago

El ciclo de vida de la factura en detalle: cuándo cuenta como pagada, qué significan pago insuficiente, pago excedente, tardía y vencida, cómo funcionan los reembolsos y cómo compartir una prueba de pago.

En esta página

El ciclo de vida de un vistazo#

text
open ──(payment seen)──▶ pending ──(enough confirmations, full amount)──▶ paid / overpaid
  │                        │
  │                        └─(quote expired + 10 min grace, still short)──▶ underpaid
  ├─(nothing arrives before expiry)──▶ expired
  ├─(payment seen only after quote expiry + 10 min)──▶ late
  └─(merchant cancels, no payment yet)──▶ canceled

Referencia de estados#

EstadoEtiqueta en el panelSignificadoQué hacer¿Final?
openAwaiting paymentCreada; aún no se ha visto ningún pago.Esperar.no
pendingPayment detected, confirmingSe vio un pago pero aún no está confirmado, o solo llegó parte del importe mientras el tipo de cambio sigue fijado (el comprador puede enviar el resto).Esperar. Todavía no envíes el pedido.no
paidPaidLos pagos confirmados cubren el importe cotizado (ver la tolerancia más abajo).Envía el pedido.sí
overpaidPaid (more than requested)Pagada, y más de un 1% por encima del importe cotizado.Envía el pedido; si quieres, devuelve el exceso desde tu billetera.sí
underpaidUnderpaidEl bloqueo del tipo de cambio (más 10 minutos de gracia) terminó con menos importe confirmado del debido.Contacta con el comprador: pide la diferencia o reembolsa.sí
latePaid after expiryEl pago llegó solo después del vencimiento de la cotización más 10 minutos.Comprueba el importe y el tipo de cambio actual y decide: aceptar, pedir la diferencia o reembolsar.sí
expiredExpiredNo llegó nada a tiempo.Crea una factura nueva si el comprador aún quiere pagar.sí
canceledCanceledLa cancelaste antes de cualquier pago.—sí

Cada cambio de estado genera un evento de webhook (invoice.pending, invoice.paid, …). Consulta Webhooks.

Para la moneda elegida por el comprador, RugWard suma los pagos confirmados que se vieron antes del vencimiento de la cotización más 10 minutos de gracia (así, una transacción emitida justo antes del plazo sigue contando). La factura queda:

  • paid cuando ese total es al menos el importe cotizado menos una pequeña tolerancia: el desfase del importe único más un 0,1% (cubre billeteras que redondean los últimos dígitos);
  • overpaid cuando supera en más de un 1% el importe cotizado.

Nunca se suman importes en monedas distintas. En Base, donde el 0,5% se divide on-chain, la comprobación se hace sobre el 99,5% que te llega.

Confirmaciones#

RedNecesarias
Bitcoin1
Monero10
Ethereum12 bloques
Base30 bloques
Arbitrum60 bloques
BNB Chain15 bloques
Polygon32 bloques
Solanacompromiso finalized

Cómo detecta RugWard los pagos#

MonedaSe detecta automáticamente medianteEl comprador también puede pegar
Bitcoinescaneo de tu dirección en busca del importe único exactoid de la transacción
USDC / USDT en cadenas EVM (sin splitter)eventos Transfer del token con el importe único exactohash de la transacción
ETH / BNB (sin splitter)el hash de la transacción (lo envía automáticamente el botón de billetera)hash de la transacción
ETH / USDC en Base (splitter)el evento Paid del splitter con la reference de esta cotización, tu dirección, el token y una comisión de exactamente el 0,5%hash de la transacción
SOL / USDC / USDT en Solanala clave reference de Solana Payfirma de la transacción
Moneroel id de la transacción más la tx key, o tu view key (dos nodos públicos deben coincidir)id de la transacción (+ tx key)

Protecciones integradas en la detección:

  • Una transacción paga una factura. Una transacción solo puede acreditarse una vez por red y dirección de destino.
  • Sin front-running. Un hash de transacción pegado por otra persona solo se acepta si coincide con el importe único exacto de esta cotización o lleva su reference.
  • Sin transacciones antiguas. Una transacción minada antes de crearse la cotización no puede pagarla.
  • Una transacción pegada con un importe distinto se rechaza con "Contact the merchant with the transaction id"; el comerciante lo resuelve a mano.
  • El tipo de cambio se calcula solo en el servidor; el navegador del comprador nunca aporta un precio.

Reembolsos#

RugWard Pay no tiene custodia: el dinero ya está en tu billetera, así que RugWard no puede reembolsar, revertir ni hacer contracargos. Para reembolsar a un comprador, devuélvele tú mismo las monedas desde tu billetera, idealmente a una dirección que te indique el comprador (no automáticamente a la dirección de envío: puede pertenecer a un exchange). Guarda el id de la factura y los enlaces de las transacciones para tus registros.

Pruebas de pago#

Cada factura paid u overpaid tiene una página de prueba pública y compartible en https://rugward.com/pay/proof/<invoice id> (también en JSON en /api/pay/proof/<invoice id>). Muestra el importe en USD, el comerciante, cuándo se confirmó, el importe en moneda cotizado y el tipo de cambio con sus fuentes de precio, la dirección de cobro y cada transacción confirmada con un enlace al explorador. Cualquiera puede volver a comprobar esas transacciones en la blockchain pública.

Una prueba de pago
Una prueba de pago (un pago TEST en Sepolia; dirección y transacción difuminadas en esta captura)

Los buscadores no indexan las páginas de prueba. Las facturas no pagadas no tienen prueba (404).

El vencimiento en detalle#

  • Vencimiento de la factura (de 15 minutos a 7 días): después, no se puede fijar un nuevo tipo de cambio.
  • Vencimiento de la cotización (bloqueo del tipo de cambio): 30 minutos después de que el comprador elija una moneda. Si quedan menos de 5 minutos, volver a elegir la misma moneda fija un nuevo tipo de cambio.
  • Gracia: los pagos vistos hasta 10 minutos después del vencimiento de la cotización siguen contando con normalidad.
  • Una factura pasa a expired solo cuando tanto la factura como su última cotización (más la gracia) han terminado sin ningún pago.

Última actualización: 30 de octubre de 2026

Estados, confirmaciones y pruebas de pago · RugWard Documentación | RugWard