API – Developers Docs API – Developers Docs
  • Addon Payments
  • POS integrated Payments
  • SpanishSwitch to Spanish
API – Developers Docs API – Developers Docs
API – Developers Docs
  • Addon Payments
  • POS integrated Payments
  • SpanishSwitch to Spanish
Addon Payments
  • Folder icon closed Folder open iconIntegrations
    • Start integrating
      • Welcome for CMS integrations
      • Introduction to integrations: Hosted, Host2Host and JavaScript
    • CMS Plugins
      • Prestashop
        • PrestaShop installation and set-up
        • Common mistakes with PrestaShop installation and set-up
        • Managing transactions with PrestaShop
      • WooCommerce
        • WooCommerce installation and set-up
        • Common mistakes with WooCommerce installation and set-up
        • Managing transactions with WooCommerce
      • Magento
        • Magento installation and set-up
        • Common mistakes with Magento installation and set-up
        • Managing transactions with Magento
      • Salesforce
        • Salesforce Commerce Cloud
    • Cards
      • Hosted Integration
      • Host2Host Integration
      • JavaScript Integration
      • PSD2 and 3DSv2
      • PCI DSS Certification
    • Complement your integration
      • Additional features
      • Managing notifications
      • Complement your JavaScript integration
      • Customizing the payment experience
      • Going Live (Switching to Production)
      • Encryption, signature and sending the request
      • Redirecting customer
    • Payment methods
      • Apple Pay
      • PayByBank
      • Bizum
      • PeX
      • Quix
    • Resources
      • Glossary
      • Payment solutions
      • Response codes
      • State and country codes
      • Currency codes
      • ID document type codes and validations
      • Test cards
    • Tools
      • Postman
      • SDKs
  • Folder icon closed Folder open iconBackOffice Portal
    • Pay by link guide
    • Search operations
    • Creating users
  • Folder icon closed Folder open iconFrequently Asked Questions

Hosted Integration

Introduction

This guide shows the steps for Hosted integration. This integration consists in redirecting customers to a payment form (cashier) hosted by Addon Payments. Customers reach that form from your website by their browser being redirected or through an iframe. Since your business doesn’t have access to customer details, you can accept payment without PCI DSS certification.

Parameters, operations and procedures may vary between payment solutions or services. In this guide we indicate the most common ones for most payment solutions. If you need other use cases do not hesitate to contact our support team.

The following links will help you during your integration:

  • Glossary, to familiarize you with the concepts we will use throughout the documentation.
  • Postman, to test the operations of this integration.
  • SDKs, complete tool to integrate Addon Payments in a fast, flexible and easy way.

We hope this guide is helpful. 

The link you receive for the redirection is valid for 30 minutes. In addition, it can only be used in the same session. 

Hosted integration workflow

Below is a diagram of how Hosted integration works.

To sum it up, Hosted integration follows this flow:

  1. The customer wants to perform a payment.
  2. The merchant perform a Request Payment Form request. Encrypting the parameters using the Addon Payments Encryption algorithm.
  3. Addon Payments processes the request, building a Hosted Addon Payments checkout URL.
  4. AddonPayments returns the checkout URL.
  5. Merchant redirects the customer to the Hosted checkout page.
  6. The Addon Payments checkout page renders.
  7. The customer interacts with Addon Payments checkout page. Selecting a payment solution and processing a payment transaction.
  8.  Addon Payments processes the transaction using the selected payment solution.
  9. Addon Payments performs the payment with the payment solution.
  10. Payment solution responses.
  11. Addon Payments makes a notification to statusURL field, that is passed off in the Request Payment Form request.
  12. Addon Payments redirects the customer to the final page.

Environments and endpoints: staging and production

Addon Payments offers two (2) separate operating environments:

Staging environment:

    • This is the first environment you will use.
    • There is a list of cards to use for testing the system, simulating transactions of various operations, authentication types (frictionless, challenge) and results (authorized, declined).
    • This will allow you to make sure that the different situations are handled properly by your integration.
    • Real cards and accounts don’t work.

Production Environment:

    • In this environment, transactions are real.
    • You can only use real, operational cards and accounts.

This is a table with the endpoints where to send the request according to the environment where you operate:

EnvironmentURL
Staginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize
Productionhttps://checkout.addonpayments.com/EPGCheckout/rest/online/tokenize

Required and optional data Hosted

These are the common parameters for Hosted’s various card payment operations: authorization, pre-authorization, card validation, card storage, subscription plan registration and payouts.

In addition, we recommend that you visit our 3DSecure section in order to add additional fields to the payment process. These optional data enrich the payment request and can facilitate the authentication process.

The type column shows whether the element is Required (R) or Optional (O):

FieldFormatTypeDescriptionExample
merchantIdWhole number
4~7 digits
RYour merchant’s ID on the AP platform. Provided by Support in the welcome email. It is the same for both environments14983
productIdWhole number
6~11 digits
RProduct ID created on your AP merchant. You’ll find it in the welcome email.149830
paymentSolutionAlphanumeric
Max 45 characters
RName of the payment solution to process the transaction. IMPORTANT: If you don’t want all the payment solutions you have available to be shown, do NOT send this parameter. creditcards
operationTypeAlphanumeric
Max 45 characters
RShows type of operation to carry out. Eligible values:
– DEBIT(default): Payment transaction. That is, cash travels from the customer’s account to the merchant.
– CREDIT: Deposit transaction to the customer’s account. That is, cash travels from the merchant to the customer’s account. For example, in the payment of a prize. Not to be confused with returns. These have their own type of transaction.
debit
merchantTransactionIdAlphanumeric
Max 45 characters
RThis is the unique identifier of the merchant’s transaction. It is used by your platform to link the notifications received with the customer’s order.order_91684
amountNumerical with decimals
0~1000000.00
RAmount of the transaction. If the amount has decimals, the separator is a dot (.). The separator cannot be included in the thousands.127.5
currencyAlphabetical
3 characters
ISO-4217.3
RCurrency of the transactionEUR
countryAlphabetical
2 characters
ISO 3166-1 alfa-2
RCountry from which the transaction is sentES
customerIdAlphanumeric
Max 80 characters
RCustomer ID in your e-commerce platform.
– To save the customer’s card, use the “forceTokenRequest” parameter, with value “true” to save the token and “false” not to.
– To show or hide the option to remember the customer’s card, use the “showRememberMe” parameter, with value “true” to show it and “false” to hide it.
A34623
statusURLAlphanumeric (characters allowed in URL)
Max. 2048 characters
RURL of your e-commerce platform where AP will send the notification with the status of the transaction. If it is sent in the request, it will take priority over the one configured in the Addon Payments BackOffice Portal. If it is not sent in the request, the customer will be redirected to the URL configured in the administration module.https://www.example.com/status
successURLAlphanumeric (characters allowed in URL)
Max. 2048 characters
RURL of your platform to which the customer is redirected if the transaction is authorized. If it is sent in the request, it will take priority over the one configured in the Addon Payments BackOffice Portal. If it is not sent in the request, the customer will be redirected to the URL configured in the administration module.https://www.example.com/success
errorURLAlphanumeric (characters allowed in URL)
Max. 2048 characters
RURL of your platform to which the customer is redirected if the transaction is declined. If it is sent in the request, it will take priority over the one configured in the Addon Payments BackOffice Portal. If it is not sent in the request, the customer will be redirected to the URL configured in the administration module.https://www.example.com/error
cancelURLAlphanumeric (characters allowed in URL)
Max. 2048 characters
RURL of your platform to which the customer is redirected if the transaction is cancelled during the payment process. If it is sent in the request, it will take priority over the one configured in the Addon Payments BackOffice Portal. If it is not sent in the request, the customer will be redirected to the URL configured in the administration module.https://www.example.com/cancel
awaitingURLAlphanumeric (characters allowed in URL)
Max. 2048 characters
RURL of your platform to which the customer is redirected if the transaction is pending processing. If it is sent in the request, it will take priority over the one configured in the Addon Payments BackOffice Portal. If it is not sent in the request, the customer will be redirected to the URL configured in the administration module.https://www.example.com/awaiting
customerEmailAlphanumeric
Max 100 characters
R*Cardholder’s email.

European merchants: required for SCA
*customerEmail or telephone must be sent. Only 1 of those paramaters is mandatory
correo@ejemplo.com
telephoneAlphanumeric
Max 45 characters
R*International prefix + Cardholder’s phone number. Can be mobile, work or home phone number.

European merchants: required for SCA
*customerEmail or telephone must be sent. Only 1 of those paramaters is mandatory
34600600600
languageISO 639-1 codeOLanguage to be displayed on the customer checkout. Currently, it is only available in Spanish (ES) and English (EN).EN
referenceIdAlphanumeric
12 characters
OVariable reference for merchants requiring FB500 reconciliation files.SM1258X795WW
merchantParamsKey1:Value1;Key2:Value2;KeyN:ValueN
Max 500 characters
OParameters that are sent to modify the mechant configuration or the processing of a transaction.
They are received back within the tag.
Does not support special characters
name:pablo;surname:ferrer;clientid:12345
forceTokenRequestBoolean
– true
– false
OIndicates whether or not to save the customer’s card token. If you do not want to save the card, use “false”.false
printReceiptBooleanOShow the end customer a receipt in the redirection process optional type.True
autoCaptureBooleanOEstablishes whether the transaction will be an authorization or pre-authorization. In the latter case, it requires a subsequent capture or release by the merchant.True
typeAlphanumeric:
MOTO
ECOM
OSets whether the payment request is e-commerce or MO/TO type. If not included, it is e-commerce type by default.ECOM
descriptionAlphanumeric
Max 1000 characters
ODescription of the transaction.Product description
cityAlphanumeric
Max 100 characters
OCity of cardholder.

European merchants: optional for SCA
Barcelona
chCountry2 characters
ISO 3166-1 alfa-2
OISO 3166-1 alfa-2 code of cardholder’s country.

European merchants: optional for SCA
ES
addressLine1Alphanumeric
Max 250 characters
OFirst line of cardholder’s address.

European merchants: optional for SCA
Calle Romero 123
addressLine2Alphanumeric
Max 50 characters
OCradholder’s zip code.

European merchants: optional for SCA
08001
stateAlphanumeric
Max 45 characters
OState or province of the cardholder.

European merchants: optional for SCA
Barcelona

Card payments

Your platform has to send several parameters and their respective values in order to generate a valid request to send to AP. In each request and use case you will have a sample request, a table with the mandatory and optional parameters and a sample response.

A list of response/error codes is available on this page.

Authorization 

Below is an example of the basic fields to redirect the customer to our Hosted payment gateway.

In addition, we recommend that you visit our 3DSecure section in order to add additional fields to the payment process. These optional data enrich the payment request and can facilitate the authentication process.

Request

Remember that requests sent to Addon Payments must be encrypted. Visit our Encryption, signature and sending the request section for more information

These are some examples of requests for authorization of card payments, the first as a string and the second as cURL. Remember that the string must pass the encryption process.

				
					merchantId=12345&merchantTransactionId=00000001&amount=10.00&currency=EUR&country
=ES&customerId=000001&forceTokenRequest=false&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
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
--form 'merchantId="12345"' \
--form 'encrypted="jULXEtDfSVYIgfV29GBTcibe+ED+IvnfI2ssayrpqoJRzmI+SVst1SV3LRjt7DHlU5+0FoBPZy8KfoajNYn6DwRU0ltMtgd2TsR2ccm+Aeg5NAPbMlVZZnDmWA2WUmh3sXFWDMFGcHnwigMv0dWW+0QOieFJN+NLPMo/HMhLOLNNfS9240qdT++PTx7IdtSM3hfbD31ZDgKSkxwCDQYSrcIS0LyPtRuRkMQjHNMjOzo/FNSe0dqTdRw0dI5QpoqAgFk8MEkByIiZPIK6GYzkRv9NsBrVpRw3271VPG7gDlK4+ZEkjRXJ+JQgV0QxybU4XNE1pPlB3BxzBtsr56gPEVCNrVjNQtfTwNqphT39+7GShtEUrAsKU7r+nxivGxhd/8b2ECkk/7Dk7WPLnCJPnXJrIAWzKd1wiPaTPYrMvCuxRAMYF+sk6ZPENAipntbetAbXHDVs6KKbjyCjDLRwGX7rrIlPi0TTIH9nGfPTq4DL1CDxivnjd1eOGOnHzQRr”' \
--form 'integrityCheck="0bc22b4408a6a2bf135fd2eb3832775f44b02f96d7e10d940b81c5069763685f"'
				
			

Once the POST is sent to Addon Payments, you will receive a redirect URL for the customer:

				
					https://checkout33.stg-eu-west3.epgint.com/EPGCheckout/rest/online/detokenize?token
=3a873502-826c-4daf-be51-28804926d63b&apiVersion=5
				
			

To learn more about when to redirect the client, visit the Redirecting customer section.

Request parameters for authorization

The required/mandatory and optional parameters are listed in this table.

Response

Visit our section on Managing notifications to learn more about its structure.

This is an example of a payment response for an authorized operation: 

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7667902</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>7667902</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</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>
			<paymentDetails>
				<cardNumberToken>4535954006730084</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>REDIRECTED</status>
			<transactionId>7667902</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>4fdf180e_60c6_4b17_9938_55cbf8439ca4</uuid>
			</respCode>
			<mpi>
				<acsTransID>274f5839-b4f8-408e-a5a3-9f7b3bfd5514</acsTransID>
				<authMethod>02</authMethod>
				<authTimestamp>202310021012</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBAlQ0Y1czBidENjRjAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<result>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjVkYTRiNGUzLWQ4NGMtNGM5Yy04ZmUzLWFiN2MwNjJmYjBjZSIsImFjc1RyYW5zSUQiOiIyNzRmNTgzOS1iNGY4LTQwOGUtYTVhMy05ZjdiM2JmZDU1MTQiLCJhdXRoZW50aWNhdGlvblR5cGUiOiIwMSIsImF1dGhlbnRpY2F0aW9uTWV0aG9kIjoiMTAiLCJhdXRoZW50aWNhdGlvblZhbHVlIjoiQUprQkFsUTBZMWN6QmlkRU5qUmpBQUFBQUFBPSIsImRzVHJhbnNJRCI6IjE5NDQ0YzQzLTU2YmYtNDhiOS1iZmVkLTE1YzFjZjNkYzkyZSIsImVjaSI6IjA1IiwiaW50ZXJhY3Rpb25Db3VudGVyIjoiMDEiLCJtZXNzYWdlVHlwZSI6IlJSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwibWVzc2FnZUNhdGVnb3J5IjoiMDEiLCJ0cmFuc1N0YXR1cyI6IlkifQ==</result>
				<threeDSv2Token>5da4b4e3-d84c-4c9c-8fe3-ab7c062fb0ce</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 809968 231002121202","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":"02/10/23 12:12:02","rfTerminalOperationNumber":"1121","rfAuthNumber":"014523","rfTransactionAmountCurrency":"10,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1121","posTransactionToken":"{\"pucIdMsg\":\"1200\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000001000\",\"pucP11TransactionNumber\":\"809968\",\"pucP12LocalDateTime\":\"231002121202\",\"pucP22ServicePointData\":\"1U00506U3000\",\"pucP38AuthNumber\":\"014523\",\"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\":\"1121\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************0084\",\"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 809968 231002121202</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Pruebas Visa</cardHolderName>
				<cardNumber>490727****2227</cardNumber>
				<cardType>VISA/CREDIT OR DEBIT</cardType>
				<expDate>1023</expDate>
				<extraDetails>
					<entry>
						<key>cardCategory</key>
						<value>Not Available</value>
					</entry>
					<entry>
						<key>rememberMe</key>
						<value>false</value>
					</entry>
				</extraDetails>
				<issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
				<issuerCountry>ES</issuerCountry>
			</paymentDetails>
			<paymentMethod>19900</paymentMethod>
			<paymentSolution>caixapucpuce</paymentSolution>
			<status>SUCCESS</status>
			<transactionId>7667902</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</uuid>
			</respCode>
			<authCode>014523</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-authorization

Pre-authorizations are a two-step payment method. The operation is sent by redirect with “false” in the “autoCapture” parameter. The customer is shown the same Hosted as for an authorization.

After the customer authorizes the transaction, the funds are put on hold in their account or card balance. The merchant has 30 days to confirm or decline the pre-authorization. However, payment is not ensured after 7 days. It is important to note that the merchant doesn’t receive the funds from the pre-authorization until it is confirmed.

Pre-authorizations, if the transaction is authorized, will show a “Pending” status. You can manually capture these transactions in the Addon Payments BackOffice Portal or with an H2H request to capture the amount.

In addition, we recommend that you visit our 3DSecure section in order to add additional fields to the payment process. These optional data enrich the payment request and can facilitate the authentication process.

Request

Remember that requests sent to Addon Payments must be encrypted. Visit our Encryption, signature and sending the request for more information.  

These are some examples of requests for pre-authorization of card payments, the first as a string and the second as cURL. Remember that the string must pass the encryption process.

				
					merchantId=12345&merchantTransactionId=00000001&amount=10.00&currency
=EUR&country=ES&customerId=000001&paymentSolution=creditcards&productId
=123450001&autoCapture=false&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
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: JdzesBT3L9h4lGnf2joraA==' \
--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"'
				
			

Once the POST is sent to Addon Payments, you will receive a redirect URL for the customer:

				
					https://checkout.stg-eu-west3.epgint.com/EPGCheckout/rest/online/detokenize
?token=f5a11694-206f-48db-8b0c-cd958b0382e7&apiVersion=5
				
			

To learn more about when to redirect the client, visit the Redirecting customer section.

Request parameters for pre-authorization

The required/mandatory and optional parameters are listed in this table.

In addition to those parameters, for a pre-authorization you must also include:

  • autoCapture: false

Response

Visit our section on Managing notifications to learn more about its structure.

For a pre-authorization, the transaction response will be pending until you capture or release the amount:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7667941</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>7667941</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</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>
			<paymentDetails>
				<cardNumberToken>4535954006730084</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>REDIRECTED</status>
			<transactionId>7667941</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>4fdf180e_60c6_4b17_9938_55cbf8439ca4</uuid>
			</respCode>
			<mpi>
				<acsTransID>38677419-ade7-47c4-8229-43857e3ce4f0</acsTransID>
				<authMethod>02</authMethod>
				<authTimestamp>202310021025</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBAlQ0Y1czBidENjRjAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<result>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6Ijc4YWRiNWZlLWU3ZGYtNDQ0Mi04Y2QwLWNhODYwYmRhYzY3MSIsImFjc1RyYW5zSUQiOiIzODY3NzQxOS1hZGU3LTQ3YzQtODIyOS00Mzg1N2UzY2U0ZjAiLCJhdXRoZW50aWNhdGlvblR5cGUiOiIwMSIsImF1dGhlbnRpY2F0aW9uTWV0aG9kIjoiMTAiLCJhdXRoZW50aWNhdGlvblZhbHVlIjoiQUprQkFsUTBZMWN6QmlkRU5qUmpBQUFBQUFBPSIsImRzVHJhbnNJRCI6ImZjYWRhMGQ1LTkwODgtNGM5OS04YzQxLWY2OTU0ZDkwOGE3MyIsImVjaSI6IjA1IiwiaW50ZXJhY3Rpb25Db3VudGVyIjoiMDEiLCJtZXNzYWdlVHlwZSI6IlJSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwibWVzc2FnZUNhdGVnb3J5IjoiMDEiLCJ0cmFuc1N0YXR1cyI6IlkifQ==</result>
				<threeDSv2Token>78adb5fe-e7df-4442-8cd0-ca860bdac671</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 809959 231002122555","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":"************0084","rfOperationDateTime":"02/10/23 12:25:55","rfTerminalOperationNumber":"1122","rfAuthNumber":"221432","rfTransactionAmountCurrency":"10,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1122","posTransactionToken":"{\"pucIdMsg\":\"1100\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000001000\",\"pucP11TransactionNumber\":\"809959\",\"pucP12LocalDateTime\":\"231002122555\",\"pucP22ServicePointData\":\"1U00506U3000\",\"pucP38AuthNumber\":\"221432\",\"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\":\"1122\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************0084\",\"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 809959 231002122555</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Pruebas Visa Challenge</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>PENDING</status>
			<transactionId>7667941</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</uuid>
			</respCode>
			<authCode>221432</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>

				
			

Card validation

Card validation consists of a transaction with a 0 amount, which generates a token or reference to the customer’s card for future transactions. This operation is also known as Open To Buy (OTB).

Normally, these card validations for an amount of 0 are used to save the customer’s card for future payments. In this case, we recommend you also use the following parameters:

  • amount: 0
  • paymentRecurringType: newCof
  • challengeInd: 04 (recommended to force SCA for the transaction so the issuer doesn’t decline future requests)

This operation validates that the card is operational when the request is made, although it can’t guarantee future payments will be authorized.

In addition, we recommend that you visit our 3DSecure section in order to add additional fields to the payment process. These optional data enrich the payment request and can facilitate the authentication process.

Request

Remember that requests sent to Addon Payments must be encrypted. Visit our Encryption, signature and sending the request for more information.    

These are some examples of requests for card validation, the first as a string and the second as cURL. Remember that the string must pass the encryption process.

				
					merchantId=12345&merchantTransactionId=00000001&amount=0&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
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: NLcwVLj3JPECqmat32gGaw==' \
--form 'merchantId="12345"' \
--form 'encrypted=" WtL6Eq+5/OYSIKWexrjdKHzxv9xL3HQqjH5OA/bCXH4iaKll9Zk2d9l2tOiWgOJqejrbndsmJWudCWnkYWxU18jSzIxO8lbBnVw5SgL24Ygq6b0jhb0IyJXK018kc0FaKNFM3DN29ZU5uhrJpd7nzQhulP2uc3CLcQymJDue2vEns1q3zPysEkWjPL+Z+6HoTtbxMUWK8ibimMO8BYl5FamkmWWcrx6+fcyUL553WjfdvnW9+G1kuyTez8WwOR6PNsSEKsm2lOBRABLzfLIPxHbCMN29cWOybVf1CEomJm+pZzDUiBlSpFFu5mT9NOZzrc4fklaexp63+UpjnnjvOSRHr0HmL4C5YdsS/OowJvUEdrMaexbO7uRGOwKlU8+c6gHK8NpEBSK1fbLhi9qnUvzoIUyuMndqUJQ7Nomc4YxR906tZzahe19Cc/7ewt3/ZWDTQSaRUSsq1PMe3krtAVxnWwOqR+gCWQWu50Kyp/qEMfuswBPq9m2u6/I7+5zZ”' \
--form 'integrityCheck="e834eea3beec3cd3964a0b94e909d658424778b50659a591b2653e52db8a41c4"'
				
			

Once the POST is sent to Addon Payments, you will receive a redirect URL for the customer:

				
					https://checkout.stg-eu-west3.epgint.com/EPGCheckout/rest/online/detokenize
?token=c4cd4823-6514-4300-8365-f0ad1d1ec8ce&apiVersion=5
				
			

To learn more about when to redirect the client, visit the Redirecting customer section.

Request parameters for card validation

The required/mandatory and optional parameters are listed in this table.

In addition to these parameters, for a card validation you must include those in the following table. The type indicates whether the element is Required (R) or Optional (O):

FieldFormatTypeDescriptionExample
amountNumerical with decimal
0~1000000.00
RTransaction amount. If the total has decimal places, the separator is a point (.). No separator can be used for thousands. For card validations, it must be “0”. 0
paymentRecurringType– newCof: One-off payments, without a fixed amount or periodicity.
– newSubscription: Recurring payments with fixed amount and periodicity.
– newInstallment: Postponed payment limited to individual purchase with fixed amount and periodicity.
ORecurring or successive payment type. Note if the COF transaction is initial or successive, and the reason or purpose for payment.newCof
challengeIndAccepted values:
– 01: no preference (default value if this parameter is not sent)
– 02: avoid challenge
– 03: require challenge (trade preference)
– 04: require challenge (mandatory)
– 05: avoid challenge (performed transaction risk analysis)
– 06: avoid challenge (only in data sharing)
– 07: avoid challenge (SCA already done)
– 08: avoid challenge (use whitelist exemption)
– 09: avoid challenge (request whitelist)
OIndicates the preference set by the merchant for an authentication process. The issuer can modify the preference specified in this field.04

Response

Visit our section on Managing notifications to learn more about its structure.

This is the response received in a card validation. The highlighted part of the response shows the card details you can use in future operations, as the token. 

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7668634</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>7668634</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</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>
			<paymentDetails>
				<cardNumberToken>4535954006730084</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>REDIRECTED</status>
			<transactionId>7668634</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>7c5d8b33_9def_4dc5_8d75_53c6306f10b2</uuid>
			</respCode>
			<mpi>
				<acsTransID>19086b03-a6b1-4ff2-8193-853092241fa2</acsTransID>
				<authMethod>02</authMethod>
				<authTimestamp>202310021341</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBAlQ0Y1czBidENjRjAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<result>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNlMTlhOTZmLTExNWItNDQ4Mi05N2NmLWM4YzRjN2RkYjRlZCIsImFjc1RyYW5zSUQiOiIxOTA4NmIwMy1hNmIxLTRmZjItODE5My04NTMwOTIyNDFmYTIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiIwMSIsImF1dGhlbnRpY2F0aW9uTWV0aG9kIjoiMTAiLCJhdXRoZW50aWNhdGlvblZhbHVlIjoiQUprQkFsUTBZMWN6QmlkRU5qUmpBQUFBQUFBPSIsImRzVHJhbnNJRCI6IjVhZDVmOTJmLWY0YWYtNGY1Zi1hMjA0LTk5MDQwNDI3NzcyZiIsImVjaSI6IjA1IiwiaW50ZXJhY3Rpb25Db3VudGVyIjoiMDEiLCJtZXNzYWdlVHlwZSI6IlJSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwibWVzc2FnZUNhdGVnb3J5IjoiMDEiLCJ0cmFuc1N0YXR1cyI6IlkifQ==</result>
				<threeDSv2Token>3e19a96f-115b-4482-97cf-c8c4c7ddb4ed</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 810151 231002154112","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":"************0084","rfOperationDateTime":"02/10/23 15:41:12","rfTerminalOperationNumber":"1125","rfAuthNumber":"090354","rfTransactionAmountCurrency":"0,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1125","posTransactionToken":"{\"pucIdMsg\":\"1100\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000000000\",\"pucP11TransactionNumber\":\"810151\",\"pucP12LocalDateTime\":\"231002154112\",\"pucP22ServicePointData\":\"1U00506U3000\",\"pucP38AuthNumber\":\"090354\",\"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\":\"1125\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************0084\",\"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 810151 231002154112</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Pruebas Visa Challenge</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>7668634</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</uuid>
			</respCode>
			<authCode>090354</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>

				
			

Saving cards

In Addon Payments you can store cards by generating references or tokenization. This operation has several use cases, which we will see below.

Storing cards

Card storage is controlled using the parameters sent in the request. If the customer completes the transaction successfully, you will receive the “cardNumberToken”, which is the token for the customer’s card. This field is directly related to the “customerId” sent in the payment request. Plus, remember that one “customerId” can be associated with several card tokens.

Use cases and parameters

The use cases for card saving in Hosted are shown in the following table. Remember that card saving is optional in the operations. To save (or not) the customer’s card, include the following parameters in addition to the common ones:

ObjectiveParameterTypeValueDescription
Card savingforceTokenRequestBooleantrueIf you force token saving you will receive the card token and the card will be saved for later use. You must inform the customer that you will be storing their card information.
Note: Even if you force token saving, if you show the “Remember me” checkbox and the customer does NOT check it, the token will not be saved. To force token saving, do not send the “showRememberMe” parameter or send it to “false”.
Do not save cardshowRememberMeBooleanfalseThe checkbox in our form that allows the customer to choose whether or not to save the card will be hidden. You will not have the “cardNumberToken” in the response and it will not appear in subsequent payments from the same customer (customerId). Note: To make sure it is NOT saved, additionally send “forceTokenRequest=false”, this way, even if the “Remember Me” checkbox is displayed and checked, the token will not be saved.
Allow customer to save cardshowRememberMeBooleantrueIt will show the “Remember me” card save check. If the customer chooses to save the card and the transaction is authorized, it will be saved for this customerId and you will get the token in the response. If the customer does not check “Remember me”, the card token will not be saved.
Do not send any of the above parametersN/AN/AN/AIf none of the above parameters are sent, the “Remember me” card save check will be displayed. If the customer checks it, the card will be saved for later use. If the customer does not check it, the token will be generated but you will not be able to use it for further payments.
Note: In the notification you will receive the “rememberMe” with value “false”, so you will know that the token cannot be used.

Request

Remember that requests sent to Addon Payments must be encrypted. Visit our Encryption, signature and sending the request for more information.      

This is a sample request for forcing card saving, the first as a string and the second as cURL. Remember that the string must pass the encryption process.

				
					merchantId=12345&merchantTransactionId=00000001&amount=10.00&currency
=EUR&country=ES&customerId=000001&paymentSolution=creditcards&productId
=123450001&forceTokenRequest=true&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
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 02WakwHB2vl0iq4AZ1PMVQ==' \
--form 'merchantId="12345"' \
--form 'encrypted=" 2rWonKmWKGFzJ6WRIGuyCRIX+4laoAvKqdiBNc+19TiT89yi0oaUTgyI3MTHdIlArpHCJec3NhXzDmyaHpImPSpYkzyP2sgQm9xaZCf/z+XGFe6c3VypQtmQtyr3V0VrJzJxGQq/9la4la+QNH20YNNpsDrV/AwVldQXCWU3h6aLZi1gW0SsrGAm60tNsSkBjFbFqWukimRpnwhScJ0sQ7ngWvnT1l1uD07O9MdGvQe9y39ukq6Agrw0isz5SCifHqQjgJgTtZQ5SBOBP7E3bLCS1oD+Nk7KJpjqQgEoFjHd/L6gzvEuBJl3/JPbpmHtTbFoPQlAEiY3VXMV6GFddUowwBFPRg+Lw6A6SQWYY7zOjJJbGxBRZ4MsFX+oaBYog1ectoGJsMnTohTykOhdO91DXVADTo24dg7FrdDPNNYpw0lgwEI0U3/+kv8MJ+I0yKR6gti0Mt4Go6ccYVjgsJy7oRwt7cCOI7fgU/j8DNknqzFAviAb5kYDSvgmZyEXMFSFjUl7WmgkYAocWVxxaSFIQ0wmZx5ZJjaJN4ckqow=”' \
--form 'integrityCheck="87b9a3c29645de41fbf1d337d79232db55c10a481e17b9e65d18a8e0b04c3b01"'
				
			

Once the POST is sent to Addon Payments, you will receive a redirect URL for the customer:

				
					https://checkout.stg-eu-west1.epgint.com/EPGCheckout/rest/online/detokenize
?token=dd058d10-cb76-48d8-a3fb-750a643b779f&apiVersion=5
				
			

To learn more about when to redirect the client, visit the Redirecting customer section.

Response

This is a sample card that returns the “cardNumberToken”:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="3">
	<message>WorkFlow has finished successfully, for transaction Id: 7668634</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>7668634</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</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>
			<paymentDetails>
				<cardNumberToken>4535954006730084</cardNumberToken>
				<extraDetails/>
			</paymentDetails>
			<service>3DSv2</service>
			<status>REDIRECTED</status>
			<transactionId>7668634</transactionId>
			<respCode>
				<code>8000</code>
				<message>Successful authentication</message>
				<uuid>7c5d8b33_9def_4dc5_8d75_53c6306f10b2</uuid>
			</respCode>
			<mpi>
				<acsTransID>19086b03-a6b1-4ff2-8193-853092241fa2</acsTransID>
				<authMethod>02</authMethod>
				<authTimestamp>202310021341</authTimestamp>
				<authenticationStatus>Y</authenticationStatus>
				<cavv>AJkBAlQ0Y1czBidENjRjAAAAAAA=</cavv>
				<eci>05</eci>
				<messageVersion>2.2.0</messageVersion>
				<result>eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNlMTlhOTZmLTExNWItNDQ4Mi05N2NmLWM4YzRjN2RkYjRlZCIsImFjc1RyYW5zSUQiOiIxOTA4NmIwMy1hNmIxLTRmZjItODE5My04NTMwOTIyNDFmYTIiLCJhdXRoZW50aWNhdGlvblR5cGUiOiIwMSIsImF1dGhlbnRpY2F0aW9uTWV0aG9kIjoiMTAiLCJhdXRoZW50aWNhdGlvblZhbHVlIjoiQUprQkFsUTBZMWN6QmlkRU5qUmpBQUFBQUFBPSIsImRzVHJhbnNJRCI6IjVhZDVmOTJmLWY0YWYtNGY1Zi1hMjA0LTk5MDQwNDI3NzcyZiIsImVjaSI6IjA1IiwiaW50ZXJhY3Rpb25Db3VudGVyIjoiMDEiLCJtZXNzYWdlVHlwZSI6IlJSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwibWVzc2FnZUNhdGVnb3J5IjoiMDEiLCJ0cmFuc1N0YXR1cyI6IlkifQ==</result>
				<threeDSv2Token>3e19a96f-115b-4482-97cf-c8c4c7ddb4ed</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 810151 231002154112","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":"************0084","rfOperationDateTime":"02/10/23 15:41:12","rfTerminalOperationNumber":"1125","rfAuthNumber":"090354","rfTransactionAmountCurrency":"0,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1125","posTransactionToken":"{\"pucIdMsg\":\"1100\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000000000\",\"pucP11TransactionNumber\":\"810151\",\"pucP12LocalDateTime\":\"231002154112\",\"pucP22ServicePointData\":\"1U00506U3000\",\"pucP38AuthNumber\":\"090354\",\"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\":\"1125\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************0084\",\"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 810151 231002154112</paySolTransactionId>
			<paymentDetails>
				<cardHolderName>Pruebas Visa Challenge</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>7668634</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>c03cbb3d_6436_4bb4_a0b0_e0fe717e13ad</uuid>
			</respCode>
			<authCode>090354</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>
				
			

Show cards

In Addon Payments you can decide whether to show the saved cards to the customer. This operation is related to the saved cards and the customer’s identifier.

To show the saved cards to a customer these requirements must be met:

  • You have forced card saving as shown in the previous section or the customer has decided to save their card by checking the “Remember me” checkbox. The card token that is saved is associated with a customer identifier (customerId).
  • In the following transactions, the customerId must be the same as the one used to save the card. So these are displayed in the payment cashier.

For example, the customer with customerId “01” makes a purchase in your e-commerce and decides to check the “remember me” box, so his card is saved. Later, the same customer (with “customerId” “01”) makes another purchase and has his card available at the cashier.

If the customer enters your platform as a guest, he will have another “customerId”, so he will not see his cards saved.

Request

The request to show the cards to a customer is the same as the rest of the operations. However, you must send the same “customerId” that has been used to store cards.

A customer can have several saved cards. If the same customer logs in as a guest (different customerId) he will not see any of his cards.

Cashier display

Recurring payments

In this section, you will find how to save the customer’s card for the purpose of making subsequent payments without customer interaction or C.I.T (Customer Initiated Transaction).

In these use cases, the customer must make an initial payment authenticated with 3DS2 and SCA, which will allow saving the customer’s card data and giving consent for subsequent payments. This type of transaction is called C.O.F (Credential On File).

Subscription plan

With this integration, you can allow customers to subscribe to your plans, saving their card for later payments. In the request, you must include the COF parameters and force SCA to prevent the issuer from declining future transactions. In the response, you will get the “subscriptionPlan”, which is the ID for future operations and is directly linked to the response “cardNumberToken” and the “customerId” you sent with the payment request. We will see all this below.

In the first transaction, you have to notify the type of transactions that will be processed in the future based on your needs. Here is a table with the parameters to include in “paymentRecurringType” and their function:

Initial paymentSuccessive paymentDescriptionExample
newCofcofOne-off payments without fixed amount or periodicity.Purchase when customer chooses to save the card for future transactions.
newSubscriptionsubscriptionRecurring payment with fixed amount and periodicity.Fees or subscriptions.
newInstallmentinstallmentPostponed payment limited to individual purchase with fixed amount and periodicity.Payment in instalments.

Plus, we recommend you visit our 3DSecure section to add additional fields to the payment process. These optional data fields enrich the payment request and can facilitate the authentication process.

Request

Remember that requests sent to Addon Payments must be encrypted. Visit our Encryption, signature and sending the request for more information.        

This is a sample request for a subscription plan, the first as a string and the second as cURL. Remember that the string must pass the encryption process.

				
					merchantId=12345&merchantTransactionId=00000001&amount=1.00&currency=EUR&country
=ES&challengeInd=04&paymentRecurringType=newSubscription&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
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
--form 'merchantId="12345"' \
--form 'encrypted="jULXEtDfSVYIgfV29GBTcibe+ED+IvnfI2ssayrpqoJRzmI+SVst1SV3LRjt7DHlU5+0FoBPZy8KfoajNYn6DwRU0ltMtgd2TsR2ccm+Aeg5NAPbMlVZZnDmWA2WUmh3sXFWDMFGcHnwigMv0dWW+0QOieFJN+NLPMo/HMhLOLNNfS9240qdT++PTx7IdtSM3hfbD31ZDgKSkxwCDQYSrcIS0LyPtRuRkMQjHNMjOzo/FNSe0dqTdRw0dI5QpoqAgFk8MEkByIiZPIK6GYzkRv9NsBrVpRw3271VPG7gDlK4+ZEkjRXJ+JQgV0QxybU4XNE1pPlB3BxzBtsr56gPEVCNrVjNQtfTwNqphT39+7GShtEUrAsKU7r+nxivGxhd/8b2ECkk/7Dk7WPLnCJPnXJrIAWzKd1wiPaTPYrMvCuxRAMYF+sk6ZPENAipntbetAbXHDVs6KKbjyCjDLRwGX7rrIlPi0TTIH9nGfPTq4DL1CDxivnjd1eOGOnHzQRr”' \
--form 'integrityCheck="0bc22b4408a6a2bf135fd2eb3832775f44b02f96d7e10d940b81c5069763685f"'
				
			

Once the POST is sent to Addon Payments, you will receive a redirect URL for the customer: 

				
					https://checkout33.stg-eu-west3.epgint.com/EPGCheckout/rest/online/detokenize?token
=3a873502-826c-4daf-be51-28804926d63b&apiVersion=5
				
			

To learn more about when to redirect the client, visit the Redirecting customer section.

Request parameters for subscription plan

The required/mandatory and optional parameters are listed in this table.

In addition to these parameters, to register a subscription plan, you must add the following parameters. The type indicates whether the item is Required (R) or Optional (O):

FieldFormatTypeDescriptionExample
paymentRecurringType– newCof: One-off payments, without a fixed amount or periodicity.
– newSubscription: Recurring payments with fixed amount and periodicity.
– newInstallment: Postponed payment limited to individual purchase with fixed amount and periodicity.
RRecurring or successive payment type. Note if the COF transaction is initial or successive, and the reason or purpose for payment.newSubscription
challengeIndAccepted values:
– 01: no preference (default value if this parameter is not sent)
– 02: avoid challenge
– 03: require challenge (trade preference)
– 04: require challenge (mandatory)
– 05: avoid challenge (performed transaction risk analysis)
– 06: avoid challenge (only in data sharing)
– 07: avoid challenge (SCA already done)
– 08: avoid challenge (use whitelist exemption)
– 09: avoid challenge (request whitelist)
RIndicates the preference set by the merchant for an authentication process. The issuer can modify the preference specified in this field.04

Response

Visit our section on Managing notifications to learn more about its structure.

This is a sample response. We highlight the “subscriptionPlan”, which is the parameter you must use in successive payments. 

				
					<?xml version="1.0" encoding="UTF-8"?>
<payfrex-response operation-size="3">
   <message>WorkFlow has finished successfully, for transaction Id: 7707259</message>
   <operations>
      <operation sorted-order="1">
         <amount>1.00</amount>
         <currency>EUR</currency>
         <merchantTransactionId>88388066</merchantTransactionId>
         <message>Exemptions has been removed</message>
         <operationType>DEBIT</operationType>
         <payFrexTransactionId>7707259</payFrexTransactionId>
         <service>TRA</service>
         <status>SUCCESS</status>
         <respCode>
            <code>0000</code>
            <message>Successful</message>
            <uuid>dd04d570_bf82_4b9b_baf6_6ec123601521</uuid>
         </respCode>
      </operation>
      <operation sorted-order="2">
         <amount>1.00</amount>
         <currency>EUR</currency>
         <merchantTransactionId>88388066</merchantTransactionId>
         <message>3dsv2 - processed</message>
         <operationType>DEBIT</operationType>
         <payFrexTransactionId>7707259</payFrexTransactionId>
         <paymentDetails>
            <extraDetails />
         </paymentDetails>
         <service>3DSv2</service>
         <status>SUCCESS3DS</status>
         <respCode>
            <code>8000</code>
            <message>Successful authentication</message>
            <uuid>28d943be_e311_4889_a810_dfa699c1d200</uuid>
         </respCode>
         <mpi>
            <acsTransID>d3378e3e-8c5a-450b-b697-73520f6ce8c1</acsTransID>
            <authMethod>01</authMethod>
            <authTimestamp>202310260734</authTimestamp>
            <authenticationStatus>Y</authenticationStatus>
            <cavv>AJkBB4OBmVFmgYFYFIGZAAAAAAA=</cavv>
            <eci>05</eci>
            <messageVersion>2.2.0</messageVersion>
            <threeDSSessionData>ZjExNjgyMWYtZDJlOC00ZjA3LTkxNWQtZmM3OTMwZDQ3NWMy</threeDSSessionData>
            <threeDSv2Token>f116821f-d2e8-4f07-915d-fc7930d475c2</threeDSv2Token>
         </mpi>
         <paymentCode>nsY1</paymentCode>
         <paymentMessage>Authenticated successfully</paymentMessage>
      </operation>
      <operation sorted-order="3">
         <amount>1.00</amount>
         <currency>EUR</currency>
         <details>{"resultCode":"00000","resultDescription":"OK","values":{"rfTransactionCurrency":"EUR","rfRTS":"355534686 790190 840066 231026093455","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":"26/10/23 09:34:55","rfTerminalOperationNumber":"1150","rfAuthNumber":"075909","rfTransactionAmountCurrency":"1,00 EUR","rfProcessorMessage":"","rfPrintSignatureBox":"false","rfCardPresent":"true","rfReferenceId":"1150","posTransactionToken":"{\"pucIdMsg\":\"1200\",\"pucP3ProcessCode\":\"000000\",\"pucP4OriginalAmount\":\"000000000100\",\"pucP11TransactionNumber\":\"840066\",\"pucP12LocalDateTime\":\"231026093455\",\"pucP22ServicePointData\":\"1U00506K3000\",\"pucP38AuthNumber\":\"075909\",\"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\":\"1150\",\"transactionResponseCode\":null,\"transactionCurrency\":\"978\",\"transactionFuc\":\"355534686\",\"cardMaskedPan\":\"************2227\",\"cardAid\":null,\"cardDdfName\":null,\"cardApplicationLabel\":null,\"cardCypherData\":null}","OperationResult":"000","cofAdditionalInformation":"RS708120533554282"},"threeDsProtocolVersion":"2.2.0"}</details>
         <merchantTransactionId>88388066</merchantTransactionId>
         <message>Success 'Settle' operation</message>
         <operationType>DEBIT</operationType>
         <optionalTransactionParams />
         <payFrexTransactionId>7707259</payFrexTransactionId>
         <paySolTransactionId>355534686 790190 840066 231026093455</paySolTransactionId>
         <paymentDetails>
            <cardHolderName>Pruebas Visa</cardHolderName>
            <cardNumber>490727****2227</cardNumber>
            <cardNumberToken>4535954006730084</cardNumberToken>
            <cardType>VISA/CREDIT OR DEBIT</cardType>
            <expDate>1023</expDate>
            <extraDetails>
               <entry>
                  <key>cardCategory</key>
                  <value>Not Available</value>
               </entry>
               <entry>
                  <key>rememberMe</key>
                  <value>false</value>
               </entry>
            </extraDetails>
            <issuerBank>SERVIRED MASTERCARD INTERNACIONAL</issuerBank>
            <issuerCountry>ES</issuerCountry>
         </paymentDetails>
         <paymentMethod>19900</paymentMethod>
         <paymentSolution>caixapucpuce</paymentSolution>
         <status>SUCCESS</status>
         <respCode>
            <code>0000</code>
            <message>Successful</message>
            <uuid>dd04d570_bf82_4b9b_baf6_6ec123601521</uuid>
         </respCode>
         <authCode>075909</authCode>
         <mpi>
            <eci>05</eci>
         </mpi>
         <paymentCode>000</paymentCode>
         <paymentMessage>Operación finalizada con éxito</paymentMessage>
         <subscriptionPlan>708120533554282</subscriptionPlan>
      </operation>
   </operations>
   <optionalTransactionParams />
   <status>SUCCESS</status>
   <workFlowResponse>
      <id>31380</id>
      <name>debit creditcards (TRA)</name>
      <version>0</version>
   </workFlowResponse>
</payfrex-response>

				
			

For the following payments without customer interaction or M.I.T (Merchant Initiated Transaction), visit the Host2Host guide. The logic and remittance of recurring payments is handled on the merchant side.

Payouts

Payouts are a payment transaction from the merchant to the customer’s account. Not to be confused with refunds. The purpose of this operation is the payment of prizes, for example. You must request this operation to Support for its activation.

The request is very similar to a standard authorization, but it includes “operationType: credit”. The type of Payout depends on the flow that your merchant has active, you can not choose the type of Payout (direct or in two steps) with the parameters of the request. There are two types of Payouts:

  • Direct Payout: The customer receives the amount when the request is successfully completed.
  • Payout in two steps: The customer initiates the Payout process but the Payout is pending approval or rejection by the merchant.

In addition, for security reasons, to perform a Payout there must be a previous authorized payment (from the customer to the merchant). The Payout will be made with the same payment solution and to the same card with which the previous payment was made. However, there are exceptions where a Payout can be made without prior deposit, depending on the nature of the merchant.

You must request the Payout operation to Support for its activation.

Request

Remember that requests sent to Addon Payments must be encrypted. Visit our Encryption, signature and sending the request for more information.        

Your e-commerce platform sends the Hosted Payout request to the established endpoint. Here you have an example in string and cURL. Remember that the string must pass the encryption process.

				
					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/tokenize' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: 0Pn6pDEm73YvekNKUJcvwg==' \
--form 'merchantId="12345"' \
--form 'encrypted="YhkE2nrG1vmWRxNnMxWtbqDHsi/x1ylrhg53nG2evwuAborzvFSQO3IslRCtBAuJVaSzmL4o17lyYZds2eQ48hNGO8O8EmnDzTfveqZUASpII=”' \
--form 'integrityCheck="06c928531469eb314c609e9a565567afecae69e644ba0e8cc49c612b6bf35e83"'
				
			

Hosted Payout Parameters

The parameters required for a Hosted Payout are those in this table.

In addition, you must add or modify the following data:

FieldFormatTypeDescriptionExample
operationTypeAlphanumeric
Max. 45 characters
RShows type of operation to carry out. Eligible values:
– credit: Deposit transaction to the customer’s account. That is, cash travels from the merchant to the customer’s account. For example, in the payment of a price.
credit
cardNumberTokenAlphanumeric
16~20 characters
RAddon Payments token of the customer’s card number. The last 4 digits match the original card number.4535954006730084
cardNumberNumeric.
Maximum 19 digits.
O (R if cardNumberToken is not sent)PAN of the card. It must pass the Luhn Check algorithm.4907270002222227
expDateNumeric
4 digits
MMAA format, months are MM and YY is the year.
O (R if cardNumberToken is not sent)Card expiration date.0623
cvnNumberNumeric
3 to 4 digits.
O (R if cardNumberToken is not sent)Card CVC.123
chNameAlphanumeric
Max. 100 characters
O (R if cardNumberToken is not sent)Full name of cardholder.
First and last names are separated with spaces.
Supports UTF-8.
Pablo Ferrer

Response

This is an example of the notification you get from a Payout transaction:

				
					<?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>
				
			

Approve and reject Payout

If your merchant flow indicates so, Payouts will remain in “PENDING” to “CREDIT” status until they are approved or rejected. Please refer to Host2Host documentation to perform this operation.

Customization

With a Hosted integration, you can change the appearance of the form in several ways. Check out the Customizing the payment experience guide to learn how.

Next steps

Having reached this point, we hope you have successfully completed your Hosted integration. Check out the other guides for a full integration:

  • Go live.
  • Include other payment methods.
  • Managing notifications.
  • Response/error codes.
Comparte este documento

Hosted Integration

Copiar el enlace

Clipboard Icon
Tabla de Contenidos

Products

  • Addon Payments
  • POS integrated Payments
  • Universal Pay

Sales

Tell us about your business so we can offer you the best solution.

Contact an expert
Contact an expert
Contact an expert
Contact an expert
Contact an expert

Technical Support

Already a client and need help? Contact us, we’re here for you.

Help

Partners

We work with the best partners for in-store and ecommerce solutions. Want to join us?

Join us

© Comercia Global Payments

Privacy policy
Exercising rights
Client information
Whistleblowing channel
Legal disclaimer
Cookies policy
Ask AI
Write your question. For example: How do I create a payment link?
SmartWiki may skip data. Verify the information or contact support.

SmartWiki, Powered by AI

API - Developers Docs
Manage cookie consent

To offer the best experiences, we use technologies such as cookies to store and/or access device information. Consent to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Failure to consent, or withdrawal of consent, may adversely affect certain features and functions.

Functional Always active
Storage or technical access is strictly necessary for the legitimate purpose of allowing the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
Technical storage or access is necessary for the legitimate purpose of storing preferences not requested by the subscriber or user.
Statistics
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. Storage or technical access that is used exclusively for anonymous statistical purposes. Without a requirement, voluntary compliance by your Internet service provider, or additional records from a third party, information stored or retrieved solely for this purpose cannot be used to identify you.
Marketing
Storage or technical access is necessary to create user profiles to send advertising, or to track the user on a website or several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
See preferences
{title} {title} {title}

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

Cyberpac

We are currently working on the English version of the Cyberpac documentation. You can view the Spanish version using the buttons below:

Canales BackOffice Portal

Plugins integration

Custom integrations

POS integrated Payments

Create a solution that will help you automate processes. You can even add payment processes on physical terminals.

Payment Integrated with Android POS

Payment Integrated with Smartphone POS

POS Data sheets

Addon Payments

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

Integrations

Frequently Asked Questions

BackOffice Portal

Consult the documentation of the different integrations sections:​

Start integration

undraw_add_to_cart_re_wrdo 1 (1) (1)

CMS Plugins

Complement your integration

SDKs

Payment Methods

Tools