Pagos recurrentes EMV3DS ("3RI-Recurring")

 

Este tipo de operativa ofrece al comercio la posibilidad de autenticar los pagos recurrentes, de forma que se ejerce el cambio de responsabilidad y el comercio estará protegido en caso de fraude en estos pagos.

El primer pago recurrente siempre deberá ser autenticado por el titular. Los pagos sucesivos serán autenticados (3RI) sin intervención del titular, pero será necesario que el comercio proporcione al TPV Virtual los datos necesarios para la autenticación que se verán a continuación:

 

Pago recurrente inicial

 

El primer pago se procesará como una transacción autenticada EMV 3DS (frictionless o challenge) siguiendo los pasos habituales. Para solicitar que será una operación recurrente se tendrán que marcar los parámetros COF (ver Anexo).

 

  • Inicia petición

EJEMPLO DE PETICIÓN:

<DATOSENTRADA>
<DS_MERCHANT_AMOUNT>1000</DS_MERCHANT_AMOUNT>
<DS_MERCHANT_ORDER>1552571678</DS_MERCHANT_ORDER>
<DS_MERCHANT_MERCHANTCODE>999008881</DS_MERCHANT_MERCHANTCODE>
<DS_MERCHANT_TERMINAL>2</DS_MERCHANT_TERMINAL>
<DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY>
<DS_MERCHANT_TRANSACTIONTYPE>0</DS_MERCHANT_TRANSACTIONTYPE>
<DS_MERCHANT_PAN> XXXXXXXXXXXXXXXXXX </DS_MERCHANT_PAN>
<DS_MERCHANT_EMV3DS>{'threeDSInfo':'CardData'}</DS_MERCHANT_EMV3DS>
</DATOSENTRADA>

 

Como respuesta se obtendrá lo siguiente:

<RETORNOXML>
<CODIGO>0</CODIGO>
<INFOTARJETA>
<Ds_Order>1553155286</Ds_Order>
<Ds_MerchantCode>999008881</Ds_MerchantCode>
<Ds_Terminal>2</Ds_Terminal>
<Ds_TransactionType>0</Ds_TransactionType>
<Ds_EMV3DS>{"protocolVersion":"2.2.0", "threeDSServerTransID":"8de84430-3336-4ff4-b18d-f073b546ccea ", "threeDSInfo":"CardConfiguration",
"threeDSMethodURL":"https://sis.redsys.es/sis-simulador-web/threeDsMethod.jsp"}</Ds_EMV3DS>
<Ds_Card_PSD2>Y</Ds_Card_PSD2>
<Ds_Signature>7155jJYTzqeO/FoKjIQwUrjRJU7CxiOLHlC00d5c/RU=</Ds_Signature>
</INFOTARJETA>
</RETORNOXML>

 

 

  • Ejecución del 3DSMethod
  • Trata petición

En la Petición de Autorización al “tratapeticion” debe marcarse la operación como COF Inicial Recurrente:

  • DS_MERCHANT_COF_INI = “S” → OPERACIÓN COF INICIAL SI
  • DS_MERCHANT_COF_TYPE = “R” → OPERACIÓN COF RECURRENTE

EJEMPLO DE PETICIÓN:

<DATOSENTRADA>
<DS_MERCHANT_AMOUNT>1000</DS_MERCHANT_AMOUNT>
<DS_MERCHANT_ORDER>1552572812</DS_MERCHANT_ORDER>
<DS_MERCHANT_MERCHANTCODE>999008881</DS_MERCHANT_MERCHANTCODE>
<DS_MERCHANT_TERMINAL>2</DS_MERCHANT_TERMINAL>
<DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY>
<DS_MERCHANT_TRANSACTIONTYPE>0</DS_MERCHANT_TRANSACTIONTYPE>
<DS_MERCHANT_PAN> XXXXXXXXXXXXXXXXXX </DS_MERCHANT_PAN>
<DS_MERCHANT_EXPIRYDATE >XXXX</ DS_MERCHANT_EXPIRYDATE>
<DS_MERCHANT_CVV2>XXX</ DS_MERCHANT_CVV2>
<DS_MERCHANT_COF_INI>S</DS_MERCHANT_COF_INI>
<DS_MERCHANT_COF_TYPE>R</DS_MERCHANT_COF_TYPE>
<DS_MERCHANT_EMV3DS>{
"threeDSInfo":"AuthenticationData", "protocolVersion":"2.2.0",
"browserAcceptHeader":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,appli cation/json",
"browserUserAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"browserJavaEnabled":"false", "browserLanguage":"ES-es", "browserColorDepth":"24", "browserScreenHeight":"1250", "browserScreenWidth":"1320", "browserTZ":"52",
"threeDSServerTransID":"8de84430-3336-4ff4-b18d-f073b546ccea", "notificationURL":"https://comercio-inventado.es/recibe-respuesta-autenticacion", "threeDSCompInd":"Y"
}</DS_MERCHANT_EMV3DS>
</DATOSENTRADA>

 

  • Respuesta final de la petición

Se devolverán los siguientes parámetros necesarios para poder hacer operaciones sucesivas 3RI- Recurring:

  • Ds_Merchant_Cof_Txnid: CAMPO OPCIONAL, IdTransaccion inicial para enviar en autorizaciones sucesivas
  • Ds_EMV3DS: estará compuesto por los siguientes campos:
    • Eci: indicador del tipo de autenticación
    • traceId: Identificador de las referencias 3RI
    • threeDSRequestorPriorAuthenticationInfo:
    • threeDSReqPriorRef: {referencia de la autenticación inicial}
    • threeDSReqPriorAuthMethod: {método de autenticación inicial
    • threeDSReqPriorAuthTimestamp: {timestamp de la autenticación inicial}
    • threeDSReqPriorAuthData: {datos adicionales}

 

EJEMPLO DE RESPUESTA:

 

<RETORNOXML>
<CODIGO>0</CODIGO>
<OPERACION>
<Ds_Amount>1000</Ds_Amount>
<Ds_Currency>978</Ds_Currency>
<Ds_Order>1552572812</Ds_Order>
<Ds_Signature>B4Ok6jJAEOWFE6XT1nvLvUMM1kwt9CAkkLJkCHFBrso=</Ds_Signature>
<Ds_MerchantCode>999008881</Ds_MerchantCode>
<Ds_Terminal>2</Ds_Terminal>
<Ds_TransactionType>0</Ds_TransactionType>
<Ds_Response>0000</Ds_Response>
<Ds_AuthorisationCode >694432</Ds_AuthorisationCode>
<Ds_SecurePayment>1</Ds_SecurePayment>
<Ds_Language >1</Ds_Language>
<Ds_CardNumber>454881******0004</Ds_CardNumber>
<Ds_Card_Type>C</Ds_Card_Type>
<Ds_MerchantData ></Ds_MerchantData>
<Ds_Card_Country>724</Ds_Card_Country>
<Ds_Card_Brand>1</Ds_Card_Brand>
<Ds_Merchant_Cof_Txnid>“IdTransaccion inicial para enviar en autorizaciones sucesivas”</Ds_Merchant_Cof_Txnid>
<DS_EMV3DS>{"Eci":"05",
"traceId":"0100000000000000",
"threeDSRequestorPriorAuthenticationInfo":{
"threeDSReqPriorRef":"5a31771c-6e88-4378-9f99-b114d90f8040", "threeDSReqPriorAuthMethod":"01", "threeDSReqPriorAuthTimestamp":"201912051020"
}</DS_EMV3DS>
</OPERACION>
</RETORNOXML>