Estados de transacción
Cada fila de transacción en el panel tiene uno de estos estados. El estado refleja el evento más reciente para esa transacción; los reembolsos y disputas actualizan la fila existente en lugar de insertar una fila hermana.
| Estado | Significado |
|---|---|
succeeded | Pago completado. El dinero está en tu cuenta (neto de comisiones del proveedor). |
pending | Pago en curso. Común con métodos de pago asíncronos (ACH, algunos rieles cripto) donde la confirmación toma minutos a horas. |
failed | El pago no se completó: tarjeta rechazada, autorización expirada, rechazo duro. No se movió dinero. |
partial | El comprador pagó menos de lo facturado (común cuando un comprador cripto envía un monto reducido por comisión de red). El amount de la fila refleja lo que realmente se recibió; revisa metadata.invoicedAmount para lo que se solicitó. |
refunded | El dinero ha sido devuelto al comprador, total o parcialmente. El amount de la fila es el monto reembolsado; los reembolsos pueden ocurrir días o semanas después del pago original. |
disputed | El comprador (o su banco) abrió una disputa o contracargo. Revisa la interfaz del proveedor para la ventana de respuesta. El metadata.reason de la fila lleva la clasificación del proveedor tal cual. |
pending_manual | Una transacción de pago por correo está esperando tu confirmación física. Consulta la siguiente sección. |
manual_canceled | Hiciste clic en Cancelar en una fila de pago por correo pendiente antes de que llegara el pago del comprador. |
manual_expired | Una fila de pago por correo pendiente estuvo 30 días sin confirmación y expiró automáticamente. |
manual_revoked | Confirmaste la recepción de un pago por correo pero después deshiciste la confirmación (ej., el pago resultó ser inválido). La fila pasa de succeeded a este estado terminal. |
Reembolsos, disputas, pagos parciales
Coin Moebius escucha estos eventos del proveedor y actualiza la fila de transacción original en el panel. Específicamente:
- Reembolsos: el evento
charge.refundedde Stripe (reembolsos totales o parciales, incluyendoamount_refundedpara que los reembolsos parciales muestren la porción devuelta). El IPNrefundedde NOWPayments. El estado de la fila cambia arefunded, elamountrefleja el monto reembolsado, ymetadata.originalChargeId/metadata.originalAmountllevan el contexto del pago original. - Disputas (contracargos): el evento
charge.dispute.createdde Stripe. El estado de la fila cambia adisputed. La razón declarada por el proveedor pasa tal cual ametadata.reason, puedes renderizarla en tu propia interfaz como quieras. - Pagos parciales: el IPN
partially_paidde NOWPayments. El estado de la fila cambia apartial. Elamountrefleja lo que realmente se recibió (actually_paid);metadata.invoicedAmountes lo que se solicitó.
En v1, estos eventos se muestran en el panel y a través del endpoint /status. Una versión futura agregará notificaciones por correo y un reenviador de webhooks salientes para que tu propio backend pueda reaccionar automáticamente. Por ahora, configura un pequeño trabajo de consulta (consulta la siguiente sección) o revisa el panel.