Saltar al contenido principal

(POST /all-in-one)

Autenticación mediante CES (Comercio Electrónico Seguro). Permite realizar ventas autorizadas por la propia entidad emisora de la tarjeta, realizando un proceso de autenticación del propietario de la misma. Dicho proceso varía según la entidad.

Payload

  • amount (string, required): Importe de la operación 1000

  • currency (string, required): Será vida cualquier moneda definida según el ISO_4217 EUR

  • order (string): Ticket de la operación sipay-order-001

  • pan (string): Número de la tarjeta 6712009000000458

  • month (string): Mes de expiración de la tarjeta 12

  • year (string): Año de expiración de la tarjeta 2017

  • reconciliation (string): Identificador para la conciliación bancaria (p37) 1234sipay

  • operation (enum[string], required): Operación a realizar

    • authorization: Venta
    • preauthorization: Preautorización
    • all-in-one: PSD2
  • token(string): Código alfanumérico asociado a los datos de la tarjeta. Sirve para almacenar los datos de la tarjeta en la boveda segura y facilitar las futuras operaciones con dicha tarjeta sin que los datos de la misma tengan que volver a viajar por la red, securizando así el proceso de compra. sipay-token-prueba-359ef8ce5c5f4003b71692e446908c27 * No será posible tokenizar una tarjeta sin haber completado un protocolo SCA (Strong Customer Authentication) como es el protocolo 3DS 2.X. Por ello, no es posible tokenizar mediante operaciones procesadas como exención. fastpay(object):

    • request_id(string): Identificador de tarjeta devuelto por FastPay
      • formato: [0-9a-fA-F]
      • longitud: 32
  • catcher (object): {"token": "1b5925567684485eb1590c105cf8c9ba"}

  • custom_01 (string): Campo personalizable custom_001

  • custom_02 (string): Campo personalizable custom_002

  • url_ok(string, required): URL a la que se redireccionará en caso de que la operación sea correcta. A esta URL le será añadido un parámetro en el query-string llamado request_id, este identificador será necesario para la confirmación de la venta https://exmaple_url.com/?request_id=12346598

  • url_ko(string, required): URL a la que se redireccionará en caso de que la operación no haya sido correcta. A esta URL le será añadido un parámetro en el query-string llamado request_id https://exmaple_url.com/?request_id=12346598 y otro llamado error que contendrá un literal definiendo la posible causa de error unavailable_service

  • url_allow_fragments(bool): Este campo indica como se deben tratar las URLs de redireccionamiento. En caso de que la URL tenga definido un fragmento/sección en la path de la URL i.e. https://example.es/#/path?param1=value1 este campo debe tener como valor false.

    • valor por defecto: true
  • moto (enum[string]): Este campo permite realizar operaciones sujetas a la exención Mail Order (mail) & Telephone Order (phone), permitiendo seguir haciendo cargos sólo con la numeración de la tarjeta y sin doble autenticación:

    • mail: mail order
    • phone: telephone order
  • sca_exemptions (enum[string]): exenciones disponibles:

ParámetroExenciónDescripción
LWVLow Value ExemptionLas transacciones inferiores a 30 euros no requieren SCA, pero el banco emisor llevará un registro de determinados contadores, como el número de transacciones o la suma de los importes de las mismas. Si las transacciones del comprador de una tarjeta superan el contador, por ejemplo, después de cinco transacciones consecutivas o si la suma supera los 100 euros, el banco emisor requerirá SCA.
TRALow Risk / Transaction Risk AnalysisLos bancos emisores pueden considerar las transacciones como de bajo riesgo basándose en los niveles medios de fraude del emisor de la tarjeta, o del adquirente que procesa la transacción, o de ambos.
CORSecure Corporate PaymentsSe trata de pagos realizados a través de procesos corporativos dedicados iniciados por empresas y no disponibles para los consumidores. Ejemplos de ello son los pagos realizados a través de cuentas centrales de viajes, tarjetas de alojamiento, tarjetas virtuales y tarjetas corporativas seguras, como las que se utilizan en un sistema de gestión de viajes corporativos.
MITMerchant Iniciated TransactionsLos pagos realizados con tarjetas guardadas cuando el cliente no está presente en el flujo de salida (a veces llamado "fuera de sesión") pueden calificarse como transacciones iniciadas por el comerciante. Estos pagos técnicamente están fuera del alcance de SCA. En la práctica, marcar un pago como "Merchant Iniciated Transaction" será similar a solicitar una exención. Y como cualquier otra exención, seguirá correspondiendo al banco decidir si es necesario autenticar la transacción. Para utilizar las transacciones iniciadas por el comerciante, será necesario autenticar la tarjeta cuando se guarde o en el primer pago. Por último, será necesario obtener un acuerdo del cliente (también denominado "mandato"), para poder realizar el cargo en su tarjeta más adelante.
  • reason (enum[string]): motivos disponibles para MIT:
ParámetroRazón/MotivoDescripción
RRecurringTransacciones procesadas a intervalos fijos y regulares que no excedan de un año entre transacciones, que representan un acuerdo entre el titular de una tarjeta y un comerciante para adquirir bienes o servicios proporcionados durante un período de tiempo.
IInstallmentsLos pagos a plazos describen la compra única de bienes o servicios facturados al titular de la tarjeta en múltiples transacciones durante un período de tiempo acordado por el titular de la tarjeta y el comerciante.
CCompra únicaSe trata de una transacción que utiliza una credencial almacenada por un importe fijo o variable que no se produce en una fecha de transacción programada o regular, en la que el titular de la tarjeta ha dado su consentimiento para que el comerciante inicie una o más transacciones futuras que no son iniciadas por el titular de la tarjeta.
DDelayed chargeEl cargo por demora se suele utilizar en hoteles, líneas de cruceros y entornos de alquiler de vehículos para realizar un cargo suplementario en la cuenta después de la prestación de los servicios originales.
EResubmisionSe trata de un hecho que se produce cuando se produce la compra original, pero el comerciante no pudo obtener la autorización en el momento en que se suministraron los bienes o servicios.
HReauthorizationUna reautorización es una compra realizada después de la compra original y puede reflejar una serie de condiciones específicas. Los escenarios más comunes incluyen envíos retrasados o fraccionados y estancias o alquileres prolongados.
MIncrementalEn los entornos de hoteles y de alquiler de automóviles suele haber una autorización incremental, en la que el titular de la tarjeta ha aceptado pagar por cualquier servicio prestado durante la duración del contrato.
NNo showUn "No-show" es una transacción en la que el comerciante está habilitado para cobrar por los servicios que el titular de la tarjeta celebró un acuerdo de compra, pero no cumplió con los términos del acuerdo.

Ejemplo petición - Integración API

{
"key": "589365da65c48cff87d0874a",
"resource": "359ef8ce5c5f4003b71692e446908c27",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "100",
"currency": "EUR",
"pan": "6712009000000458",
"month": "12",
"year": "2020",
"cvv": "123",
"reconciliation": "1234sipay",
"operation": "all-in-one",
"url_ok": "https://en9vkyegnzvfb.x.pipedream.net/",
"url_ko": "https://en9vkyegnzvfb.x.pipedream.net/",
"order": "Psd2-1",
"custom_01": "custom-001",
"custom_02": "custom-002"
}
}

Ejemplo petición - Integración Fast Pay

{
"key": "589365da65c48cff87d0874a",
"resource": "359ef8ce5c5f4003b71692e446908c27",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "100",
"currency": "EUR",
"reconciliation": "1234sipay",
"operation": "all-in-one",
"url_ok": "https://en9vkyegnzvfb.x.pipedream.net/",
"url_ko": "https://en9vkyegnzvfb.x.pipedream.net/",
"order": "Psd2-1",
"custom_01": "custom-001",
"custom_02": "custom-002",
"fastpay": {
"request_id": "c29ba33a0fc7492985e8d0ecc42be8bf"
}
}
}

Si la tarjeta empleada en la operación admite operaciones DCC, consultar la sección Ejemplos de flujos de pago, apartado 4, Venta DCC.

NOTA: cabe destacar que el envío de peticiones que traten de ser aplicadas como exención no asegura que ésta vaya a ser efectiva. Esta decisión es formalizada por las entidades. De cara a minimizar las posibilidades de que no se acepte una exención es posible enviar datos adicionales, documentados en la sección Campos adicionales.

Success - 0

  • url (string): URL de redireccionamiento a la entidad autenticadora https://sandbox.sipay.es/mdwr/v1/redsys/5901ba6d77170014a2c89/

Ejemplo respuesta

{
"type": "success",
"detail": "authentication",
"uuid": "2df61337-c0c5-4b90-ab8c-6098c8b118ce",
"payload": {
"url": "https://sandbox.sipay.es/mdwr/v1/redsys/5901ba6d77170014a2c89/"
},
"request_id": "5901ba6d7710014a2c89",
"code": "0",
"description": "Authentication processed successfully"
}

Datos adicionales PSD2 EMV3DS

A continuación se muestran campos adicionales que pueden ser añadidos a las llamadas expuestas en la presente documentación. Esta información será utilizada por las entidades de cara a analizar las exenciones, entre otros. El envío de estos datos es altamente recomendado para permitir autenticaciones basadas en análisis del riesgo (Risk Based Analysis) y facilitar una  experiencia de compra sin fricción (frictionless). Igualmente recomendable si se solicita la aplicación de exenciones SCA-PSD2 (por ejemplo, MIT-R).

Ejemplo

{

. . .

"payload": {
"emv3ds": {
"account_additional_info": "more info",
"account_info": {
"account_age_indicator": "02",
"account_modification_date": "03032022",
"account_modification_indicator": "02",
"account_creation_date": "01012022",
"account_pw_change_date": "02022022",
"account_pw_change_indicator": "01",
"account_purchase_number": "20",
"transactions_day": "1",
"transactions_year": "4",
"account_age_date": "01022022",
"pay_account_creation_date": "03012022",
"pay_account_indicator": "01",
"address_first_use_date": "01012022",
"address_first_use_indicator": "01",
"shipment_name_indicator": "01",
"suspicious_activity_indicator": "02"
},
"addresses_match": "N",
"billing_city": "Mississippi",
"billing_country": "020",
"billing_address_1": "calle cualquiera",
"billing_address_2": "piso cualquiera",
"billing_address_3": "puerta cualquiera",
"billing_postcode": "28080",
"cardholder_mobile_phone": {
"prefix": "1",
"number": "666778899"
},
"cardholder_home_phone": {
"prefix": "11",
"number": "666778899"
},
"cardholder_work_phone": {
"prefix": "111",
"number": "666778899"
},
"merchant_risk_indicator": {
"delivery_email_address": "paco@paco.com",
"delivery_timeframe": "02",
"amount_in_giftcards": "10",
"amount_of_giftcards": "01",
"preorder_date": "20211220",
"preorder_availability_indicator": "01",
"reorder_indicator": "02",
"shipping_indicator": "01"
},
"shipping_city": "trololo",
"shipping_country": "100",
"shipping_address_1": "mi calle 4",
"shipping_address_2": "mi casa 3",
"shipping_address_3": "mi piso 2",
"shipping_postcode": "02"
}
}

. . .

}

Referencia de campos adicionales

Atributo JSON (string)Longitud StringDescripción
account_additional_infoInformación adicional sobre el usuario
account_infoInformación de la cuenta
account_age_indicator2/A-NPeriodo de tiempo que el titular de la tarjeta ha tenido la cuenta en el comercio: 01=Sin cuenta (guest check-out); 02=Creada durante la transacción; 03=Menos de 30 días; 04=30-60 días; 05=Más de 60 días
account_modification_date8/NFecha en que se modificó por última vez la cuenta del titular de la tarjeta en el comercio, incluida la dirección de facturación o de envío, la nueva cuenta de pago o los nuevos usuarios agregados. Formato: YYYYMMDD
account_modification_indicator2/A-NPeríodo de tiempo transcurrido desde que se modificó por última vez la información de la cuenta del titular de la tarjeta en el comercio, incluida la dirección de facturación o de envío, la nueva cuenta de pago o los nuevos usuarios agregados: 01=Modificado en esta transacción; 02=Menos de 30 días; 03=30-60 días; 04=Más de 60 días
account_creation_date9/NFecha en que el titular de la tarjeta abrió la cuenta en el comercio. Formato: YYYYMMDD
account_pw_change_date8/NFecha en que el titular tuvo un cambio de contraseña en la cuenta del comercio o un restablecimiento de la cuenta. Formato: YYYYMMDD
account_pw_change_indicator2/A-NIndicador de cambio de contraseña: 01=Sin cambios; 02=Cambió durante esta operación; 03=Menos de 30 días; 04=30-60 días; 05=Más de 60 días
account_purchase_number4/NNúmero de compras con esta cuenta durante los últimos seis meses
transactions_day3/NNúmero de transacciones (exitosas y abandonadas) para esta cuenta del titular de la tarjeta en el comercio en todas las cuentas de pago en las últimas 24 horas
transactions_year3/NNúmero de transacciones (exitosas y abandonadas) para esta cuenta del titular de la tarjeta en el comercio en todas las cuentas de pago del año anterior
account_age_date8/NFecha en que la cuenta de pago se inscribió en la cuenta del titular de la tarjeta en el comercio. Formato: YYYYMMDD
pay_account_creation_date8/NFecha en que la cuenta de pago se inscribió en la cuenta del titular de la tarjeta en el comercio. Formato: YYYYMMDD
pay_account_indicator2/A-NIndica el período de tiempo que la cuenta de pago se inscribió en la cuenta del titular de la tarjeta en el comercio: 01=Sin cuenta (guest check-out); 02=Durante la transacción; 03=Menos de 30 días; 04=30-60 días; 05=Más de 60 días
address_first_use_date8/NFecha en que la dirección de envío utilizada para esta transacción se utilizó por primera vez con el comercio. Formato: YYYYMMDD
address_first_use_indicator2/A-NIndica cuándo la dirección de envío utilizada para esta transacción se utilizó por primera vez con el comercio: 01=Esta transacción; 02=Menos de 30 días; 03=30-60 días; 04=Más de 60 días
shipment_name_indicator2/A-NIndica si el Nombre del titular de la tarjeta en la cuenta es idéntico al Nombre de envío utilizado para esta transacción: 01=Nombre de la cuenta idéntico al nombre del envío; 02=Nombre de la cuenta diferente al nombre de envío
suspicious_activity_indicator2/A-NIndica si el comercio ha experimentado actividad sospechosa (incluido fraude anterior) en la cuenta del titular de la tarjeta: 01=No se han observado actividades sospechosas; 02=Se han observado actividades sospechosas
addresses_match1/A-NIndicador de coincidencia de dirección
billing_city50/A-NCiudad de la dirección de facturación
billing_country3/NPaís de la dirección de facturación
billing_address_150/A-NDirección de facturación (linea 1)
billing_address_250/A-NDirección de facturación (linea 2)
billing_address_350/A-NDirección de facturación (linea 3)
billing_postcode16/A-NCódigo postal de la dirección de facturación
cardholder_mobile_phoneTeléfono móvil del dueño de la tarjeta
prefix1-3/NIndicativo del pais correspondiente al número de teléfono, según
number15/NNumeración correspondiente al número de teléfono
cardholder_home_phone*Teléfono fijo del dueño de la tarjeta
prefix1-3/NIndicativo del pais correspondiente al número de teléfono, según
number15/NNumeración correspondiente al número de teléfono
cardholder_work_phoneTeléfono corporativo del dueño de la tarjeta
prefix1-3/NIndicativo del pais correspondiente al número de teléfono, según
number15/NNumeración correspondiente al número de teléfono
merchant_risk_indicatorJSON objectIndicador de riesgo del comerciante
delivery_email_address254/A-NPara la entrega electrónica, la dirección de correo electrónico a la que se entregó la mercancía
delivery_timeframe2/A-NIndica el plazo de entrega de la mercancía: 01=Envío electrónico; 02=Entrega en el mismo día; 03=Entrega de la noche a la mañana (overnight shipping); 04=Dos o más días para la entrega
amount_in_giftcards15/A-NPara compras de tarjetas prepago o tarjetas regalo, el importe total de la compra en unidades principales (por ejemplo, USD 123.45 es 123)
amount_of_giftcards2/NPara a compras de tarjeta prepago o tarjetas regalo, recuento total de tarjetas prepago o tarjetas/códigos regalo comprados
preorder_date8/NPara una compra preordenada, la fecha prevista de disponibilidad de la mercancía. Formato: YYYYMMDD
preorder_availability_indicator2/A-NIndica si el titular de la tarjeta realiza un pedido con disponibilidad o fecha de lanzamiento futuros. Valores aceptados: 01=Pedido disponible; 02=Disponible próximamente
reorder_indicator2/A-NIndica si el titular de la tarjeta está reordenando mercancía comprada previamente: 01=Orden creada por primera vez; 02=Reordenado
shipping_indicator2/A-NIndica el método de envío elegido para la transacción. Los comercios deben elegir el código del indicador de envío que describa con mayor precisión la transacción específica del titular de la tarjeta, no su actividad comercial en general. Si se incluyen uno o más artículos en la venta, utilice el código del Indicador de envío para los bienes físicos, o si todos los productos son digitales, utilice el código del Indicador de envío que describe el artículo más caro: 01=Envío a la dirección del dueño de la tarjeta; 02=Envío a otra dirección verificada en los archivos del comerciante; 03=Envío a una dirección diferente a la del dueño de la tarjeta; 04=“Ship to Store” / Recogida en el local (la dirección de la tienda se rellenará en los campos de dirección de envío); 05=Bienes digitales (incluye servicios en línea, tarjetas electrónicas de regalo y códigos canjeables); 06=Billetes de viaje y de eventos, no enviados; 07=Otros (por ejemplo, videojuegos, servicios digitales no enviados, suscripciones a emedia, etc.)
shipping_city50/A-NCiudad de la dirección de envío
shipping_country3/NPaís de la dirección de envío
shipping_address_150/A-NDirección de envío (linea 1)
shipping_address_250/A-NDirección de envío (linea 2)
shipping_address_350/A-NDirección de envío (linea 3)
shipping_postcode16/A-NCódigo postal de la dirección de envío

Ejemplos

1. Autorización con autenticación

El siguiente ejemplo muestra el flujo necesario para la consecución de una venta simple mediante protocolo 3DS y PSD2 compliance.

1.1. Obtener URL de autenticación

POST /all-in-one request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "100",
"currency": "EUR",
"pan": "4242424242424242",
"month": "12",
"year": "2040",
"cvv": "123",
"operation": "all-in-one",
"url_ok": "https://httpbin.org/anything?what=ok",
"url_ko": "https://httpbin.org/anything?what=ko",
"order": "order_identificator",
"custom_01": "custom-001",
"custom_02": "custom-002"
}
POST /all-in-one response
{
"uuid": "e2f8a804-4c80-4007-b107-268ed59f1e82",
"payload": {
"url": "https://sandbox.sipay.es/mdwr/v1/redsys/5f7c308f6b47f40001641f07/",
"request_id": "5f7c308f6b47f40001641f07"
},
"code": "0",
"detail": "authentication",
"type": "success",
"description": "Authentication processed successfully"
}

Success - 0

  • payload.url (string): URL de redireccionamiento a la entidad autenticadora https://sandbox.sipay.es/mdwr/v1/redsys/5901ba6d77170014a2c89/

1.2. Confirmación y captura de fondos

POST /all-in-one/confirm request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"request_id": "5f7b377c6b47f40001641eb3"
}
}
POST /all-in-one/confirm response
{
"code": "0",
"payload": {
"code": "0",
"amount": "100",
"card_country": 840,
"currency": "978",
"card_brand": "VISA",
"reconciliation": "",
"card_trade": "consumer",
"card_type": "debit",
"masked_card": "4117 73** ****7891",
"order": "Psd2-1",
"approval": "333752",
"authorizator": "BANCO SANTANDER, S.A.",
"transaction_id": "000026358072327177080"
},
"uuid": "970f371e-fa0e-4215-879a-19e72a023de2",
"detail": "authorization",
"request_id": "5f7b377c6b47f40001641eb5",
"description": "Authorization processed successfully",
"type": "success"
}

Success - 0 - authentication

  • code (string, required): Código interno de la operación. Dirigirse a Códigos de respuesta 0
  • amount (string, required): Importe de la operación 1000
  • currency (string, required): Moneda utilizada en la operación EUR
  • order (string, required): Ticket de la operación sipay-order-001
  • reconciliation (string, required): Identificador para la conciliación bancaria 1234-sipay
  • card_trade (string, required): Emisor de la tarjeta. Solicite más información. undefined
  • card_type (string, required): Tipo de la tarjeta. Solicite más información. undefined
  • masked_card (string, required): Número de la tarjeta enmascarado 6712 00** ****0205
  • transaction_id (string, required): Identificador de la transacción. 000024899463550243139
  • sequence (string, required): 1131238
  • authorizator (string, required): Entidad autorizadora de la operación BANCO SANTANDER, S.A.
  • approval (string, required): Código de aprobación de la entidad 346179

2. Autorización con autenticación con almacenamiento de tarjeta (tokenización)

A continuación se muestra el flujo necesario para completar una venta 3DS PSD2 compliance y guardado en bóveda de la tarjeta (tokenización).

POST /all-in-one request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "100",
"currency": "EUR",
"pan": "4242424242424242",
"month": "12",
"year": "2040",
"cvv": "123",
"token": "token_identifier",
"operation": "all-in-one",
"url_ok": "https://httpbin.org/anything?what=ok",
"url_ko": "https://httpbin.org/anything?what=ko",
"order": "order_identificator",
"custom_01": "custom-001",
"custom_02": "custom-002"
}
}
POST /all-in-one response
{
"code": "0",
"payload": {
"request_id": "5f7c42876b47f40001046e09",
"url": "https://sandbox.sipay.es/mdwr/v1/redsys/5f7c42876b47f40001046e09/"
},
"uuid": "c1c52ad8-508f-4494-9d82-d6bc137fd3cd",
"detail": "authentication",
"description": "Authentication processed successfully",
"type": "success"
}

Success - 0

  • url (string): URL de redireccionamiento a la entidad autenticadora https://sandbox.sipay.es/mdwr/v1/redsys/5901ba6d77170014a2c89/

2.2. Confirmación de autenticación

POST /all-in-one/confirm request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"request_id": "5f7c42876b47f40001046e09"
}
}
POST /all-in-one/confirm response
{
"code": "0",
"payload": {
"code": "0",
"amount": "100",
"card_country": 840,
"currency": "978",
"token": "token_identifier",
"card_brand": "VISA",
"reconciliation": "",
"card_trade": "consumer",
"card_type": "debit",
"masked_card": "4242 42** ****4242",
"order": "order_identificator",
"approval": "333752",
"authorizator": "BANCO SANTANDER, S.A.",
"transaction_id": "000026358072327177080"
},
"uuid": "970f371e-fa0e-4215-879a-19e72a023de2",
"detail": "authorization",
"request_id": "5f7c42fc6b47f40001046e0d",
"description": "Authorization processed successfully",
"type": "success"
}

Success - 0 - authentication

  • token: Nombre del token asociado a la tarjeta guardada en bóveda.

3. Autorización con autenticación desde una tarjeta almacenada (tokenizada)

El siguiente flujo muestra la operativa necesaria para completar una venta 3DS PSD2 compliance a través de una tarjeta previamente guardada en bóveda (tokenizada), se trata de una operación CIT (Customer Iniciated Transaction).

3.1. Autenticación con tokenización PSD2 compliance

POST /all-in-one/confirm request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "100",
"currency": "EUR",
"token": "token_identifier",
"operation": "all-in-one",
"url_ok": "https://httpbin.org/anything?what=ok",
"url_ko": "https://httpbin.org/anything?what=ko",
"order": "order_identificator",
"custom_01": "custom-001",
"custom_02": "custom-002"
}
}
POST /all-in-one/confirm response
{
"code": "0",
"payload": {
"request_id": "5f7c42876b47f40001046e09",
"url": "https://sandbox.sipay.es/mdwr/v1/redsys/5f7c42876b47f40001046e09/"
},
"uuid": "c1c52ad8-508f-4494-9d82-d6bc137fd3cd",
"detail": "authentication",
"description": "Authentication processed successfully",
"type": "success"
}

Success - 0

  • url (string): URL de redireccionamiento a la entidad autenticadora https://sandbox.sipay.es/mdwr/v1/redsys/5901ba6d77170014a2c89/

3.2. Confirmación y captura de fondos

POST /all-in-one/confirm request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"request_id": "5f7c42876b47f40001046e09"
}
}
POST /all-in-one/confirm response
{
"code": "0",
"payload": {
"code": "0",
"amount": "100",
"card_country": 840,
"currency": "978",
"token": "token_identifier",
"card_brand": "VISA",
"reconciliation": "",
"card_trade": "consumer",
"card_type": "debit",
"masked_card": "4242 42** ****4242",
"order": "order_identificator",
"approval": "333752",
"authorizator": "BANCO SANTANDER, S.A.",
"transaction_id": "000026358072327177080"
},
"uuid": "970f371e-fa0e-4215-879a-19e72a023de2",
"detail": "authorization",
"request_id": "5f7c42fc6b47f40001046e0d",
"description": "Authorization processed successfully",
"type": "success"
}

Success - 0 - authentication

  • token: Nombre del token asociado a la tarjeta guardada en bóveda.

4. Autorización con exención MIT R

A continuación se muestra el flujo necesario para completar una venta con tarjeta PSD2 compliance aplicando una exención "MIT" (Merchant Initiated Transaction) con motivo de venta recurrente (R). Mediante esta exención es posible completar flujos de pago iniciado por el comercio sin realizar la autenticación 3DS siempre y cuando la entidad lo permita.

La tarjeta previamente se tiene que haber tokenizado y autenticado mediante otro proceso separado.

Se deberá especificar "sca_exemptions": "MIT" y "reason": "R", permitiendo realizar la llamada /all-in-one/confirm sin consumir la url (string) generalmente provista por la llamada /all-in-one ya que ésta no debe ser devuelta.

4.1. Obtener ID de petición: request_id

POST /all-in-one request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "100",
"currency": "EUR",
"operation": "all-in-one",
"token": "token_id",
"order": "order_identificator",
"custom_01": "custom-001",
"custom_02": "custom-002",
"sca_exemptions": "MIT",
"reason": "R"
}
POST /all-in-one response
{
"uuid": "e2f8a804-4c80-4007-b107-268ed59f1e82",
"payload": {
"url": "https://sandbox.sipay.es/mdwr/v1/redsys/5f7c308f6b47f40001641f07/",
"request_id": "5f7c308f6b47f40001641f07"
},
"code": "0",
"detail": "authentication",
"type": "success",
"description": "Authentication processed successfully"
}

Success - 0

  • request_id (string): ID de petición necesario para la operación de confirmación.

4.2. Confirmación y captura de fondos

POST /all-in-one/confirm request
{
"key": "key_value_provide_by_sipay",
"resource": "resource_value_provide_by_sipay",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"request_id": "5f7c308f6b47f40001641f07"
}
}
POST /all-in-one/confirm response
{
"code": "0",
"payload": {
"code": "0",
"amount": "100",
"card_country": 840,
"currency": "978",
"card_brand": "VISA",
"reconciliation": "",
"card_trade": "consumer",
"card_type": "debit",
"masked_card": "4117 73** ****7891",
"order": "order_identificator",
"approval": "333752",
"authorizator": "BANCO SANTANDER, S.A.",
"transaction_id": "000026358072327177080"
},
"uuid": "970f371e-fa0e-4215-879a-19e72a023de2",
"detail": "authorization",
"request_id": "5f7c308f6b47f40001641f07",
"description": "Authorization processed successfully",
"type": "success"
}

Success - 0 - authentication

  • code (string, required): Código interno de la operación. Dirigirse a Códigos de respuesta 0
  • amount (string, required): Importe de la operación 1000
  • currency (string, required): Moneda utilizada en la operación EUR
  • order (string, required): Ticket de la operación sipay-order-001
  • reconciliation (string, required): Identificador para la conciliación bancaria 1234-sipay
  • card_trade (string, required): Emisor de la tarjeta. Solicite más información. undefined
  • card_type (string, required): Tipo de la tarjeta. Solicite más información. undefined
  • masked_card (string, required): Número de la tarjeta enmascarado 6712 00** ****0205
  • transaction_id (string, required): Identificador de la transacción. 000024899463550243139
  • sequence (string, required): 1131238
  • authorizator (string, required): Entidad autorizadora de la operación BANCO SANTANDER, S.A.
  • approval (string, required): Código de aprobación de la entidad 346179

OTA - Online Travel Agency

Esta API le permitirá a sectores de agencias de viajes, aerolíneas y hoteles procesar sus operaciones sin que el cliente presente y con las garantías de una autenticación delegada.

La llamada que se debe realizar será igual a una autenticación con "previously_authenticated" : true y con el identificador de token y realizar su confirmación.

Con datos de autenticación

Cuando se disponen de los datos de la autenticación previa, se debe añadir a la llamada el objeto "authentication_data".

El objecto "authentication_data" debe contener los siguientes campos:

  • cryptogram[string]: Criptograma de la autenticación.

  • cryptogram_type[enum[string]]: Posibles valores:

    • CAVV
    • AEVV
    • UCAF
  • ds_transaction_id[string]: Identificador de la transacción.

  • eci[string]: El indicador de comercio electrónico es un valor devuelto por Visa, MasterCard, JCB y American Express que indica el resultado del intento de autenticación en las transacciones aplicadas por 3DS.

    • Posibles valores para Visa, American Express y JCB:

      • 05: La autenticación 3DS se ha realizado con éxito; las transacciones están protegidas por 3DS.
      • 06: La autenticación 3DS se ha intentado pero no se ha completado o no se ha podido completar; las posibles razones son que la tarjeta o su Banco Emisor aún no se han enrolado en 3DS.
      • 07: La autenticación 3DS ha fallado o no ha podido ser intentada; las posibles razones son que tanto la tarjeta como el Banco Emisor no están protegidos por 3DS, errores técnicos o una configuración incorrecta.
    • Posibles valores para MasterCard:

      • 02: La autenticación 3DS se ha realizado con éxito; tanto la tarjeta como el Banco Emisor están protegidos por 3DS.
      • 01: La autenticación 3DS se ha intentado pero no se ha completado o no se ha podido completar; las posibles razones son que la tarjeta o su Banco Emisor aún no se han enrolado en 3DS, o que el titular de la tarjeta se ha quedado sin tiempo para autorizar.
      • 00: La autenticación 3DS ha fallado o no se ha podido intentar; las posibles razones son que tanto la tarjeta como el Banco Emisor no están protegidos por 3DS, errores técnicos o una configuración incorrecta.

Ejemplo petición inicial

{
"key": "key_value",
"resource": "resource_value",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "0",
"currency": "EUR",
"pan": "4242424242424242",
"month": "12",
"year": "25",
"cvv": "123",
"operation": "all-in-one",
"url_ok": "https://httpbin.org/anything?what=ok",
"url_ko": "https://httpbin.org/anything?what=ko",
"order": "OTAS_ejemplo",
"token": "Mi_token_ejemplo_otas",
"previously_authenticated": "true",
"authentication_data": {
"cryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA==",
"cryptogram_type": "CAVV",
"ds_transaction_id": "222225555",
"eci": "2"
}
}
}

Ejemplo respuesta petición inicial

{
"type": "success",
"code": "0",
"detail": "authentication",
"description": "Authentication processed successfully",
"payload": {
"request_id": "61c996fc7b3f710001d24227"
},
"uuid": "787e7e33-27ee-47bd-b0ae-1fc2243a8356"
}

Ejemplo petición cofirmación

{
"key": "key_value",
"resource": "resource_value",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"request_id": "61c996fc7b3f710001d24227",
"previously_authenticated": "true"
}
}

Ejemplo respuesta petición confirmación

{
"type": "success",
"code": "0",
"detail": "authorization",
"description": "Authorization processed successfully",
"payload": {
"code": "0",
"amount": "1",
"currency": "EUR",
"order": "OTAS_ejemplo",
"card_trade": "consumer",
"card_type": "mixed",
"masked_card": "4242 42** ****4242",
"reconciliation": "",
"transaction_id": "000027346264324635666",
"cof_id": "792021361451350",
"authorizator": "CAIXABANK, S.A.",
"approval": "227334",
"card_country": 724,
"card_brand": "VISA",
"token": "Mi_token_ejemplo_otas"
},
"uuid": "f871037d-c68c-43cf-948e-cdd78105c5c5",
"request_id": "61c9983c7b3f710001d24228"
}

Sin datos de autenticación

Si no se disponen de los datos de la autenticación previa de la tarjeta se debe añadir el campo "moto" = "phone" y el campo "amount" = 0.

Ejemplo petición inicial

{
"key": "key_value",
"resource": "resource_value",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"amount": "0",
"currency": "EUR",
"pan": "4242424242424242",
"month": "12",
"year": "25",
"cvv": "1223",
"operation": "all-in-one",
"token": "Mi_token_ejemplo2_otas",
"url_ok": "https://httpbin.org/anything?what=ok",
"url_ko": "https://httpbin.org/anything?what=ko",
"order": "OTAS_ejemplo2",
"previously_authenticated": "true",
"moto": "phone"
}
}

Ejemplo respuesta petición inicial

{
"type": "success",
"code": "0",
"detail": "authentication",
"description": "Authentication processed successfully",
"payload": {
"request_id": "61c996fc7b3f710001d24227"
},
"uuid": "787e7e33-27ee-47bd-b0ae-1fc2243a8356"
}

Ejemplo petición cofirmación

{
"key": "key_value",
"resource": "resource_value",
"nonce": "1234567890",
"mode": "sha256",
"payload": {
"request_id": "61c996fc7b3f710001d24227",
"previously_authenticated": "true"
}
}

Ejemplo respuesta petición confirmación

{
"type": "success",
"code": "0",
"detail": "authorization",
"description": "Authorization processed successfully",
"payload": {
"code": "0",
"amount": "0",
"currency": "EUR",
"order": "OTAS_ejemplo2",
"card_trade": "consumer",
"card_type": "mixed",
"masked_card": "4242 42** ****4242",
"reconciliation": "",
"transaction_id": "000027346264324635666",
"cof_id": "792021361451350",
"authorizator": "CAIXABANK, S.A.",
"approval": "227334",
"card_country": 724,
"card_brand": "VISA",
"token": "Mi_token_ejemplo2_otas"
},
"uuid": "f871037d-c68c-43cf-948e-cdd78105c5c5",
"request_id": "61c9983c7b3f710001d24227"
}