Estados de orden y pagos

Las notificaciones de cambios en estado de orden se realiza a un endpoint correspondiente implementado de lado de tu sistema.

Diagrama de estados de pago

La siguiente imagen muestra el flugo máquina de estados de operación de pago.

📘

El diagrama no muestra procesadores con async notifications o sin 3DS.

Los estados notificados son los siguientes:

  • Pending: Orden pendiente. La orden se ha iniciado, pero el pago no ha sido confirmado por el procesador.
  • Succeeded: Orden completada. La orden fue procesada satisfactoriamente por el procesador seleccionado. No incluye pagos en efectivo.
  • Cancelled: Orden cancelada. Las órdenes se marcaran en estado cancelada cuando el comercio las marca manualmente desde en Admin. Puede iniciar un proceso de reembolso según el procesador.
  • Refund: Orden en proceso de reembolso. La orden pasa de un estado de competición a un estado de cancelación. La orden queda en espera de que el procesadorconfirme la reversión o cancelación del cargo.
  • Expired: Orden expirada. Las órdenes se expirada mediante API o configuración de un tiempo de expiración. Una orden puede ser expirada si:
    • La orden no tiene ningún intento de pago asociado.
    • El estado de la orden es pending.

🚧

Las ordenes pendientes se consideran completas cuando el método de pago efectivo ha sido utilizado para completarlas.

Estados de pago de una orden

El checkout maneja estados de pago separados del último estado de intento de pago.

Considera los estados de pago para marcar las órdenes según sea correspondiente y manten visibilidad del estado actual de órdenes con:

  • Métodos de pago síncronos (Tarjetas de débito y crédito)
  • Métodos de pago asíncronos (BPNLS, pago en ventanilla, etc.).

Los siguientes estados de pago concuerdan con el estado correspondiente de estado de orden.

Pending

El estadoorder.payment.data.status == "pending"tiene las siguientes posibilidades:

  • processing: La orden sigue siendo procesada.
  • pending: La orden quedó pendiente por reglas de negocio o no ha sido confirmada por el procesador.
  • denied: La orden fue denegada.
  • authorizing: La orden está en proceso de autorización.
  • manual_review: La orden pasó a revisión manual por el proveedor de pagos o de fraude).
  • pending_3ds: La transacción está pendiente de autenticación con 3DS.

Succeeded

El estadoorder.payment.data.status == "succeeded" tiene las siguientes posibilidades:

  • processed: La orden fue procesada.
  • authorized: La orden fue autorizada.
  • captured: La orden ha sido capturada.
  • partial_refunded: Parte de la orden fue cobrada.

📘

DEUNA permite X cantidad de partial_refunds donde la suma de los montos de las X operaciones lleguen a sumar hasta el monto inicial del pago.

DEUNA notificará cada uno de los partial refunds por webhook.

Cancelled

El estado de order.payment.data.status == "cancelled" tiene las siguientes posibilidades:

  • cancelled
  • voided
  • refunded

Expired

El estado expired en la orden puede ocurrir ya sea cuando:

  • No haya ningún pago asociado a dicha orden.
  • El pago asociado a dicha orden no haya sido concluído y la orden siga en pending.