API – Developers Docs API – Developers Docs
  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
  • Inglés
API – Developers Docs API – Developers Docs
API – Developers Docs
  • Cyberpac
  • Addon Payments
  • Pagos integrados en TPV
  • Inglés

Addon Payments

  • Icono de carpeta cerrada Icono de apertura de carpetaIntegraciones
    • Empieza a integrar
      • Bienvenida para las integraciones en CMS
      • Introducción a las integraciones: Hosted, Host2Host y JavaScript
    • Plugins para CMS
      • PrestaShop
        • Instalación y configuración de PrestaShop
        • Errores frecuentes en la instalación y configuración de PrestaShop
        • Gestión de transacciones en PrestaShop
      • WooCommerce
        • Instalación y configuración de WooCommerce
        • Errores frecuentes en la instalación y configuración de WooCommerce
        • Gestión de transacciones en WooCommerce
      • Magento
        • Instalación y configuración de Magento
        • Errores frecuentes en la instalación y configuración de Magento
        • Gestión de transacciones en Magento
      • Salesforce
        • Salesforce Commerce Cloud
    • Tarjetas
      • Integración Hosted
      • Integración Host2Host
      • Integración JavaScript
      • PSD2 y 3DSv2
      • Certificación PCI DSS
    • Complementa tu integración
      • Funcionalidades adicionales
      • Gestión de las notificaciones
      • Complementa la integración JavaScript
      • Personalización de la experiencia de pago
      • Pase a Producción
      • Cifrado, firma y envío de la petición
      • Redirección del cliente
    • Métodos de pago
      • Apple Pay
      • PayByBank
      • Amex
      • PayPal
      • Worldpay
      • Bizum
      • PeX
      • Quix
    • Recursos
      • Glosario
      • Soluciones de pago
      • Códigos de respuesta
      • Códigos de países y estados
      • Códigos de divisa
      • Códigos y validaciones del tipo de documento identificativo
      • Tarjetas para pruebas
    • Herramientas
      • Cifrado y descifrado
      • Postman
      • SDKs
  • Icono de carpeta cerrada Icono de apertura de carpetaPortal BackOffice
    • Guía de uso de Pago por Enlace
    • Consulta de operaciones
    • Creación de usuarios
  • Icono de carpeta cerrada Icono de apertura de carpetaConsultas frecuentes

Integración Host2Host

Introducción

En esta sección se exponen los pasos a seguir para realizar la integración Host2Host (en adelante H2H). Esta integración consiste en el envío de peticiones directamente desde tu plataforma de comercio electrónico al endpoint dispuesto por Addon Payments (AP). En esta integración, el comercio debe crear su propio formulario/cajero. 

Para las peticiones de esta sección que impliquen el envío de datos de tarjeta desde tu plataforma, es responabilidad del comercio conocer los requerimientos de la certificación PCI DSS. 

Los parámetros, operativas y procedimientos pueden variar entre las soluciones de pago o servicios. En esta guía se indican los más comunes a la mayoría de soluciones de pago. Si necesitas otros casos de uso no dudes en ponerte en contacto con nuestro equipo de soporte.

Los siguientes enlaces te ayudarán durante tu integración:

  • Glosario, para familiarizarte con los conceptos que usaremos a lo largo de la documentación.
  • Postman, para que pruebas las operativas de esta integración.
  • SDKs, herramienta completa para integrar Addon Payments de forma rápida, flexible y sencilla.

Esperamos que esta guía te sirva de utilidad. 

Flujo de la transacción

A continuación, tienes un diagrama donde se detalla el funcionamiento de la integración Host2Host.

A modo de resumen, la integración H2H sigue este flujo:

  1. El cliente quiere realizar un pago.
  2. El comercio realiza una solicitud de H2H de pago directo. Los parámetros se cifran utilizando el algoritmo de encriptado de Addon Payments.
  3. Addon Payments procesa la solicitud, genera y valida la transacción de pago contra el adquirente o la plataforma de solución de pago.
  4. Addon Payments realiza el pago.
  5. Addon Payments recibe la respuesta del pago.
  6. Addon Payments se encarga de la respuesta de pago. Recuerda que, si es necesario, podría requerirse alguna redirección de cliente.
  7. Addon Payments devuelve la respuesta de pago al comercio.
  8. El comercio recibe la respuesta y devuelve al cliente a la página final del resultado.

Entornos y endpoints: Staging y Producción

Addon Payments cuenta con dos (2) entornos operativos independientes:

  • Entorno de Staging:
    • Es el primer entorno con el cual entrarás en contacto.
    • Tienes a tu disposición un listado de tarjetas para pruebas que permiten realizar transacciones simulando diferentes operativas, tipos de autenticación (frictionless, challenge) y resultados (autorizada, denegada).
    • Esto te permite comprobar la correcta gestión de las diferentes casuísticas por parte de tu integración.
    • Las tarjetas y cuentas reales no funcionan.
  • Entorno de Producción:
    • Es el entorno en el cual las transacciones tienen efectos contables.
    • Únicamente se puede transaccionar con tarjetas y cuentas reales y operativas.

Esta es una tabla con los endpoints o URLs de conexión donde enviar la petición según el entorno donde operes:

EntornoURL
Staginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay
Producciónhttps://checkout.addonpayments.com/EPGCheckout/rest/online/pay

Datos requeridos y opcionales Host2Host

Estos son los parámetros comunes para las distintas operativas de H2H en pagos con tarjeta: autorización, pre-autorización, validación de tarjeta, pago con token, alta plan de suscripción y pago de suscripciones.

Además, recomendamos que visites nuestra sección 3DSecure con el objetivo de añadir campos adicionales al proceso de pago. Estos datos opcionales enriquecen la solicitud de pago y pueden facilitar el proceso de autenticación.

La columna tipo indica si es requerido/obligatorio (R) u opcional (O):

CampoFormatoTipoDescripciónEjemplo
merchantIdNumérico entero
4~7 dígitos
REs el indicador de tu comercio en la plataforma de AP. Es facilitado por Soporte en el correo de bienvenida, es común para los dos entornos14983
productIdNumérico entero
6~11 dígitos
RIdentificador del producto creado en tu comercio en AP. Es facilitado en el correo de bienvenida.149830
paymentSolutionAlfanumérico
Máx. 45 caracteres
RNombre de la solución de pago por la cual debe procesarse la transacción. IMPORTANTE: Si quieres que se muestren todas las soluciones de pago que tengas disponibles, NO envíes este parámetro. creditcards
operationTypeAlfanumérico
Máx. 45 caracteres
REspecifica el tipo de operación a realizar. Valores admitidos:
– debit (por defecto): Transacción de pago. Es decir, el efectivo viaja desde la cuenta del cliente al comercio.
– credit: Transacción de ingreso en cuenta del cliente. Es decir, el efectivo viaja desde el comercio hasta la cuenta del cliente. Por ejemplo, en el pago de un premio. No confundir con las devoluciones. Estas tienen su propio tipo de transacción.
debit
merchantTransactionIdAlfanumérico
Máx. 45 caracteres
REs el identificador único de la transacción del comercio. Sirve para que tu plataforma enlace las notificaciones recibidas con el pedido del cliente.pedido_91684
amountNumérico decimal
0~1000000.00
RImporte de la transacción. Si el importe tiene decimales, el separador es un punto (.). No se puede incluir el separador en los millares127.5
currencyAlfabético
3 caracteres
ISO-4217.3
RDivisa de la transacciónEUR
countryAlfabético
2 caracteres
ISO 3166-1 alfa-2
RPaís desde el que se envía la transacciónES
customerIdAlfanumérico
Máx. 80 caracteres
RId. del cliente en tu plataforma de comercio electrónico.
– Para guardar la tarjeta del cliente, usa el parámetro «forceTokenRequest«, con valor «true» para guardar el token y «false» para no hacerlo.
A34623
cardNumberNumérico
Máximo 19 dígitos.
RPAN de la tarjeta. Debe superar el algoritmo Luhn Check.4907270002222227
expDateNumérico
4 dígitos
Formato MMAA, los meses son MM y AA el año.
RFecha de caducidad de la tarjeta.0623
cvnNumberNumérico
3 a 4 dígitos.
RCVC de la tarjeta.123
chNameAlfanumérico
Máx. 100 caracteres
RNombre completo del titular de la tarjeta.
Los nombres y apellidos se separan con espacios.
Soporta UTF-8.
Pablo Ferrer
statusURLAlfanumérico (caracteres permitidos en URL)
Máx. 2048 caracteres
RURL de tu plataforma de comercio electrónico donde AP enviará la notificación con el estado de la transacción. Si se envía en la petición, tendrá prioridad sobre la configurada en el Portal BackOffice de Addon Payments. Si no se envía en la petición, se redirigirá al cliente a la URL configurada en el módulo de administración.https://www.example.com/status
successURLAlfanumérico (caracteres permitidos en URL)
Máx. 2048 caracteres
RURL de tu plataforma a la que se redirecciona al cliente si la transacción es autorizada. Si se envía en la petición, tendrá prioridad sobre la configurada en el Portal BackOffice de Addon Payments. Si no se envía en la petición, se redirigirá al cliente a la URL configurada en el módulo de administración.https://www.example.com/success
errorURLAlfanumérico (caracteres permitidos en URL)
Máx. 2048 caracteres
RURL de tu plataforma a la que se redirecciona al cliente si la transacción es denegada. Si se envía en la petición, tendrá prioridad sobre la configurada en el Portal BackOffice de Addon Payments. Si no se envía en la petición, se redirigirá al cliente a la URL configurada en el módulo de administración.https://www.example.com/error
cancelURLAlfanumérico (caracteres permitidos en URL)
Máx. 2048 caracteres
RURL de tu plataforma a la que se redirecciona el cliente si cancela la transacción durante el proceso de pago. Si se envía en la petición, tendrá prioridad sobre la configurada en el Portal BackOffice de Addon Payments. Si no se envía en la petición, se redirigirá al cliente a la URL configurada en el módulo de administración.https://www.example.com/cancel
awaitingURLAlfanumérico (caracteres permitidos en URL)
Máx. 2048 caracteres
RURL de tu plataforma a la que se redirecciona el cliente si la transacción está pendiente de procesar. Si se envía en la petición, tendrá prioridad sobre la configurada en el Portal BackOffice de Addon Payments. Si no se envía en la petición, se redirigirá al cliente a la URL configurada en el módulo de administración.https://www.example.com/awaiting
customerEmailAlfanumérico
Máximo 100 caracteres
R*Dirección de correo electrónico del titular de la tarjeta.

Comercios europeos: requerido para SCA.
*Se debe enviar el customerEmail o telephone, sólo se requiere 1 de estos campos.
correo@ejemplo.com
telephoneAlfanumérico
Máximo 45 caracteres
R*Prefijo internacional + Número de teléfono del titular de la tarjeta. Puede ser el teléfono móvil, del trabajo o de casa.

Comercios europeos: requerido para SCA.
*Se debe enviar el customerEmail o telephone, sólo se requiere 1 de estos campos.
34600600600
forceTokenRequestBooleano
– true
– false
OIndica si guardar o no el token de la tarjeta del cliente. Si no quieres guardar la tarjeta, usa «false»false
rememberMeBooleano
– true
– false
OIndica si se guardan o no los datos de la tarjeta del cliente. «true» para guardar los datos y «false» para no hacerlo. false
languageCódigo ISO 639-1Oidioma para mostrar en la pasarela de pago al cliente. Actualmente, sólo está disponible en castellano (ES) y en inglés (EN).ES
referenceIdAlfanumérico
12 caracteres
OReferencia variable para comercios que necesiten de archivos de conciliación FB500.SM1258X795WW
merchantParamsClave1:Valor1;Clave2:Valor2;ClaveN:ValorN
Máx. 500 caracteres
OParámetros que se envían para modificar la configuración del comercio o el procesamiento de una trasacción.
Se reciben de vuelta dentro de la etiqueta
No admite caracteres especiales
nombre:pablo;apellido:ferrer;idcliente:12345
printReceiptBooleanoOMuestra al cliente final un recibo en el proceso de redirección tipo opcional.True
autoCaptureBooleanoOEstablece si la transacción será una autorización o pre autorización. En el último caso, requiere una captura o liberación posterior por parte del comercio.True
typeAlfanumérico:
MOTO
ECOM
OEstablece si la petición de pago es tipo comercio electrónico o MO/TO. Si no se incluye, es tipo comercio electrónico por defecto.ECOM
cityAlfanumérico
Máximo 100 caracteres
OCiudad del titular de la tarjeta.

Comercios europeos: Opcional para SCA
Barcelona
chCountry2 caracteres
ISO 3166-1 alfa-2
OCódigo ISO 3166-1 alfa-2 del país del titular de la tarjeta.

Comercios europeos: Opcional para SCA
ES
addressLine1Alfanumérico
Máximo 250 caracteres
OPrimera línea de la dirección del titular de la tarjeta

Comercios europeos: Opcional para SCA
Calle Romero 123
addressLine2Alfanumérico
Máximo 50 caracteres
OCódigo postal del titular de la tarjeta

Comercios europeos: Opcional para SCA
08001
stateAlfanumérico
Máximo 45 caracteres
OProvincia o estado del titular de la tarjeta

Comercios europeos: Opcional para SCA
Barcelona

Pago con tarjeta

Tu plataforma tiene que enviar varios parámetros y sus respectivos valores para poder generar una petición válida que enviar a AP. En cada solicitud y caso de uso tendrás una solicitud de ejemplo, una tabla con los parámetros obligatorios y opcionales y un ejemplo de respuesta. 

Dispones de un listado con los códigos de respuesta/error en esta página. 

Autorización 

A continuación facilitamos un ejemplo con los campos básicos para enviar peticiones desde tu plataforma de comercio electrónico. 

Además, recomendamos que visites nuestra sección 3DSecure con el objetivo de añadir campos adicionales al proceso de pago. Estos datos opcionales enriquecen la solicitud de pago y pueden facilitar el proceso de autenticación.

Petición

Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

Este es un ejemplo de petición de una autorización de pago con tarjeta, el primero como cadena y el segundo como cURL. Recuerda que la cadena debe pasar el proceso de cifrado.

				
					merchantId=12345&merchantTransactionId=00000001&amount=10
.00&currency=EUR&country=ES&customerId=000001&paymentSolution
=creditcards&statusURL=https://micomercio
.com/recepcion_notificacion.php&successURL
=https://micomercio.com/url-ok.php&errorURL
=https://micomercio.com/url-ko.php&cancelURL
=https://micomercio.com/url-cancelacion.php&chName=Nombre
+Apellido&cardNumber=4907270002222227&expDate=1234&cvnNumber=123
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
--form 'merchantId="12345"' \
--form 'encrypted="YhkE2nrG1vmWRxNnMxWtbqDHsi/+FQs2AfPJBBHwIYOG3JCagem6DSb+R+63D5+NT/FQzI0Agb69XWtT8WJ9qAdyNFHE6Hn+Hya57tJy2vABHzY718FIygsQXguzOX71j02MBW57Dh299/0sAvv6I9XFOxL7VnnLQsqr1YhPR+Zri9HZdlhZFMaXdKDWIoo0vyp5nKInCV2Gx3wpnmXsctM6/fV4fGEhKCnpIyLy8BT+GSx0f5TkdmwPAccU0m1OdFQy+c/w+ZxdLvB+MePPnAp6Q/ieTrW0tNFOz1Sz1xwJbHygF4CVBFJB5kZsJyQABpgj2hjbhYqMJ4PhjIH6unGEEgxMWjqX7VebSsmn/C1uzwvOFum7/Ykrwh2V1mcIldXBWTlwqIUmuR8ltCNLszWTXQKv+LKvVLjXZhKV4JUnubrfgP/SAoL1Sr5IpvfGKf0V8m7WUl6M5+LjrBTmZ9ZP2QFr2AZ3Dbn+bxcIVPaGGyg2kBBcOfx1ylrhg53nG2evwuAborzvFSQO3IslRCtBAuJVaSzRavzdNBtZXjzS2D5hF1TUlut+p3/9WUaInomL4o17lyYZds2eQ48hNGO8O8EmnDzTfveqZUASpII=”' \
--form 'integrityCheck="06c928531469eb314c609e9a565567afecae69e644ba0e8cc49c612b6bf35e83"'
				
			

Una vez enviado el POST a Addon Payments, recibirás la URL donde redireccionar al cliente en una primera respuesta en el campo «redirectionResponse»:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="2">
	<message>WorkFlow has finished successfully, for transaction Id: 7702702</message>
	<operations>
		<operation sorted-order="1">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Exemptions has been removed</message>
			<operationType>DEBIT</operationType>
			<service>TRA</service>
			<status>SUCCESS</status>
			<transactionId>7702702</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>3bf8a522_116e_41f6_b0a1_e0a512f5dbfd</uuid>
			</respCode>
		</operation>
		<operation sorted-order="2">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Starting 3DSecure 2.0 process.</message>
			<operationType>DEBIT</operationType>
			<optionalTransactionParams/>
			<originalTransactionId>7702702</originalTransactionId>
			<paymentDetails>
				<cardHolderName>Nombre Apellido</cardHolderName>
				<extraDetails>
					<entry>
						<key>threeDSMethodData</key>
						<value>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjFmMjc4OWQyLTJmYTYtNDNmMC04MzNhLTdmOGY2ZWYxNGFjOCIsICJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjogImh0dHBzOi8vY2hlY2tvdXQuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vRVBHQ2hlY2tvdXQvY2FsbGJhY2svZ2F0aGVyRGV2aWNlTm90aWZpY2F0aW9uL3BheXNvbC8zZHN2Mi8xMDAyNTQ3In0=</value>
					</entry>
					<entry>
						<key>threeDSv2Token</key>
						<value>1f2789d2-2fa6-43f0-833a-7f8f6ef14ac8</value>
					</entry>
				</extraDetails>
			</paymentDetails>
			<redirectionResponse>redirect:https://checkout.stg-eu-west3.epgint.com/EPGCheckout/rest/online/3dsv2/redirect?action=gatherdevice&amp;params=eyJ0aHJlZURTdjJUb2tlbiI6IjFmMjc4OWQyLTJmYTYtNDNmMC04MzNhLTdmOGY2ZWYxNGFjOCIsInRocmVlRFNNZXRob2RVcmwiOiJodHRwczovL21vY2stZHMuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vcHVibGljL21ldGhvZC1kYXRhLyIsInRocmVlRFNNZXRob2REYXRhIjoiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJakZtTWpjNE9XUXlMVEptWVRZdE5ETm1NQzA0TXpOaExUZG1PR1kyWldZeE5HRmpPQ0lzSUNKMGFISmxaVVJUVFdWMGFHOWtUbTkwYVdacFkyRjBhVzl1VlZKTUlqb2dJbWgwZEhCek9pOHZZMmhsWTJ0dmRYUXVjM1JuTFdWMUxYZGxjM1F6TG1Wd1oybHVkQzVqYjIwdlJWQkhRMmhsWTJ0dmRYUXZZMkZzYkdKaFkyc3ZaMkYwYUdWeVJHVjJhV05sVG05MGFXWnBZMkYwYVc5dUwzQmhlWE52YkM4elpITjJNaTh4TURBeU5UUTNJbjA9IiwiYnJhbmQiOiJWSVNBIiwicmVzdW1lQXV0aGVudGljYXRpb24iOiJodHRwczovL2NoZWNrb3V0LnN0Zy1ldS13ZXN0My5lcGdpbnQuY29tL0VQR0NoZWNrb3V0L3JldHVybnVybC9mcmljdGlvbmxlc3MvcGF5c29sLzNkc3YyLzEwMDI1NDc/dGhyZWVEU3YyVG9rZW49MWYyNzg5ZDItMmZhNi00M2YwLTgzM2EtN2Y4ZjZlZjE0YWM4IiwicmVuZGVyQ2FzaGllckxvY2F0aW9uIjoiaHR0cHM6Ly9lcGdqcy1yZW5kZXJjYXNoaWVyLXN0Zy5lYXN5cGF5bWVudGdhdGV3YXkuY29tIiwiY2hhbGxlbmdlV2luZG93c1NpemUiOiIwNSJ9</redirectionResponse>
			<service>3DSv2</service>
			<status>REDIRECTED</status>
			<transactionId>1002547</transactionId>
			<respCode>
				<code>8100</code>
				<message>Frictionless requires</message>
				<uuid>6da05aff_17e9_4565_bd1b_bba132bf2050</uuid>
			</respCode>
			<mpi>
				<acsEndProtocolVersion>2.2.0</acsEndProtocolVersion>
				<acsStartProtocolVersion>2.1.0</acsStartProtocolVersion>
				<dsEndProtocolVersion>2.2.0</dsEndProtocolVersion>
				<dsStartProtocolVersion>2.1.0</dsStartProtocolVersion>
				<threeDSMethodURL>https://mock-ds.stg-eu-west3.epgint.com/public/method-data/</threeDSMethodURL>
			</mpi>
		</operation>
	</operations>
	<status>SUCCESS</status>
	<workFlowResponse>
		<id>31380</id>
		<name>debit creditcards (TRA)</name>
		<version>0</version>
	</workFlowResponse>
</response>
				
			

Para conocer más sobre cuando redireccionar al cliente, visita la sección Redirección del cliente.

Parámetros de la solicitud de autorización

Los parámetros requeridos/obligatorios y opcionales se encuentran en esta tabla. 

Respuesta

Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

Este es un ejemplo de la respuesta de pago que se obtiene para una operación autorizada frictionless: 

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7702702</message>
	<operations>
		<operation sorted-order="1">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Invalid threeDSv2Token.</message>
			<operationType>DEBIT</operationType>
			<service>3DSv2</service>
			<status>ERROR3DS</status>
			<transactionId>7702702</transactionId>
			<respCode>
				<code>3015</code>
				<message>Frictionless request not received. Invalid token.</message>
				<uuid>1f83d761_1a9d_4445_a3db_403c24ed99fd</uuid>
			</respCode>
		</operation>
		<operation sorted-order="2">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>3dsv2 - processed</message>
			<operationType>DEBIT</operationType>
			<paymentDetails>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>SUCCESS3DS</status>
			<transactionId>7702702</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>28d943be_e311_4889_a810_dfa699c1d200</uuid>
			</respCode>
			<mpi>
				<acsTransID>aac563ad-8e2a-4139-916a-1999d489ccdb</acsTransID>
				<authMethod>01</authMethod>
				<authTimestamp>202310231538</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBB4OBmVFmgYFYFIGZAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<threeDSSessionData>MWYyNzg5ZDItMmZhNi00M2YwLTgzM2EtN2Y4ZjZlZjE0YWM4</threeDSSessionData>
				<threeDSv2Token>1f2789d2-2fa6-43f0-833a-7f8f6ef14ac8</threeDSv2Token>
			</mpi>
			<paymentCode>nsY1</paymentCode>
			<paymentMessage>Authenticated successfully</paymentMessage>
		</operation>
		<operation sorted-order="3">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<details>{"resultCode":"00000","resultDescription":"OK","values":{"rfTransactionCurrency":"EUR","rfRTS":"355534686 790190 836550 231023173838","rfContactlessLogo":"false","rfOperationType":"Settle","rfAuthMode":"On","rfDataEntryMode":"Manual","rfCardHolderVerificationMode":"No","rfFuc":"355534686","rfTerminalID":"00000500","rfProcessor":"Redsys","rfMerchantName":"Pruebas Addon 25","rfMerchantCity":"BARCELONA","rfMerchantPostalCode":"08014","rfMerchantAddress":"GRAN VIA DE LES CORTS CATALANE, 159 PLANTA 7","rfMaskedPan":"************2227","rfOperationDateTime":"23/10/23 17:38:38","rfTerminalOperationNumber":"1136","rfAuthNumber":"869421","rfTransactionAmountCurrency":"10,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1136","posTransactionToken":"{\"pucIdMsg\":\"1200\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000001000\",\"pucP11TransactionNumber\":\"836550\",\"pucP12LocalDateTime\":\"231023173838\",\"pucP22ServicePointData\":\"1U00506K3000\",\"pucP38AuthNumber\":\"869421\",\"pucP39ActionCode\":\"000\",\"pucP53SecurityControlInfo\":\"0102000001000000\",\"pinpadId\":\"1440\",\"pinpadAcquirerId\":\"00000500\",\"pinpadManufacturer\":null,\"pinpadModel\":null,\"pinpadSerialNumber\":null,\"pinpadSoftwareName\":null,\"pinpadSoftwareVersion\":null,\"pinpadKernelEmv\":null,\"pinpadVccStrip\":null,\"pinpadVerPup\":null,\"pinpadPciStage\":null,\"pinpadVerEmvParams\":null,\"pinpadEmvType\":null,\"pinpadCapabilities\":null,\"pinpadLanguage\":null,\"transactionType\":\"O\",\"transactionContactless\":\"0\",\"transactionDcc\":\"0\",\"transactionDccComission\":null,\"transactionDccExchangeRate\":null,\"transactionDccMarkUp\":null,\"transactionDccEntity\":null,\"transactionDccBceExchangeRate\":null,\"transactionDccBceMarkUp\":null,\"transactionPanSequenceNumber\":null,\"transactionTerminalOperationNumber\":\"1136\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************2227\",\"cardAid\":null,\"cardDdfName\":null,\"cardApplicationLabel\":null,\"cardCypherData\":null}","OperationResult":"000"},"threeDsProtocolVersion":"2.2.0"}</details>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Success 'Settle' operation</message>
			<operationType>DEBIT</operationType>
			<optionalTransactionParams/>
			<paySolTransactionId>355534686 790190 836550 231023173838</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Nombre Apellido</cardHolderName>
				<cardNumber>490727****2227</cardNumber>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<cardType>VISA/CREDIT OR DEBIT</cardType>
				<expDate>1234</expDate>
				<extraDetails>
					<entry>
						<key>cardCategory</key>
						<value>Not Available</value>
					</entry>
					<entry>
						<key>rememberMe</key>
						<value>true</value>
					</entry>
				</extraDetails>
				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
				<issuerCountry>ES</issuerCountry>
			</paymentDetails>
			<paymentMethod>19900</paymentMethod>
			<paymentSolution>caixapucpuce</paymentSolution>
			<status>SUCCESS</status>
			<transactionId>7702702</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>3bf8a522_116e_41f6_b0a1_e0a512f5dbfd</uuid>
			</respCode>
			<authCode>869421</authCode>
			<mpi>
				<eci>05</eci>
			</mpi>
			<paymentCode>000</paymentCode>
			<paymentMessage>Operación finalizada con éxito</paymentMessage>
		</operation>
	</operations>
	<optionalTransactionParams/>
	<status>SUCCESS</status>
	<workFlowResponse>
		<id>31380</id>
		<name>debit creditcards (TRA)</name>
		<version>0</version>
	</workFlowResponse>
</response>
				
			

Pre-autorización

Las pre-autorizaciones son un método de pago en 2 fases. Se realiza el envío de la operación con el valor “false” en el parámetro “autoCapture”. La experiencia del cliente es la misma que en cualquier otro pago.

Después de que el cliente haya autorizado la transacción, el dinero correspondiente se aparta temporalmente de su cuenta bancaria o del saldo de su tarjeta. El comercio tiene un plazo máximo de 30 días para confirmar o rechazar esta pre-autorización. Sin embargo, no se asegura que el importe retenido se liquide después de 7 días. Es importante destacar que el comercio no recibirá los fondos de la pre-autorización en su cuenta hasta que esta sea confirmada.

Las pre-autorizaciones, si la transacción está autorizada, quedarán en status «Pending». Puedes liquidar o liberar manualmente estas transacciones desde el portal BackOffice de Addon Payments. También lo puedes hacer mediante una solicitud H2H para capturar o liberar el importe, como verás en esta guía.

Además, recomendamos que visites nuestra sección 3DSecure con el objetivo de añadir campos adicionales al proceso de pago. Estos datos opcionales enriquecen la solicitud de pago y pueden facilitar el proceso de autenticación.

Petición

Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

Este es un ejemplo de petición de una pre-autorización de pago con tarjeta, el primero como cadena y el segundo como cURL. Recuerda que la cadena debe pasar el proceso de cifrado.

				
					merchantId=12345&merchantTransactionId=00000001&amount=10
.00&currency=EUR&autoCapture=false&country=ES&customerId=000001&paymentSolution
=creditcards&statusURL=https://micomercio
.com/recepcion_notificacion.php&successURL
=https://micomercio.com/url-ok.php&errorURL
=https://micomercio.com/url-ko.php&cancelURL
=https://micomercio.com/url-cancelacion.php&chName=Nombre
+Apellido&cardNumber=4907270002222227&expDate=1234&cvnNumber=123
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: uuwmiVsCoUrMGHBmR81DTA==' \
--form 'merchantId="12345"' \
--form 'encrypted="uMtfmrDsqkyx+motjz8s8Z8Mx9i0JXLkf8+b/OpNWroJ998QmIZ7chx2itDGTviHHkp4gN7+sbNVjkCb/xEghJvvo2SMTSzgQdGYz/5ThYQL9GcezTXslpl+xGc5xz/Q0NkQ2aF0+Te/Zhqjf982zjcoNGsh5+AA5dfDlPZMEQ3FsJNuz+EaARB9E2pDu38r3e7nG+7iE7HrwcnGQp4WAPNrvRz2ySZlDr2hZ/5sYctDz7ySviVpi90xH1A90f7VDp0qgJRshHxkJAmIF4JLjk2gi6RfYNa/cuT9E3v6UppEdQVYIghSQwzcqXGLsWynNtRET9yr7owgdWDZvXprsLURTZfBtHk5s0i/KZ8E3Zkd2DG5gQwLbQ+2J3VAyY+wcbJ9imN5z8LXVQreXNNuQ3zFrwE4gFear27R6HYpewLUcpo2SUppO9sbg2rHXm6LazYjZAYbdt61fHXLwP/+iopRuqk5xe20P2/fUQxn1d1tHFKyhsKmIGNQ1N9+A8zd/UZfItlJzF9KajVfcog2CO8msCiR2/96jts0pg/WD1czDC5pxcOjh/T3dxP3w04DHE+cZNMXXQ/vLvEW34/AEo2qdGO17np5jVNVo4TlaUCd1UpYoyEbhSs7xtycqe3o1iKdTC66xV337Hdl5uMz+rsFPoLbA19EPb+uaH4KzF6Ugx1S0L2XCThNEu4mk3LNL7cXD5lmJaWa4o7nOcaHSA/1zAMv4Z13iRPBprwRSRUM95pxvQr0Roov/im4LcEheARlyIsetaH0xZUWefDz5L6yEiDuliICnMA3WNBiP4krJnnUnuceD8QsKybxlGrvbRYUoNUGXMiqDH7oOQVtOBoVvSZh6Vq0d69Q+3ZM5QRIZYx/jlPcl7zrjahKp3LyogxZrnI7wgnw7uTFkIiX687kCGI74rVJvn+iTZHUTQo=”' \
--form 'integrityCheck="5e8be549819126a4b771896775493f1e511946dfe6e0763a88f2cecbc955599c"'
				
			

Una vez enviado el POST a Addon Payments, recibirás la URL donde redireccionar al cliente:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="2">
  <message>WorkFlow has finished successfully, for transaction Id: 7707796</message>
  <operations>
    <operation sorted-order="1">
      <amount>10.00</amount>
      <currency>EUR</currency>
      <merchantTransactionId>00000001</merchantTransactionId>
      <message>Exemptions has been removed</message>
      <operationType>DEBIT</operationType>
      <service>TRA</service>
      <status>SUCCESS</status>
      <transactionId>7707796</transactionId>
      <respCode>
        <code>0000</code>
        <message>Successful</message>
        <uuid>dd04d570_bf82_4b9b_baf6_6ec123601521</uuid>
      </respCode>
    </operation>
    <operation sorted-order="2">
      <amount>10.00</amount>
      <currency>EUR</currency>
      <merchantTransactionId>00000001</merchantTransactionId>
      <message>Starting 3DSecure 2.0 process.</message>
      <operationType>DEBIT</operationType>
      <optionalTransactionParams/>
      <originalTransactionId>7707796</originalTransactionId>
      <paymentDetails>
        <cardHolderName>Nombre Apellido</cardHolderName>
        <extraDetails>
          <entry>
            <key>threeDSMethodData</key>
            <value>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjAzYmJkN2MzLTBiMDQtNDdhZC1hYjNjLTI1MWVjYTNlNTE1MCIsICJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjogImh0dHBzOi8vY2hlY2tvdXQuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vRVBHQ2hlY2tvdXQvY2FsbGJhY2svZ2F0aGVyRGV2aWNlTm90aWZpY2F0aW9uL3BheXNvbC8zZHN2Mi8xMDAzMjg4In0=</value>
          </entry>
          <entry>
            <key>threeDSv2Token</key>
            <value>03bbd7c3-0b04-47ad-ab3c-251eca3e5150</value>
          </entry>
        </extraDetails>
      </paymentDetails>
      <redirectionResponse>redirect:https://checkout.stg-eu-west3.epgint.com/EPGCheckout/rest/online/3dsv2/redirect?action=gatherdevice&params=eyJ0aHJlZURTdjJUb2tlbiI6IjAzYmJkN2MzLTBiMDQtNDdhZC1hYjNjLTI1MWVjYTNlNTE1MCIsInRocmVlRFNNZXRob2RVcmwiOiJodHRwczovL21vY2stZHMuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vcHVibGljL21ldGhvZC1kYXRhLyIsInRocmVlRFNNZXRob2REYXRhIjoiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJakF6WW1Ka04yTXpMVEJpTURRdE5EZGhaQzFoWWpOakxUSTFNV1ZqWVRObE5URTFNQ0lzSUNKMGFISmxaVVJUVFdWMGFHOWtUbTkwYVdacFkyRjBhVzl1VlZKTUlqb2dJbWgwZEhCek9pOHZZMmhsWTJ0dmRYUXVjM1JuTFdWMUxYZGxjM1F6TG1Wd1oybHVkQzVqYjIwdlJWQkhRMmhsWTJ0dmRYUXZZMkZzYkdKaFkyc3ZaMkYwYUdWeVJHVjJhV05sVG05MGFXWnBZMkYwYVc5dUwzQmhlWE52YkM4elpITjJNaTh4TURBek1qZzRJbjA9IiwiYnJhbmQiOiJWSVNBIiwicmVzdW1lQXV0aGVudGljYXRpb24iOiJodHRwczovL2NoZWNrb3V0LnN0Zy1ldS13ZXN0My5lcGdpbnQuY29tL0VQR0NoZWNrb3V0L3JldHVybnVybC9mcmljdGlvbmxlc3MvcGF5c29sLzNkc3YyLzEwMDMyODg/dGhyZWVEU3YyVG9rZW49MDNiYmQ3YzMtMGIwNC00N2FkLWFiM2MtMjUxZWNhM2U1MTUwIiwicmVuZGVyQ2FzaGllckxvY2F0aW9uIjoiaHR0cHM6Ly9lcGdqcy1yZW5kZXJjYXNoaWVyLXN0Zy5lYXN5cGF5bWVudGdhdGV3YXkuY29tIiwiY2hhbGxlbmdlV2luZG93c1NpemUiOiIwNSJ9</redirectionResponse>
      <service>3DSv2</service>
      <status>REDIRECTED</status>
      <transactionId>1003288</transactionId>
      <respCode>
        <code>8100</code>
        <message>Frictionless requires</message>
        <uuid>cd6aeb5d_8f32_46a6_b172_10a889928d71</uuid>
      </respCode>
      <mpi>
        <acsEndProtocolVersion>2.2.0</acsEndProtocolVersion>
        <acsStartProtocolVersion>2.1.0</acsStartProtocolVersion>
        <dsEndProtocolVersion>2.2.0</dsEndProtocolVersion>
        <dsStartProtocolVersion>2.1.0</dsStartProtocolVersion>
        <threeDSMethodURL>https://mock-ds.stg-eu-west3.epgint.com/public/method-data/</threeDSMethodURL>
      </mpi>
    </operation>
  </operations>
  <optionalTransactionParams/>
  <status>SUCCESS</status>
  <workFlowResponse>
    <id>31380</id>
    <name>debit creditcards (TRA)</name>
    <version>0</version>
  </workFlowResponse>
</response>
				
			
Para conocer más sobre cuando redireccionar al cliente, visita la sección Redirección del cliente.

Parámetros de la solicitud de pre-autorización

Los parámetros requeridos/obligatorios y opcionales se encuentran en esta esta tabla.

Además de esos parámetros, para una pre-autorización, debes incluir:

  • autoCapture: false

Respuesta

Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

En esta operativa, la respuesta de la transacción quedará como pendiente hasta que captures o liberes el importe:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7707796</message>
	<operations>
		<operation sorted-order="1">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Exemptions has been removed</message>
			<operationType>DEBIT</operationType>
			<service>TRA</service>
			<status>SUCCESS</status>
			<transactionId>7707796</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>dd04d570_bf82_4b9b_baf6_6ec123601521</uuid>
			</respCode>
		</operation>
		<operation sorted-order="2">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>3dsv2 - processed</message>
			<operationType>DEBIT</operationType>
			<paymentDetails>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>SUCCESS3DS</status>
			<transactionId>7707796</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>28d943be_e311_4889_a810_dfa699c1d200</uuid>
			</respCode>
			<mpi>
				<acsTransID>9a52d2e2-440f-430c-b763-d2374c9f7f93</acsTransID>
				<authMethod>01</authMethod>
				<authTimestamp>202310261114</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBB4OBmVFmgYFYFIGZAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<threeDSSessionData>MDNiYmQ3YzMtMGIwNC00N2FkLWFiM2MtMjUxZWNhM2U1MTUw</threeDSSessionData>
				<threeDSv2Token>03bbd7c3-0b04-47ad-ab3c-251eca3e5150</threeDSv2Token>
			</mpi>
			<paymentCode>nsY1</paymentCode>
			<paymentMessage>Authenticated successfully</paymentMessage>
		</operation>
		<operation sorted-order="3">
			<amount>10.00</amount>
			<currency>EUR</currency>
			<details>{"resultCode":"00000","resultDescription":"OK","values":{"rfTransactionCurrency":"EUR","rfRTS":"355534686 790190 840267 231026131437","rfContactlessLogo":"false","rfOperationType":"Auth","rfAuthMode":"On","rfDataEntryMode":"Manual","rfCardHolderVerificationMode":"No","rfFuc":"355534686","rfTerminalID":"00000500","rfProcessor":"Redsys","rfMerchantName":"Pruebas Addon 25","rfMerchantCity":"BARCELONA","rfMerchantPostalCode":"08014","rfMerchantAddress":"GRAN VIA DE LES CORTS CATALANE, 159 PLANTA 7","rfMaskedPan":"************2227","rfOperationDateTime":"26/10/23 13:14:37","rfTerminalOperationNumber":"1153","rfAuthNumber":"133193","rfTransactionAmountCurrency":"10,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1153","posTransactionToken":"{\"pucIdMsg\":\"1100\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000001000\",\"pucP11TransactionNumber\":\"840267\",\"pucP12LocalDateTime\":\"231026131437\",\"pucP22ServicePointData\":\"1U00506K3000\",\"pucP38AuthNumber\":\"133193\",\"pucP39ActionCode\":\"000\",\"pucP53SecurityControlInfo\":\"0102000001000000\",\"pinpadId\":\"1440\",\"pinpadAcquirerId\":\"00000500\",\"pinpadManufacturer\":null,\"pinpadModel\":null,\"pinpadSerialNumber\":null,\"pinpadSoftwareName\":null,\"pinpadSoftwareVersion\":null,\"pinpadKernelEmv\":null,\"pinpadVccStrip\":null,\"pinpadVerPup\":null,\"pinpadPciStage\":null,\"pinpadVerEmvParams\":null,\"pinpadEmvType\":null,\"pinpadCapabilities\":null,\"pinpadLanguage\":null,\"transactionType\":\"O\",\"transactionContactless\":\"0\",\"transactionDcc\":\"0\",\"transactionDccComission\":null,\"transactionDccExchangeRate\":null,\"transactionDccMarkUp\":null,\"transactionDccEntity\":null,\"transactionDccBceExchangeRate\":null,\"transactionDccBceMarkUp\":null,\"transactionPanSequenceNumber\":null,\"transactionTerminalOperationNumber\":\"1153\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************2227\",\"cardAid\":null,\"cardDdfName\":null,\"cardApplicationLabel\":null,\"cardCypherData\":null}","OperationResult":"000"},"threeDsProtocolVersion":"2.2.0"}</details>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Success 'Auth' operation</message>
			<operationType>DEBIT</operationType>
			<optionalTransactionParams/>
			<paySolTransactionId>355534686 790190 840267 231026131437</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Nombre Apellido</cardHolderName>
				<cardNumber>490727****2227</cardNumber>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<cardType>VISA/CREDIT OR DEBIT</cardType>
				<expDate>1234</expDate>
				<extraDetails>
					<entry>
						<key>cardCategory</key>
						<value>Not Available</value>
					</entry>
					<entry>
						<key>rememberMe</key>
						<value>true</value>
					</entry>
				</extraDetails>
				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
				<issuerCountry>ES</issuerCountry>
			</paymentDetails>
			<paymentMethod>19900</paymentMethod>
			<paymentSolution>caixapucpuce</paymentSolution>
			<status>PENDING</status>
			<transactionId>7707796</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>3bf8a522_116e_41f6_b0a1_e0a512f5dbfd</uuid>
			</respCode>
			<authCode>133193</authCode>
			<mpi>
				<eci>05</eci>
			</mpi>
			<paymentCode>000</paymentCode>
			<paymentMessage>Operación finalizada con éxito</paymentMessage>
		</operation>
	</operations>
	<optionalTransactionParams/>
	<status>SUCCESS</status>
	<workFlowResponse>
		<id>31380</id>
		<name>debit creditcards (TRA)</name>
		<version>0</version>
	</workFlowResponse>
</response>
				
			

Validación de tarjeta

La validación de tarjeta consiste en una operación con importe 0, que genera un token o referencia de la tarjeta del cliente para futuras operaciones. Esta operativa también se conoce como Open To Buy (OTB). 

Normalmente, estas validaciones de tarjeta con importe 0 tienen como objetivo guardar la tarjeta del cliente para futuros pagos, en ese caso recomendamos que adicionalmente se incluyan los parámetros:

  • amount: 0
  • paymentRecurringType: newCof
  • challengeInd: 04 (recomendable para forzar la SCA de la transacción y evitar denegaciones del emisor en peticiones posteriores)

Esta operativa valida que la tarjeta está operativa en el momento de la consulta, por lo que no garantiza que los pagos posteriores sean autorizados. 

Además, recomendamos que visites nuestra sección 3DSecure con el objetivo de añadir campos adicionales al proceso de pago. Estos datos opcionales enriquecen la solicitud de pago y pueden facilitar el proceso de autenticación.

Petición

Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

Este es un ejemplo de petición de una validación de tarjeta, el primero como cadena y el segundo como cURL. Recuerda que la cadena debe pasar el proceso de cifrado.

				
					merchantId=12345&merchantTransactionId=00000001&
currency=EUR&amount=0&country=ES&customerId=000001&paymentSolution
=creditcards&statusURL=https://micomercio
.com/recepcion_notificacion.php&successURL
=https://micomercio.com/url-ok.php&errorURL
=https://micomercio.com/url-ko.php&cancelURL
=https://micomercio.com/url-cancelacion.php&chName=Nombre
+Apellido&cardNumber=4907270002222227&expDate=1234&cvnNumber=123
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
--form 'merchantId="12345"' \
--form 'encrypted="W8T5PiYk2rdGsbUc2dKPhMTzg0irF5cxHuZSLmYrWBeAdixBcWr3xUZ6Mit0ssjEABUuufVU9DiNvxuSB3zCbID55NHZtHWyX+JXBScwPNUvC/OhUr9gNx6zN2tuFSdTsUH91h+Ql59+TxZEturOuIk5pVMqEr+EvEBUrP4zprZpbrhxRdIrdNugB9hHYjO+VJj+rMXpJE1LKroB6P5jfPhWf2mJeOsyJYgUt7mhNhmX9TjJZIhSPF1/Mg/16KQt1roTCTk58JuzOP7piS/b7GnuUcK4KpKhH3pXU6/1R5wtTBEzAfMLxMnM/PagMN312wNcW0BFgJLDHm9E4xqcP9JfpQRW7w1Ig17lBfUqUughqjhIIX0zYwvpa1TEBiTrcFofwoe/VTGqSMKfOOn9IMMYls0DOWAoXgOrA8Cc3D52D7IwgWcxKDSfS3I67daqLKs9uwoVbDMe388vfIPi/U0cUQ9ydqZlsf+QZoN58LExgMwASOH6v01VJuNc3gANIFLjjBT7gooTAAw/2QIuyKJ4Q33orEgv9dxfeyZP7KR9HLwbnLX+kuv3AiwQaRq2IAo/9uSAHM+Mx+7HUJVkwPPHzre4RrCoHpit59uFwSUtH57Ugx5Z4QRfAYHWGf+TOO2haJlDIFiJfjXwWmt1pGCkZE0Bhyzg++wOaYn2lglR++evprfwhNknPlzcWwXdMtQUv/JwcsX3MXv3NK7Zr16GI7e2bAopsRfs8r0ZruUtOuPiz1ByXmer+It3CwD2RHmFveVNBuOzbWsiqKnQTOVftgmevrBku/aErCDXSU7t5yR2IaO76MQJ28MmIz1c9GuXB9knklyFqNU2KG0LwElKodVGNzsOP4FxVQWz3Y718yobHIGNk31y6ZlomPte”' \
--form 'integrityCheck="0782b8f76631a4742171ac6f6b5afbb9939bf1d41aaf14a8561d62f2d5941080"'
				
			

Una vez enviado el POST a Addon Payments, recibirás la URL donde redireccionar al cliente:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="2">
  <message>WorkFlow has finished successfully, for transaction Id: 7709935</message>
  <operations>
    <operation sorted-order="1">
      <amount>0</amount>
      <currency>EUR</currency>
      <merchantTransactionId>00000001</merchantTransactionId>
      <message>Exemptions has been removed</message>
      <operationType>DEBIT</operationType>
      <service>TRA</service>
      <status>SUCCESS</status>
      <transactionId>7709935</transactionId>
      <respCode>
        <code>0000</code>
        <message>Successful</message>
        <uuid>f7fe9eea_910f_437b_99e9_40a8a9c981c0</uuid>
      </respCode>
    </operation>
    <operation sorted-order="2">
      <amount>0</amount>
      <currency>EUR</currency>
      <merchantTransactionId>00000001</merchantTransactionId>
      <message>Starting 3DSecure 2.0 process.</message>
      <operationType>DEBIT</operationType>
      <optionalTransactionParams/>
      <originalTransactionId>7709935</originalTransactionId>
      <paymentDetails>
        <cardHolderName>Nombre Apellido</cardHolderName>
        <extraDetails>
          <entry>
            <key>threeDSMethodData</key>
            <value>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjhmMzM2YzMyLWQ2NTYtNGYxYy1hNWZmLWQ4Y2QzNWEyZGE5OSIsICJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjogImh0dHBzOi8vY2hlY2tvdXQuc3RnLWV1LXdlc3QxLmVwZ2ludC5jb20vRVBHQ2hlY2tvdXQvY2FsbGJhY2svZ2F0aGVyRGV2aWNlTm90aWZpY2F0aW9uL3BheXNvbC8zZHN2Mi8xMDAzNzgzIn0=</value>
          </entry>
          <entry>
            <key>threeDSv2Token</key>
            <value>8f336c32-d656-4f1c-a5ff-d8cd35a2da99</value>
          </entry>
        </extraDetails>
      </paymentDetails>
      <redirectionResponse>redirect:https://checkout.stg-eu-west1.epgint.com/EPGCheckout/rest/online/3dsv2/redirect?action=gatherdevice&params=eyJ0aHJlZURTdjJUb2tlbiI6IjhmMzM2YzMyLWQ2NTYtNGYxYy1hNWZmLWQ4Y2QzNWEyZGE5OSIsInRocmVlRFNNZXRob2RVcmwiOiJodHRwczovL21vY2stZHMuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vcHVibGljL21ldGhvZC1kYXRhLyIsInRocmVlRFNNZXRob2REYXRhIjoiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJamhtTXpNMll6TXlMV1EyTlRZdE5HWXhZeTFoTldabUxXUTRZMlF6TldFeVpHRTVPU0lzSUNKMGFISmxaVVJUVFdWMGFHOWtUbTkwYVdacFkyRjBhVzl1VlZKTUlqb2dJbWgwZEhCek9pOHZZMmhsWTJ0dmRYUXVjM1JuTFdWMUxYZGxjM1F4TG1Wd1oybHVkQzVqYjIwdlJWQkhRMmhsWTJ0dmRYUXZZMkZzYkdKaFkyc3ZaMkYwYUdWeVJHVjJhV05sVG05MGFXWnBZMkYwYVc5dUwzQmhlWE52YkM4elpITjJNaTh4TURBek56Z3pJbjA9IiwiYnJhbmQiOiJWSVNBIiwicmVzdW1lQXV0aGVudGljYXRpb24iOiJodHRwczovL2NoZWNrb3V0LnN0Zy1ldS13ZXN0MS5lcGdpbnQuY29tL0VQR0NoZWNrb3V0L3JldHVybnVybC9mcmljdGlvbmxlc3MvcGF5c29sLzNkc3YyLzEwMDM3ODM/dGhyZWVEU3YyVG9rZW49OGYzMzZjMzItZDY1Ni00ZjFjLWE1ZmYtZDhjZDM1YTJkYTk5IiwicmVuZGVyQ2FzaGllckxvY2F0aW9uIjoiaHR0cHM6Ly9lcGdqcy1yZW5kZXJjYXNoaWVyLXN0Zy5lYXN5cGF5bWVudGdhdGV3YXkuY29tIiwiY2hhbGxlbmdlV2luZG93c1NpemUiOiIwNSJ9</redirectionResponse>
      <service>3DSv2</service>
      <status>REDIRECTED</status>
      <transactionId>1003783</transactionId>
      <respCode>
        <code>8100</code>
        <message>Frictionless requires</message>
        <uuid>2236f2ee_e667_4ac1_aecb_1b30f300eb98</uuid>
      </respCode>
      <mpi>
        <acsEndProtocolVersion>2.2.0</acsEndProtocolVersion>
        <acsStartProtocolVersion>2.1.0</acsStartProtocolVersion>
        <dsEndProtocolVersion>2.2.0</dsEndProtocolVersion>
        <dsStartProtocolVersion>2.1.0</dsStartProtocolVersion>
        <threeDSMethodURL>https://mock-ds.stg-eu-west3.epgint.com/public/method-data/</threeDSMethodURL>
      </mpi>
    </operation>
  </operations>
  <optionalTransactionParams/>
  <status>SUCCESS</status>
  <workFlowResponse>
    <id>31380</id>
    <name>debit creditcards (TRA)</name>
    <version>0</version>
  </workFlowResponse>
</response>
				
			

Para conocer más sobre cuando redireccionar al cliente, visita la sección Redirección del cliente.

Parámetros de la solicitud de validación de tarjeta

Los parámetros requeridos/obligatorios y opcionales se encuentran en esta esta tabla.

Además de esos parámetros, para una validación de tarjeta, debes incluir los de la siguiente tabla. El tipo indica si el elemento es Requerido (R) u Opcional (O):

CampoFormatoTipoDescripciónEjemplo
amountNumérico decimal
0~1000000.00
RImporte de la transacción. Si el importe tiene decimales, el separador es un punto (.). No se puede incluir el separador en los millares. En validaciones de tarjeta, ha de ser «0». 0
paymentRecurringType– newCof: Pagos puntuales, sin importe ni intervalo de tiempo fijo.
– newSubscription: Pago recurrente con importe e intervalo de tiempo definido.
– newInstallment: Pago aplazado limitado a una compra individual con importe e intervalo de tiempo definido.
OTipo de pago recurrente o sucesivo. Indica si la transacción C.O.F. es inicial o sucesiva, así como el motivo u objetivo del pago.newCof
challengeIndValores aceptados:
– 01: sin preferencia (valor por defecto si no se envía este parámetro)
– 02: evitar challenge
– 03: requerir challenge (preferencia del comercio)
– 04: requerir challenge (obligatorio)
– 05: evitar challenge (realizado análisis de riesgo de transacción)
– 06: evitar challenge (sólo en compartir datos)
– 07: evitar challenge (SCA ya realizada)
– 08: evitar challenge (utiliza exención de lista blanca)
– 09: evitar challenge (solicitar lista blanca)
OIndica la preferencia marcada por el comercio ante un proceso de autenticación. El emisor puede modificar la preferencia especificada en este campo.04

Respuesta

Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

En la zona resaltada de la respuesta tienes los detalles de la tarjeta que podrás usar en futuras operaciones, como el token. 

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7709935</message>
	<operations>
		<operation sorted-order="1">
			<amount>0</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Exemptions has been removed</message>
			<operationType>DEBIT</operationType>
			<service>TRA</service>
			<status>SUCCESS</status>
			<transactionId>7709935</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>f7fe9eea_910f_437b_99e9_40a8a9c981c0</uuid>
			</respCode>
		</operation>
		<operation sorted-order="2">
			<amount>0</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>3dsv2 - processed</message>
			<operationType>DEBIT</operationType>
			<paymentDetails>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>SUCCESS3DS</status>
			<transactionId>7709935</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>b3c84b0a_d79c_4792_a20a_7dfec8688a4f</uuid>
			</respCode>
			<mpi>
				<acsTransID>8555f4e2-83f7-4b52-8076-1e8abcfe4ac2</acsTransID>
				<authMethod>01</authMethod>
				<authTimestamp>202310271327</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBB4OBmVFmgYFYFIGZAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<threeDSSessionData>OGYzMzZjMzItZDY1Ni00ZjFjLWE1ZmYtZDhjZDM1YTJkYTk5</threeDSSessionData>
				<threeDSv2Token>8f336c32-d656-4f1c-a5ff-d8cd35a2da99</threeDSv2Token>
			</mpi>
			<paymentCode>nsY1</paymentCode>
			<paymentMessage>Authenticated successfully</paymentMessage>
		</operation>
		<operation sorted-order="3">
			<amount>0.00</amount>
			<currency>EUR</currency>
			<details>{"resultCode":"00000","resultDescription":"OK","values":{"rfTransactionCurrency":"EUR","rfRTS":"355534686 790190 841678 231027152758","rfContactlessLogo":"false","rfOperationType":"Auth","rfAuthMode":"On","rfDataEntryMode":"Manual","rfCardHolderVerificationMode":"No","rfFuc":"355534686","rfTerminalID":"00000500","rfProcessor":"Redsys","rfMerchantName":"Pruebas Addon 25","rfMerchantCity":"BARCELONA","rfMerchantPostalCode":"08014","rfMerchantAddress":"GRAN VIA DE LES CORTS CATALANE, 159 PLANTA 7","rfMaskedPan":"************2227","rfOperationDateTime":"27/10/23 15:27:58","rfTerminalOperationNumber":"1189","rfAuthNumber":"516569","rfTransactionAmountCurrency":"0,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1189","posTransactionToken":"{\"pucIdMsg\":\"1100\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000000000\",\"pucP11TransactionNumber\":\"841678\",\"pucP12LocalDateTime\":\"231027152758\",\"pucP22ServicePointData\":\"1U00506K3000\",\"pucP38AuthNumber\":\"516569\",\"pucP39ActionCode\":\"085\",\"pucP53SecurityControlInfo\":\"0102000001000000\",\"pinpadId\":\"1440\",\"pinpadAcquirerId\":\"00000500\",\"pinpadManufacturer\":null,\"pinpadModel\":null,\"pinpadSerialNumber\":null,\"pinpadSoftwareName\":null,\"pinpadSoftwareVersion\":null,\"pinpadKernelEmv\":null,\"pinpadVccStrip\":null,\"pinpadVerPup\":null,\"pinpadPciStage\":null,\"pinpadVerEmvParams\":null,\"pinpadEmvType\":null,\"pinpadCapabilities\":null,\"pinpadLanguage\":null,\"transactionType\":\"O\",\"transactionContactless\":\"0\",\"transactionDcc\":\"0\",\"transactionDccComission\":null,\"transactionDccExchangeRate\":null,\"transactionDccMarkUp\":null,\"transactionDccEntity\":null,\"transactionDccBceExchangeRate\":null,\"transactionDccBceMarkUp\":null,\"transactionPanSequenceNumber\":null,\"transactionTerminalOperationNumber\":\"1189\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************2227\",\"cardAid\":null,\"cardDdfName\":null,\"cardApplicationLabel\":null,\"cardCypherData\":null}","OperationResult":"000"},"threeDsProtocolVersion":"2.2.0"}</details>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Success 'Auth' operation</message>
			<operationType>DEBIT</operationType>
			<optionalTransactionParams/>
			<paySolTransactionId>355534686 790190 841678 231027152758</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Nombre Apellido</cardHolderName>
				<cardNumber>490727****2227</cardNumber>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<cardType>VISA/CREDIT OR DEBIT</cardType>
				<expDate>1234</expDate>
				<extraDetails>
					<entry>
						<key>cardCategory</key>
						<value>Not Available</value>
					</entry>
					<entry>
						<key>rememberMe</key>
						<value>true</value>
					</entry>
				</extraDetails>
				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
				<issuerCountry>ES</issuerCountry>
			</paymentDetails>
			<paymentMethod>19900</paymentMethod>
			<paymentSolution>caixapucpuce</paymentSolution>
			<status>SUCCESS</status>
			<transactionId>7709935</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>f7fe9eea_910f_437b_99e9_40a8a9c981c0</uuid>
			</respCode>
			<authCode>516569</authCode>
			<mpi>
				<eci>05</eci>
			</mpi>
			<paymentCode>000</paymentCode>
			<paymentMessage>Operación finalizada con éxito</paymentMessage>
		</operation>
	</operations>
	<optionalTransactionParams/>
	<status>SUCCESS</status>
	<workFlowResponse>
		<id>31380</id>
		<name>debit creditcards (TRA)</name>
		<version>0</version>
	</workFlowResponse>
</response>
				
			

Guardado de tarjetas

En Addon Payments puedes guardar tarjetas mediante la generación de referencias o tokenización. Esta operativa tiene varios casos de uso, que veremos a continuación.

Almacenamiento de tarjetas

El guardado de tarjetas se controla según los parámetros enviados en la petición. Si el cliente finaliza la transacción con éxito obtendrás el «cardNumberToken», que es el token de la tarjeta del cliente. Este campo está directamente relacionado con el «customerId» enviado en la solicitud de pago. Además, ten en cuenta que un «customerId» puede tener varios tokens de tarjetas asociados.

Casos de uso y parámetros 

Los casos de uso en el guardado de las tarjetas en H2H son los de la siguiente tabla. Recuerda que el guardado de la tarjeta es opcional en las operativas. Para guardar (o no) la tarjeta del cliente, incluye los siguientes parámetros además de los comunes:

Este comportamiento se corresponde a la versión 5 de la API. Si tu comercio utiliza una versión anterior, consulta con Soporte los distintos comportamientos del guardado de tarjetas.

ObjetivoParámetroTipoValorDescripción
Guardar la tarjetarememberMeBooleanotrueSi fuerzas el guardado del token recibirás el token de la tarjeta y esta se guardará para usos posteriores. Debes informar al cliente de que almacenarás información de su tarjeta.
forceTokenRequestBooleanotrue
No guardar la tarjetarememberMeBooleanofalseNo recibirás el token de la tarjeta y no se podrá usar para pagos posteriores.
forceTokenRequestBooleanofalse
No enviar ninguno de los parámetros anterioresN/AN/AN/ASi no se envía ninguno de los parámetros anteriores, se genera el token pero NO se guarda la tarjeta, por lo que no la podrás utilizar en pagos posteriores.

Petición

Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

Este es un ejemplo de petición para forzar el guardado de la tarjeta, el primero como cadena y el segundo como cURL. Recuerda que la cadena debe pasar el proceso de cifrado.

				
					merchantId=12345&merchantTransactionId=00000001&
currency=EUR&amount=0&forceTokenRequest=true&country=ES&customerId=000001&paymentSolution
=creditcards&statusURL=https://micomercio
.com/recepcion_notificacion.php&successURL
=https://micomercio.com/url-ok.php&errorURL
=https://micomercio.com/url-ko.php&cancelURL
=https://micomercio.com/url-cancelacion.php&chName=Nombre
+Apellido&cardNumber=4907270002222227&expDate=1234&cvnNumber=123
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
--form 'merchantId="12345"' \
--form 'encrypted="W8T5PiYk2rdGsbUc2dKPhMTzg0irF5cxHuZSLmYrWBeAdixBcWr3xUZ6Mit0ssjEABUuufVU9DiNvxuSB3zCbID55NHZtHWyX+JXBScwPNUvC/OhUr9gNx6zN2tuFSdTsUH91h+Ql59+TxZEturOuIk5pVMqEr+EvEBUrP4zprZpbrhxRdIrdNugB9hHYjO+VJj+rMXpJE1LKroB6P5jfPhWf2mJeOsyJYgUt7mhNhmX9TjJZIhSPF1/Mg/16KQt1roTCTk58JuzOP7piS/b7GnuUcK4KpKhH3pXU6/1R5wtTBEzAfMLxMnM/PagMN312wNcW0BFgJLDHm9E4xqcP9JfpQRW7w1Ig17lBfUqUughqjhIIX0zYwvpa1TEBiTrcFofwoe/VTGqSMKfOOn9IMMYls0DOWAoXgOrA8Cc3D52D7IwgWcxKDSfS3I67daqLKs9uwoVbDMe388vfIPi/U0cUQ9ydqZlsf+QZoN58LExgMwASOH6v01VJuNc3gANIFLjjBT7gooTAAw/2QIuyKJ4Q33orEgv9dxfeyZP7KR9HLwbnLX+kuv3AiwQaRq2IAo/9uSAHM+Mx+7HUJVkwPPHzre4RrCoHpit59uFwSUtH57Ugx5Z4QRfAYHWGf+TOO2haJlDIFiJfjXwWmt1pGCkZE0Bhyzg++wOaYn2lglR++evprfwhNknPlzcWwXdMtQUv/JwcsX3MXv3NK7Zr16GI7e2bAopsRfs8r0ZruUtOuPiz1ByXmer+It3CwD2RHmFveVNBuOzbWsiqKnQTOVftgmevrBku/aErCDXSU7t5yR2IaO76MQJ28MmIz1c9GuXB9knklyFqNU2KG0LwElKodVGNzsOP4FxVQWz3Y718yobHIGNk31y6ZlomPte”' \
--form 'integrityCheck="0782b8f76631a4742171ac6f6b5afbb9939bf1d41aaf14a8561d62f2d5941080"'
				
			

Para conocer más sobre cuando redireccionar al cliente, visita la sección Redirección del cliente.

Respuesta

Esta es una respuesta donde tras forzar el guardado del token, recibes el «cardNumberToken».

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7709935</message>
	<operations>
		<operation sorted-order="1">
			<amount>0</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Exemptions has been removed</message>
			<operationType>DEBIT</operationType>
			<service>TRA</service>
			<status>SUCCESS</status>
			<transactionId>7709935</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>f7fe9eea_910f_437b_99e9_40a8a9c981c0</uuid>
			</respCode>
		</operation>
		<operation sorted-order="2">
			<amount>0</amount>
			<currency>EUR</currency>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>3dsv2 - processed</message>
			<operationType>DEBIT</operationType>
			<paymentDetails>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>SUCCESS3DS</status>
			<transactionId>7709935</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>b3c84b0a_d79c_4792_a20a_7dfec8688a4f</uuid>
			</respCode>
			<mpi>
				<acsTransID>8555f4e2-83f7-4b52-8076-1e8abcfe4ac2</acsTransID>
				<authMethod>01</authMethod>
				<authTimestamp>202310271327</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBB4OBmVFmgYFYFIGZAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<threeDSSessionData>OGYzMzZjMzItZDY1Ni00ZjFjLWE1ZmYtZDhjZDM1YTJkYTk5</threeDSSessionData>
				<threeDSv2Token>8f336c32-d656-4f1c-a5ff-d8cd35a2da99</threeDSv2Token>
			</mpi>
			<paymentCode>nsY1</paymentCode>
			<paymentMessage>Authenticated successfully</paymentMessage>
		</operation>
		<operation sorted-order="3">
			<amount>0.00</amount>
			<currency>EUR</currency>
			<details>{"resultCode":"00000","resultDescription":"OK","values":{"rfTransactionCurrency":"EUR","rfRTS":"355534686 790190 841678 231027152758","rfContactlessLogo":"false","rfOperationType":"Auth","rfAuthMode":"On","rfDataEntryMode":"Manual","rfCardHolderVerificationMode":"No","rfFuc":"355534686","rfTerminalID":"00000500","rfProcessor":"Redsys","rfMerchantName":"Pruebas Addon 25","rfMerchantCity":"BARCELONA","rfMerchantPostalCode":"08014","rfMerchantAddress":"GRAN VIA DE LES CORTS CATALANE, 159 PLANTA 7","rfMaskedPan":"************2227","rfOperationDateTime":"27/10/23 15:27:58","rfTerminalOperationNumber":"1189","rfAuthNumber":"516569","rfTransactionAmountCurrency":"0,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1189","posTransactionToken":"{\"pucIdMsg\":\"1100\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000000000\",\"pucP11TransactionNumber\":\"841678\",\"pucP12LocalDateTime\":\"231027152758\",\"pucP22ServicePointData\":\"1U00506K3000\",\"pucP38AuthNumber\":\"516569\",\"pucP39ActionCode\":\"085\",\"pucP53SecurityControlInfo\":\"0102000001000000\",\"pinpadId\":\"1440\",\"pinpadAcquirerId\":\"00000500\",\"pinpadManufacturer\":null,\"pinpadModel\":null,\"pinpadSerialNumber\":null,\"pinpadSoftwareName\":null,\"pinpadSoftwareVersion\":null,\"pinpadKernelEmv\":null,\"pinpadVccStrip\":null,\"pinpadVerPup\":null,\"pinpadPciStage\":null,\"pinpadVerEmvParams\":null,\"pinpadEmvType\":null,\"pinpadCapabilities\":null,\"pinpadLanguage\":null,\"transactionType\":\"O\",\"transactionContactless\":\"0\",\"transactionDcc\":\"0\",\"transactionDccComission\":null,\"transactionDccExchangeRate\":null,\"transactionDccMarkUp\":null,\"transactionDccEntity\":null,\"transactionDccBceExchangeRate\":null,\"transactionDccBceMarkUp\":null,\"transactionPanSequenceNumber\":null,\"transactionTerminalOperationNumber\":\"1189\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************2227\",\"cardAid\":null,\"cardDdfName\":null,\"cardApplicationLabel\":null,\"cardCypherData\":null}","OperationResult":"000"},"threeDsProtocolVersion":"2.2.0"}</details>
			<merchantTransactionId>00000001</merchantTransactionId>
			<message>Success 'Auth' operation</message>
			<operationType>DEBIT</operationType>
			<optionalTransactionParams/>
			<paySolTransactionId>355534686 790190 841678 231027152758</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Nombre Apellido</cardHolderName>
				<cardNumber>490727****2227</cardNumber>
				<cardNumberToken>5774655584592227</cardNumberToken>
				<cardType>VISA/CREDIT OR DEBIT</cardType>
				<expDate>1234</expDate>
				<extraDetails>
					<entry>
						<key>cardCategory</key>
						<value>Not Available</value>
					</entry>
					<entry>
						<key>rememberMe</key>
						<value>true</value>
					</entry>
				</extraDetails>
				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
				<issuerCountry>ES</issuerCountry>
			</paymentDetails>
			<paymentMethod>19900</paymentMethod>
			<paymentSolution>caixapucpuce</paymentSolution>
			<status>SUCCESS</status>
			<transactionId>7709935</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>f7fe9eea_910f_437b_99e9_40a8a9c981c0</uuid>
			</respCode>
			<authCode>516569</authCode>
			<mpi>
				<eci>05</eci>
			</mpi>
			<paymentCode>000</paymentCode>
			<paymentMessage>Operación finalizada con éxito</paymentMessage>
		</operation>
	</operations>
	<optionalTransactionParams/>
	<status>SUCCESS</status>
	<workFlowResponse>
		<id>31380</id>
		<name>debit creditcards (TRA)</name>
		<version>0</version>
	</workFlowResponse>
</response>
				
			

Pago con token

Si has guardado el token o referencia de la tarjeta de un cliente, puedes emplearlo para realizar pagos. Este valor se recibe en el parámetro «cardNumberToken», y requiere una operación previa donde el cliente haya dado los datos de su tarjeta. 

Petición

Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

Este es un ejemplo de petición para realizar un pago con token, el primero como cadena y el segundo como cURL. Recuerda que la cadena debe pasar el proceso de cifrado.

				
					merchantId=12345&merchantTransactionId=00000001&amount=10&currency
=EUR&country=ES&customerId=000001&paymentSolution
=creditcards&statusURL=https://micomercio
.com/recepcion_notificacion.php&successURL
=https://micomercio.com/url-ok.php&statusURL
=https://micomercio.com/url-ko.php&successURL
=https://micomercio.com/url-cancelacion.php&cardNumberToken
=4535954006730084
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
--form 'merchantId="12345"' \
--form 'encrypted="yWcQVYxrmggTzEaW3NLVBxR2U4RwC0yYFKvJ/tmc8SoRIfgGfYvNx2EXArSnL7agHbhgAVNrXr/5JmZKxLjXbmolMnygRlLojzF5NJW18n7imVHCgLHk2Ry/NNwo0LwMfhI1kiho6bR5MkRCSAXxxyqllQB/g4hOCgFIPy9njXcwvmLC5p4tQCxT9Rn/hhBOxQvsEKTu7ZCeTDfltUMXoLvDtHVWRTWVfrsjiGvO9swdJHjOryawg7zkRlmfKLF/hf+K+hxPonnBMRZPZRnXABN7AjNZjnNFLP6QOBAS92YUSbUizVPh5hKMHA0838tI7PM5irJzieZIiwI/LeFqwEMbmqiRPseGWrBzl73tFiCso9YRTql+PLq89NVTW2EjTSeklbEd2FrxgiJ0TfL81hc/ntx6hQjK0BEmF7XUtEbMTQiIkWURPorIWUx75/lKYjTQ4lk/QKN1QtUuIGiix4rbnp7JMkwTyI/GRzmjsJxW5FEQJl4wEEK9hjxHyrFuCNLoyZwAqbUfTIENywuLo+Oj1uRDndqSzg9Kv5PhKG2ZGMbp06JrSJSV6TFGecaiurtLHdqPx087B+Lvk0YeAfaER3/C80VJCxhFd3sRFVKkD+XpfvKrI0prUL/PysNPz71c5UVpIoMIJHHy2cUgKOxmYmNlctorpAwJslA/JqpepYrCXtqu5LSzaYld++cdYnrM+WXiDcH2t5OEcTcu1WwiR4ffL2md/JfsZYUfzbdmnC8CGhjgSbsgCHywlncm1vn3oaFHZjzlNk+ObV9pSfEsD50RsMLmmMMwrpY502f602pD64pUzoqwt8eoCdgC”' \
--form 'integrityCheck="a515c97d85da0b94a93b21ffb67804b96f7ac74c693266045f8435eec0c95c02"'
				
			

Una vez enviado el POST a Addon Payments, recibirás una notificación con la URL para redireccionar en el «redirectionResponse»:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="2">
  <message>WorkFlow has finished successfully, for transaction Id: 7709953</message>
  <operations>
    <operation sorted-order="1">
      <amount>10</amount>
      <currency>EUR</currency>
      <merchantTransactionId>00000001</merchantTransactionId>
      <message>Exemptions has been removed</message>
      <operationType>DEBIT</operationType>
      <service>TRA</service>
      <status>SUCCESS</status>
      <transactionId>7709953</transactionId>
      <respCode>
        <code>0000</code>
        <message>Successful</message>
        <uuid>cab5eec6_8afd_4385_be3c_a3b8c3e930bb</uuid>
      </respCode>
    </operation>
    <operation sorted-order="2">
      <amount>10</amount>
      <currency>EUR</currency>
      <merchantTransactionId>00000001</merchantTransactionId>
      <message>Starting 3DSecure 2.0 process.</message>
      <operationType>DEBIT</operationType>
      <optionalTransactionParams/>
      <originalTransactionId>7709953</originalTransactionId>
      <paymentDetails>
        <cardHolderName>Nombre Apellido</cardHolderName>
        <extraDetails>
          <entry>
            <key>threeDSMethodData</key>
            <value>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjZhNDk0MTg1LWJkNmMtNGYyNy1hMzhkLTQ2YWUxY2MzZTQzZiIsICJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjogImh0dHBzOi8vY2hlY2tvdXQuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vRVBHQ2hlY2tvdXQvY2FsbGJhY2svZ2F0aGVyRGV2aWNlTm90aWZpY2F0aW9uL3BheXNvbC8zZHN2Mi8xMDAzNzk4In0=</value>
          </entry>
          <entry>
            <key>threeDSv2Token</key>
            <value>6a494185-bd6c-4f27-a38d-46ae1cc3e43f</value>
          </entry>
        </extraDetails>
      </paymentDetails>
      <redirectionResponse>redirect:https://checkout.stg-eu-west3.epgint.com/EPGCheckout/rest/online/3dsv2/redirect?action=gatherdevice&params=eyJ0aHJlZURTdjJUb2tlbiI6IjZhNDk0MTg1LWJkNmMtNGYyNy1hMzhkLTQ2YWUxY2MzZTQzZiIsInRocmVlRFNNZXRob2RVcmwiOiJodHRwczovL21vY2stZHMuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vcHVibGljL21ldGhvZC1kYXRhLyIsInRocmVlRFNNZXRob2REYXRhIjoiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJalpoTkRrME1UZzFMV0prTm1NdE5HWXlOeTFoTXpoa0xUUTJZV1V4WTJNelpUUXpaaUlzSUNKMGFISmxaVVJUVFdWMGFHOWtUbTkwYVdacFkyRjBhVzl1VlZKTUlqb2dJbWgwZEhCek9pOHZZMmhsWTJ0dmRYUXVjM1JuTFdWMUxYZGxjM1F6TG1Wd1oybHVkQzVqYjIwdlJWQkhRMmhsWTJ0dmRYUXZZMkZzYkdKaFkyc3ZaMkYwYUdWeVJHVjJhV05sVG05MGFXWnBZMkYwYVc5dUwzQmhlWE52YkM4elpITjJNaTh4TURBek56azRJbjA9IiwiYnJhbmQiOiJ2aXNhIiwicmVzdW1lQXV0aGVudGljYXRpb24iOiJodHRwczovL2NoZWNrb3V0LnN0Zy1ldS13ZXN0My5lcGdpbnQuY29tL0VQR0NoZWNrb3V0L3JldHVybnVybC9mcmljdGlvbmxlc3MvcGF5c29sLzNkc3YyLzEwMDM3OTg/dGhyZWVEU3YyVG9rZW49NmE0OTQxODUtYmQ2Yy00ZjI3LWEzOGQtNDZhZTFjYzNlNDNmIiwicmVuZGVyQ2FzaGllckxvY2F0aW9uIjoiaHR0cHM6Ly9lcGdqcy1yZW5kZXJjYXNoaWVyLXN0Zy5lYXN5cGF5bWVudGdhdGV3YXkuY29tIiwiY2hhbGxlbmdlV2luZG93c1NpemUiOiIwNSJ9</redirectionResponse>
      <service>3DSv2</service>
      <status>REDIRECTED</status>
      <transactionId>1003798</transactionId>
      <respCode>
        <code>8100</code>
        <message>Frictionless requires</message>
        <uuid>7cdbbc74_ae26_434d_ba87_12a47e198d09</uuid>
      </respCode>
      <mpi>
        <acsEndProtocolVersion>2.2.0</acsEndProtocolVersion>
        <acsStartProtocolVersion>2.1.0</acsStartProtocolVersion>
        <dsEndProtocolVersion>2.2.0</dsEndProtocolVersion>
        <dsStartProtocolVersion>2.1.0</dsStartProtocolVersion>
        <threeDSMethodURL>https://mock-ds.stg-eu-west3.epgint.com/public/method-data/</threeDSMethodURL>
      </mpi>
    </operation>
  </operations>
  <optionalTransactionParams/>
  <status>SUCCESS</status>
  <workFlowResponse>
    <id>31380</id>
    <name>debit creditcards (TRA)</name>
    <version>0</version>
  </workFlowResponse>
</response>
				
			

Para conocer más sobre cuando redireccionar al cliente, visita la sección Redirección del cliente.

Parámetros de la solicitud de pago con token

Los parámetros requeridos/obligatorios y opcionales se encuentran en esta tabla. Al pagar con token, ya no tendrás que mandar los datos de la tarjeta (cardNumber, expDate, chName). Tendrás que enviar el cvnNumber únicamente en este caso:

  • Operaciones de pago con token iniciada por el cliente (C.I.T) con 3DSecure. 

Además de esos parámetros, debes incluir los de la siguiente tabla. El tipo indica si el elemento es Requerido (R) u Opcional (O):

CampoFormatoTipoDescripciónEjemplo
cardNumberTokenAlfanumérico
16~20 caracteres
RToken de Addon Payments del número de tarjeta. Los últimos 4
dígitos coinciden con el número de tarjeta original.
4535954006730084
cvnNumberNumérico
3 a 4 dígitos.
OCVC de la tarjeta. Requerido en operaciones de pago con token iniciadas por el cliente (C.I.T) con 3DSecure.123

Transacciones secundarias: captura, anulación y devolución

Las transacciones secundarias son las que se realizan sobre una transacción inicial para modificar su estado y generar un movimiento de fondos. Las transacciones secundarias sólo pueden realizarse sobre operaciones que previamente han sido autorizadas por el emisor. 

Las operaciones secundarias pueden realizarse por dos vías:

1. A través del Portal BackOffice de AP:

  • Puedes encontrar más información sobre cómo gestionar transacciones mediante el Portal de Addon Payments en la guía Consulta de operaciones en el Portal BackOffice.
  • Al finalizar una operación secundaria a través del panel BackOffice, AP enviará una notificación a tu plataforma con el tipo de operación y su importe a la URL de notificación indicada en «statusURL», en la petición de la transacción original. Puedes habilitar que tu plataforma de comercio electrónico gestione estas notificaciones y actualice el estado de las operaciones. 

2. Mediante el envío de una petición a un endpoint o URL de conexión a AP por integración H2H:

Esta es una tabla con los endpoints a los que enviar la petición según el tipo de operación secundaria que vayas a realizar y el entorno donde estés.

PeticiónEntornoURL
CapturaStaginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/capture
AnulaciónStaginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/void
DevoluciónStaginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/rebate
CapturaProducciónhttps://checkout.addonpayments.com/EPGCheckout/rest/online/capture
AnulaciónProducciónhttps://checkout.addonpayments.com/EPGCheckout/rest/online/void
DevoluciónProducciónhttps://checkout.addonpayments.com/EPGCheckout/rest/online/rebate

      Captura

      En Addon Payments puedes liquidar (capturar) el importe de forma manual. Esto te permite, entre otras cosas, retirar el importe de la cuenta del cliente tras el envío de la mercancía. En las transacciones autorizadas pendientes de liquidar se verá el estado “PENDING” en la notificación y se mostrarán con ese estado en el listado de transacciones del Portal BackOffice.

      Estos son algunos puntos a tener en cuenta sobre el pago en dos fases:

      • Recomendamos no superar el plazo de siete (7) días naturales entre ambas operaciones. Esto se debe a que el plazo máximo de liquidación lo fijan los emisores, y la autorización después de ese plazo no está garantizada. 
      • El importe liquidado (confirmado) es siempre el total de la transacción. No se permite un importe parcial.
      • Los pagos liquidados pueden ser devueltos de forma total o parcial a los clientes.

      Para proceder a la liquidación del importe, el comercio debe enviar una captura (liquidación) sobre la transacción inicial antes del plazo máximo, normalmente de siete (7) días.

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

      Tu plataforma de comercio electrónico envía la petición de captura generada a la URL establecida para las capturas (Cadena y cURL). Recuerda que la cadena debe pasar el proceso de cifrado.

      				
      					merchantId=12345&merchantTransactionId=27258897&paymentSolution=caixapucpuce&transactionId=7556056
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/capture' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: Z7VA6TpG9B84X9x9qqXoWQ==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="4xUYxJxLc/ABCyqJfwttTalkds3YeijsJe6MlTnC6mgmbm0aXKwhI7thwa70o6lLyjrUtW8fFNUWf/l3jIojR4H5nW54Pl+GxerG1/AjMFpHlacchB3+kfkZzko42dQKk7MopAALi6SAFbl1Uq//qsESz8fV07ED7IvRQwlXREZDFtxQn2m9eyPr5zrJczILhRx27p3lqFQ61Sqlq0nCN+3sgJmuPUMKRqlXhYqf+vErv+fBaZMPV/8iKgERJLpIjPn+HZSLpc+q5VBcD4b+rGAgEKNi56Ni/MPCpKVWBUv8HFb06PngrLfiXcnFTfNeegg0XPkkmuGwR1l1y/k1tv9dPrdBkSIwE2OuHYvrkrn+NAOTHBxjGR4Ap93aZEwcPX9afkHkFOMi/5e3JdoxtFvSwOCe1ScEw2vRDhonE+5lV7jwOrqSMr+tfWVGPqzrYj/DZiQwCIUQJM6g5x+ocLTAURzz4IiJ26kBlQpYVnedKEVhevNJNZ88z6m50W2THtDR70pQq6qjF37NCfOeq/UDCg0RB/MPfYUJRUIsfPk=' \
      --form 'integrityCheck="1c256f5b834e5db6d5f453043a8a3830859b308f297cc2cf423064510c5c9b72"'
      				
      			

      Parámetros de la solicitud de captura

      Estos son los parámetros a enviar para una petición de captura. La columna tipo indica si el elemento es Requerido/Obligatorio (R) u Opcional (O).

      CampoFormatoTipoDescripciónEjemplo
      merchantIdNumérico entero
      4~7 dígitos
      REs el indicador de tu comercio en la plataforma de AP. Es facilitado por Soporte en el correo de bienvenida, es común para los dos entornos14983
      transactionIdNumérico entero
      Máx. 100 dígitos
      RIdentificador de la transacción original sobre la cual va a realizarse una operación secundaria, como captura, liberación o devolución.76543210
      paymentSolutionAlfanumérico
      Máx. 45 caracteres
      RNombre de la solución de pago por la cual ha sido procesada la transacción inicial. Se indica en la respuesta de la transacción original. caixapucpuce
      merchantTransactionIdMáx. 45 caracteres
      Página de códigos Latin-1 (ISO-8859-1)
      RIdentificador de la transacción en tu plataforma de comercio electrónico.
      Sirve para que tu plataforma enlace las notificaciones recibidas con el pedido del cliente.
      No puede repetirse entre transacciones.
      pedido_91684
      descriptionMáx. 1000 caracteres
      Página de códigos Latin-1 (ISO-8859-1)
      ODescripción de la transacción.
      Se guarda en los detalles de la transacción y se devuelve en la notificación.
      No afecta a la transacción, sirve para que puedas realizar una mejor identificación.
      Captura después de entregar producto

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

      Ejemplo de respuesta recibida a una petición de captura:

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <payfrex-response operation-size="1">
      	<operations>
      		<operation sorted-order="1">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<details>{"resultCode":"00000",………,"threeDsProtocolVersion":"2.2.0"}</details>
      			<merchantTransactionId>27258897</merchantTransactionId>
      			<message>Success 'Capture' operation with status 'SUCCESS'</message>
      			<operationType>DEBIT</operationType>
      			<optionalTransactionParams/>
      			<originalPayFrexTransactionId>7556056</originalPayFrexTransactionId>
      			<payFrexTransactionId>7556056</payFrexTransactionId>
      			<paySolTransactionId>355534686 790190 695475 230630005907</paySolTransactionId>
      			<paymentDetails>
      				<cardHolderName>Test</cardHolderName>
      				<cardNumber>490727****2227</cardNumber>
      				<cardNumberToken>8090783229362227</cardNumberToken>
      				<cardType>VISA/DEBIT OR CREDIT</cardType>
      				<expDate>1234</expDate>
      				<extraDetails>
      					<entry>
      						<key>cardCategory</key>
      						<value>Not Available</value>
      					</entry>
      				</extraDetails>
      				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
      				<issuerCountry>ES</issuerCountry>
      			</paymentDetails>
      			<paymentSolution>caixapucpuce</paymentSolution>
      			<status>SUCCESS</status>
      			<respCode>
      				<code>0000</code>
      				<message>Successful</message>
      				<uuid>c8228a36_2662_438a_89a6_cff879e8257e</uuid>
      			</respCode>
      			<authCode>008628</authCode>
      			<mpi>
      				<eci>05</eci>
      			</mpi>
      			<paymentCode>000</paymentCode>
      			<paymentMessage>Operación finalizada con éxito</paymentMessage>
      		</operation>
      	</operations>
      	<optionalTransactionParams/>
      </payfrex-response>
      				
      			

      Anulación

      En Addon Payments puedes anular (liberar) el importe de forma manual. Esto te permite, entre otras cosas, liberar importes retenidos como fianza. En las transacciones autorizadas pendientes de liberar se verá el estado “PENDING” en la notificación y se mostrarán con ese estado en el listado de transacciones del Portal BackOffice.

      Estos son algunos puntos a tener en cuenta sobre el pago en dos fases:

      • Recomendamos no superar el plazo de siete (7) días naturales entre ambas operaciones. Esto se debe a que el plazo máximo de liquidación lo fijan los emisores, y la autorización después de ese plazo no está garantizada. 
      • El importe liberado (anulado) es siempre el total de la transacción. No se permite un importe parcial.
      • Los pagos que hayan sido liberados no podrán ser liquidados.

      Para proceder a la liberación del importe, el comercio debe enviar una anulación (liberación) sobre la transacción inicial antes del plazo máximo, normalmente de siete (7) días. 

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

      Tu plataforma de comercio electrónico envía la petición de anulación generada a la URL establecida para las anulaciones (cadena y cURL). Recuerda que la cadena debe pasar el proceso de cifrado.

      				
      					merchantId=12345&merchantTransactionId=27258897&paymentSolution=caixapucpuce&transactionId=7556056
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/void' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: Z7VA6TpG9B84X9x9qqXoWQ==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="4xUYxJxLc/ABCyqJfwttTalkds3YeijsJe6MlTnC6mgmbm0aXKwhI7thwa70o6lLyjrUtW8fFNUWf/l3jIojR4H5nW54Pl+GxerG1/AjMFpHlacchB3+kfkZzko42dQKk7MopAALi6SAFbl1Uq//qsESz8fV07ED7IvRQwlXREZDFtxQn2m9eyPr5zrJczILhRx27p3lqFQ61Sqlq0nCN+3sgJmuPUMKRqlXhYqf+vErv+fBaZMPV/8iKgERJLpIjPn+HZSLpc+q5VBcD4b+rGAgEKNi56Ni/MPCpKVWBUv8HFb06PngrLfiXcnFTfNeegg0XPkkmuGwR1l1y/k1tv9dPrdBkSIwE2OuHYvrkrn+NAOTHBxjGR4Ap93aZEwcPX9afkHkFOMi/5e3JdoxtFvSwOCe1ScEw2vRDhonE+5lV7jwOrqSMr+tfWVGPqzrYj/DZiQwCIUQJM6g5x+ocLTAURzz4IiJ26kBlQpYVnedKEVhevNJNZ88z6m50W2THtDR70pQq6qjF37NCfOeq/UDCg0RB/MPfYUJRUIsfPk=' \
      --form 'integrityCheck="1c256f5b834e5db6d5f453043a8a3830859b308f297cc2cf423064510c5c9b72"'
      				
      			

      Parámetros de la solicitud de anulación

      Estos son los parámetros a enviar para una petición de anulación. La columna tipo indica si el elemento es Requerido/Obligatorio (R) u Opcional (O).

      CampoFormatoTipoDescripciónEjemplo
      merchantIdNumérico entero
      4~7 dígitos
      REs el indicador de tu comercio en la plataforma de AP. Es facilitado por Soporte en el correo de bienvenida, es común para los dos entornos14983
      transactionIdNumérico entero
      Máx. 100 dígitos
      RIdentificador de la transacción original sobre la cual va a realizarse una operación secundaria, como captura, liberación o devolución.76543210
      paymentSolutionAlfanumérico
      Máx. 45 caracteres
      RNombre de la solución de pago por la cual ha sido procesada la transacción inicial. Se indica en la respuesta de la transacción original. caixapucpuce
      merchantTransactionIdMáx. 45 caracteres
      Página de códigos Latin-1 (ISO-8859-1)
      RIdentificador de la transacción en tu plataforma de comercio electrónico.
      Sirve para que tu plataforma enlace las notificaciones recibidas con el pedido del cliente.
      No puede repetirse entre transacciones.
      pedido_91684
      descriptionMáx. 1000 caracteres
      Página de códigos Latin-1 (ISO-8859-1)
      ODescripción de la transacción.
      Se guarda en los detalles de la transacción y se devuelve en la notificación.
      No afecta a la transacción, sirve para que puedas realizar una mejor identificación.
      Captura después de entregar producto

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

      Ejemplo de respuesta recibida a una petición de anulación:

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <payfrex-response operation-size="1">
      	<operations>
      		<operation sorted-order="1">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<details>{"resultCode":"00000",………,"OperationResult":"000"}}</details>
      			<merchantTransactionId>61565574</merchantTransactionId>
      			<message>Success 'Void' operation with status 'SUCCESS'</message>
      			<operationType>VOID</operationType>
      			<optionalTransactionParams/>
      			<originalPayFrexTransactionId>7556059</originalPayFrexTransactionId>
      			<payFrexTransactionId>7556062</payFrexTransactionId>
      			<paySolTransactionId>355534686 790190 695513 230630014250</paySolTransactionId>
      			<paymentDetails>
      				<cardHolderName>Test</cardHolderName>
      				<cardNumber>490727****2227</cardNumber>
      				<cardNumberToken>2256407039282227</cardNumberToken>
      				<cardType>VISA/DEBIT OR CREDIT</cardType>
      				<expDate>1234</expDate>
      				<extraDetails>
      					<entry>
      						<key>cardCategory</key>
      						<value>Not Available</value>
      					</entry>
      					<entry>
      						<key>rememberMe</key>
      						<value>true</value>
      					</entry>
      				</extraDetails>
      				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
      				<issuerCountry>ES</issuerCountry>
      			</paymentDetails>
      			<paymentSolution>caixapucpuce</paymentSolution>
      			<status>SUCCESS</status>
      			<respCode>
      				<code>0000</code>
      				<message>Successful</message>
      				<uuid>d25443a8_b5d6_4e74_b6b9_a747364c7369</uuid>
      			</respCode>
      			<authCode>947278</authCode>
      			<paymentCode>000</paymentCode>
      			<paymentMessage>Operación finalizada con éxito</paymentMessage>
      		</operation>
      	</operations>
      </payfrex-response>
      				
      			

      Devoluciones

      Addon Payments permite realizar devoluciones, parciales o totales, del importe de una transacción. Para que la devolución sea posible, la transacción debe cumplir las siguientes condiciones:

      • La fecha de la transacción original debe ser inferior a un (1) año.
      • La suma de los importes de todas las devoluciones realizadas sobre la transacción original no puede exceder su importe.
      • Debe estar en estado autorizada y liquidada (SUCCESS).
      • No es posible realizar devoluciones sobre transacciones en los estados:
        • No liquidadas (PENDING).
        • Anuladas (VOIDED).
        • Denegadas (FAIL).
        • Erróneas (ERROR).

      Las devoluciones no pueden ser anuladas, por lo que debes estar seguro de que, tanto la transacción como el importe a devolver, son correctos.

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

      Tu plataforma de comercio electrónico envía la petición de devolución generada a la URL establecida para las devoluciones (cadena y cURL). Recuerda que la cadena debe pasar el proceso de cifrado. 

      				
      					merchantId=12345&merchantTransactionId=61565574&amount=5&paymentSolution=caixapucpuce&transactionId=7556056
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/rebate' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: Z7VA6TpG9B84X9x9qqXoWQ==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="4xUYxJxLc/ABCyqJfwttTalkds3YeijsJe6MlTnC6mgmbm0aXKwhI7thwa70o6lLyjrUtW8fFNUWf/l3jIojR4H5nW54Pl+GxerG1/AjMFpHlacchB3+kfkZzko42dQKk7MopAALi6SAFbl1Uq//qsESz8fV07ED7IvRQwlXREZDFtxQn2m9eyPr5zrJczILhRx27p3lqFQ61Sqlq0nCN+3sgJmuPUMKRqlXhYqf+vErv+fBaZMPV/8iKgERJLpIjPn+HZSLpc+q5VBcD4b+rGAgEKNi56Ni/MPCpKVWBUv8HFb06PngrLfiXcnFTfNeegg0XPkkmuGwR1l1y/k1tv9dPrdBkSIwE2OuHYvrkrn+NAOTHBxjGR4Ap93aZEwcPX9afkHkFOMi/5e3JdoxtFvSwOCe1ScEw2vRDhonE+5lV7jwOrqSMr+tfWVGPqzrYj/DZiQwCIUQJM6g5x+ocLTAURzz4IiJ26kBlQpYVnedKEVhevNJNZ88z6m50W2THtDR70pQq6qjF37NCfOeq/UDCg0RB/MPfYUJRUIsfPk=' \
      --form 'integrityCheck="1c256f5b834e5db6d5f453043a8a3830859b308f297cc2cf423064510c5c9b72"'
      				
      			

      Parámetros de la solicitud de devolución

      Estos son los parámetros a enviar para una petición de devolución. La columna tipo indica si el campo es requerido/obligatorio (R) u opcional (O).

      CampoFormatoTipoDescripciónEjemplo
      merchantIdNumérico entero
      4~7 dígitos
      REs el indicador de tu comercio en la plataforma de AP. Es facilitado por Soporte en el correo de bienvenida, es común para los dos entornos14983
      transactionIdNumérico entero
      Máx. 100 dígitos
      RIdentificador de la transacción original sobre la cual va a realizarse una operación secundaria, como captura, liberación o devolución.76543210
      paymentSolutionAlfanumérico
      Máx. 45 caracteres
      RNombre de la solución de pago por la cual ha sido procesada la transacción inicial. Se indica en la respuesta de la transacción original.caixapucpuce
      amountNumérico decimal
      0~1000000.00
      RImporte de la transacción.
      Si el importe contiene decimales, debe usar el punto (.) como separador
      No se puede incluir separador de millares.
      10.50
      merchantTransactionIdMáx. 45 caracteres
      Página de códigos Latin-1 (ISO-8859-1)
      RIdentificador de la transacción en tu plataforma de comercio electrónico.
      Sirve para que tu plataforma enlace las notificaciones recibidas con el pedido del cliente.
      No puede repetirse entre transacciones.
      pedido_91684
      descriptionMáx. 1000 caracteres
      Página de códigos Latin-1 (ISO-8859-1)
      ODescripción de la transacción.
      Se guarda en los detalles de la transacción y se devuelve en la notificación.
      No afecta a la transacción, sirve para que puedas realizar una mejor identificación.
      Devolución después de entregar producto

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

      Ejemplos de respuestas recibidas a una devolución total y a una parcial: 

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <payfrex-response operation-size="1">
      	<operations>
      		<operation sorted-order="1">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<details>{"resultCode":"00000",………,"OperationResult":"000"}}</details>
      			<merchantTransactionId>61565574</merchantTransactionId>
      			<message>Success 'Refund' operation with status 'SUCCESS'</message>
      			<operationType>REFUND</operationType>
      			<optionalTransactionParams/>
      			<originalPayFrexTransactionId>7556053</originalPayFrexTransactionId>
      			<payFrexTransactionId>7556071</payFrexTransactionId>
      			<paySolTransactionId>355534686 790190 695523 230630022641</paySolTransactionId>
      			<paymentDetails>
      				<cardHolderName>Test</cardHolderName>
      				<cardNumber>490727****2227</cardNumber>
      				<cardNumberToken>8090783229362227</cardNumberToken>
      				<cardType>VISA/DEBIT OR CREDIT</cardType>
      				<expDate>1234</expDate>
      				<extraDetails>
      					<entry>
      						<key>cardCategory</key>
      						<value>Not Available</value>
      					</entry>
      					<entry>
      						<key>rememberMe</key>
      						<value>true</value>
      					</entry>
      				</extraDetails>
      				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
      				<issuerCountry>ES</issuerCountry>
      			</paymentDetails>
      			<paymentSolution>caixapucpuce</paymentSolution>
      			<remainingAmount>0.00</remainingAmount>
      			<status>SUCCESS</status>
      			<respCode>
      				<code>0000</code>
      				<message>Successful</message>
      				<uuid>c8228a36_2662_438a_89a6_cff879e8257e</uuid>
      			</respCode>
      			<authCode>234791</authCode>
      			<paymentCode>000</paymentCode>
      			<paymentMessage>Operación finalizada con éxito</paymentMessage>
      		</operation>
      	</operations>
      	<status>SUCCESS</status>
      </payfrex-response>
      				
      			
      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <payfrex-response operation-size="1">
      	<operations>
      		<operation sorted-order="1">
      			<amount>5</amount>
      			<currency>EUR</currency>
      			<details>{"resultCode":"00000",………,"OperationResult":"000"}}</details>
      			<merchantTransactionId>61565574</merchantTransactionId>
      			<message>Success 'Rebate' operation with status 'SUCCESS'</message>
      			<operationType>REBATE</operationType>
      			<optionalTransactionParams/>
      			<originalPayFrexTransactionId>7556056</originalPayFrexTransactionId>
      			<payFrexTransactionId>7556065</payFrexTransactionId>
      			<paySolTransactionId>355534686 790190 695506 230630020702</paySolTransactionId>
      			<paymentDetails>
      				<cardHolderName>Test</cardHolderName>
      				<cardNumber>490727****2227</cardNumber>
      				<cardNumberToken>8090783229362227</cardNumberToken>
      				<cardType>VISA/DEBIT OR CREDIT</cardType>
      				<expDate>1234</expDate>
      				<extraDetails>
      					<entry>
      						<key>cardCategory</key>
      						<value>Not Available</value>
      					</entry>
      				</extraDetails>
      				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
      				<issuerCountry>ES</issuerCountry>
      			</paymentDetails>
      			<paymentSolution>caixapucpuce</paymentSolution>
      			<remainingAmount>5.00</remainingAmount>
      			<status>SUCCESS</status>
      			<respCode>
      				<code>0000</code>
      				<message>Successful</message>
      				<uuid>d25443a8_b5d6_4e74_b6b9_a747364c7369</uuid>
      			</respCode>
      			<authCode>082706</authCode>
      			<paymentCode>000</paymentCode>
      			<paymentMessage>Operación finalizada con éxito</paymentMessage>
      		</operation>
      	</operations>
      	<status>SUCCESS</status>
      </payfrex-response>
      
      				
      			

      Pagos recurrentes y sucesivos

      En esta sección, encontrarás cómo guardar la tarjeta del cliente con el objetivo de realizar pagos posteriores sin la interacción del cliente o C.I.T (Customer Initiated Transaction). También veremos cómo lanzar operaciones desde tu comercio para el pago de suscripciones, conocidas como M.I.T (Merchant Initiated Transaction).

      En el primer caso de uso, el cliente debe realizar un pago inicial autenticado con 3DS2 y SCA, que permitirá guardar los datos de su tarjeta y dar su consentimiento para pagos posteriores. Este tipo de transacción se denomina C.O.F (Credential On File).

      Alta plan de suscripción

      Mediante esta integración puedes dar de alta un plan de suscripción, permitiendo que el cliente guarde su tarjeta para pagos posteriores. En la petición, deberás incluir parámetros C.O.F y forzar SCA, para evitar futuras denegaciones del emisor. En la respuesta, recibirás el «subscriptionPlan«, que será el identificador para las operaciones posteriores y está directamente vinculado al «cardNumberToken» de la respuesta, y al «customerId» remitido por tu parte en la solicitud del pago. Todo esto lo veremos a continuación.

      En esta primera transacción, debes informar del tipo de transacciones que se emitirán posteriormente en función de tus necesidades. Aquí tienes una tabla con los parámetros para indicarlo, dentro de «paymentRecurringType«, y su función:

      Pago inicialPagos sucesivosDescripciónEjemplo
      newCofcofPagos puntuales, sin importe ni intervalo de tiempo fijo.Compra en la cual el cliente selecciona guardar la tarjeta para transacciones posteriores.
      newSubscriptionsubscriptionPago recurrente con importe e intervalo de tiempo definido.Cuotas o suscripciones.
      newInstallmentinstallmentPago aplazado limitado a una compra individual con importe e intervalo de tiempo definido.Compra a plazos

      Además, recomendamos que visites nuestra sección 3DSecure con el objetivo de añadir campos adicionales al proceso de pago. Estos datos opcionales enriquecen la solicitud de pago y pueden facilitar el proceso de autenticación.

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

      Este es un ejemplo de petición para dar de alta un plan de suscripción, el primero como cadena y el segundo como cURL. Recuerda que la cadena debe pasar el proceso de cifrado.

      				
      					merchantId=12345&merchantTransactionId=00000001&amount=10
      .00&currency=EUR&country=ES&customerId=000001&paymentSolution
      =creditcards&productId=123450001&operationType=DEBIT&statusURL
      =https://micomercio.com/recepcion_notificacion
      .php&successURL=https://micomercio.com/url-ok.php&errorURL
      =https://micomercio.com/url-ko.php&cancelURL
      =https://micomercio.com/url-cancelacion.php&chName=Nombre
      +Apellido&cardNumber=4012000000150084&expDate
      =1234&cvnNumber=123&challengeInd=04&paymentRecurringType
      =newSubscription
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="E0ltWj/qZLrQmhjo8nL+O8MMVrH3JtXjGdH5qKhR0VcPUohtRyAjwdaS8aOQSTDTRBSIaBnsJfZ33K3gvCywD3RErijYqggEDwceb9wdmXSxs9PNacdgD/nfxyYsgXX1SuKScFvczlMH9qgAJWrFF7HoKyxgoxkPXAXHEjTANNCNuJPKLDImVIpUPYUyHcdzha5d8FHoey7EJLMN3GycRLfrNGH2+AXfcwL66wMMPURbDsp6p30wFlPpM2VX+PE/CeLPm8lFwG/Q5M1OA4cPO+/+f8ASorKnuo+xa7yp/A1qJATluogVbNZKKOKjCPh+jBmTApoPgARDMpyVujeNHPGgnAoTJWbaO7HH8OBB47MSh4Ml9VHKUdAOVmsWU9/pzbOYD+YNPjnYjDLWZ3KDjq67Pwr6q2DrDt59BrQDlIWMVbv/L1QcODQFR8IaljFre43an0sOvGGpw0vp1Xt9koYIzJQAi1uaUVofNAgJOXbl2Z58wzQvtPiBBBXlrEA7xeRORsFvbvUzg8aNkVBxQFkzf4zxKM3JDvMwZL934VypLG87mj+gND0KwyeTKY1PVivi59lZGWoT0AAdPiwtg3g18U73GpQ+ASrxfQNHx8eP3onRPi2BphgAjxLQeqpJOkTSqbN7MvPHSaaSNQemjt9gvmz2IO6PPAwOAKmrc6R+kAWGS1FNZhGyGOm9I1DHIi5vrb60PCNH+SedYBe0TbQBcVpbHX9HY+u8Jszcp9X28KsLzOaS3bubqk1ki1MhETZymQbzIUOCnpHntB6y+PquHNtzz6klWE4Y7n3kgqoH4oXgWmrUMq8TiaNJ8H6hQeK+ftoOL86pVLpvufs7FdY7aXSV1hCBYCEm4RXF93is2+xDWEne0Y6donwwa12x6CZKaF9oP0+Au1LjqQnOc5MJZh16kESPKOvax6LQY4xS1bwLFcNFd22+0Ip+qBwNYNMQNJPevUFEFx2zNThiBY2zVgQIjhdrNbo7DTI2+4Ustb9g5MkYCZHLF1w4qwRw”' \
      --form 'integrityCheck="dfedf34c8a3636c1f4f2feddafa37122e6235211f69c0462f133ac5f180133fd"'
      				
      			

      Recibes una respuesta con el la URL donde redirigir al cliente para su autenticación, en el campo «redirectionResponse»:

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <response operation-size="2">
        <message>WorkFlow has finished successfully, for transaction Id: 7711753</message>
        <operations>
          <operation sorted-order="1">
            <amount>10.00</amount>
            <currency>EUR</currency>
            <merchantTransactionId>00000001</merchantTransactionId>
            <message>Exemptions has been removed</message>
            <operationType>DEBIT</operationType>
            <service>TRA</service>
            <status>SUCCESS</status>
            <transactionId>7711753</transactionId>
            <respCode>
              <code>0000</code>
              <message>Successful</message>
              <uuid>d6854b77_0909_4e2c_a83c_37778ace38a6</uuid>
            </respCode>
          </operation>
          <operation sorted-order="2">
            <amount>10.00</amount>
            <currency>EUR</currency>
            <merchantTransactionId>00000001</merchantTransactionId>
            <message>Starting 3DSecure 2.0 process.</message>
            <operationType>DEBIT</operationType>
            <optionalTransactionParams/>
            <originalTransactionId>7711753</originalTransactionId>
            <paymentDetails>
              <cardHolderName>Nombre Apellido</cardHolderName>
              <extraDetails>
                <entry>
                  <key>threeDSMethodData</key>
                  <value>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjUwMDNkZDlhLWQ2ZTYtNGM0YS05YzRhLTliNTI0ODhlMzlmOSIsICJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjogImh0dHBzOi8vY2hlY2tvdXQuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vRVBHQ2hlY2tvdXQvY2FsbGJhY2svZ2F0aGVyRGV2aWNlTm90aWZpY2F0aW9uL3BheXNvbC8zZHN2Mi8xMDA0MTI1In0=</value>
                </entry>
                <entry>
                  <key>threeDSv2Token</key>
                  <value>5003dd9a-d6e6-4c4a-9c4a-9b52488e39f9</value>
                </entry>
              </extraDetails>
            </paymentDetails>
            <redirectionResponse>redirect:https://checkout.stg-eu-west3.epgint.com/EPGCheckout/rest/online/3dsv2/redirect?action=gatherdevice&params=eyJ0aHJlZURTdjJUb2tlbiI6IjUwMDNkZDlhLWQ2ZTYtNGM0YS05YzRhLTliNTI0ODhlMzlmOSIsInRocmVlRFNNZXRob2RVcmwiOiJodHRwczovL21vY2stZHMuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vcHVibGljL21ldGhvZC1kYXRhLyIsInRocmVlRFNNZXRob2REYXRhIjoiZXlKMGFISmxaVVJUVTJWeWRtVnlWSEpoYm5OSlJDSTZJalV3TUROa1pEbGhMV1EyWlRZdE5HTTBZUzA1WXpSaExUbGlOVEkwT0RobE16bG1PU0lzSUNKMGFISmxaVVJUVFdWMGFHOWtUbTkwYVdacFkyRjBhVzl1VlZKTUlqb2dJbWgwZEhCek9pOHZZMmhsWTJ0dmRYUXVjM1JuTFdWMUxYZGxjM1F6TG1Wd1oybHVkQzVqYjIwdlJWQkhRMmhsWTJ0dmRYUXZZMkZzYkdKaFkyc3ZaMkYwYUdWeVJHVjJhV05sVG05MGFXWnBZMkYwYVc5dUwzQmhlWE52YkM4elpITjJNaTh4TURBME1USTFJbjA9IiwiYnJhbmQiOiJWSVNBIiwicmVzdW1lQXV0aGVudGljYXRpb24iOiJodHRwczovL2NoZWNrb3V0LnN0Zy1ldS13ZXN0My5lcGdpbnQuY29tL0VQR0NoZWNrb3V0L3JldHVybnVybC9mcmljdGlvbmxlc3MvcGF5c29sLzNkc3YyLzEwMDQxMjU/dGhyZWVEU3YyVG9rZW49NTAwM2RkOWEtZDZlNi00YzRhLTljNGEtOWI1MjQ4OGUzOWY5IiwicmVuZGVyQ2FzaGllckxvY2F0aW9uIjoiaHR0cHM6Ly9lcGdqcy1yZW5kZXJjYXNoaWVyLXN0Zy5lYXN5cGF5bWVudGdhdGV3YXkuY29tIiwiY2hhbGxlbmdlV2luZG93c1NpemUiOiIwNSJ9</redirectionResponse>
            <service>3DSv2</service>
            <status>REDIRECTED</status>
            <transactionId>1004125</transactionId>
            <respCode>
              <code>8100</code>
              <message>Frictionless requires</message>
              <uuid>7b43832c_34d9_456d_98e4_982731382e96</uuid>
            </respCode>
            <mpi>
              <acsEndProtocolVersion>2.2.0</acsEndProtocolVersion>
              <acsStartProtocolVersion>2.1.0</acsStartProtocolVersion>
              <dsEndProtocolVersion>2.2.0</dsEndProtocolVersion>
              <dsStartProtocolVersion>2.1.0</dsStartProtocolVersion>
              <threeDSMethodURL>https://mock-ds.stg-eu-west3.epgint.com/public/method-data/</threeDSMethodURL>
            </mpi>
          </operation>
        </operations>
        <optionalTransactionParams/>
        <status>SUCCESS</status>
        <workFlowResponse>
          <id>31380</id>
          <name>debit creditcards (TRA)</name>
          <version>0</version>
        </workFlowResponse>
      </response>
      				
      			

      Parámetros de la solicitud de alta plan de suscripción

      Los parámetros requeridos/obligatorios y opcionales se encuentran en esta tabla.

      Además de esos parámetros, para dar de alta un plan de suscripción, debes añadir los siguientes parámetros. El tipo indica si es requerido (R) u opcional (O):

      CampoFormatoTipoDescripciónEjemplo
      paymentRecurringType– newCof: Pagos puntuales, sin importe ni intervalo de tiempo fijo.
      – newSubscription: Pago recurrente con importe e intervalo de tiempo definido.
      – newInstallment: Pago aplazado limitado a una compra individual con importe e intervalo de tiempo definido.
      RTipo de pago recurrente o sucesivo. Indica si la transacción C.O.F. es inicial o sucesiva, así como el motivo u objetivo del pago.newSubscription
      challengeIndValores aceptados:
      – 01: sin preferencia (valor por defecto si no se envía este parámetro)
      – 02: evitar challenge
      – 03: requerir challenge (preferencia del comercio)
      – 04: requerir challenge (obligatorio)
      – 05: evitar challenge (realizado análisis de riesgo de transacción)
      – 06: evitar challenge (sólo en compartir datos)
      – 07: evitar challenge (SCA ya realizada)
      – 08: evitar challenge (utiliza exención de lista blanca)
      – 09: evitar challenge (solicitar lista blanca)
      RIndica la preferencia marcada por el comercio ante un proceso de autenticación. El emisor puede modificar la preferencia especificada en este campo.04

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

      Este es un ejemplo de notificación recibida después de dar de alta un plan de suscripción: 

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <response operation-size="3">
      	<message>WorkFlow has finished successfully, for transaction Id: 7711753</message>
      	<operations>
      		<operation sorted-order="1">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<merchantTransactionId>00000001</merchantTransactionId>
      			<message>Exemptions has been removed</message>
      			<operationType>DEBIT</operationType>
      			<service>TRA</service>
      			<status>SUCCESS</status>
      			<transactionId>7711753</transactionId>
      			<respCode>
      				<code>0000</code>
      				<message>Successful</message>
      				<uuid>d6854b77_0909_4e2c_a83c_37778ace38a6</uuid>
      			</respCode>
      		</operation>
      		<operation sorted-order="2">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<merchantTransactionId>00000001</merchantTransactionId>
      			<message>Challenge: Authenticated successfully</message>
      			<operationType>DEBIT</operationType>
      			<paymentDetails>
      				<cardNumberToken>4535954006730084</cardNumberToken>
      				<extraDetails/>
      			</paymentDetails>
      			<service>3DSv2</service>
      			<status>SUCCESS3DS</status>
      			<transactionId>7711753</transactionId>
      			<respCode>
      				<code>8000</code>
      				<message>Successful authentication</message>
      				<uuid>737ed5e3_12f5_4e5c_9a9b_2d2f3f7b59b9</uuid>
      			</respCode>
      			<mpi>
      				<acsTransID>20d853ed-4347-4727-a5a0-e19ab8bcda08</acsTransID>
      				<authMethod>02</authMethod>
      				<authTimestamp>202310301425</authTimestamp>
      				<authenticationStatus>Y</authenticationStatus>
      				<cavv>AJkBAlQ0Y1czBidENjRjAAAAAAA=</cavv>
      				<eci>05</eci>
      				<messageVersion>2.2.0</messageVersion>
      				<result>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjUwMDNkZDlhLWQ2ZTYtNGM0YS05YzRhLTliNTI0ODhlMzlmOSIsImFjc1RyYW5zSUQiOiIyMGQ4NTNlZC00MzQ3LTQ3MjctYTVhMC1lMTlhYjhiY2RhMDgiLCJhdXRoZW50aWNhdGlvblR5cGUiOiIwMSIsImF1dGhlbnRpY2F0aW9uTWV0aG9kIjoiMTAiLCJhdXRoZW50aWNhdGlvblZhbHVlIjoiQUprQkFsUTBZMWN6QmlkRU5qUmpBQUFBQUFBPSIsImRzVHJhbnNJRCI6IjY5OTM0MTFjLWU1ZGUtNGZmYS04NDdhLTA5MDZkMTNhYWFiYiIsImVjaSI6IjA1IiwiaW50ZXJhY3Rpb25Db3VudGVyIjoiMDEiLCJtZXNzYWdlVHlwZSI6IlJSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwibWVzc2FnZUNhdGVnb3J5IjoiMDEiLCJ0cmFuc1N0YXR1cyI6IlkifQ==</result>
      				<threeDSv2Token>5003dd9a-d6e6-4c4a-9c4a-9b52488e39f9</threeDSv2Token>
      			</mpi>
      			<paymentCode>nsY1</paymentCode>
      			<paymentMessage>Authenticated successfully</paymentMessage>
      		</operation>
      		<operation sorted-order="3">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<details>{"resultCode":"00000","resultDescription":"OK","values":{"rfTransactionCurrency":"EUR","rfRTS":"355534686 790190 845391 231030152505","rfContactlessLogo":"false","rfOperationType":"Settle","rfAuthMode":"On","rfDataEntryMode":"Manual","rfCardHolderVerificationMode":"No","rfFuc":"355534686","rfTerminalID":"00000500","rfProcessor":"Redsys","rfMerchantName":"Pruebas Addon 25","rfMerchantCity":"BARCELONA","rfMerchantPostalCode":"08014","rfMerchantAddress":"GRAN VIA DE LES CORTS CATALANE, 159 PLANTA 7","rfMaskedPan":"************0084","rfOperationDateTime":"30/10/23 15:25:05","rfTerminalOperationNumber":"1195","rfAuthNumber":"795430","rfTransactionAmountCurrency":"10,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1195","posTransactionToken":"{\"pucIdMsg\":\"1200\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000001000\",\"pucP11TransactionNumber\":\"845391\",\"pucP12LocalDateTime\":\"231030152505\",\"pucP22ServicePointData\":\"1U00506U3000\",\"pucP38AuthNumber\":\"795430\",\"pucP39ActionCode\":\"000\",\"pucP53SecurityControlInfo\":\"0102000001000000\",\"pinpadId\":\"1440\",\"pinpadAcquirerId\":\"00000500\",\"pinpadManufacturer\":null,\"pinpadModel\":null,\"pinpadSerialNumber\":null,\"pinpadSoftwareName\":null,\"pinpadSoftwareVersion\":null,\"pinpadKernelEmv\":null,\"pinpadVccStrip\":null,\"pinpadVerPup\":null,\"pinpadPciStage\":null,\"pinpadVerEmvParams\":null,\"pinpadEmvType\":null,\"pinpadCapabilities\":null,\"pinpadLanguage\":null,\"transactionType\":\"O\",\"transactionContactless\":\"0\",\"transactionDcc\":\"0\",\"transactionDccComission\":null,\"transactionDccExchangeRate\":null,\"transactionDccMarkUp\":null,\"transactionDccEntity\":null,\"transactionDccBceExchangeRate\":null,\"transactionDccBceMarkUp\":null,\"transactionPanSequenceNumber\":null,\"transactionTerminalOperationNumber\":\"1195\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************0084\",\"cardAid\":null,\"cardDdfName\":null,\"cardApplicationLabel\":null,\"cardCypherData\":null}","OperationResult":"000","cofAdditionalInformation":"RS478101069093662"},"threeDsProtocolVersion":"2.2.0"}</details>
      			<merchantTransactionId>00000001</merchantTransactionId>
      			<message>Success 'Settle' operation</message>
      			<operationType>DEBIT</operationType>
      			<optionalTransactionParams/>
      			<paySolTransactionId>355534686 790190 845391 231030152505</paySolTransactionId>
      			<paymentDetails>
      				<cardHolderName>Nombre Apellido</cardHolderName>
      				<cardNumber>401200****0084</cardNumber>
      				<cardNumberToken>4535954006730084</cardNumberToken>
      				<cardType>visa/credit</cardType>
      				<expDate>1234</expDate>
      				<extraDetails>
      					<entry>
      						<key>cardCategory</key>
      						<value>Not Available</value>
      					</entry>
      					<entry>
      						<key>rememberMe</key>
      						<value>true</value>
      					</entry>
      				</extraDetails>
      				<issuerBank>EXTRAS TEST - VISA</issuerBank>
      				<issuerCountry>ES</issuerCountry>
      			</paymentDetails>
      			<paymentMethod>19900</paymentMethod>
      			<paymentSolution>caixapucpuce</paymentSolution>
      			<status>SUCCESS</status>
      			<transactionId>7711753</transactionId>
      			<respCode>
      				<code>0000</code>
      				<message>Successful</message>
      				<uuid>d6854b77_0909_4e2c_a83c_37778ace38a6</uuid>
      			</respCode>
      			<authCode>795430</authCode>
      			<mpi>
      				<eci>05</eci>
      			</mpi>
      			<paymentCode>000</paymentCode>
      			<paymentMessage>Operación finalizada con éxito</paymentMessage>
      			<subscriptionPlan>478101069093662</subscriptionPlan>
      		</operation>
      	</operations>
      	<optionalTransactionParams/>
      	<status>SUCCESS</status>
      	<workFlowResponse>
      		<id>31380</id>
      		<name>debit creditcards (TRA)</name>
      		<version>0</version>
      	</workFlowResponse>
      </response>
      				
      			

      Pago de suscripciones

      El pago de suscripciones es una transacción recurrente en la que el comercio envía la petición de pago al cliente con los datos que ha almacenado previamente. Para esta operativa, se requiere una serie de datos que se obtienen del cliente en un el alta del plan de suscripción.

      El pago de suscripciones es una operativa iniciada por el comercio (MIT), y necesita datos como el «cardNumberToken» o el «subscriptionPlan», obtenidos previamente. 

      Además, recomendamos que visites nuestra sección 3DSecure con el objetivo de añadir campos adicionales al proceso de pago. Estos datos opcionales enriquecen la solicitud de pago y pueden facilitar el proceso de autenticación.

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.  

      Este es un ejemplo de petición para el pago de suscripciones, el primero como cadena y el segundo como cURL. Recuerda que la cadena debe pasar el proceso de cifrado.
      				
      					merchantId=12345&merchantTransactionId=00000001&amount=10
      .00&currency=EUR&country=ES&customerId=000001&paymentSolution
      =creditcards&productId=123450001&operationType=DEBIT&statusURL
      =https://micomercio.com/recepcion_notificacion
      .php&successURL=https://micomercio.com/url-ok.php&errorURL
      =https://micomercio.com/url-ko.php&cancelURL
      =https://micomercio.com/url-cancelacion
      .php&merchantExemptionsSca=MIT&cardNumberToken
      =4535954006730084&paymentRecurringType
      =subscription&subscriptionPlan=478101069093662
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="XUmYdlfwkdBKe71gni7taV6pNECxp5xj1ay9aJBd/JYO3xCjNtHi6oca+i+LotVg38teQFDugCfQJPp59sMIbjfvGZqBPlgBg4oJGByM0iyubIskjUzBM5FOPNrASVzeF/HSy+yyind7DcY+2ZQDgq7puB0hd0EqQegquW0Ow0JieTsdMhSyq2I7Ry81P5wUP9L8OZlG/HNy+kbHmbMGksjdLyOIbxZg/YOqYU0fQns9Y2ie0lj4PbT7IR5URtwhVrx3+ssDNUyXuAUTrqsaAu/x8QfqPyhSw8DLORkyLP4k7MVpz2e2l4kIfdhLhSkt+9L4PlZ9EqWj9139qMZP51mnuquCE1dttKObyycn4QoUxa5wLqTxXMqoQWj/w+sCjdgO2BrAsHDqzacsrnP0ddUDx7Ft2oq4zx3J9OQ4zmGouAac6QJXGG7s3wZnanKkGMB5Ps9HH/+6yJPFxV6rCRpdYFhLoLwS1DV3YZe/7dc+FJu8GsSDLg45gJZY442dYEg6FAevccmImnI62WFw30Ak1RjRjgWZWmvjrGhaHpG51FMndI5i+NfNdt+eX9Tw6IUqfXJ9WPjiR95KNqyc64MSQj8LAW3A0IlFsKuQyckzgmOrHiDo9yy80mKX95hCFK03OnSpVyGWjniAg7hVQmTLa2vJsab9TbGIOrP59zyYcwX1OgOAhiAvu62qq0/JxNl/CW5Wyy99MxQIAw6GsFaVB1ZxNHgMVTwQAYlQhf89iELS/HRjykpsPZ7Q7r0zSXv5nCR314VVg+p1TsQhJ7RDBIM3U3+2255PED7cFUStQXyfQWs+YXdcITtxPSew6PKDsDXlVFpwvS1P7GbGT08FZFfVha8589XkAmUYFeFtonlrQCd/ox61zSrJilJMbjv7YYbCJdbt04HnfGMJipUGlIM6I5yOAfTEhGvtUkFe/PcRqd0zoFzxGhYEDrFjzQKXIfCTh8UprzfYBYUlONtNLZHmBsbb/JFJdfV/6DQ=”' \
      --form 'integrityCheck="46bd5b723103b13d87667bd6a6cdf8e69635b1ffd837e31239f62ffd7632046b"'
      				
      			

      Parámetros de la solicitud de pagos de suscripciones

      Los parámetros requeridos/obligatorios y opcionales se encuentran en esta tabla.

      Además de esos parámetros, para el pago de suscripciones debes enviar los siguientes parámetros. El tipo indica si el campo es requerido (R) u opcional (O):

      CampoFormato TipoDescripción Ejemplo
      merchantExemptionsScaMIT = Transacción iniciada por el comercio
      TRA = Exención de análisis de riesgo en Transacción
      LWV = Exención de poco valor
      COR = Exención de pagos corporativos
      RExención PSD2 a aplicar. Normalmente se debe enviar únicamente en pagos sucesivos y con el valor “MIT”.MIT
      paymentRecurringTypecof
      subscription
      installment
      delayed
      resubmission
      reauthorization
      incremental
      noShow
      RTipo de pago recurrente o sucesivo. Indica si la transacción C.O.F. es inicial o sucesiva, así como el motivo u objetivo del pago. En la siguiente tabla, están explicados en detalle.subscription
      subscriptionPlanAlfanumérico
      Máximo 45 caracteres.
      RIdentificador de transacción C.O.F. generado en la transacción inicial. Se recibe con el mismo nombre en la notificación de respuesta de la transacción C.O.F. inicial.
      Es obligatorio incluirlo en el envío de transacciones sucesivas para que se vinculen con la transacción inicial.
      708120533554282
      cardNumberTokenAlfanumérico
      16~20 caracteres
      RToken de Addon Payments del número de tarjeta. Los últimos 4 dígitos coinciden con el número de tarjeta original.4535954006730084

      En esta tabla, tienes los valores de «paymentRecurringType» para transacciones sucesivas explicados en detalle y sus funciones: 

      ValorDescripción Ejemplo
      cofPagos puntuales, sin importe ni intervalo de tiempo fijo.Compra en la cual el cliente selecciona guardar la tarjeta para transacciones posteriores.
      subscriptionPago recurrente con importe e intervalo de tiempo definido.Cuotas o suscripciones.
      installmentPago aplazado limitado a una compra individual con importe e intervalo de tiempo definido.Compra a plazos
      delayedPago suplementario posterior a la prestación de un servicioCargos de habitación en hoteles
      Cargos extras en alquileres
      Daños en vehículos de alquiler
      Consumos no incluidos en el servicio
      resubmissionReenvío de un cobro tras haber prestado el servicio o producto al cliente y el pago inicial ha sido rechazado por falta de fondos.
      Solo para ciertos sectores de actividad (para más detalle revisar la normativa de las marcas) y con un máximo de días desde la compra.

      Transporte
      reauthorizationReautorizar un pago recurrente COF existente actualizando la tarjeta o el plan recurrente.
      incrementalEl cliente acepta pagar por cualquier servicio adicional que ocurra durante la duración del contrato.Prolongación de la estancia en un hotel.
      noShowPago por servicios que el cliente aceptó pagar pero no cumplió los términos del acuerdo.Reservas de hotel o apartamentos en las cuales el cliente no se presenta.

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura.

      Este es un ejemplo de la notificación recibida después del pago de suscripciones: 

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <response operation-size="1">
        <message>WorkFlow has finished successfully, for transaction Id: 7711801</message>
        <operations>
          <operation sorted-order="1">
            <amount>10.00</amount>
            <currency>EUR</currency>
            <details>{"resultCode":"00000","resultDescription":"OK","values":{"rfTransactionCurrency":"EUR","rfRTS":"355534686 790190 845403 231030153739","rfContactlessLogo":"false","rfOperationType":"Settle","rfAuthMode":"On","rfDataEntryMode":"Manual","rfCardHolderVerificationMode":"No","rfFuc":"355534686","rfTerminalID":"00000500","rfProcessor":"Redsys","rfMerchantName":"Pruebas Addon 25","rfMerchantCity":"BARCELONA","rfMerchantPostalCode":"08014","rfMerchantAddress":"GRAN VIA DE LES CORTS CATALANE, 159 PLANTA 7","rfMaskedPan":"************0084","rfOperationDateTime":"30/10/23 15:37:39","rfTerminalOperationNumber":"1196","rfAuthNumber":"745649","rfTransactionAmountCurrency":"10,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1196","posTransactionToken":"{\"pucIdMsg\":\"1200\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000001000\",\"pucP11TransactionNumber\":\"845403\",\"pucP12LocalDateTime\":\"231030153739\",\"pucP22ServicePointData\":\"10005060F000\",\"pucP38AuthNumber\":\"745649\",\"pucP39ActionCode\":\"000\",\"pucP53SecurityControlInfo\":\"0102000001000000\",\"pinpadId\":\"1440\",\"pinpadAcquirerId\":\"00000500\",\"pinpadManufacturer\":null,\"pinpadModel\":null,\"pinpadSerialNumber\":null,\"pinpadSoftwareName\":null,\"pinpadSoftwareVersion\":null,\"pinpadKernelEmv\":null,\"pinpadVccStrip\":null,\"pinpadVerPup\":null,\"pinpadPciStage\":null,\"pinpadVerEmvParams\":null,\"pinpadEmvType\":null,\"pinpadCapabilities\":null,\"pinpadLanguage\":null,\"transactionType\":\"O\",\"transactionContactless\":\"0\",\"transactionDcc\":\"0\",\"transactionDccComission\":null,\"transactionDccExchangeRate\":null,\"transactionDccMarkUp\":null,\"transactionDccEntity\":null,\"transactionDccBceExchangeRate\":null,\"transactionDccBceMarkUp\":null,\"transactionPanSequenceNumber\":null,\"transactionTerminalOperationNumber\":\"1196\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************0084\",\"cardAid\":null,\"cardDdfName\":null,\"cardApplicationLabel\":null,\"cardCypherData\":null}","OperationResult":"000"},"merchantExemptionSca":"MIT"}</details>
            <merchantTransactionId>00000001</merchantTransactionId>
            <message>Success 'Settle' operation</message>
            <operationType>DEBIT</operationType>
            <optionalTransactionParams/>
            <paySolTransactionId>355534686 790190 845403 231030153739</paySolTransactionId>
            <paymentDetails>
              <cardNumber>401200****0084</cardNumber>
              <cardNumberToken>4535954006730084</cardNumberToken>
              <cardType>visa/credit</cardType>
              <expDate>1234</expDate>
              <extraDetails>
                <entry>
                  <key>cardCategory</key>
                  <value>Not Available</value>
                </entry>
                <entry>
                  <key>rememberMe</key>
                  <value>true</value>
                </entry>
              </extraDetails>
              <issuerBank>EXTRAS TEST - VISA</issuerBank>
              <issuerCountry>ES</issuerCountry>
            </paymentDetails>
            <paymentSolution>caixapucpuce</paymentSolution>
            <status>SUCCESS</status>
            <transactionId>7711801</transactionId>
            <respCode>
              <code>0000</code>
              <message>Successful</message>
              <uuid>f7fe9eea_910f_437b_99e9_40a8a9c981c0</uuid>
            </respCode>
            <authCode>745649</authCode>
            <paymentCode>000</paymentCode>
            <paymentMessage>Operación finalizada con éxito</paymentMessage>
          </operation>
        </operations>
        <optionalTransactionParams/>
        <status>SUCCESS</status>
        <workFlowResponse>
          <id>31386</id>
          <name>debit creditcards (MIT)</name>
          <version>21</version>
        </workFlowResponse>
      </response>
      				
      			

      Payouts

      Los Payouts son una operativa de pagos del comercio a la cuenta del cliente. No confundir con devoluciones. El objetivo de esta operativa es el pago de premios, por ejemplo. Debes solicitar esta operativa a Soporte para su activación.

      La petición es muy parecida a la de una autorización normal, pero con «operationType: credit». El tipo de Payout depende del flujo que tenga activo tu comercio, no se puede elegir el tipo de Payout (directo o en 2 pasos) con los parámetros de la petición. Existen 2 tipos de Payouts:

      • Payout directo: El cliente recibe el importe cuando la petición se completa con éxito.
      • Payout en 2 fases: El cliente inicia el proceso del Payout pero este queda pendiente de ser aprobado o rechazado por el comercio.

      Además, por seguridad, para realizar un Payout debe existir un pago autorizado previo (del cliente al comercio). El Payout se realizará con la misma solución de pago y a la misma tarjeta con la que se hizo el pago previo. Sin embargo, hay excepciones donde se puede realizar un Payout sin depósito previo, según la naturaleza del comercio.

      Debes solicitar la operativa de Payout a Soporte para su activación.

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información.

      Tu plataforma de comercio electrónico envía la petición Host2Host de Payout al endpoint establecido. Tienes un ejemplo en cadena y cURL. Recuerda que la cadena debe pasar el proceso de cifrado.  

      				
      					merchantId=12345&merchantTransactionId=00000001&amount=10&currency
      =EUR&country=ES&customerId=000001&paymentSolution=creditcards&productId=123450001
      &statusURL=https://micomercio.com/recepcion_notificacion.php
      &successURL=https://micomercio.com/url-ok.php&errorURL=https://micomercio.com/url-ko.php
      &cancelURL=https://micomercio.com/url-cancelacion.php&awaitingURL=https://micomercio.com/url-espera.php
      &cardNumberToken=4535954006730084&operationType=credit 
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="YhkE2nrG1vmWRxNnMxWtbqDHsi/x1ylrhg53nG2evwuAborzvFSQO3IslRCtBAuJVaSzmL4o17lyYZds2eQ48hNGO8O8EmnDzTfveqZUASpII=”' \
      --form 'integrityCheck="06c928531469eb314c609e9a565567afecae69e644ba0e8cc49c612b6bf35e83"'
      				
      			

      Parámetros del Payout Host2Host

      Los parámetros requeridos para un Payout en Host2Host son los de esta tabla.

      Además, debes añadir o modificar los siguientes datos:

      CampoFormatoTipoDescripciónEjemplo
      operationTypeAlfanumérico
      Máx. 45 caracteres
      REspecifica el tipo de operación a realizar. Valores admitidos:
      – credit: Transacción de ingreso en cuenta del cliente. Es decir, el efectivo viaja desde el comercio hasta la cuenta del cliente. Por ejemplo, en el pago de un premio.
      credit
      cardNumberTokenAlfanumérico
      16~20 caracteres
      RToken de Addon Payments del número de tarjeta del cliente. Los últimos 4 dígitos coinciden con el número de tarjeta original.4535954006730084
      cardNumberNumérico
      Máximo 19 dígitos.
      O (R si no se envía el cardNumberToken)PAN de la tarjeta. Debe superar el algoritmo Luhn Check.4907270002222227
      expDateNumérico
      4 dígitos
      Formato MMAA, los meses son MM y AA el año.
      O (R si no se envía el cardNumberToken)Fecha de caducidad de la tarjeta.0623
      cvnNumberNumérico
      3 a 4 dígitos.
      O (R si no se envía el cardNumberToken)CVC de la tarjeta.123
      chNameAlfanumérico
      Máx. 100 caracteres
      O (R si no se envía el cardNumberToken)Nombre completo del titular de la tarjeta.
      Los nombres y apellidos se separan con espacios.
      Soporta UTF-8.
      Pablo Ferrer

      Respuesta

      Este es un ejemplo de la notificación que obtienes de una transacción Payout:

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <payfrex-response operation-size="1">
            <message>WorkFlow has finished successfully, for transaction Id: 199007517</message>
            <operations>
                <operation sorted-order="1">
                    <amount>3.00</amount>
                    <currency>EUR</currency>
                    <details>{"resultCode":"00000","resultDescri ... ypherData\":null}","OperationResult":"000"}}</details>
                    <merchantTransactionId>test-0305-014</merchantTransactionId>
                    <message>A description - Success 'Payout' operation with status 'SUCCESS'</message>
                    <operationType>CREDIT</operationType>
                    <optionalTransactionParams/>
                    <payFrexTransactionId>197517</payFrexTransactionId>
                    <paySolTransactionId>008000853 790190 596484 210503172504</paySolTransactionId>
                    <paymentDetails>
                        <cardNumber>466203****7594</cardNumber>
                        <cardNumberToken>3049400010087594</cardNumberToken>
                        <cardType>VISA/CREDIT</cardType>
                        <expDate>0425</expDate>
                        <extraDetails>
                            <entry>
                                <key>cardCategory</key>
                                <value>CLASSIC</value>
                            </entry>
                            <entry>
                                <key>rememberMe</key>
                                <value>true</value>
                            </entry>
                        </extraDetails>
                        <issuerBank>BANCO, S.A.U.</issuerBank>
                        <issuerCountry>ES</issuerCountry>
                    </paymentDetails>
                    <paymentSolution>caixapucpuce</paymentSolution>
                    <status>SUCCESS</status>
                    <respCode>
                        <code>0000</code>
                        <message>Successful</message>
                        <uuid>f82e5b47_bfa9_4135_a1b9_25202571208b</uuid>
                    </respCode>
                </operation>
            </operations>
            <optionalTransactionParams/>
            <status>SUCCESS</status>
            <workFlowResponse>
                <id>12215</id>
                <name>Caixa Creditcards credit </name>
                <version>2</version>
            </workFlowResponse>
        </payfrex-response>
      				
      			

      Aprobar y rechazar Payout

      Si el flujo de tu comercio así lo indica, los Payouts se quedarán en status «PENDING» to «CREDIT» hasta que se aprueben o rechacen. Los endpoints para aprobar o rechazar Payouts son: 

      PeticiónEntornoURL
      Aprobar PayoutStaginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/approvePayout
      Rechazar PayoutStaginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/rejectPayout
      Aprobar PayoutProducciónhttps://checkout.addonpayments.com/EPGCheckout/rest/online/approvePayout
      Rechazar PayoutProducciónhttps://checkout.addonpayments.com/EPGCheckout/rest/online/rejectPayout

      Aprobar Payout

      En esta sección veremos cómo aprobar transacciones de Payout a través de petición. A diferencia de otras operativas en Addon Payments, puedes aprobar varios Payouts a la vez. 

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información. 

      Este es un ejemplo de petición para aprobar un Payout. La primera pestaña tiene formado el XML con los identificadores de las peticiones a aprobar y una descripción para cada una, la segunda el cURL. Recuerda que la petición en XML debe pasar el proceso de cifrado. 

      				
      					xml=<fulfill-request>
              <accept>
                <fulfill-transaction-request><description>Approve reason 1</description><id>AddonPaymentsTrxId1</id></fulfill-transaction-request>
                <fulfill-transaction-request><description>Approve reason 2</description><id>AddonPaymentsTrxId2</id></fulfill-transaction-request>
                ...
                <fulfill-transaction-request><description>Approve reason n</description><id>AddonPaymentsTrxIdn</id></fulfill-transaction-request>
              <accept>
            </fulfill-request>
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/approvePayout' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: JdzesBT3L9h4lGnf2joraA==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="4xUYxJxLc/ABCyqJfwttTalkds3YeijsJe6MlTnC6mgmbm0aXKwhI7thwa70o6lLyjrUtW8fIiJ26kBlQpYVnedKEVhevNJNZ88z6m50W2THtDR70pQq6qjF37NCfOeq/UDCg0RB/MPfYUJRUIsfPk=' \
      --form 'integrityCheck="1c256f5b834e5db6d5f453043a8a3830859b308f297cc2cf423064510c5c9b72"'
      				
      			

      Parámetros para aprobar un Payout

      Recuerda que debes recuperar el identificador de la transacción original de la notificación de la misma. Estos son los parámetros requeridos (R) para aprobar un Payout:

      CampoFormatoTipoDescripciónEjemplo
      transactionIdNumérico entero
      Máx. 100 dígitos
      RIdentificador de la transacción original sobre la cual se va a aprobar o rechazar un Payout.76543210
      descriptionPágina de códigos Latin-1 (ISO-8859-1)
      Máx. 1000 caracteres
      RDescripción de la transacción. Se guarda en los detalles de la transacción y se devuelve en la notificación.Payout aprobado por premio

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura. 

      Esta es la notificación recibida a una petición de aprobar Payout.

      				
      					<?xml version="1.0" encoding="UTF-8"?>
      <payfrex-response operation-size="1">
        <message>Approve payout summary</message>
        <operations>
          <operation sorted-order="2">
            <amount>2000.00</amount>
            <currency>USD</currency>
            <details>paymentsolution_response</details>
            <fee>56.29</fee>
            <merchantTransactionId>14132046-172396</merchantTransactionId>
            <message>none</message>
            <operationType>CREDIT</operationType>
            <optionalTransactionParams />
            <payFrexTransactionId>19484</payFrexTransactionId>
            <paySolTransactionId>123413201885024</paySolTransactionId>
            <paymentSolution>neteller</paymentSolution>
            <status>SUCCESS</status>
          </operation>
          <operation sorted-order="1">
            <amount>500.00</amount>
            <currency>USD</currency>
            <details>paymentsolution_response</details>
            <merchantTransactionId>1413xx6-172393</merchantTransactionId>
            <message>none</message>
            <operationType>CREDIT</operationType>
            <optionalTransactionParams />
            <payFrexTransactionId>15584</payFrexTransactionId>
            <paySolTransactionId>1wewr188r5024</paySolTransactionId>
            <paymentSolution>wirecard</paymentSolution>
            <status>SUCCESS</status>
          </operation>
        </operations>
        <optionalTransactionParams />
        <status>SUCCESS</status> 
      </payfrex-response>
      				
      			

      Rechazar Payout

      En esta sección veremos cómo rechazar transacciones de Payout a través de petición. A diferencia de otras operativas en Addon Payments, puedes rechazar varios Payouts a la vez. 

      Petición

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información. 

      Este es un ejemplo de petición para rechazar un Payout. La primera pestaña tiene formado el XML con los identificadores de las peticiones a rechazar y una descripción para cada una, la segunda el cURL. Recuerda que la petición en XML debe pasar el proceso de cifrado. 

      				
      					xml=<fulfill-request>
              <reject>
                <fulfill-transaction-request><description>Reject reason 1</description><id>AddonPaymentsTrxId1</id></fulfill-transaction-request>
                <fulfill-transaction-request><description>Reject reason 2</description><id>AddonPaymentsTrxId2</id></fulfill-transaction-request>
                ...
                <fulfill-transaction-request><description>Reject reason n</description><id>AddonPaymentsTrxIdn</id></fulfill-transaction-request>
              </reject>
            </fulfill-request>
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/rejectPayout' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: JdzesBT3L9h4lGnf2joraA==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="4xUYxJxLc/ABCyqJfwttTalkds3YeijsJe6MlTnC6mgmbm0aXKwhI7thwa70o6lLyjrUtW8fIiJ26kBlQpYVnedKEVhevNJNZ88z6m50W2THtDR70pQq6qjF37NCfOeq/UDCg0RB/MPfYUJRUIsfPk=' \
      --form 'integrityCheck="1c256f5b834e5db6d5f453043a8a3830859b308f297cc2cf423064510c5c9b72"'
      				
      			

      Parámetros para rechazar un Payout

      Recuerda que debes recuperar el identificador de la transacción original de la notificación de la misma. Estos son los parámetros requeridos (R) para rechazar un Payout:

      CampoFormatoTipoDescripciónEjemplo
      transactionIdNumérico entero
      Máx. 100 dígitos
      RIdentificador de la transacción original sobre la cual se va a aprobar o rechazar un Payout.76543210
      descriptionPágina de códigos Latin-1 (ISO-8859-1)
      Máx. 1000 caracteres
      RDescripción de la transacción. Se guarda en los detalles de la transacción y se devuelve en la notificación.Payout aprobado por premio

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura. 

      Esta es la notificación recibida a una petición de rechazar Payout.

      				
      					<?xml version="1.0" encoding="UTF-8"?> <payfrex-response operation-size="1">
        <message>reject payout summary</message>
        <operations>
          <operation sorted-order="2">
            <amount>2000.00</amount>
            <currency>USD</currency>
            <details>paymentsolution_response</details>
            <fee>56.29</fee>
            <merchantTransactionId>14846-172396</merchantTransactionId>
            <message>none</message>
            <operationType>CREDIT</operationType>
            <optionalTransactionParams />
            <payFrexTransactionId>19484</payFrexTransactionId>
            <paySolTransactionId>123413201885024</paySolTransactionId>
            <paymentSolution>neteller</paymentSolution>
            <status>REJECTED</status>
          </operation>
          <operation sorted-order="1">
            <amount>500.00</amount>
            <currency>USD</currency>
            <details>paymentsolution_response</details>
            <merchantTransactionId>141-172393</merchantTransactionId>
            <message>none</message>
            <operationType>CREDIT</operationType>
            <optionalTransactionParams />
            <payFrexTransactionId>15584</payFrexTransactionId>
            <paySolTransactionId>1wewr188r5024</paySolTransactionId>
            <paymentSolution>wirecard</paymentSolution>
            <status>REJECTED</status>
          </operation>
        </operations>
        <optionalTransactionParams />
        <status>SUCCESS</status> 
      </payfrex-response>
      				
      			

      Autenticación externa

      Esta operativa permite a tu comercio procesar la autenticación de forma externa (con un MPI externo) y enviar la autorización mediante Host2Host. Si quieres activar esta opción debes contactar con Soporte.

      Petición

      Para procesar una autorización con autenticación externa debe añadirse el parámetro “threedParams”. Este parámetro contiene un JSON con los datos de la autenticación.

      Recuerda que las peticiones enviadas a Addon Payments deben ser cifradas. Visita nuestra sección de Cifrado, firma y envío de la petición para más información. 

      A continuación tienes un ejemplo en cadena y cURL de una petición con autenticación externa. Recuerda que la cadena debe pasar el proceso de cifrado:

      				
      					merchantId=12345&merchantTransactionId=00000001&amount=10
      .00&currency=EUR&country=ES&customerId=000001&paymentSolution
      =creditcards&statusURL=https://micomercio
      .com/recepcion_notificacion.php&successURL
      =https://micomercio.com/url-ok.php&errorURL
      =https://micomercio.com/url-ko.php&cancelURL
      =https://micomercio.com/url-cancelacion.php&chName=Nombre
      +Apellido&cardNumber=4907270002222227&expDate=1234&cvnNumber=123
      &threedParams={"authenticationStatus":"Y","cavv":"MAAAAAAAAAAAAAAAAAAAAAAAAAA%3D",
      "eci":"05","xid":"a5266648-b850-403e-a13c-9bd763f9add8"
      ,"directoryServerTxnId":"74a22bba-a5f7-4e0b-84e5-95910dfa7864"
      ,"extendedThreeDSVersion":"2.2.0"}
      				
      			
      				
      					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/pay' \
      --header 'apiVersion: 5' \
      --header 'encryptionMode: CBC' \
      --header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
      --form 'merchantId="12345"' \
      --form 'encrypted="YhkE2nrG1vmWRxNnMxWtbqDHsi/x1ylrhg53nG2evwuAborzvFSQO3IslRCtBAuJVaSzmL4o17lyYZds2eQ48hNGO8O8EmnDzTfveqZUASpII=”' \
      --form 'integrityCheck="06c928531469eb314c609e9a565567afecae69e644ba0e8cc49c612b6bf35e83"'
      				
      			

      Parámetros de la petición con autenticación externa

      En la petición con autenticación externa debes enviar los parámetros requeridos para Host2Host. Además, debes añadir el parámetro:

      • threedParams: Parámetro que incluye un JSON alfanumérico con los datos de la autenticación externa.

      Los datos que debes incluir en el JSON del threedParams son:

      CampoFormatoTipoDescripciónEjemplo
      eciValores aceptados:
      00
      01
      02
      05
      06
      07
      Más detalles sobre estos valores
      RIndica el estado de la autenticación.05
      cavvMáximo 100 caracteresRValor de la verificación de autenticación del titular de la tarjeta.AJkCAYB2gwCCCCRMgmEQdQAAA
      AA=
      authenticationStatusValores aceptados:
      – Y: Autenticación exitosa.
      – A: Se ha intentado autenticar sin éxito, pero se ofrecen pruebas de que se ha intentado.
      – N: Autenticación sin éxito.
      – U: No se puede realizar la autenticación por problemas técnicos u otros.
      – C: Challenge requerido.
      REstado de la autenticación.Y
      extendedThreeDSVersionMáximo 5 caracteresRVersión del mensaje de 3DS que procesó la autenticación: X.Y.Z.2.2.0
      directoryServerTxnIdFormato UUIDRIdentificador de la autenticación de lado del directorio del servidor. d7da0bae-bbbb-4868-8e8c-7e7f0d6
      581fc
      threeDSv2TokenMáximo 64 caracteresR (cuando AP procese la autenticación)Valor creado por AP del resultado de la autenticación 3DS. Sólo es requerido si AP procesa la autenticación. 2841e6ac-11e8-4758-bf4d-75aa79e
      78757
      resultMáximo 4000 caracteres
      JSON
      OJSON con el valor en bruto de la autenticación. Es recomendable enviarlo. {«threeDSServerTransID»:»2841e6ac-
      11e8-4758-bf4d-75aa79e78757″,»ac
      sOperatorID»:»00000019″,»acsTransI
      D»:»166e7e2c-aaaa-42ac-943c-8538
      a8f4bac6″,»acsReferenceNumber»:»3
      DS_LOA_ACS_RSAS_020200_00000″,(…),transStatus»:»Y»}
      xidMáximo 100 caracteresOIdentificador de la transacción de autenticación.N/A

      Respuesta

      Visita nuestra sección de Recepción y gestión de las notificaciones para conocer su estructura. 

      Esta es la notificación que recibes a una petición de autorización con autenticación externa, como puedes ver, es igual que la de una autorización.

      				
      					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <response operation-size="2">
      	<message>WorkFlow has finished successfully, for transaction Id: 7702702</message>
      	<operations>
      		<operation sorted-order="1">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<merchantTransactionId>00000001</merchantTransactionId>
      			<message>Exemptions has been removed</message>
      			<operationType>DEBIT</operationType>
      			<service>TRA</service>
      			<status>SUCCESS</status>
      			<transactionId>7702702</transactionId>
      			<respCode>
      				<code>0000</code>
      				<message>Successful</message>
      				<uuid>3bf8a522_116e_41f6_b0a1_e0a512f5dbfd</uuid>
      			</respCode>
      		</operation>
      		<operation sorted-order="2">
      			<amount>10.00</amount>
      			<currency>EUR</currency>
      			<merchantTransactionId>00000001</merchantTransactionId>
      			<message>Starting 3DSecure 2.0 process.</message>
      			<operationType>DEBIT</operationType>
      			<optionalTransactionParams/>
      			<originalTransactionId>7702702</originalTransactionId>
      			<paymentDetails>
      				<cardHolderName>Nombre Apellido</cardHolderName>
      				<extraDetails>
      					<entry>
      						<key>threeDSMethodData</key>
      						<value>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjFmMjc4OWQyLTJmYTYtNDNmMC04MzNhLTdmOGY2ZWYxNGFjOCIsICJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjogImh0dHBzOi8vY2hlY2tvdXQuc3RnLWV1LXdlc3QzLmVwZ2ludC5jb20vRVBHQ2hlY2tvdXQvY2FsbGJhY2svZ2F0aGVyRGV2aWNlTm90aWZpY2F0aW9uL3BheXNvbC8zZHN2Mi8xMDAyNTQ3In0=</value>
      					</entry>
      					<entry>
      						<key>threeDSv2Token</key>
      						<value>1f2789d2-2fa6-43f0-833a-7f8f6ef14ac8</value>
      					</entry>
      				</extraDetails>
      			</paymentDetails>
      			<redirectionResponse>redirect:https://checkouttIiwiY2hhbGxlbmdlV2luZG93c1NpemUiOiIwNSJ9</redirectionResponse>
      			<service>3DSv2</service>
      			<status>REDIRECTED</status>
      			<transactionId>1002547</transactionId>
      			<respCode>
      				<code>8100</code>
      				<message>Frictionless requires</message>
      				<uuid>6da05aff_17e9_4565_bd1b_bba132bf2050</uuid>
      			</respCode>
      			<mpi>
      				<acsEndProtocolVersion>2.2.0</acsEndProtocolVersion>
      				<acsStartProtocolVersion>2.1.0</acsStartProtocolVersion>
      				<dsEndProtocolVersion>2.2.0</dsEndProtocolVersion>
      				<dsStartProtocolVersion>2.1.0</dsStartProtocolVersion>
      				<threeDSMethodURL>https://mock-ds.stg-eu-west3.epgint.com/public/method-data/</threeDSMethodURL>
      			</mpi>
      		</operation>
      	</operations>
      	<status>SUCCESS</status>
      	<workFlowResponse>
      		<id>31380</id>
      		<name>debit creditcards (TRA)</name>
      		<version>0</version>
      	</workFlowResponse>
      </response>
      				
      			

      Próximos pasos

      Llegados a este punto, esperamos que hayas podido integrar exitosamente mediante Host2Host. Consulta el resto de guías para conseguir una integración completa:

      • Pase a Producción.
      • Incluye otros métodos de pago.
      • Códigos de respuesta/error.
      Comparte este documento

      Integración Host2Host

      Copiar el enlace

      Icono del portapapeles
      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