Cancelar y capturar flujo

Cuando se integra con Yuno, tiene múltiples opciones para implementar operaciones de captura y cancelación. Esta guía describe todos los enfoques disponibles y explica cómo interactuar con nuestras API para cada escenario.

Ofrecemos captura sencilla en tiempo real para transacciones rápidas, así como configuraciones de captura diferida y cancelación altamente personalizables para satisfacer las necesidades de tu empresa.

Visión general

Modos de captura

Yuno ofrece tres opciones para captar los pagos, determinadas por el capture y el campo opcional delayed_capture_settings que se encuentra en crear API de pago. La disponibilidad real de la función o los detalles específicos de implementación pueden variar en función del proveedor de pago a través del cual se enrutan los pagos.

Captura en tiempo real

Este modo procesa el pago transfiere los fondos sin demora, combinando eficazmente la autorización y la captura en un solo paso. compra operación. Cuando payment_method.detail.card.capture está configurado para true, la transacción se ejecuta como una compra, lo que significa que la autorización y el cobro se realizan simultáneamente.

Dependiendo de la API del proveedor de pago, Yuno puede ejecutar esto como una transacción de compra directa o como una autorización inmediatamente seguida de una llamada de captura.

{
  "payment_method": {
    "detail": {
      "card": {
        "capture": true,
        "card_data": {
          // card details
        }
      }
    }
  }
}

Captura manual

Con esta configuración, Yuno no capturará el pago hasta que llame a la función API de captura o capturarlo manualmente en su Dashboard de Yuno. Establecer capture: false para autorizar el pago sin capturarlo.

Las capturas manuales ofrecen la máxima flexibilidad, ya que le permiten controlar totalmente cuándo se realiza la captura. Sin embargo, es importante realizar la captura lo antes posible, ya que los proveedores de pago aplican límites de tiempo a las autorizaciones que no se han capturado, y estos límites varían según el proveedor y la región.

{
  "payment_method": {
    "detail": {
      "card": {
        "capture": false,
        "card_data": {
          // card details
        }
      }
    }
  }
}
🚧

Captura de distintos importes

Si necesita capturar una cantidad diferente a la autorizada inicialmente, deberá utilizar la captura manual. Los modos de captura en tiempo real y diferida siempre capturarán el importe autorizado inicialmente.

Retraso en la captura

Configure capture: false junto con delayed_capture_settings para programar la captura del pago para una hora posterior, especificada en el delay .

🚧

Solo capturas por el importe total

La captura diferida solo se aplica cuando se captura el importe total de la autorización. Si necesitas capturar un importe parcial, debes utilizar la captura manual.

📘

simplified_mode

Configuración simplified_mode a true hará que Yuno reintente la operación de captura en caso de que ocurra un error durante el intento de captura programado.

{
  "payment_method": {
    "detail": {
      "card": {
        "capture": false,
        "delayed_capture_settings": {
          "delay": "P7D",
          "simplified_mode": false
        },
        "card_data": {
          // card details
        }
      }
    }
  }
}

El objeto delay es obligatorio cuando se utilizan operaciones de captura diferida y debe seguir el campo Norma ISO 8601. Por ejemplo:

  • "PT3H" durante 3 horas
  • "P7D" durante 7 días
  • "P1M" durante 1 mes

Si llamas a la API de captura antes de la hora programada, tu llamada anulará el retraso y ejecutará la captura inmediatamente. Esta acción cancela automáticamente el disparador Yuno programado. Alternativamente, puedes capturar el pago a través de tu panel de control Yuno.

Cancelar modos

Cuando autorizas un pago sin capturarlo inmediatamente, esos fondos se retienen temporalmente en el método de pago del cliente. Si decide no capturar el pago, es importante cancelar la autorización para liberar esos fondos retenidos y ofrecer una mejor experiencia al cliente. Los modos de cancelación le permiten controlar cuándo y cómo se anulan estas autorizaciones.

Cancelación manual

Con el modo de cancelación manual, los pagos autorizados permanecen activos hasta que los canceles explícitamente. Yuno no anulará automáticamente estas autorizaciones, dándote el control total sobre cuándo liberar los fondos. Puedes cancelar autorizaciones utilizando la API de cancelación o a través de la interfaz de tu panel de control de Yuno.

Es crucial cancelar las autorizaciones que no se van a capturar lo antes posible para liberar los fondos retenidos. La experiencia del cliente se ve afectada significativamente cuando no se cancelan las autorizaciones, ya que los fondos pueden permanecer reservados durante periodos variables en función de la región del cliente y de la red de tarjetas.

Anulación diferida

Configure delayed_cancel_settings para establecer un retraso al cancelar autorizaciones no capturadas, similar a las capturas retrasadas. Esta función automatiza la liberación de los fondos del cliente si decide no capturarlos en un plazo determinado, lo que mejora significativamente la experiencia del cliente al evitar retenciones indefinidas en sus métodos de pago.

El objeto delay es obligatorio cuando se utilizan operaciones de cancelación diferida y debe seguir al campo Norma ISO 8601. Por ejemplo:

  • "PT3H" durante 3 horas
  • "P7D" durante 7 días
  • "P30D" durante 30 días
📘

simplified_mode

Configuración simplified_mode a true hará que Yuno reintente la operación de cancelación en caso de que ocurra un error durante el intento de cancelación programado.

{
  "payment_method": {
    "detail": {
      "card": {
        "capture": false,
        "delayed_cancel_settings": {
          "delay": "P30D",
          "simplified_mode": false
        },
        "card_data": {
          // card details
        }
      }
    }
  }
}

Si llamas a la API de captura o cancelación antes de la hora programada, tu llamada anulará el retraso y ejecutará la acción inmediatamente. Esta acción cancela automáticamente el activador Yuno programado. También puedes capturar o cancelar el pago a través de tu panel de control de Yuno.

⚠️

Ajustes de captura retardada y cancelación

Se recomienda no utilizar ambos delayed_capture_settings y delayed_cancel_settings simultáneamente para evitar comportamientos inesperados. Utiliza solo uno a la vez en función de tus necesidades.

Requisitos de configuración

  • delayed_capture_settings y delayed_cancel_settings sólo son válidos cuando capture = false
  • Si el capture = trueestos objetos deben omitirse o definirse como null
  • Las operaciones manuales se pueden realizar a través de endpoints la API o a través del panel de control de Yuno.

Ejemplos de solicitudes

Ejemplo 1: Captura en tiempo real

{
  "country": "US",
  "amount": {
    "currency": "USD",
    "value": "20000"
  },
  "customer_payer": {
    "id": "<customer_id>",
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]"
  },
  "workflow": "DIRECT",
  "payment_method": {
    "detail": {
      "card": {
        "capture": true,
        "card_data": {
          "number": "4111111111111111",
          "expiration_month": 11,
          "expiration_year": 28,
          "security_code": "123",
          "holder_name": "John Doe"
        }
      }
    },
    "type": "CARD"
  },
  "account_id": "<account_id>",
  "description": "Real-time capture payment",
  "merchant_order_id": "000023"
}

Ejemplo 2: Sólo captura manual

{
  "country": "US",
  "amount": {
    "currency": "USD",
    "value": "20000"
  },
  "customer_payer": {
    "id": "<customer_id>",
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]"
  },
  "workflow": "DIRECT",
  "payment_method": {
    "detail": {
      "card": {
        "capture": false,
        "card_data": {
          "number": "4111111111111111",
          "expiration_month": 11,
          "expiration_year": 28,
          "security_code": "123",
          "holder_name": "John Doe"
        }
      }
    },
    "type": "CARD"
  },
  "account_id": "<account_id>",
  "description": "Authorization only - manual capture",
  "merchant_order_id": "000024"
}

Ejemplo 3: Captura diferida

{
  "country": "US",
  "amount": {
    "currency": "USD",
    "value": "20000"
  },
  "customer_payer": {
    "id": "<customer_id>",
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]"
  },
  "workflow": "DIRECT",
  "payment_method": {
    "detail": {
      "card": {
        "capture": false,
        "delayed_capture_settings": {
          "delay": "P7D",
          "simplified_mode": false
        },
        "card_data": {
          "number": "4111111111111111",
          "expiration_month": 11,
          "expiration_year": 28,
          "security_code": "123",
          "holder_name": "John Doe"
        }
      }
    },
    "type": "CARD"
  },
  "account_id": "<account_id>",
  "description": "Authorization with delayed capture",
  "merchant_order_id": "000025"
}

Ejemplo 4: Anulación diferida

{
  "country": "US",
  "amount": {
    "currency": "USD",
    "value": "20000"
  },
  "customer_payer": {
    "id": "<customer_id>",
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]"
  },
  "workflow": "DIRECT",
  "payment_method": {
    "detail": {
      "card": {
        "capture": false,
        "delayed_cancel_settings": {
          "delay": "P30D",
          "simplified_mode": false
        },
        "card_data": {
          "number": "4111111111111111",
          "expiration_month": 11,
          "expiration_year": 28,
          "security_code": "123",
          "holder_name": "John Doe"
        }
      }
    },
    "type": "CARD"
  },
  "account_id": "<account_id>",
  "description": "Authorization with delayed cancel",
  "merchant_order_id": "000026"
}

Ejemplo 5: Captura y cancelación combinadas con validación mejorada

Este ejemplo muestra un pago pedido completopedido configuraciones de captura diferida y cancelación, junto con campos de validación de clientes mejorados:

{
  "country": "US",
  "amount": {
    "currency": "USD",
    "value": "20000"
  },
  "customer_payer": {
    "merchant_customer_validations": {
      "account_is_verified": true,
      "email_is_verified": true,
      "phone_is_verified": true
    },
    "id": "<customer_id>",
    "first_name": "John",
    "last_name": "Doe",
    "email": "[email protected]"
  },
  "workflow": "DIRECT",
  "payment_method": {
    "detail": {
      "card": {
        "capture": false,
        "delayed_capture_settings": {
          "delay": "P20D",
          "simplified_mode": true
        },
        "delayed_cancel_settings": {
          "delay": "P40D",
          "simplified_mode": true
        },
        "card_data": {
          "number": "4111111111111111",
          "expiration_month": 11,
          "expiration_year": 28,
          "security_code": "123",
          "holder_name": "John Doe"
        },
        "verify": false
      }
    },
    "type": "CARD"
  },
  "account_id": "<account_id>",
  "description": "Payment with card details",
  "merchant_order_id": "000023"
}
⚠️

Nota

Aunque este ejemplo muestra ambos delayed_capture_settings y delayed_cancel_settings configurados juntos, recomendamos utilizar solo uno a la vez para evitar comportamientos inesperados.

Cuándo utilizar cada modo

Utiliza la captura en tiempo real cuando:

  • Usted proporciona bienes o servicios de forma inmediata
  • No necesita validar el inventario ni realizar comprobaciones de fraude tras la autorización
  • Quieres el flujo de pago más simple

Utiliza la captura manual cuando:

  • Es necesario verificar el inventario antes de finalizar el pago
  • Desea capturar una cantidad diferente a la autorizada
  • Tiene una lógica de negocio compleja que determina si capturar o cancelar
  • Necesitas el máximo control sobre el tiempo de captura

Utiliza la captura retardada cuando:

  • Desea la captura automática después de un período de tiempo específico
  • Tiene un proceso de cumplimiento predecible
  • Quiere reducir la intervención manual manteniendo el control

Utiliza la cancelación retardada cuando:

  • Desea liberar automáticamente los fondos de los clientes si no los capta en un plazo determinado.
  • Quiere mejorar la experiencia del cliente no reteniendo fondos indefinidamente
  • Tiene un plazo máximo para tu proceso de cumplimiento

Referencia de campo

CampoTipoDescripción
capturebooleanDetermina si el pago la tarjeta se captura inmediatamente (truecompra) o sólo autorizado (falserequiere captura o cancelación).
delayed_capture_settings.delaystringRetraso antes de que Yuno capture el pago. Debe seguir el formato de duración ISO 8601 (por ejemplo, "P7D" para 7 días, "PT3H" para 3 horas).
delayed_capture_settings.simplified_modebooleanSi el trueYuno reintenta la captura si falla.
delayed_cancel_settings.delaystringPlazo antes de que Yuno cancele la autorización. Debe seguir el formato de duración ISO 8601 (por ejemplo, "P30D" para 30 días).
delayed_cancel_settings.simplified_modebooleanSi el trueYuno reintenta la cancelación si falla.