API – Developers Docs API – Developers Docs
  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
API – Developers Docs API – Developers Docs
API – Developers Docs
  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
Cyberpac
  • Folder icon closed Folder open iconCanales
    • Consultas de operaciones e informes
    • Devoluciones
    • Consulta de notificaciones
    • Confirmar y anular operaciones
    • PayGold desde Canales
    • MO/TO desde Canales
    • Configuración de comercio
    • Preguntas frecuentes Canales
  • Folder icon closed Folder open iconMódulos de integración
    • PrestaShop
    • WooCommerce
    • Magento (Adobe Commerce)
    • Instalación y configuración avanzada de módulos de integración
    • Preguntas y errores frecuentes módulos
  • Folder icon closed Folder open iconIntegraciones a medida
    • Redirección
      • Operativas tarjetas redirección
    • REST
      • Operativas tarjetas REST
    • InSite
      • Operativas tarjetas InSite
    • InApp
      • Integración Android
      • Integración iOS
    • PayGold
  • Folder icon closed Folder open iconMétodos de pago
    • ApplePay
    • Google Pay
    • Bizum
  • Folder icon closed Folder open iconComplementa tu integración
    • 3D Secure: Qué es y parámetros
    • Consulta de operaciones REST
    • Entorno de pruebas y pase a producción
    • Personalizar pasarela de pago
  • Folder icon closed Folder open iconRecursos
    • Códigos de Error y Denegaciones
    • Códigos: Divisas e Idiomas
    • Tarjetas para pruebas y casuísticas

ApplePay

Introducción

Apple Pay es un sistema de pago móvil disponible en dispositivos Apple, como: iPhone, iPad, Mac o Apple Watch. Permite a los usuarios almacenar sus tarjetas y pagar sin necesidad de volver a introducir sus datos.

Apple muestra la opción de Pagar con Apple Pay en las webs donde se ha integrado el sistema y siempre que se acceda con un dispositivo compatible, como el iPhone. 

Para usar Apple Pay, tanto el comercio como el cliente tiene que cumplir unas condiciones: 

  • Tu comercio tiene que tener activo el método de pago solicitándolo a Soporte e integrar Apple Pay en su integración, como veremos en esta guía. 
  • El cliente tiene que tener un dispositivo compatible con Apple Pay y haber vinculado su(s) tarjeta(s). 
Para usar Apple Pay, tienes que pedir su activación al equipo de Soporte. Indicando si la integración es por redirección o propia. 

Integraciones disponibles

Apple Pay se puede integrar en:

  • Integración por redirección
  • Integración REST

Tienes más detalles en las secciones específicas

Apple Pay sólo se puede integrar en el entorno de Producción de tu TPV Virtual. 

Integración por Redirección

Si tienes una integración por redirección puedes integrar Apple Pay únicamente solicitando su activación a Soporte. 

Si usas Apple Pay en tu integración por redirección:

  • No es necesario ningún cambio técnico en tu integración. Sólo tendrás que pedir su activación. 
  • Si el cliente entra desde un dispositivo compatible con Apple Pay (como iPhone), verá el botón de pago con Apple Pay. Si el dispositivo o navegador no es compatible con Apple Pay, NO verá el botón. 
  • Si lo prefieres, puedes limitar los métodos de pago a Apple Pay, como veremos a continuación. 
Si tu comercio tiene una personalización antigua NO se mostrará el botón de pago de Apple Pay aunque esté activo.  

Si tu comercio tiene una personalización antigua, no se mostrará el botón de pago de Apple Pay aunque esté activo. En este caso, se deberá eliminar la personalización y hacer una nueva que sea compatible.

En la siguiente captura tienes un ejemplo de personalización antigua:

Flujo de pago Apple Pay en redirección

A continuación tienes el flujo de pago de Apple Pay en redirección junto a capturas que ilustran el proceso:

  1. Una vez has solicitado su activación, Apple Pay se mostrará en la pantalla de tu TPV Virtual donde se solicitan los datos de la tarjeta (siempre que el cliente esté usando un dispositivo compatible con Apple Pay). 
  2. Al pulsar en pagar con Apple Pay, se iniciará Apple Pay y el cliente seleccionará la tarjeta con la que pagar. 
  3. Para pagar, el cliente se identifica con PIN o Biometría.
  4. El pago será procesado automáticamente. Si da error, se cerrará la opción de Apple Pay y se dará la opción de introducir la tarjeta manualmente.  

Mostrar sólo Apple Pay

Si tienes activo Apple Pay en tu integración por redirección, puedes mostrar al cliente únicamente la solución de pago Apple Pay, ocultando la opción de introducir datos de tarjeta.

¿Cómo mostrar sólo Apple Pay?

  • Para mostrar sólo Apple Pay (y Google Pay si lo tienes activo), envía el campo DS_MERCHANT_PAYMETHODS con el valor xpay.
  • Este campo se tiene que enviar en el JSON de Ds_MerchantParameters.

Integración propia

Si quieres integrar Apple Pay en tu página web directamente tienes que seguir los pasos que te vamos a detallar en esta sección:

  1. Registrar tu comercio en Apple Pay.
  2. Integrar Apple Pay en tu plataforma.
  3. Integrar Apple Pay en tu TPV Virtual. 
  • El proceso se detalla en la guía propia de Apple Pay, aunque hemos detallado los pasos en las siguientes secciones.
  • Además, tendrás que configurar el servidor de tu comercio según la guía de Apple Pay.
  • Las operaciones se enviarán mediante conexión REST con el TPV Virtual. 

Registrar tu comercio en Apple Pay

El registro con una cuenta de Apple Pay con las opciones de desarrollador (lo que se requiere para la integración) tiene un coste anual por parte de Apple. Más información en Apple.

La creación de la cuenta es necesario para obtener un ID de comercio y una clave privada (que se usará para desencriptar los datos del medio de pago).

A continuación, te mostramos como:

  1. Obtener el ID de Comercio.
  2. Obtener la clave privada.
  3. Crear el Certificate Signing Request (CSR).
  4. Registrar los Dominios en Apple Pay. 

1. Obtener el ID de Comercio (Merchant ID)

Vamos a crear un nuevo Identificador de Comercio (si ya lo has creado, lo tendrás en la sección correspondiente).

  1. Entra a la consola de Apple.
  2. Ve a «Certificates, Identifiers & Profiles».
  3. Pulsa «Merchant IDs», en la derecha.
  4. Pulsa el botón de añadir más.

5. Pulsa «Continue».

6. Indica una descripción en «Description» para identificar el ID y haz clic en «Continue». 

7. Revisa los datos y pulsa «Register». 

2. Obtener clave privada (Merchant Identity Certificate)

Para generar una clave privada (Merchant Identity Certificate) en Apple Pay sigue estos pasos: 

1. Generar una clave privada RSA2048. Posteriormente, realizar una solicitud de firma de certificado (CSR) con la clave RSA2048 generada utilizando la herramienta OpenSSL, utiliza el siguiente comando:

				
					openssl req -new -newkey rsa:2048 -nodes -keyout merchant_id.key -out merchant_id.csr -subj '/O=NombreComercio /C=ES'
				
			

2. Esta acción generará un fichero merchant_ir.csr, que deberás utilizar para generar el certificado final por parte de Apple.

3. En la consola de Apple, haz clic en «Certificates, Identifiers & Profiles». Luego, haz clic en «Identifiers» y selecciona «Merchant IDs» en el menú desplegable de la derecha. Haz clic en el MerchantID que generaste en el apartado anterior.

4. En la parte inferior de la página, haz clic en «Create certificate», bajo el título «Apple Pay Merchant Identitiy Certificate».

5. Carga el archivo merchant_id.csr generado en el paso 1 de este proceso y pulsa «Continue».

6. Haz clic en «Download» para descargar un archivo llamado merchant_id.cer.

7. Convierte el archivo descargado en un archivo *.pem. Utiliza el siguiente comando en OpenSSL:

				
					openssl x509 -inform der -in merchant_id.cer -out merchant_id.pem
				
			

3. Generar el Certificate Signing Request (CSR)

Una vez generado el Merchant ID y el Merchant Identity Certificate, es necesario generar un Certificate Signing Request.

Este se utiliza para el descifrado de la mensajería a partir de una clave privada. Dicha clave privada será la que el comercio deba configurar en Canales.

Sigue estos pasos para poder generar el Certificate Signing Request:

1. Genera un par de claves en un archivo de claves de curva elíptica con la herramienta OpenSSL. Introduce este comando: 

				
					openssl ecparam -genkey -name prime256v1 -out ecckey.key
				
			

2. Formatear la clave en formato PKCS8. Introduce este comando en Open SSL:

				
					openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in ecckey.key -out ecckey_pkcs8.key
				
			

* El contenido del fichero resultante ecckey_pkcs8.key deberá introducirse, junto al Merchant Id, en Canales.

3. Generar CSR a partir del par de claves en el archivo de claves. Introduce este comando en Open SSL:

				
					openssl req -new -sha256 -key ecckey.key -out ecccertreq.csr -subj/CN=www.dominiocomercio.com
				
			

4. En el centro de miembros, selecciona «Certificates, Identifiers & Profiles».

5. Debajo de los identificadores, selecciona MerchantIDs.

6. Selecciona el MerchantID de la lista que creaste anteriormente.

7. En la sección «Certificados de procesamiento de pagos», haz clic en «Crear certificado». Sigue las instrucciones para generar su solicitud de firma de certificado (CSR) y haz clic en «continuar».

8. Haz clic en «Elegir archivo», selecciona la CSR generada y haz clic en «generar».

9. Descarga el certificado haciendo clic en «descargar» y luego haz clic en «listo» para finalizar el proceso.

4. Registro de los dominios

Para poder hacer uso de Apple Pay se deben registrar los dominios desde los que mostraremos su botón.

1. Accede al perfil del Merchant ID generado en el apartado anterior.

2. Revisa el apartado “Merchant Domains” y pulsa en “Add Domain”.

3. Escribe el dominio necesario y pulsa en “Save”.

4. Pulsa en “Download” para descargar el fichero necesario para la verificación del dominio.

5. Aloja el Fichero descargado en la ruta que se especifica (raíz de nuestro dominio).

6. Pulsa en “Verify”.

7. Una vez has verificado el dominio, comprueba que queda como en la siguiente captura: 

Repite este proceso por cada dominio que tengas/quieras añadir para operar con Apple Pay.

Integrar Apple Pay en tu plataforma

Una vez has registrado tu comercio en Apple Pay, el siguiente paso es integrar Apple Pay en tu plataforma.

Para ello, sigue las indicaciones de los puntos siguientes: 

Los siguientes ejemplos de código son muestras para entender mejor el proceso y es posible que no funcionen en tu integración. Adapta el código a tus necesidades.

1. Mostrar el botón de Apple Pay en tu web y buttonClicked

Para mostrar el botón de Apple Pay en tu página web, tienes que incluir código en tu página web donde quieras mostrar el botón. 

A continuación tienes un ejemplo de código para mostrar:

				
					<script src="https://applepay.cdn-apple.com/jsapi/v1/apple-pay-sdk.js">
<style>
  apple-pay-button {
    --apple-pay-button-width: 140px;
    --apple-pay-button-height: 30px;
    --apple-pay-button-border-radius: 5px;
    --apple-pay-button-padding: 5px 0px;
  }
</style>
<div id="box">
  <apple-pay-button buttonstyle="black" type="buy" locale="es-ES" onclick="buttonClicked()>
</div>
				
			

Puedes encontrar más información sobre las propiedades CSS del botón en la documentación de Apple Developer.

Además de mostrar el botón, hay que validar si la API de Apple Pay está disponible y habilitada en el dispositivo desde el que estamos haciendo el pago para mostrar el botón solo en dispositivos Apple.

Esto lo podemos verificar de dos formas:

  • canMakePayments: Verifica que el dispositivo tiene ApplePay habilitado, pero no verifica si el usuario ya tiene una tarjeta guardada en su dispositivo.
  • canMakePaymentsWithActiveCard: Verifica tanto si es dispositivo tiene ApplePay habilitado como si tiene una tarjeta guardada en su dispositivo.

Con el siguiente código solo se mostrará el botón de Apple Pay si estamos en un dispositivo válido.

  • En la variable merchantIdentifier (Merchant ID) debemos poner nuestro identificador generado en el paso «Obtener el ID de Comercio» anterior.
  • Para ello crear la función buttonClicked definida en el evento onclick del botón apple-pay-button:
				
					if (window.ApplePaySession) {
	console.log(window.ApplePaySession);
	var merchantIdentifier = ' merchant.com.example.mystore';
	var promise = ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier);
	promise.then(function (canMakePayments) {
		document.getElementById("box").style.display = "block";
	}, function (rejection) {
		document.getElementById("box").style.display = "none";
	}
	);
} else {
	document.getElementById("box").style.display = "none";
}

function buttonClicked() {
}
				
			

2. Crear ApplePaySession

Cuando se pulse el botón de Apple Pay, se tendrá que construir el objeto ApplePaySession. En este objeto, se enviará el diccionario ApplePayPaymentRequest, que contiene toda la información de la transacción. 

A continuación te mostramos un ejemplo de ApplePayPaymentRequest, con los campos obligatorios que se tienen que añadir a la función buttonClicked: 

  • Tienes campos adicionales para distintas casuísticas (descuentos, costes de envío, etc.) en la documentación de Apple. 
				
					if (!ApplePaySession) {
	return;
}
// ApplePayPaymentRequest
const request = {
	"countryCode": "ES",
	"currencyCode": ”EUR”
	"merchantCapabilities": [
		"supports3DS"
	],
	"supportedNetworks": [
		"visa",
		"masterCard",
		"amex",
		"discover"
	],
	"total": {
		"label": "Nombre Comercio",
		"type": "final",
		"amount": "4.99"
	}
};
				
			

Nota: Los valores del código son un ejemplo. Adapta el código a tus necesidades.

Una vez tengamos preparado el diccionario ApplePayPaymentRequest con toda la información crearemos el objeto ApplePaySession y llamaremos el método begin para iniciar el proceso de validación del comercio. Este código se debe añadir a la función buttonClicked.

				
					
// Create ApplePaySession
const session = new ApplePaySession(3, request);
session.begin();
				
			

3. Obtener token Apple Pay

Los siguientes ejemplos de código son muestras para entender mejor el proceso y es posible que no funcionen en tu integración. Adapta el código a tus necesidades.

Importante: 

  • El siguiente código para obtener el token de Apple Pay se tiene que añadir a la función buttonClicked.
  • Este desarrollo se tiene que realizar para la parte web como para la parte servidor de tu integración.

A continuación, tienes un ejemplo completo y la explicación paso a paso: 

				
					session.onvalidatemerchant = event => {
	//1. Llamar a tu servidor para generar un merchantSession llamando a Apple.
	const merchantSession = await serverValidateMerchant(event.validationURL);
	//2. Completamos la validación del comercio
	session.completeMerchantValidation(merchantSession);
	//3. Información de la transacción en la página de pago
	session.onpaymentmethodselected = event => {
		// Define ApplePayPaymentMethodUpdate basado en el método de pago seleccionado.
		// No hace falta actualizaciones o errores, envía un objeto vacío.
		const update = {
			newTotal: {
				"label": “Nombre Comercio",
				"type": "final",
				"amount": "4.99”
			}
		};
		session.completePaymentMethodSelection(update);
	};
	//4. Autorización del pago (obtener el token)
	session.onpaymentauthorized = event => {
		// Token cifrado de Apple
		var paymentData = event.payment.token.paymentData);
		//Llamar a vuestro servidor para enviar el token de pago a Redsys
		const resultado = await serverAutorizationPayRedsys(paymentData);
		const result = {
			"status": resultado;
		};
		session.completePayment(result);
	};
};
				
			

Despliega para ver explicación de cada paso. Se corresponden con las anotaciones (//) del ejemplo de arriba: 

1. Llama a tu servidor para generar un merchantSession llamando a Apple

Antes de mostrar la página de pago de Apple Pay al cliente debes generar una sesión de pago válida. Para ello debes comunicarte con los servidores de Apple Pay, y por razones de seguridad deberás hacerlo desde tu servidor y no desde tu cliente web.

Es la única parte de la integración que hay que hacer desde el lado del servidor.

A continuación tienes un código de ejemplo que ilustra el proceso. Recuerda que es un ejemplo y tienes que modificarlo para tu desarrollo: 

				
					//JSON de ejemplo de la petición de sesión a Apple
jsonRequest = {
    merchantIdentifier: "merchant.com.example.mystore",
    displayName: "MyStore",
    initiative: "web",
    initiativeContext: "mystore.example.com"
}
//En event.validationURL tenemos la URL a la que deberemos hacer la petición
serverValidateMerchant(event.validationURL) {
	//Llamamos a la url de Apple Pay que hemos recogido con los datos correspondientes
	urlApplepay= event.validationURL;
	merchantSession = sendRequest(urlApplepay,jsonRequest);
	//Enviamos el resultado de Apple al navegador
	return merchantSession;
}
				
			
2. Completar la validación de comercio

Una vez obtengamos el objeto de sesión recibido por parte de Apple Pay en nuestro navegador deberemos completar el método onvalidatemerchant() pasando este nuevo objeto de sesión al método completeMerchantValidation(). Una vez completado se mostrará la página de pago de Apple Pay.

3. Información de la transacción en la página de pago

Una vez completada la validación del comerciante Apple Pay proporciona información de la transacción en la página de pago (método de pago, dirección de facturación, dirección o método de envío) para así calcular el costo total del pago. Para gestionar estos ajustes podemos impletentar los siguientes event handler:

  • onpaymentmethodselected: Método de pago.
  • oncouponcodechanged: Insertar o actualizar un cupón.
  • onshippingmethodselected: Método de envío.
  • onshippingcontactselected: Contacto de envío.

Es obligatorio que todos estos eventos contengan un objeto newTotal. Para más información sobre los diferentes eventos puede consultar la página de pagos de prueba de Apple Pay y la documentación en Apple Developer.

4. Autorización de pago (obtener el token)

Finalmente tenemos que implementar el evento onpaymentauthorized para obtener el token de la transacción. Una vez el usuario autentique la transacción con Face ID, Touch ID o contraseña desde su dispositivo obtendremos el token encriptado que deberemos enviar posteriormente a Redsys para que procese el pago.

Después de recibir la respuesta deberemos llamar al método completePayment con el resultado de la operación: STATUS_SUCCESS o STATUS_FAILURE acompañado de un mensaje ApplePayError.

Para más información sobre los diferentes eventos puede consultar la página de pagos de prueba de Apple Pay y la documentación en Apple Developer.

Integrar Apple Pay en tu TPV Virtual

Una vez completados los pasos anteriores:

  1. Registrar tu comercio en Apple Pay.
  2. Integrar Apple Pay en tu plataforma.

Es el momento de integrar Apple Pay en tu TPV Virtual.

Recuerda: Llegados a este punto, tienes que haber solicitado la activación de Apple Pay a Soporte.

1. Configurar Apple Pay en Canales

El equipo de Soporte incluirá en Canales 2 datos de Apple Pay para finalizar la configuración de tu comercio. 

Comunica a Soporte estos datos, que son: 

  • Merchant ID de tu comercio en Apple. Paso 1 «Obtener el ID de comercio».
  • Clave privada formato PKCS8. Paso 3 «Generar el Certificate Signing Request (CSR)«.

2. Enviar operación al TPV Virtual

Tipo de peticiónEntornoURL
trataPeticionPruebashttps://sis-t.redsys.es:25443/sis/rest/trataPeticionREST
Producciónhttps://sis.redsys.es/sis/rest/trataPeticionREST

En las operaciones enviadas al TPV Virtual se tienen que enviar los parámetros de la siguiente tabla.

  • Estos parámetros los tienes que añadir en el JSON de Ds_MerchantParameters.
ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numérico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos.110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050
DS_MERCHANT_CURRENCY4 caracteres
Numérico
RequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978
DS_MERCHANT_ORDER12 caracteres
Alfanumérico
* (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)
RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses.

Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación.

*Sólo se permiten caracteres ASCII:
– Dígitos (0–9): ASCII 48 a 57.
Letras mayúsculas (A–Z): ASCII 65 a 90.
– Letras minúsculas (a–z): ASCII 97 a 122.
– No se permiten espacios, símbolos ni acentos.
1234ABcd56EF
DS_MERCHANT_TRANSACTIONTYPEValores disponibles:
– 0: Autorización
– 1: Preautorización
RequeridoTipo de transacción. El número enviado indica el tipo de transacción.0
DS_XPAYORIGENValores disponibles:
– Google
– Apple
RequeridoOrigen de la petición. («Google» para Google Pay y «Apple» para Apple Pay)Apple
DS_XPAYTYPEValores disponibles:
– WEB
– InApp
RequeridoTipo de pago, depende de la integración que tengas. WEB
DS_XPAYDATA10000 caracteres máximo
Alfanumérico
Requerido* Campo en el que se incluyen los datos del enviados por Apple en el valor token formato Hexadecimal.

* Si se envía, NO se enviará «DS_XPAYDECODEDDATA».
7B2276657273696F6E223A767A6754F…
DS_XPAYDECODEDDATAJSONRequerido* JSON donde se envían los parámetros decodificados de Apple.

* Si se envía, NO se enviará «DS_XPAYDATA».
N/A

Importante: Para enviar el campo DS_XPAYDATA tienes que recibir la respuesta a la autenticación de Apple.

En la respuesta a la autenticación, recibes el campo token, que es un objeto que contiene los campos que se tienen que informar en formato Hexadecimal.

  • En el siguiente ejemplo tienes una respuesta a la autenticación con el campo token. Tienes los campos que se deben informar en Hexadecimal destacados:
				
					{
	"token":{
		"paymentData":{
			"data":"CZOOPbi/R7UBdW3as7T…0YYWuQ1iZhvtjAfx+A==",
			"signature":"MIAGCSqGSIb3DQEHAqCA…3gAtcDwfdZIAAAAAAAA=",
			"header":{
				"publicKeyHash":"i4BsP3h7AdaM3DU30UA2pucLcPYT1J9bAj3gi8eAOzw=",
				"ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYI…OyHpyVnRod+CpBTMxQ==",
				"transactionId":"a9bf8e71ca58173d42af5f24b57ce047528fb285759b296c12f3d8f2e5926644"
			},
			"version":"EC_v1"
		},
		"paymentMethod":{
			"displayName":"Visa 0492",
			"network":"Visa",
			"type":"debit"
		},
		"transactionIdentifier":"A9BF8E71CA58173D42AF5F24B57CE047528FB285759B296C12F3D8F2E5926644"
	}
}
				
			

Los campos destacados en formato hexadecimal se tienen que incluir en el campo DS_XPAYDATA, junto al resto de campos de la petición al TPV Virtual.

A continuación tienes un ejemplo:

				
					<DATOSENTRADA>
<DS_MERCHANT_AMOUNT>120</DS_MERCHANT_AMOUNT>
<DS_MERCHANT_ORDER>813734</DS_MERCHANT_ORDER>
<DS_MERCHANT_MERCHANTCODE>999008881</DS_MERCHANT_MERCHANTCODE>
<DS_MERCHANT_CURRENCY>978</DS_MERCHANT_CURRENCY>
<DS_MERCHANT_TRANSACTIONTYPE>0</DS_MERCHANT_TRANSACTIONTYPE>
<DS_MERCHANT_TERMINAL>99</DS_MERCHANT_TERMINAL>
<DS_XPAYDATA>7B2276657273696F6E223A2245435F763122...</DS_XPAYDATA>
<DS_XPAYTYPE>Apple</DS_XPAYTYPE>
<DS_XPAYORIGEN>WEB</DS_XPAYORIGEN>
</DATOSENTRADA>
				
			

Envío de datos descifrados en comercio

Esta es una funcionalidad avanzada. Puede tener implicaciones en el cumplimiento de la normativa PCI-DSS. 

En esta operativa, tu comercio es el encargado de desencriptar los datos enviados por Apple, obteniendo la información necesaria y enviando estos datos desencriptados. 

Tienes más información sobre los datos enviados por Apple en la documentación de Apple. 

La información que se desencripta de Apple son los siguientes parámetros: 

Parámetro Apple Formato Relación TPV VirtualDescripciónEjemplo
applicationPrimaryAccountNumberAlfanuméricotokenNúmero de cuenta específico del dispositivo de la tarjeta que realiza la transacción.111111111111111
applicationExpirationDateAAMMDDexpirationDateFecha de caducidad de la tarjeta. Viene en formato AAMMDD, pero en envío de la fecha al TPV Virtual sólo usaremos AAMM. 301231
onlinePatmentCryptogramAlfanuméricocryptogramCriptograma de pago en línea, según lo definido por el estándar 3DS.111111111111111111111111
eciIndicatorNuméricoeciIndIndicador ECI, según lo definido por el estándar 3DS.05
  • El parámetro DS_XPAYDECODEDDATA contiene un JSON con los siguientes parámetros. Son los parámetros decodificados que has recibido de Apple. Es importante mandarlos sin modificar, tal cual los recibes de Apple. La relación con los parámetros de Apple está en la columna «Relación parámetros Apple»:
ParámetroFormatoRelación parámetros AppleDescripciónEjemplo
expirationDate4 dígitos
AAMM
applicationExpirationDateFecha de caducidad de la tarjeta AAMM. 3012
token16 a 19 dígitos
Numérico
applicationPrimaryAccountNumberReferencia del campo PAN de la tarjeta. 5200828282828210
cryptogram28 caracteres máximo
Alfanumérico
onlinePaymentCriptogramReferencia del criptograma.AgAAAAAABk4DWZ4C28yUQAAAAAA=
eciInd2 dígitos
Numérico
eciIndicatorReferencia al eciIndicator.05

Estos parámetros se incluyen en la petición de pago, dentro de DS_XPAYDECODEDDATA y junto al resto de parámetros.

  • Añade los parámetros propios de Apple Pay, en este caso añade DS_XPAYDECODEDDATA.
ParámetroFormatoRequerido/OpcionalDescripciónEjemplo
DS_MERCHANT_MERCHANTCODE9 caracteres
Numérico
RequeridoCódigo FUC o número de comercio. No cambia entre entornos.110034987
DS_MERCHANT_TERMINAL3 caracteres
Numérico
RequeridoNúmero de terminal de tu comercio. Puede cambiar entre entornos.99
DS_MERCHANT_AMOUNT12 caracteres
Numérico
RequeridoImporte de la operación. Los últimos 2 dígitos corresponden a los decimales. Por ejemplo, para una operación de 10,50€, se envía 1050.1050
DS_MERCHANT_CURRENCY4 caracteres
Numérico
RequeridoCódigo ISO 4217 de la divisa utilizada en la transacción. Ver códigos ISO divisas.978
DS_MERCHANT_ORDER12 caracteres
Alfanumérico
* (caracteres ASCII: del 48 al 57, del 65 al 90 y del 97 al 122)
RequeridoCódigo de pedido. No se puede repetir un código de pedido hasta pasados 6 meses.

Recomendamos que los 4 primeros dígitos sean numéricos, para evitar problemas en la liquidación.

*Sólo se permiten caracteres ASCII:
– Dígitos (0–9): ASCII 48 a 57.
Letras mayúsculas (A–Z): ASCII 65 a 90.
– Letras minúsculas (a–z): ASCII 97 a 122.
– No se permiten espacios, símbolos ni acentos.
1234ABcd56EF
DS_MERCHANT_TRANSACTIONTYPEValores disponibles:
– 0: Autorización
– 1: Preautorización
RequeridoTipo de transacción. El número enviado indica el tipo de transacción.0
DS_XPAYORIGENValores disponibles:
– Google
– Apple
RequeridoOrigen de la petición. («Google» para Google Pay y «Apple» para Apple Pay)Apple
DS_XPAYTYPEValores disponibles:
– WEB
– InApp
RequeridoTipo de pago, depende de la integración que tengas. WEB
DS_XPAYDATA10000 caracteres máximo
Alfanumérico
Requerido* Campo en el que se incluyen los datos del enviados por Apple en el valor token formato Hexadecimal.

* Si se envía, NO se enviará «DS_XPAYDECODEDDATA».
7B2276657273696F6E223A767A6754F…
DS_XPAYDECODEDDATAJSONRequerido* JSON donde se envían los parámetros decodificados de Apple.

* Si se envía, NO se enviará «DS_XPAYDATA».
N/A

La petición a enviar al TPV Virtual quedaría como la del siguiente ejemplo: 

				
					{
    <DS_MERCHANT_AMOUNT></DS_MERCHANT_AMOUNT>
    <DS_MERCHANT_ORDER></DS_MERCHANT_ORDER>
    <DS_MERCHANT_MERCHANTCODE></DS_MERCHANT_MERCHANTCODE>
    <DS_MERCHANT_CURRENCY></DS_MERCHANT_CURRENCY>
    <DS_MERCHANT_TRANSACTIONTYPE></DS_MERCHANT_TRANSACTIONTYPE>
    <DS_MERCHANT_TERMINAL></DS_MERCHANT_TERMINAL>
    <DS_XPAYDECODEDDATA>
    	{
    		"cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=",
    		"eciInd": "05",
    		"expirationDate":"3012",
    		"token": "4111111111111111"
    	}
    </DS_XPAYDECODEDDATA>
    <DS_XPAYTYPE></DS_XPAYTYPE>
    <DS_XPAYORIGEN></DS_XPAYORIGEN>
}
				
			

Pagos tokenizados en Apple Pay

Con Apple Pay, puedes generar un token de la tarjeta del cliente para, posteriormente, usarlo en pagos recurrentes en operativas MIT (Pagos Iniciados por el Comercio).

¿Qué parámetros hay que incluir para tokenizar?

En la petición tienes que incluir una serie de parámetros para indicar que quieres tokenizar esa tarjeta, y el tipo de operaciones posteriores que vas a hacer:

  • "DS_MERCHANT_IDENTIFIER": "REQUIRED" // Indica que quieres guardar la tarjeta. En la notificación recibirás este mismo parámetro con el token de la tarjeta en formato alfanumérico.
  • "DS_MERCHANT_COF_INI": "S" // Indica si es la primera operación COF o no. «S» Sí, «N» No.
  • "DS_MERCHANT_COF_TYPE": "R" // Indica el tipo de operación COF. En este caso, se utiliza «R» (Recurrente).
  • Además de estos parámetros, tendrás que enviar los campos propios de las peticiones con Google Pay.

¿Qué parámetros guardo de la notificación?

				
					{
  "Ds_Date": "01%2F04%2F2025",
  "Ds_Hour": "12%3A01",
  "Ds_SecurePayment": "1",
  "Ds_Amount": "100",
  "Ds_Currency": "978",
  "Ds_Order": "78567431",
  "Ds_MerchantCode": "223108853",
  "Ds_Terminal": "200",
  "Ds_Response": "0000",
  "Ds_TransactionType": "0",
  "Ds_MerchantData": "",
  "Ds_AuthorisationCode": "T42671",
  "Ds_Card_Number": "524726******9976",
  "Ds_ExpiryDate": "3201",
  "Ds_Merchant_Identifier": "02267cb7f84d857df0be84541d0ed1aad44f2717",
  "Ds_ConsumerLanguage": "1",
  "Ds_Card_Country": "724",
  "Ds_Card_Typology": "CONSUMO",
  "Ds_Card_Brand": "2",
  "Ds_Merchant_Cof_Txnid": "232025091836877",
  "Ds_ProcessedPayMethod": "79"
}
				
			

En la notificación, tienes que guardar:

  • "Ds_Merchant_Identifier" // Contiene el token de la tarjeta en formato alfanumérico. Lo tendrás que enviar en futuras operaciones.
  • "Ds_Merchant_Cof_Txnid" // Contiene el identificador de la operación original, que tendrás que enviar en operaciones sucesivas.

Códigos de error

  • En la notificación recibes el parámetro DS_RESPONSE, que son unos dígitos que indican el resultado de la operación.
  • También puedes recibir el parámetro DS_ERRORCODE.

En el siguiente enlace tienes los códigos de error y denegaciones:

Códigos de error y denegaciones
Comparte este documento

ApplePay

Copiar el enlace

Clipboard Icon
Tabla de Contenidos

Productos

  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
  • Universal Pay
  • Addon 1 - XML API Integration

Ventas

Cuéntanos cómo es tu negocio para ofrecerte la mejor solución.

Contacta con un experto

Soporte técnico

¿Ya eres cliente y necesitas ayuda? Contacta con nosotros, estamos a tu disposición.

Ayuda

Socios

Trabajamos con los mejores partners de soluciones in-store y eCommerce. ¿Quieres unirte?

Únete a nosotros

© Comercia Global Payments

Política de privacidad
Ejercicio de Derechos
Información a Clientes
Canal de denuncia
Aviso Legal
Política de cookies
Pregúntale a la IA
Escribe tu pregunta. Por ejemplo: ¿Cómo creo un enlace de pago?
La SmartWiki puede omitir datos. Verifica la información o contacta con soporte.

SmartWiki, Impulsada por IA

API - Developers Docs
Gestionar el consentimiento de las cookies
Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar {vendor_count} proveedores Leer más sobre estos propósitos
Ver preferencias
{title} {title} {title}

Cyberpac

Consulta la documentación de Cyberpac. Aquí tienes las distintas secciones:

Canales

Módulos de integración

Integraciones a medida

Consulta la documentación de las distintas secciones de integraciones:

Comienza a integrar

undraw_add_to_cart_re_wrdo 1 (1) (1)

Plugins para CMS

Complementa la integración

SDKs

Métodos de pago

Herramientas

Addon Payments

Consulta la documentación de Addon Payments. Aquí tienes las distintas secciones:

Integraciones

Consultas frecuentes

Portal Backoffice

Pagos integrados en TPV

Crea una solución que te ayudará a automatizar procesos. Incluso, podrás agregar procesos de pago en terminales físicos.

Pago integrado con TPV Android

Pago integrado con Smartphone TPV

Fichas Técnicas TPVs

Addon Payments

Comercia Global Payments has several integration options so you can choose the most efficient one for you.

Integrations

Frequently Asked Questions

BackOffice Portal

Consult the documentation of the different integrations sections:​

Start integration

undraw_add_to_cart_re_wrdo 1 (1) (1)

CMS Plugins

Complement your integration

SDKs

Payment Methods

Tools