El 3DS v2.3 introduce elementos de datos en la extensión del mensaje que pueden duplicar aquellos presentes en las versiones 3DS v2.1 y v2.2, pero con valores nuevos o diferentes. De acuerdo con la Especificación Básica v2.3, estos valores se establecen en la extensión del mensaje, mientras que en las versiones v2.1 y v2.2 se encuentran en la parte central de los mensajes 3DS. En estos casos, el valor del elemento de datos en la extensión del mensaje prevalece sobre el valor correspondiente en la parte central del mensaje 3DS. Además, el Servidor 3DS genera el mensaje AReq v2.1 o v2.2 bajo la suposición de que el ACS no soporta la Extensión del Mensaje de Puente, y posteriormente, proporciona la información adicional a través de dicha extensión. Si se soporta la Extensión del Mensaje de Puente, el componente 3DS deberá ser compatible al menos con uno de los objetos de datos como datos recurrentes, datos de desafío, datos adicionales o datos de URL de archivo de la extensión del mensaje e implementar los requisitos correspondientes de la Especificación Básica v2.3.

Sesión con Bridging Message Extension

Con el objetivo de mejorar la tasa de aprobación en las autenticaciones, hemos ampliado este requerimiento creando la extensión BMS. Esta extensión facilita el acceso a la información disponible en la versión 2.3.1 del protocolo, que no estaba accesible en versiones anteriores 2.1.0 y 2.2.0. De este modo, tanto el ACS como el servidor de directorios podrán tomar decisiones más informadas.

Especificaciones

Versión BME
Mastercard
Visa
Versión 2.0
Soportada
Soportada

Transacción con BME inicial

En esta versión, pondremos a disposición en la API de sesión varios elementos que podrá enviar para optimizar el uso de esta extensión.

cardSecurityCode: Código de seguridad asociado a las tarjetas de crédito o débito.

threeDSRequestorAuthenticationInd: Indicador de autenticación solicitado por el 3DS.

threeRIInd: Indica el tipo de 3RI pedido. Este elemento de datos proporciona adicional información al ACS para determinar el mejor enfoque para entregar una solicitud 3RI.

transChar: Indica a la ACS transacciones específicas identificadas por el Comerciante.

Ver más detalle en Reglas a tener en cuenta de la session API

La Extension solo se creara si es enviada en la session request bridgingMessageExtension

Obtén más detalles sobre cómo utilizar 3DSS con Pagos recurrentes con 3RI. En esta sección, encontrará información detallada sobre su funcionamiento y un ejemplo de la respuesta que puedes esperar

Ejemplo de los datos en el request


{
  "acctNumber": "4005580000000040",
  "cardExpiryDate": "2411",
  "purchaseAmount": "8.25",
  "redirectURI": "https://www.placetopay.com",
  "purchaseCurrency": "USD",
  "addPriorInformation": "Y",
  "threeDSAuthenticationInd": "PAYMENT_TRANSACTION",
  "messageCategory": "PA",
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringFrequency": "031",
  "recurringExpiry": "20241020",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "transChar": "CRYPTOCURRENCY_TRANSACTION",
        "threeRIInd": "SPLIT_PAYMENT",
        "cardSecurityCode": "123",
        "threeDSRequestorAuthenticationInd": "SPLIT_PAYMENT"
      },
     "recurringData": {
        "recurringDate": "20241023",
        "recurringInd": {
          "frequencyInd": "VARIABLE_FREQUENCY",
          "amountInd": "VARIABLE_PURCHASE"
        }
      }
    }
  }
}


Ejemplo De la extension creada por 3DSS

{
  "0": {
    "id": "A000000802-004",
    "data": {
      "version": "2.0",
      "addData": {
        "transChar": "02",
        "threeRIInd": "DELAYED_SHIPMENT",
        "cardSecurityCode": "123",
        "acquirerCountryCode": "170",
        "acquirerCountryCodeSource": "01",
        "threeDSRequestorAuthenticationInd": "10"
      },
     "recurringData": {
        "recurringInd": {
          "amountInd": "VARIABLE_PURCHASE",
          "frequencyInd": "VARIABLE_FREQUENCY"
        },
        "recurringDate": "20241023",
        "recurringAmount": "8.25",
        "recurringExpiry": "20241020",
        "recurringCurrency": "USD",
        "recurringFrequency": "031"
      }
    },
    "name": "Bridging",
    "criticalityIndicator": false
  }
}

Versión 2 (v2):

  • Atributos Soportados:

addData: Esta versión incluye soporte únicamente para el atributo addData, que contiene información adicional sobre la transacción, como el indicador de autenticación y otros datos relevantes.

recurringData: Se introduce en v2 el soporte para el atributo recurringData, que permite manejar información sobre transacciones recurrentes como la cantidad, frecuencia, y fecha de vencimiento.

  • Ejemplo JSON para v2:
{
 "addData": {
    "transChar": "CRYPTOCURRENCY_TRANSACTION",
    "threeRIInd": "DELAYED_SHIPMENT",
    "cardSecurityCode": "123",
    "threeDSRequestorAuthenticationInd": "SPLIT_PAYMENT"
  },
 "recurringData": {
    "recurringDate": "20241023",
    "recurringInd": {
      "frequencyInd": "VARIABLE_FREQUENCY",
      "amountInd": "VARIABLE_PURCHASE"
    }
  }
}

Data adicional para una transacción recurrente

Atributos de la Transacción con Recurrencia

Los atributos de la transacción de recurrencia para el BME son válidos si el valor del campo threeRIInd es igual a alguno de los siguientes:

  • RECURRING_TRANSACTION (02)
  • INSTALMENT_TRANSACTION (03)

Cuando alguno de estos valores es el indicador en threeRIInd, se aplican las siguientes reglas para los indicadores de recurrencia sobre los datos del request base:

Datos Asociados a la Extensión del BME

Los siguientes datos se asociarán a la extensión del BME de acuerdo con los indicadores previamente mencionados:

1. recurringAmount

El campo recurringAmount será agregado a la extensión del BME en la sección de datos de recurrencia bajo las siguientes condiciones:

  • Condición 1: El valor de recurringInd.amountInd es igual a FIXED_FREQUENCY.

Y

  • Condición 2: El valor de threeDSAuthenticationInd es igual a: RECURRING_TRANSACTION (02), INSTALMENT_TRANSACTION (03) o el valor de threeRIInd es igual a RECURRING_TRANSACTION (01), INSTALMENT_TRANSACTION (02).

Si se cumplen las condiciones anteriores, el valor de recurringAmount se añadirá a la extensión del BME. El valor de recurringAmount será tomado del campo purchaseAmount en la solicitud base.

2. recurringCurrency

El campo recurringCurrency será agregado a la extensión del BME bajo las siguientes condiciones:

  • Condición: El valor de threeDSAuthenticationInd es igual a: RECURRING_TRANSACTION (02), INSTALMENT_TRANSACTION (03) o el valor de threeRIInd es igual a RECURRING_TRANSACTION (01), INSTALMENT_TRANSACTION (02).

Cuando se cumple esta condición, el valor de recurringCurrency será añadido a la extensión del BME, y corresponderá al valor proporcionado en el request base bajo el campo purchaseCurrency.

3. recurringExponent

El campo recurringExponent será agregado a la extensión del BME bajo las siguientes condiciones:

  • Condición 2: El valor de threeDSAuthenticationInd es igual a: RECURRING_TRANSACTION (02), INSTALMENT_TRANSACTION (03) o el valor de threeRIInd es igual a RECURRING_TRANSACTION (01), INSTALMENT_TRANSACTION (02).

Cuando se cumple esta condición, el valor de recurringExponent será añadido a la extensión del BME, y corresponderá al valor proporcionado en el request base bajo el campo purchaseExponent.

4. recurringDate

El campo recurringDate será agregado a la extensión del BME bajo las siguientes condiciones:

  • Condición: El valor de recurringInd.frequencyInd es igual a: FIXED_FREQUENCY (01).

Si esta condición se cumple, el campo recurringDate será añadido a la extensión del BME, siempre y cuando esté presente en el request base en bridgingMessageExtension.data.recurringData.recurringDate.

5. recurringExpiry

El valor de recurringExpiry es calculado automáticamente por el sistema según las siguientes condiciones.

  • Condición 2: El valor de threeDSAuthenticationInd es igual a: RECURRING_TRANSACTION (02), INSTALMENT_TRANSACTION (03) o el valor de threeRIInd es igual a RECURRING_TRANSACTION (01), INSTALMENT_TRANSACTION (02).
  • Condición: Si el valor de deviceChannel en los atributos es igual a RI y no existe un valor previo para recurringExpiry en el request base.
  • El campo recurringExpiry se toma de los datos de los datos enviados en el request base.

6. recurringFrequency

El valor de recurringFrequency será tomado del request base bajo las siguientes condiciones:

  • Condición: El valor de recurringInd.frequencyInd es igual a FIXED_FREQUENCY (01).

Si esta condición se cumple, el valor de recurringFrequency se tomará directamente del request base de lo contrario no se asignara un valor a la extension.

7. recurringInd

El campo recurringInd se compone de dos subcampos: amountInd y frequencyInd. Ambos serán agregados a la extensión del BME bajo las siguientes condiciones:

  • Condición 2: El valor de threeDSAuthenticationInd es igual a: RECURRING_TRANSACTION (02), INSTALMENT_TRANSACTION (03) o el valor de threeRIInd es igual a RECURRING_TRANSACTION (01), INSTALMENT_TRANSACTION (02).

Cuando se cumple esta condición, los siguientes subcampos serán agregados:

Subcampos

  • amountInd: Se agregará el valor proporcionado en bridgingMessageExtension.data.recurringData.recurringInd.amountInd si está presente en el request base y si no se proporciona un valor en el request base, él amountInd tendrá un valor por defecto de FIXED_PURCHASE (01).

  • frequencyInd: Se agregará el valor proporcionado en bridgingMessageExtension.data.recurringData.recurringInd.frequencyInd si está presente en el request base y si no se proporciona un valor en el request base, él frequencyInd tendrá un valor por defecto de FIXED_FREQUENCY (01).

Beneficios de la V2.3.1 del protocolo con el BME en 3DS con sus nuevos indicadores

Ver más detalle en Reglas a tener en cuenta de la session API con BME

threeDSRequestorAuthenticationInd: usado en el request base como: threeDSAuthenticationInd, este campo incluye nuevos indicadores disponibles en la versión 2.3.1

  • BILLING_AGREEMENT (07): Este indicador se refiere a un acuerdo de facturación entre el cliente y el comerciante, donde el cliente autoriza pagos recurrentes o futuros sin necesidad de autenticar cada transacción individualmente. Es común en suscripciones o servicios continuos donde los pagos se procesan periódicamente.

  • SPLIT_SHIPMENT (08): Indica que el pedido se enviará en múltiples envíos. Esto puede ocurrir cuando el comerciante no tiene todos los artículos en stock o por conveniencia logística. En este caso, el cargo total puede dividirse y procesarse en función de los envíos parciales.

  • DELAYED_SHIPMENT (09): Se refiere a una transacción en la que el envío del pedido se retrasa intencionalmente, ya sea por solicitud del cliente o por motivos logísticos del comerciante. El pago puede procesarse en el momento de la compra, pero el envío se llevará a cabo más tarde.

  • SPLIT_PAYMENT (10): Este indicador señala que el pago de una transacción se divide en varias partes, ya sea entre diferentes métodos de pago o en diferentes momentos. Por ejemplo, el cliente podría pagar una parte con una tarjeta de crédito y el resto con otro método, o pagar en varias cuotas.

  • MASTERCARD_THE_PAYMENT_REQUEST_IS_FOR_AN_AGENT_PAYMENT_TRANSACTION (85): Este indicador se utiliza cuando la solicitud de pago está relacionada con una transacción gestionada por un agente en nombre del comerciante o cliente. Es común en casos donde una agencia u otro intermediario gestiona el pago, actuando como un tercero que facilita la transacción entre el comerciante y el cliente.

  • MASTERCARD_FOR_UNKNOWN_OR_UNDEFINED_FINAL_AMOUNT_BEFORE_PURCHASE_TRANSACTION (86): Este indicador se emplea cuando el monto final de la transacción no se conoce o no está definido en el momento de la compra. Es útil en situaciones donde el importe total podría variar, como cuando se realizan reservas o compras que pueden implicar cargos adicionales, pero el monto exacto se determina posteriormente (por ejemplo, reservas de hotel, alquileres de automóviles o servicios con tarifas variables).

threeRIInd: Este campo incluye nuevos indicadores disponibles en la versión 2.3.1

  • DEVICE_BINDING_STATUS_CHECK (13): Este indicador se utiliza para verificar el estado de la vinculación de un dispositivo. Se refiere a situaciones en las que es necesario verificar si un dispositivo está vinculado correctamente a una cuenta o tarjeta, lo que puede mejorar la seguridad de las transacciones recurrentes o de pago.

  • CARD_SECURITY_CODE_STATUS_CHECK (14): Este indicador permite verificar el estado del código de seguridad de la tarjeta (CVV o CVC). Es común en transacciones donde se requiere una autenticación adicional del código de seguridad para validar la legitimidad de la tarjeta utilizada.

  • DELAYED_SHIPMENT (15): Este indicador se utiliza para transacciones en las que el envío del producto o servicio se realizará en una fecha posterior. Es útil para casos en los que el pago se procesa de inmediato, pero la entrega se retrasa o se realiza más adelante.

  • SPLIT_PAYMENT (16): Se refiere a una transacción en la que el pago se divide en varias partes. Esto puede ocurrir cuando el comprador elige pagar en diferentes cuotas o mediante diferentes métodos de pago para una sola transacción.

  • FIDO_CREDENTIAL_DELETION (17): Este indicador se emplea cuando se solicita la eliminación de las credenciales de FIDO (Fast Identity Online) asociadas a una cuenta o dispositivo. FIDO es un estándar de autenticación que permite la eliminación de credenciales para mejorar la seguridad.

  • FIDO_CREDENTIAL_REGISTRATION (18): Se utiliza cuando se realiza la inscripción de nuevas credenciales FIDO. Este proceso vincula un dispositivo o cuenta a un método de autenticación más seguro, que es independiente de contraseñas tradicionales.

  • DECOUPLED_AUTHENTICATION_FALLBACK (19): Este indicador se activa cuando se produce un fallo en el proceso de autenticación desacoplada. La autenticación desacoplada permite al titular de la tarjeta autenticarse en un canal distinto al del comercio (por ejemplo, a través de una app bancaria), y este código indica que el método ha fallado y se requiere una alternativa.

transChar: Este campo incluye nuevos indicadores disponibles en la versión 2.3.1

  • CRYPTOCURRENCY_TRANSACTION (01): Este indicador se utiliza para identificar transacciones relacionadas con criptomonedas. Permite que el emisor y otros actores del sistema de pagos reconozcan de forma explícita cuando la transacción involucra la compra, venta o intercambio de criptomonedas, lo que puede requerir un tratamiento especial debido a la naturaleza de este tipo de activos.

  • NFT_TRANSACTION (02): Este indicador está diseñado para transacciones que implican la compra o el intercambio de tokens no fungibles (NFTs). Los NFTs son activos digitales únicos basados en tecnología blockchain, y este código ayuda a diferenciar estas transacciones de las compras tradicionales, ofreciendo una capa adicional de información relevante para la autenticación y el análisis de riesgos.

amountInd: Este campo incluye nuevos indicadores disponibles en la versión 2.3.1

  • FIXED_PURCHASE (01): Indica que el monto de la transacción es fijo y no varía. Este tipo de compra es común en transacciones estándar donde el valor del producto o servicio está predefinido y no cambia durante el proceso de pago.

  • VARIABLE_PURCHASE (02): Indica que el monto de la transacción puede variar. Se utiliza en casos donde el valor final de la compra no está determinado en el momento de la autenticación inicial, como en situaciones de envío fraccionado, cargos adicionales, o ajustes por servicios o productos variables. Este indicador proporciona flexibilidad en el manejo de transacciones con montos ajustables.

frequencyInd: Este campo incluye nuevos indicadores disponibles en la versión 2.3.1

  • FIXED_FREQUENCY (01): Indica que la frecuencia de la transacción recurrente es fija. Es utilizado cuando los pagos se realizan a intervalos regulares y predefinidos, como pagos mensuales, suscripciones o cuotas de préstamos. La periodicidad es constante y no cambia a lo largo del tiempo.

  • VARIABLE_FREQUENCY (02): Indica que la frecuencia de la transacción recurrente puede variar. Se aplica en casos donde los pagos no se realizan a intervalos regulares, o la frecuencia cambia según las necesidades o circunstancias, como en pagos esporádicos o cuando el intervalo entre pagos no es predecible. Este indicador brinda flexibilidad para manejar pagos recurrentes que no siguen un patrón estricto.


Pagos Recurrentes

Indicadores Relevantes:

  • threeRIInd: RECURRING_TRANSACTION (01)
  • amountInd: FIXED_PURCHASE (01) o VARIABLE_PURCHASE (02)
  • frequencyInd: FIXED_FREQUENCY (01) o VARIABLE_FREQUENCY (02)

Caso de Uso: Cuando un comerciante quiere procesar una transacción recurrente con un monto fijo o variable (como una suscripción mensual de un servicio o cuotas de pago de un préstamo), el BME puede ser utilizado para indicar el tipo de transacción recurrente, la frecuencia con la que se realizarán los pagos, y si el monto será fijo o variable.

Ejemplo: Una plataforma de streaming quiere cobrar una suscripción mensual fija (por ejemplo, $10), pero también puede manejar casos donde el usuario paga montos variables basados en consumo, con una frecuencia no predefinida.


{
  "acctNumber": "4005580000000040",
  "cardExpiryDate": "2411",
  "purchaseAmount": "8.25",
  "redirectURI": "https://www.placetopay.com",
  "purchaseCurrency": "USD",
  "addPriorInformation": "Y",
  "threeDSAuthenticationInd": "RECURRING_TRANSACTION",
  "messageCategory": "PA",
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringFrequency": "031",
  "recurringExpiry": "20241020",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
     "recurringData": {
        "recurringDate": "20241023",
        "recurringInd": {
          "frequencyInd": "FIXED_FREQUENCY",
          "amountInd": "FIXED_PURCHASE"
        }
      }
    }
  }
}


Frecuencia fija, Monto fijo

Caso de uso: Suscripción mensual a un servicio de streaming con un costo fijo.

CIT


{
  "deviceChannel": "BRW",
  "threeDSAuthenticationInd": "RECURRING_TRANSACTION",
  "threeDSChallengeInd": "CHALLENGE_REQUESTED_MANDATE",
  "recurringExpiry": "20250101",
  "recurringFrequency": "10",
  "acctNumber": "4931119220729333",
  "cardExpiryDate": "2902",
  "purchaseAmount": "55",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Enero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringDate": "20241020",
        "recurringInd": {
          "frequencyInd": "FIXED_FREQUENCY",
          "amountInd": "FIXED_PURCHASE"
        }
      }
    }
  },
  "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}

MIT


{
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringExpiry": "20250101",
  "recurringFrequency": "10",
  "threeDSChallengeInd": "NO_PREFERENCE",
  "threeDSRequestorPriorAuthenticationInfo": {
    "threeDSReqPriorAuthMethod": "CARDHOLDER_CHALLENGE_OCCURRED",
    "threeDSReqPriorAuthTimestamp": "2024-10-10T16:36:52+00:00",
    "threeDSReqPriorRef": "6d517cb2-9383-4839-afd3-2e92e5d601c7"
  },
  "acctNumber": "4931119220729333",
  "cardExpiryDate": "2902",
  "purchaseAmount": "55",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Febrero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
    "recurringDate": "20241209",
        "recurringInd": {
          "frequencyInd": "FIXED_FREQUENCY",
          "amountInd": "FIXED_PURCHASE"
        }
      }
    }
  },
    "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}
  • frequencyInd: Indica que la frecuencia de pago es fija.
  • amountInd: Indica que el monto del pago es fijo.
  • recurringAmount: Especifica el monto exacto de cada pago. Se tomará el valor de purchaseAmount para el recurringAmount del BME
  • recurringCurrency: Indica la moneda del pago. Se tomará el valor de purchaseCurrency para el recurringCurrency del BME
  • recurringFrequency: Define la frecuencia en un formato legible (mensual, semanal, etc.). Se tomará el valor de recurringFrequency para el recurringFrequency del BME

Frecuencia variable, Monto fijo

Caso de uso: Pagos por uso de un servicio en la nube, donde la frecuencia de uso puede variar pero el costo por unidad es fijo.

CIT

{
  "deviceChannel": "BRW",
  "threeDSAuthenticationInd": "RECURRING_TRANSACTION",
  "threeDSChallengeInd": "CHALLENGE_REQUESTED_MANDATE",
  "recurringExpiry": "20250101",
  "recurringFrequency": "10",
  "acctNumber": "5107000000010018",
  "cardExpiryDate": "2902",
  "purchaseAmount": "50",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Enero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringInd": {
          "frequencyInd": "VARIABLE_FREQUENCY",
          "amountInd": "FIXED_PURCHASE"
        }
      }
    }
  },
  "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}

MIT

{
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringExpiry": "20250101",
  "recurringFrequency": "10",
  "threeDSRequestorPriorAuthenticationInfo": {
    "threeDSReqPriorAuthMethod": "CARDHOLDER_CHALLENGE_OCCURRED",
    "threeDSReqPriorAuthTimestamp": "2024-10-10T14:43:04+00:00",
    "threeDSReqPriorRef": "a1ed9882-2c0f-4591-a0fb-d92c652d81ed"
  },
  "acctNumber": "5107000000010018",
  "cardExpiryDate": "2902",
  "purchaseAmount": "50",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Febrero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringInd": {
          "frequencyInd": "VARIABLE_FREQUENCY",
          "amountInd": "FIXED_PURCHASE"
        }
      }
    }
  },
    "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}

  • frequencyInd: Indica que la frecuencia de pago es variable.
  • amountInd: Indica que el monto por unidad es fijo. Se tomará el valor de purchaseAmount para el recurringAmount del BME
  • recurringAmount: Especifica el costo por unidad, el monto total se calculará según el consumo.

Frecuencia fija, Monto variable

Caso de uso: Pagos mensuales por un servicio que incluye cargos adicionales basados en el consumo.

CIT


{
  "deviceChannel": "BRW",
  "threeDSAuthenticationInd": "RECURRING_TRANSACTION",
  "threeDSChallengeInd": "CHALLENGE_REQUESTED_MANDATE",
  "recurringExpiry": "20250101",
  "recurringFrequency": "10",
  "acctNumber": "4931119220729333",
  "cardExpiryDate": "2902",
  "purchaseAmount": "50",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Enero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringDate": "20241018",
        "recurringInd": {
          "frequencyInd": "FIXED_FREQUENCY",
          "amountInd": "VARIABLE_PURCHASE"
        }
      }
    }
  },
  "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}

MIT


{
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringExpiry": "20250101",
  "recurringFrequency": "10",
  "threeDSRequestorPriorAuthenticationInfo": {
    "threeDSReqPriorAuthMethod": "CARDHOLDER_CHALLENGE_OCCURRED",
    "threeDSReqPriorAuthTimestamp": "2024-10-08T22:19:31+00:00",
    "threeDSReqPriorRef": "16b910d6-6921-42e5-a5f8-00ba328b5bf6"
  },
  "acctNumber": "4931119220729333",
  "cardExpiryDate": "2902",
  "purchaseAmount": "520",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Febrero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringDate": "20241107",
        "recurringInd": {
          "frequencyInd": "FIXED_FREQUENCY",
          "amountInd": "VARIABLE_PURCHASE"
        }
      }
    }
  },
    "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}


  • frequencyInd: Indica que la frecuencia de pago es fija.
  • amountInd: Indica que el monto total del pago puede variar.
  • recurringFrequency: Define la frecuencia en un formato legible (mensual, semanal, etc.). Se tomará el valor de recurringFrequency del request base para el recurringFrequency del BME

El monto total se calculará en cada ciclo de facturación en función del consumo.


Frecuencia variable, Monto variable

Caso de uso: Pagos por servicios profesionales donde tanto la frecuencia como el monto pueden variar según el proyecto.

CIT

{
  "deviceChannel": "BRW",
  "threeDSAuthenticationInd": "RECURRING_TRANSACTION",
  "threeDSChallengeInd": "CHALLENGE_REQUESTED_MANDATE",
  "recurringExpiry": "20250101",
  "recurringFrequency": "2",
  "acctNumber": "4931119220729333",
  "cardExpiryDate": "2902",
  "purchaseAmount": "50",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Enero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringInd": {
          "frequencyInd": "VARIABLE_FREQUENCY",
          "amountInd": "VARIABLE_PURCHASE"
        }
      }
    }
  },
  "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}

MIT


{
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringExpiry": "20250101",
  "recurringFrequency": "2",
  "threeDSRequestorPriorAuthenticationInfo": {
    "threeDSReqPriorAuthMethod": "CARDHOLDER_CHALLENGE_OCCURRED",
    "threeDSReqPriorAuthTimestamp": "2024-10-08T20:32:58+00:00",
    "threeDSReqPriorRef": "e85f6a78-8687-4ae1-a775-a09c450d830b"
  },
  "acctNumber": "4931119220729333",
  "cardExpiryDate": "2902",
  "purchaseAmount": "520",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Febrero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "RECURRING_TRANSACTION",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringInd": {
          "frequencyInd": "VARIABLE_FREQUENCY",
          "amountInd": "VARIABLE_PURCHASE"
        }
      }
    }
  },
    "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}

  • frequencyInd: Indica que la frecuencia de pago es variable.
  • amountInd: Indica que el monto total del pago puede variar.

Tanto la frecuencia como el monto se determinarán en cada transacción.


Envío Dividido o Retrasado

Indicadores Relevantes:

threeRIInd: DELAYED_SHIPMENT (15) o SPLIT_PAYMENT (16)

Caso de Uso: Para escenarios donde el pedido de un cliente se divide en varios envíos o donde el envío es retrasado, el BME puede proporcionar detalles adicionales sobre la naturaleza del pago. Esto es útil para gestionar transacciones donde una parte del pedido se envía ahora y otra más tarde, o cuando el envío se pospone.

Ejemplo: Un cliente hace una compra de múltiples artículos, pero algunos productos no están disponibles para envío inmediato. Se usa DELAYED_SHIPMENT para señalar al banco emisor que la transacción incluye envíos demorados.

SPLIT SHIPLMENT

CIT


{
  "deviceChannel": "BRW",
  "threeDSAuthenticationInd": "PAYMENT_TRANSACTION",
  "threeDSChallengeInd": "CHALLENGE_REQUESTED_MANDATE",
  "acctNumber": "5107000000010018",
  "cardExpiryDate": "2902",
  "purchaseAmount": "3000",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Enero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
        "data": {
            "addData": {
                "threeRIInd": "SPLIT_OR_DELAYED_SHIPMENT",
                "cardSecurityCode": "123"
            }
        }
  },
  "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}

MIT


{
  "deviceChannel": "RI",
  "threeRIInd": "SPLIT_OR_DELAYED_SHIPMENT",
  "threeDSRequestorPriorAuthenticationInfo": {
    "threeDSReqPriorAuthMethod": "CARDHOLDER_CHALLENGE_OCCURRED",
    "threeDSReqPriorAuthTimestamp": "2024-10-30T22:11:07+00:00",
    "threeDSReqPriorRef": "1760a097-5779-44d1-9ba1-77bab5b4fe64"
  },
  "acctNumber": "5107000000010018",
  "cardExpiryDate": "2902",
  "purchaseAmount": "500",
  "redirectURI": "https://www.placetopay.com/web",
  "purchaseCurrency": "USD",
  "reference": "Febrero 2024",
  "messageVersion": "2.2.0",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "SPLIT_OR_DELAYED_SHIPMENT",
        "cardSecurityCode": "123"
      },
   "recurringData": {
        "recurringInd": {
          "frequencyInd": "VARIABLE_FREQUENCY",
          "amountInd": "FIXED_PURCHASE"
        }
      }
    }
  },
    "billAddrCity": "Medellín",
  "billAddrCountry": "COL",
  "billAddrLine1": "Carrera 65 # 45 - 20",
  "billAddrPostCode": "050004",
  "billAddrState": "ANT",
  "email": "[email protected]",
  "mobilePhone": {
      "cc": "57",
      "subscriber": "30011122333"
  }
}


Transacciones con Monedas Digitales (Cryptocurrency/NFT)

Indicadores Relevantes:

transChar: CRYPTOCURRENCY_TRANSACTION (01) o NFT_TRANSACTION (02)

Caso de Uso: En situaciones donde el pago se realiza con criptomonedas o NFT (tokens no fungibles), el BME puede ser usado para indicar que el pago no es con moneda tradicional, sino con activos digitales. Esto ayuda a los bancos emisores a evaluar correctamente el riesgo asociado a la transacción.

Ejemplo: Un cliente compra un NFT en una plataforma de arte digital utilizando criptomonedas. El BME indicaría que la transacción está asociada con un NFT_TRANSACTION o CRYPTOCURRENCY_TRANSACTION.


{
  "acctNumber": "4005580000000040",
  "cardExpiryDate": "2411",
  "purchaseAmount": "8.25",
  "redirectURI": "https://www.placetopay.com",
  "purchaseCurrency": "USD",
  "addPriorInformation": "Y",
  "threeDSAuthenticationInd": "PAYMENT_TRANSACTION",
  "messageCategory": "PA",
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringFrequency": "031",
  "recurringExpiry": "20241020",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "transChar": "NFT_TRANSACTION",
        "cardSecurityCode": "123",
        "threeDSRequestorAuthenticationInd": "SPLIT_PAYMENT"
      }
    }
  }
}



Chequeo de Estado del Código de Seguridad de la Tarjeta

Indicadores Relevantes:

threeRIInd: CARD_SECURITY_CODE_STATUS_CHECK (14)

Caso de Uso: Este caso es relevante cuando el comerciante necesita realizar un chequeo del código de seguridad (CVV) asociado a la tarjeta sin realizar un pago inmediato. El BME permite agregar información adicional que indique que la transacción es solo una verificación del CVV.

Ejemplo: Un servicio de verificación de tarjetas realiza un chequeo del código CVV antes de que se complete una transacción en el futuro. El BME indicaría este escenario sin necesidad de procesar un pago.


{
  "acctNumber": "4005580000000040",
  "cardExpiryDate": "2411",
  "purchaseAmount": "8.25",
  "redirectURI": "https://www.placetopay.com",
  "purchaseCurrency": "USD",
  "addPriorInformation": "Y",
  "threeDSAuthenticationInd": "ADD_CARD",
  "messageCategory": "PA",
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringFrequency": "031",
  "recurringExpiry": "20241020",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "CARD_SECURITY_CODE_STATUS_CHECK",
        "cardSecurityCode": "123"
      }
    }
  }
}



Eliminación y Registro de Credenciales FIDO

Indicadores Relevantes:

threeRIInd: FIDO_CREDENTIAL_DELETION (17) o FIDO_CREDENTIAL_REGISTRATION (18)

Caso de Uso: Estos indicadores se utilizan cuando se gestionan credenciales FIDO, un estándar para autenticación sin contraseña. El BME puede incluir información sobre la eliminación o el registro de credenciales FIDO en el contexto de una transacción, mejorando la seguridad del proceso.

Ejemplo: Un banco realiza una actualización de credenciales FIDO vinculadas a una cuenta de usuario. El BME incluiría indicadores que registren o eliminen dichas credenciales en la transacción.


{
  "acctNumber": "4005580000000040",
  "cardExpiryDate": "2411",
  "purchaseAmount": "8.25",
  "redirectURI": "https://www.placetopay.com",
  "purchaseCurrency": "USD",
  "addPriorInformation": "Y",
  "threeDSAuthenticationInd": "ADD_CARD",
  "messageCategory": "PA",
  "deviceChannel": "RI",
  "threeRIInd": "RECURRING_TRANSACTION",
  "recurringFrequency": "031",
  "recurringExpiry": "20241020",
  "bridgingMessageExtension": {
    "data": {
      "addData": {
        "threeRIInd": "FIDO_CREDENTIAL_REGISTRATION",
        "cardSecurityCode": "123"
      }
    }
  }
}



Otros casos

  • Split Shipment threeDSAuthenticationInd SPLIT_SHIPMENT 08, threeRIInd SPLIT_OR_DELAYED_SHIPMENT 06 aplica par EMV 3DS 2.2 with Bridging Message Extension o par la versión EMV 3DS 2.3.1
  • Delayed Shipment threeDSAuthenticationInd DELAYED_SHIPMENT 09, threeRIInd 15 DELAYED_SHIPMENT aplica par EMV 3DS 2.2 with Bridging Message Extension o par la versión EMV 3DS 2.3.1
  • Split Payment threeDSAuthenticationInd SPLIT_PAYMENT 10, threeRIInd 16 SPLIT_PAYMENT aplica par EMV 3DS 2.2 with Bridging Message Extension o par la versión EMV 3DS 2.3.1

Mejora la tasa de autenticaciones con datos adicionales

Nos complace invitarles a visitar el apartado de Adicional Data en nuestra documentación del API. Este apartado ofrece información crucial para optimizar el proceso de autenticación 3DS.

La inclusión de estos datos adicionales en sus solicitudes permite a los emisores realizar una evaluación más precisa, lo que puede mejorar considerablemente la tasa de autenticaciones exitosas.

Les recomendamos revisar estas pautas para aprovechar al máximo las funcionalidades del API y así ofrecer una experiencia más segura y eficiente a sus usuarios.