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

Quix

Introduction

Quix is the “Buy Now Pay Later” financing service from Caixabank Payments & Consumer (CPC) that connects businesses, financing companies and customers. It allows your customers to spread out their purchases over 3 to 12 months, for orders from €50 to €1200.

Note: Currently, Quix is only available for transactions in Euros and for customers with Spanish nationality who reside in Spain.

Quix offers the following integration services:

  • Checkout widget: A visual element compatible with Addon Payments Hosted and JavaScript Integrations that allows customers to complete the financing process.
  • Payment simulator: Allows customers to simulate the financing periods and payment options available.

So your customers will recognize the financing solution and get the best financing conditions, we recommend the following set up:

  • Load the Quix logo on your ecommerce (download attached resources)
  • Add “Pay in instalments” or equivalent so it is easily recognizable.
Payment typeFinancing
Countries availableSpain
Currencies availableEuro
Minimum total€50
Maximum total€1200
Payment over3 to 12 months
Redirect required?Yes
Two-step payment allowed?No
Refunds allowed?Yes
Download resources

Your ecommerce platform must recognize consent or notify the customer in the purchase conditions that their personal data will be disclosed to Quix to process the financing. This is a sample legal disclaimer:

By ticking this box, you are consenting to [YOUR BUSINESS] disclosing your personal data and contact information (name and surname, date of birth and email address) to SEQURA WORLDWIDE S.A., which will process your data as the data controller for the purpose of processing your financing. For more information on how your data is processed, go to https://legal.sequra.com/politica-privacidad.

To use this payment solution, you have to contract the service with CPC. For commercial information or if you haven’t contracted the service, you can contact your usual CPC account manager or go to the CPC website for more information: https://www.caixabankpc.com/es/comercios. You can also contact them by email at digital@caixabankpc.com.

This guide provides the information you need to integrate the Quix financing payment solution on the Addon Payments gateway for Hosted and JavaScript integrations.

Note: The Quix payment solution is not currently compatible with Host2Host integration.

This guide is in addition to the basic integration guide you chose to integrate with AP:

  • Hosted Integration
  • JavaScript Integration

You also have a glossary of terms and a Postman collection with Quix operations:

  • Postman.
  • Glossary.

Credentials for integration testing

You can use the following data to test the integration of the payment solution on your ecommerce platform:

  • DNI: 99999999R (can use any).
  • Phone number: 600000000 (can use any).
  • Validation code: Last 5 digits of the phone number entered.
  • Card:
    • PAN: 4716773077339777
    • Expiry: 12/30
    • CVV: 123

These credentials will work as long as the payment gateway is configured to operate in the AP Staging environment. To test the integration in Production environment you will need to use real and active credentials.

Environments: Staging and Production

Addon Payments has 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, creating transaction simulations 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.

Below you have some tables with the endpoints to send the request, depending on the type of integration:

EnvironmentURL
Staginghttps://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize
Productionhttps://checkout.addonpayments.com/EPGCheckout/rest/online/tokenize
RequestEnvironmentURL
Request /authStaginghttps://epgjs-mep-stg.addonpayments.com/auth
Request /chargeStaginghttps://epgjs-mep-stg.addonpayments.com/charge/v2
Request /authProductionhttps://epgjs-mep.addonpayments.com/auth
Request /chargeProductionhttps://epgjs-mep.addonpayments.com/charge/v2

Below is a table with the AP library for JavaScript that you need to import and the call to set up the base URL for the payment gateway.

  • You have to add a <script> HTML element with the route to the AP JS library to your ecommerce platform payment page. This route must include the version of the library to load. We currently recommend using version 4.0.0. 
FunctionEnvironmentURL
Import the Addon Payments JS libraryStaginghttps://epgjs-rendercashier-stg.addonpayments.com/js/public/epgjs-[versión]-min.js
Set the base URL for the payment gatewayStaginghttps://epgjs-web-stg.addonpayments.com/
Import the Addon Payments JS libraryProductionhttps://epgjs-rendercashier.addonpayments.com/js/public/epgjs-[versión]-min.js
Set the base URL for the payment gatewayProductionhttps://epgjs-web.addonpayments.com/

Hosted Integration

Below we explain how to do the Quix integration via Hosted. 

Request

This is a sample request for a merchant that sells goods. The parameters in the request depend on the service the business provides. In the section Parameters by service you have a table with the parameters for all the different services. 

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.

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 string and cURL request for a product on Quix via Hosted. Remember, the string must go through the process of encryption, signature and sending the request. 

				
					currency=EUR&amount=99&country=ES&customerId=903&merchantId
=116659&merchantTransactionId=79037935&paymentSolution=quix&statusURL
=https://webhook.site/359a42a8-4759-45cb-81cd-6d34e546617f&successURL
=https://test.com/success&errorURL=https://test
.com/error&cancelURL=https://test.com/cancel&awaitingURL
=https://test.com/awaiting&firstName=Name&lastName=Last Name&productId
=1166590003&customerEmail=email@micomercio.com&customerNationalId
=99999999R&customerCountry=ES&dob=1999-12-01&ipAdress=192.168.1
.1&paysolExtendedData
={"product":"instalments","billing":{"first_name":"Nombre","last_name":"Apellido","address":{"street_address":"Nombre de la vía y nº","postal_code":"08003","city":"Barcelona","country":"ESP"}},"cart":{"currency":"EUR","total_price_with_tax":99,"items":[{"article":{"name":"Nombre del servicio 2","type":"product","category":"physical","description":"Descripción artículo 2","reference":"4912345678903","unit_price_with_tax":99,"autoshipping":false},"units":2,"total_price_with_tax":99,"auto_shipping":true}]}}
				
			
				
					curl --location --request POST 'https://checkout-stg.addonpayments.com/EPGCheckout/rest/online/tokenize' \
--header 'apiVersion: 5' \
--header 'encryptionMode: CBC' \
--header 'iv: bdlDqWWCnw+aAra4vLujFA==' \
--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://checkout.stg-eu-west3.epgint.com/EPGCheckout/rest/online/detokenize
?token=4b374d64-a263-43dc-bb74-c8e88257d4c2&apiVersion=5
				
			

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

Request parameters via Hosted

The type indicates whether the parameter is required (R) or optional (O): 

FieldFormatTypeDescriptionExample
prepayTokenAlphanumeric
UUID Format
R (only in JS integration)It is sent in the request header. AP returns this reference after the customer enters their details in the JS payment form. It is the reference that links to the customer’s card or account details for JavaScript integration.97fe3726-adb1-4e24-9fb8-92593a75ae74
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
Accepted value:
– quix
RName of the payment solution to process the transaction. In this case “quix”quix
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.pedido_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.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
firstNameAlphabetical
Max 100 characters
RCustomer’s name. If more than one, use spaces between them.Pablo
lastNameAlphabetical
Max 100 characters
RCustomer’s surname(s)
Both surnames must be sent, with a space between them. If both aren’t sent, the Quix widget will request them
Ferrer Calas
customerEmailAlphabetical
Max 100 characters
RCustomer’s email address.correo@mail.com
customerCountryCode ISO 3166-1 Alfa-2
“ES”
RCustomer’s country. Currently only available for Spain.ES
customerNationalIdAlphanumeric
Max 100 characters
RDNI (with letter) for Spanish customers.40404040A
dobAlphanumeric
Max 10 characters.
YYYY-MM-DD
RCustomer date of birth. If not sent, the widget will request it. Quix is only available to customers of legal age.1990-01-01
ipAddressAlphanumeric
Max 45 characters.
Format IPv4 or IPv6
RCustomer’s IP address.192.158.1.38
operationTypeAlphanumeric
Max 45 characters
OSpecifies type of operation to carry out.
Values accepted:
– debit (default): Payment transaction. Meaning, the funds go from the customer’s account to the merchant.
– credit: Payment into customer’s account. EMeaning the funds go from the merchant to the customer’s account. For example, prize money. Don’t confuse with refunds. These have their own type of transaction.
debit
paymentMethodValue accepted:
– “instalments”
OSub method of the payment solution.instalments
telephoneAlphanumeric
Max 45 characters
OPhone number. With country code.+34600600600
languageISO 639-1
-ES
-EN
OLanguage to show customer the payment gateway. It is only available in Spanish and English.ES
paysolExtendedDataThe parameters it contains are on the following tables.RJSON object with extra information about the customer, billing and cart.N/A

Parameters by service

Below you have tables with the parameters required depending on the service your business provides. The type shows whether they are required (R) or optional (O). All these parameters go in “paysolExtendedData”.

Note: These tables have parameters that are JSON objects that contain other parameters inside. You can distinguish them by their darker color, and some of the fields they contain are also indicated. You can see the structure more clearly in the JSON section.

FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months. 3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Artículo 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceproduct
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− descriptionAlphanumericODescription of the item.Computer
−−− urlAlphanumericOURL of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− image_urlAlphanumericOURL for a picture of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2/imagen.jpg
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− total_discountNumerical with decimals
NNN.nn
OTotal discounts applied to all the units of the item.23.50
−−− brandAlphanumericObrand or manufacturer of the item.Brand
−−− mpnAlphanumericOitem manufacturer code.8234F
shippingObject.
Can contain:
– name
– first_name
– last_name
– company
– email
– phone_number
– address
OJSON object with extra informationN/A
− nameAlphanumericOName of the shipping company.Company S.L.
− first_nameAlphanumericORecipient’s name.Pablo
− last_nameAlphanumericORecipient’s surname(s).Ferrer
− companyAlphanumericORecipient’s company name.Company S.A.
− emailAlphanumericORecipient’s email address.email@correo.es
− phone_numberAlphanumeric
+34XXXXXXXXX
ORecipient’s phone number.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
+34600600600
Encoded:
%2B34600600600
− methodAlphanumeric
home: Send to home
digital: digital shipment
postal: pick up at post office
pick_up_point: pick-up point
pick_up_store: pick up in shop
pick_up_warehouse: collect from warehouse
own: own method
click_collect: collect in shop
OProduct or service shipping method.home
− addressObject.
Must contain these fields:
– street_address
– street_address_2
– postal_code
– city
– country
OJSON object with extra information for shipping address.N/A
−− street_addressAlphanumericOType of street, street name and number for shipping address.Calle canales 2
−− street_address_2AlphanumericOUnit number for shipping address.3 F
−− postal_codeAlphanumericOPostcode for shipping address.08003
−− cityAlphanumericOCity for shipping addressBarcelona
−− countryAlphanumericOCountry for shipping addressESP
FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months.3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Item 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceproduct
−−− end_dateAlphanumeric
YYYY-MM-DDTHH:mm:ss+HH:mm
RService end date. The end date must be after the request date and the service start date
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2023-12-31T23:59:59+01:00
Encoded:
2023-12-31T23:59:59%2B01:00%2B
−−− start_dateAlphanumeric
YYYY-MM-DDTHH:mm:ss+HH:mm
OService start date
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2023-01-01T00:00:00+01:00
Encoded:
2023-01-01T00:00:00%2B01:00
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− descriptionAlphanumericODescription of the service.Computer
−−− urlAlphanumericOURL of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− image_urlAlphanumericOURL for a picture of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2/imagen.jpg
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− total_discountNumerical with decimals
NNN.nn
OTotal discounts applied to all the units of the service.23.50
FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months.3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Item 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceproduct
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− departure_dateAlphanumeric
YYYY-MM-DDTHH:mm:ss+HH:mm
RDeparture date and time.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2023-01-01T00:00:00+01:00
Encode:
2023-01-01T00:00:00%2B01:00
−−− passengersObject.
Must contain a JSON with these obligatory fields for each passenger:
– first_name
– last_name
RJSON object with passenger informationN/A
−−−− first_nameAlphanumericRPassenger namePablo
−−−− last_nameAlphanumericRPassenger surnameFerrer
−−− segmentsObject.
Must contain a JSON with these obligatory fields for each passenger:
– iata_departure_code
– iata_destination_code
RJSON object with departure and arrival pointsN/A
−−−− iata_departure_codeAlphanumericRIATA code for departure airportMAD
−−−− iata_destination_codeAlphanumericRIATA code for arrival airportBCN
FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months.3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Items 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceaccommodation
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− checkin_dateYYYY-MM-DDTHH:mm:ss+HH:mmRCheck-in date and time.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2024-01-01T16:00:00+00:00
Codificado:
2024-01-01T16:00:00%2B00:00
−−− checkout_dateYYYY-MM-DDTHH:mm:ss+HH:mmRCheck-out date and time.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2024-01-06T12:00:00+00:00
Codificado:
2024-01-06T12:00:00%2B00:00
−−− establishment_nameAlphanumericREstablishment nameHotel 2
−−− guestsWhole numberRNumber of guests2
−−− descriptionAlphanumericODescription of the item.Ordenador
−−− urlAlphanumericOURL of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2
Codificado:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− image_urlAlphanumericOURL for a picture of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2/imagen.jpg
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− total_discountNumerical with decimals
NNN.nn
OTotal discounts applied to all the units of the item.23.50
−−− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information of the accommodation address.N/A
−−−− street_addressAlphanumericRType of street, street name and number of the accommodation address.Calle canales 2
−−−− street_address_2AlphanumericOUnit number of the accommodation address3 F
−−−− postal_codeAlphanumericRPostcode of the accommodation address08003
−−−− cityAlphanumericRCity of the accommodation addressBarcelona
−−−− countryAlphanumericRCountry of the accommodation addressESP

JSON by service

Below you have sample JSON with the basic parameters (not encrypted) by service: 

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

				
					[merchantId] => 12345
[productId] => 14983
[merchantTransactionId] => 13035363
[amount] => 99
[currency] => EUR
[country] => ES
[customerId] => 1
[paymentSolution] => quix
[statusURL] => https://test.com/status
[successURL] => https://test.com/success
[errorURL] => https://test.com/error
[cancelURL] => https://test.com/cancel
[awaitingURL] => https://test.com/awaiting
[firstName] => Nombre
[lastName] => Apellido
[customerEmail] => nombre.apellido@correo.com
[customerNationalId] => 99999999R
[customerCountry] => ES
[dob] => 1981-10-01
[ipAddress] => 192.168.1.1
[paysolExtendedData] => {
    "product": "instalments",
    "billing": {
        "first_name": "Nombre",
        "last_name": "Apellido",
        "address": {
            "street_address": "Nombre de la vía y nº",
            "postal_code": "08003",
            "city": "Barcelona",
            "country": "ESP"
        }
    },
    "cart": {
        "currency": "EUR",
        "total_price_with_tax": 99.00,
        "items": [{
                "article": {
                    "name": "Producto físico",
                    "type": "product",
                    "category": "physical",
                    "reference": "4912345678903",
                    "unit_price_with_tax": 49.50
                },
                "units": 2,
                "total_price_with_tax": 99.00,
                "auto_shipping": true
            },
        ]
    }
};
				
			
				
					[merchantId] => 12345
[productId] => 14983
[merchantTransactionId] => 13035363
[amount] => 99.99
[currency] => EUR
[country] => ES
[customerId] => 1
[paymentSolution] => quix
[statusURL] => https://test.com/status
[successURL] => https://test.com/success
[errorURL] => https://test.com/error
[cancelURL] => https://test.com/cancel
[awaitingURL] => https://test.com/awaiting
[firstName] => Nombre
[lastName] => Apellido
[customerEmail] => nombre.apellido@correo.com
[customerNationalId] => 99999999R
[customerCountry] => ES
[dob] => 1981-10-01
[ipAddress] => 192.168.1.1
[paysolExtendedData] => {
   "product":"instalments",
   "billing":{
      "first_name":"Nombre",
      "last_name":"Apellido",
      "address":{
         "street_address":"Nombre de la vía y nº",
         "postal_code":"08003",
         "city":"Barcelona",
         "country":"ESP"
      }
   },
   "cart":{
      "currency":"EUR",
      "total_price_with_tax":99.99,
      "items":[
         {
            "article":{
               "name":"Nombre del servicio",
               "type":"service",
               "category":"digital",
               "reference":"4912345678904",
               "unit_price_with_tax":99.99,
               "end_date":"2023-12-31T23:59:59+01:00" // El símbolo "+" de este parámetro debe someterse a URL Encode
            },
            "units":1,
            "total_price_with_tax":99.99,
            "auto_shipping": true
         }
      ]
   }
};
				
			
				
					[merchantId] => 12345
[productId] => 14983
[merchantTransactionId] => 13035363
[amount] => 99.99
[currency] => EUR
[country] => ES
[customerId] => 1
[paymentSolution] => quix
[statusURL] => https://test.com/status
[successURL] => https://test.com/success
[errorURL] => https://test.com/error
[cancelURL] => https://test.com/cancel
[awaitingURL] => https://test.com/awaiting
[firstName] => Nombre
[lastName] => Apellido
[customerEmail] => nombre.apellido@correo.com
[customerNationalId] => 99999999R
[customerCountry] => ES
[dob] => 1981-10-01
[ipAddress] => 192.168.1.1
[paysolExtendedData] => {
    "product": "instalments",
    "billing": {
        "first_name": "Nombre",
        "last_name": "Last Name",
        "address": {
            "street_address": "Nombre de la vía y n 13",
            "postal_code": "08003",
            "city": "Barcelona",
            "country": "ESP"
        }
    },
    "cart": {
        "currency": "EUR",
        "total_price_with_tax": 99.99,
        "items": [{
            "article": {
                "name": "Vuelo MAD - BCN",
                "type": "flight",
                "category": "digital",
                "reference": "4912345678904",
                "unit_price_with_tax": 99.99,
                "departure_date": "2024-01-01T00:00:00+01:00", // El símbolo "+" de este parámetro debe someterse a URL Encode
                "passengers": [{
                    "first_name": "Nombre1",
                    "last_name": "Apellido1",
                }, ],
                "segments": [{
                    "iata_departure_code": "MAD",
                    "iata_destination_code": "BCN",
                }],

            },
            "units": 1,
            "total_price_with_tax": 99.99,
            "auto_shipping": true
        }]
    }
};
				
			
				
					[merchantId] => 12345
[productId] => 14983
[merchantTransactionId] => 13035363
[amount] => 99.99
[currency] => EUR
[country] => ES
[customerId] => 1
[paymentSolution] => quix
[statusURL] => https://test.com/status
[successURL] => https://test.com/success
[errorURL] => https://test.com/error
[cancelURL] => https://test.com/cancel
[awaitingURL] => https://test.com/awaiting
[firstName] => Nombre
[lastName] => Apellido
[customerEmail] => nombre.apellido@correo.com
[customerNationalId] => 99999999R
[customerCountry] => ES
[dob] => 1981-10-01
[ipAddress] => 192.168.1.1
[paysolExtendedData] => {
    "product": "instalments",
    "billing": {
        "first_name": "Nombre",
        "last_name": "Apellido",
        "address": {
            "street_address": "Nombre de la vía y nº",
            "postal_code": "08003",
            "city": "Barcelona",
            "country": "ESP"
        }
    },
    "cart": {
        "currency": "EUR",
        "total_price_with_tax": 99.99,
        "items": [{
            "article": {
                "name": "Alojamiento",
                "type": "accommodation",
                "category": "physical",
                "reference": "4912345678904",
                "unit_price_with_tax": 99.99,
                "checkin_date": "2024-01-01T16:00:00+00:00", // El símbolo "+" de este parámetro debe someterse a URL Encode
                "checkout_date": "2024-01-06T12:00:00+00:00", // El símbolo "+" de este parámetro debe someterse a URL Encode
                "establishment_name": "Hotel Ejemplo",
                "address": {
                    "street_address": "Tipo, nombre y n.º de la vía",
                    "postal_code": "00000",
                    "city": "Madrid",
                    "country": "ESP"
                },
                "guests": 3
            },
            "units": 1,
            "total_price_with_tax": 99.99,
            "auto_shipping": true
        }]
    }
};
				
			

Response

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

This is a sample response for final payment of a product:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response operation-size="1">
	<message>Quix callback response has finished successfully, for the transaction Id: 7737819</message>
	<operations>
		<operation sorted-order="1">
			<amount>99.0</amount>
			<currency>EUR</currency>
			<details>{"order_id":"13214d8b-6380-414c-b018-339f9e426048","event":"order_capture_created","triggered_at":"2023-11-23T13:54:13+00:00","order_reference_1":"59376738","order_reference_2":"7737819","description":"Capture auto-generated by auto shipping","captured_amount":99,"captured_items":[{"id":"ac11140a-4cfd-40f9-a93e-2f3973266af7","total_discount":{"currency":"EUR","amount":0},"total_price_with_tax":{"currency":"EUR","amount":99},"units":2,"article":{"id":"b03fc588-4f76-484c-9fe4-5ce789b5da6a","type":"online_product","name":"Nombre del servicio 2","category":"physical","price":{"currency":"EUR","amount":99},"reference":"4912345678903","description":"Descripcin articulo 2"}}]}</details>
			<merchantTransactionId>59376738</merchantTransactionId>
			<message>Transaction change to SUCCESS.</message>
			<operationType>DEBIT</operationType>
			<paymentSolution>quix</paymentSolution>
			<status>SUCCESS</status>
			<transactionId>7737819</transactionId>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>22da7b17_3644_4cdf_8645_2ae23c2e13bc</uuid>
			</respCode>
		</operation>
	</operations>
	<optionalTransactionParams/>
	<status>SUCCESS</status>
	<workFlowResponse>
		<id>389281</id>
		<name>BNPL</name>
		<version>0</version>
	</workFlowResponse>
</response>
				
			

JavaScript Integration

In this section, you will see how to integrate Quix with JavaScript.

Getting the authToken

The first step to get the authToken so we can render the cashier. A request must be sent with at least the info shown below: 

				
					{   
    "merchantId": "12345",
    "merchantKey": "dd0bc115-6f8f-4e65-9447-e06862eb62ec",
    "productId": "123450001",
    "currency": "EUR",
    "country": "ES",
    "customerId": "customer25879",
    "operationType": "debit"
}
				
			
				
					curl --location 'https://epgjs-mep-stg.addonpayments.com/auth' \
--header 'Content-Type: application/json' \
--data '{
    "merchantId": "12345",
    "merchantKey": "dd0bc115-6f8f-4e65-9447-e06862eb62ec",
    "productId": "123450001",
    "currency": "EUR",
    "country": "ES",
    "customerId": "customer25879",
    "operationType": "DEBIT"
}'
				
			

If the request is valid, Addon Payments will return an “authToken” for you to render the cashier on the frontend of your page. If the request isn’t valid, you will get a message like you see on the second tab:

				
					{
    "authToken": "50fe7cab-63c4-4197-9484-50f9a0792f8b"
}
				
			
				
					{
    "error": true,
    "errorMessage": "Invalid merchant id or merchant key",
    "errorCode": 400
}

				
			

Your platform must store this code to continue to the next step. The authorization tokens received have the following characteristics:

  • Valid for 30 minutes.
  • It can be used several times to link to the payment gateway.

Rendering the Quix cashier with JavaScript

Before calling the function to link to the payment gateway (window[‘EPGJS’].renderIntegratedCashier), you have to do these steps so the payment solution will work correctly:

1. Set up “setMerchantPrePayCallback”, a function that will receive the call at the charge endpoint of the EPGJS mep service.

window['EPGJS_COMM'].setMerchantPrePayCallback(prepayCallback);

2. You have to render the cashier on the frontend. This is a sample code:

				
					<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>JS render cashier</title>
    <style>
        #render-cashier {
            width: 350px;
            margin-top: 100px;
            border: 1px solid #ccc;
            padding: 20px;
            text-align: center;
        }
    </style>
</head>

<body>
    <div id="epgjs-cashier-div"></div>
    <script src="https://epgjs-rendercashier-stg.easypaymentgateway.com/js/public/epgjs-4.0.0-min.js"></script>
    <script>
        var authtoken = "5bb1dfd6-7692-47c3-beaf-2326fd74ee89"; // Add here your authToken
        function prePayCallback(prepayData) {
            // Show prepayToken This is just for example purposes only and should not be shown to your customer
            alert(JSON.stringify(prepayData, null, 2));
        }
        function displayingMessageOnButtonClick() {
            EPGJS_COMM.setEpgBaseUrl('https://epgjs-web-stg.easypaymentgateway.com/');
            EPGJS.renderIntegratedCashier(authtoken, 'epgjs-cashier-div', 'quix');
            EPGJS_COMM.setMerchantPrePayCallback(prePayCallback);
            window['EPGJS'].setInitPaysolParam({ "product": "instalments", "amount": 7000, "currency": "EUR", "locale": "es-ES", "decimalSeparator": ".", "thousandSeparator": ",", "style": "width: 100%", "styleBranding": "lending_hub", "styleVariant": "select", "styleColor": "#34aeeb" });
        }
        window.onload = displayingMessageOnButtonClick;
    </script>
</body>
</html>
				
			

3. The “setInitPaysolParam” initialization function is a JSON with the parameters from the table. The function call shows how to form them.

FieldFormat and values acceptedTypeDescription
productinstalmentsRFinancing product to apply in the financing widget.
amountWhole number.
Example, 123,45 would be: 12345
Ramount of financing to calculate (product/cart) in cents.

currencyEURRISO-4217 code for the currency. Currently, only accepts Euro.
localeAlphanumeric
Format RFC 1766
es-ES
en-UK
RCustomer language.
Currently only available in Spanish or English.
decimalSeparator.
,
RSymbol to separate decimals in the amounts. In Spain the decimal symbol is the comma (,).
thousandSeparator.
,
RSymbol to separate thousands in the amounts. In Spain the thousands separator is the point (.)
styleBrandinglending_hubRVersion of the widget to load, which changes the appearance and legal texts shown. Provided by Quix.
stylewidth: 100%RStyles to apply for financing widget. Format column value must be sent.
styleVarianttext
select
text_banner
select_banner
RType of widget to load.
styleColorHexadecimal #RRGGBB
#34aeeb
RColour of some elements.
languagees
en
OLanguage to show widget to customer. Currently only available in Spanish or English.
				
					window['EPGJS'].setInitPaysolParam({ "product": "instalments", "amount": 7000, 
"currency": "EUR", "locale": "es-ES", "decimalSeparator": ".", 
"thousandSeparator": ",", "style": "width: 100%", "styleBranding": 
"lending_hub", "styleVariant": "select", "styleColor": "#34aeeb" });
				
			

Charge

With the cashier rendered and the “prepayCallback” function established, you can make a charge. These are the parameters to use. The type shows whether they are required or optional.

FieldFormatTypeDescriptionExample
prepayTokenAlphanumeric
UUID Format
R (only in JS integration)It is sent in the request header. AP returns this reference after the customer enters their details in the JS payment form. It is the reference that links to the customer’s card or account details for JavaScript integration.97fe3726-adb1-4e24-9fb8-92593a75ae74
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
Accepted value:
– quix
RName of the payment solution to process the transaction. In this case “quix”quix
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.pedido_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.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
firstNameAlphabetical
Max 100 characters
RCustomer’s name. If more than one, use spaces between them.Pablo
lastNameAlphabetical
Max 100 characters
RCustomer’s surname(s)
Both surnames must be sent, with a space between them. If both aren’t sent, the Quix widget will request them
Ferrer Calas
customerEmailAlphabetical
Max 100 characters
RCustomer’s email address.correo@mail.com
customerCountryCode ISO 3166-1 Alfa-2
“ES”
RCustomer’s country. Currently only available for Spain.ES
customerNationalIdAlphanumeric
Max 100 characters
RDNI (with letter) for Spanish customers.40404040A
dobAlphanumeric
Max 10 characters.
YYYY-MM-DD
RCustomer date of birth. If not sent, the widget will request it. Quix is only available to customers of legal age.1990-01-01
ipAddressAlphanumeric
Max 45 characters.
Format IPv4 or IPv6
RCustomer’s IP address.192.158.1.38
operationTypeAlphanumeric
Max 45 characters
OSpecifies type of operation to carry out.
Values accepted:
– debit (default): Payment transaction. Meaning, the funds go from the customer’s account to the merchant.
– credit: Payment into customer’s account. EMeaning the funds go from the merchant to the customer’s account. For example, prize money. Don’t confuse with refunds. These have their own type of transaction.
debit
paymentMethodValue accepted:
– “instalments”
OSub method of the payment solution.instalments
telephoneAlphanumeric
Max 45 characters
OPhone number. With country code.+34600600600
languageISO 639-1
-ES
-EN
OLanguage to show customer the payment gateway. It is only available in Spanish and English.ES
paysolExtendedDataThe parameters it contains are on the following tables.RJSON object with extra information about the customer, billing and cart.N/A

Parameters by service

Below you have tables with the parameters required depending on the service your business provides. The type shows whether they are required (R) or optional (O). All these parameters go in “paysolExtendedData”.

Note: These tables have parameters that are JSON objects that contain other parameters inside. You can distinguish them by their darker color, and some of the fields they contain are also indicated. You can see the structure more clearly in the JSON section.

FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months. 3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Artículo 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceproduct
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− descriptionAlphanumericODescription of the item.Computer
−−− urlAlphanumericOURL of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− image_urlAlphanumericOURL for a picture of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2/imagen.jpg
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− total_discountNumerical with decimals
NNN.nn
OTotal discounts applied to all the units of the item.23.50
−−− brandAlphanumericObrand or manufacturer of the item.Brand
−−− mpnAlphanumericOitem manufacturer code.8234F
shippingObject.
Can contain:
– name
– first_name
– last_name
– company
– email
– phone_number
– address
OJSON object with extra informationN/A
− nameAlphanumericOName of the shipping company.Company S.L.
− first_nameAlphanumericORecipient’s name.Pablo
− last_nameAlphanumericORecipient’s surname(s).Ferrer
− companyAlphanumericORecipient’s company name.Company S.A.
− emailAlphanumericORecipient’s email address.email@correo.es
− phone_numberAlphanumeric
+34XXXXXXXXX
ORecipient’s phone number.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
+34600600600
Encoded:
%2B34600600600
− methodAlphanumeric
home: Send to home
digital: digital shipment
postal: pick up at post office
pick_up_point: pick-up point
pick_up_store: pick up in shop
pick_up_warehouse: collect from warehouse
own: own method
click_collect: collect in shop
OProduct or service shipping method.home
− addressObject.
Must contain these fields:
– street_address
– street_address_2
– postal_code
– city
– country
OJSON object with extra information for shipping address.N/A
−− street_addressAlphanumericOType of street, street name and number for shipping address.Calle canales 2
−− street_address_2AlphanumericOUnit number for shipping address.3 F
−− postal_codeAlphanumericOPostcode for shipping address.08003
−− cityAlphanumericOCity for shipping addressBarcelona
−− countryAlphanumericOCountry for shipping addressESP
FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months.3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Item 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceproduct
−−− end_dateAlphanumeric
YYYY-MM-DDTHH:mm:ss+HH:mm
RService end date. The end date must be after the request date and the service start date
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2023-12-31T23:59:59+01:00
Encoded:
2023-12-31T23:59:59%2B01:00%2B
−−− start_dateAlphanumeric
YYYY-MM-DDTHH:mm:ss+HH:mm
OService start date
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2023-01-01T00:00:00+01:00
Encoded:
2023-01-01T00:00:00%2B01:00
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− descriptionAlphanumericODescription of the service.Computer
−−− urlAlphanumericOURL of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− image_urlAlphanumericOURL for a picture of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2/imagen.jpg
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− total_discountNumerical with decimals
NNN.nn
OTotal discounts applied to all the units of the service.23.50
FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months.3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Item 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceproduct
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− departure_dateAlphanumeric
YYYY-MM-DDTHH:mm:ss+HH:mm
RDeparture date and time.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2023-01-01T00:00:00+01:00
Encode:
2023-01-01T00:00:00%2B01:00
−−− passengersObject.
Must contain a JSON with these obligatory fields for each passenger:
– first_name
– last_name
RJSON object with passenger informationN/A
−−−− first_nameAlphanumericRPassenger namePablo
−−−− last_nameAlphanumericRPassenger surnameFerrer
−−− segmentsObject.
Must contain a JSON with these obligatory fields for each passenger:
– iata_departure_code
– iata_destination_code
RJSON object with departure and arrival pointsN/A
−−−− iata_departure_codeAlphanumericRIATA code for departure airportMAD
−−−− iata_destination_codeAlphanumericRIATA code for arrival airportBCN
FieldFormatTypeDescriptionExample
productAlphanumericRType of financing. Currently, the financing available is “instalments “, which allows customers to spread payments out over 10 to 12 months.
The value of the “paymentMethod” parameter has priority over the one sent in this key.
instalments
periodInteger
Maximum 2 digits
OIndicates the months that are selected by default in the payment cashier for payments. Although it is sent, the customer will be able to select the frequency of months.3
disableFormEditionBoolean:
– true (blocks fields)
– false (doesn’t block fields)
OBlocks the fields reported in the request (name, surname, etc.) so that they cannot be modified in the financing form by the customer.true
confirmation_cart_dataObject.
May contain these fields:
– url
OJSON object with extra cart information.N/A
− urlAlphanumericOURL on your ecommerce platform where Nemuru can check for any changes in the cart information.
IMPORTANT: The URLs must be encoded with URL Encode.
https://micomercio.com/url_verificacion_carrito.php
Encoded: https%3A%2F%2Fmicomercio.com%2Furl_verificacion_carrito.php
customerObject.
May contain these fields
– locale
– userAgent
OJSON object with extra customer information.N/A
− localeRFC-1766
– es
– en
OCustomer’s language on the merchant’s platform in RFC-1766 format.es
− userAgentAlphanumeric
Max 256 characters
OUser agent for the customer’s browser Get it from “navigator.userAgent”.Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
− titleAlphanumericOCustomer title (Mr, Ms, etc).Mr.
− document_expiration_dateAlphanumeric
YYYY-MM-ddTHH:mm:ss
OID card expiry date.2030-12-31T00:00:00
− logged_inBoolean
– true
– false
OShows whether the customer is registered on the platform. “true” if registered, “false” if not.true
billingObject.
Must contain these fields:
– first_name
– last_name
– address
RJSON object that contains extra billing information.N/A
− first_nameAlphanumericRCustomer’s name for billing.Pablo
− last_nameAlphanumericRCustomer’s surname for billing.Ferrer
− corporate_id_numberAlphanumericOTax ID number of the company ro issue the invoice. In Spain it is a CIF. A valid CIF must be sent.U73536757
− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information for the billing address.N/A
−− street_addressAlphanumericRType of street, street name and number for billing address.Calle canales 2
−− street_address_2AlphanumericOUnit number for billing address3 F
−− postal_codeAlphanumericRPostcode for billing address08003
−− cityAlphanumericRCity for billing addressBarcelona
−− countryAlphanumericRCountry for billing addressESP
cartObject.
Must contain these fields:
– total_price_with_tax
– currency
– items
RJSON object with extra cart informationN/A
− total_price_with_taxNumerical with decimal (use point to separate decimal places).
NNN.nn
RCart total. Must match the “amount”.123.45
− currencyISO-4217RCurrency in ISO-4217EUR
− referenceAlphanumericOCart ID on your ecommerce platform.
Useful for Quix to identify attempts to pay with different customer data for the same cart.
76t7y7sau8y398y
− itemsObject.
Must contain these fields:
– article
– units
– total_price_with_tax
– auto_shipping
RJSON object with attributes inside. Merchants registered as “Services” can only include 1 item per request.N/A
−− unitsWhole numberRNumber of units of the item2
−− total_price_with_taxNumerical with decimals
NNN.nn
RTotal price of the units of the item. Must match the number of units times their value.246.90
−− auto_shippingBoolean
– false
– true
RShows whether the product will be shipped automatically after receiving authorization.true
−− articleObject.
Must contain these fields:
– name
– type
– category
– reference
– unit_price_with_tax
RJSON object with extra information on a product or service in the cart.N/A
−−− nameAlphanumericRName of item or service.Items 2
−−− typeValues accepted:
– “product”: product
– “service”: service
– “accommodation”: accommodation
-“flight”: flight
RType of item or serviceaccommodation
−−− categoryValues accepted:
-“physical”: physical item
-“digital”: digital item
-“gift_card”: gift card
-“discount”: discount
-“shipping_fee”: shipping fees
-“sales_tax”: taxes
-“store_credit_surcharge”: store credit surcharge
RCategory of item or servicephysical
−−− referenceAlphanumericRItem reference on your ecommerce platform1234A
−−− unit_price_with_taxNumerical with decimals
NNN.nn
RUnit price for the item123.45
−−− checkin_dateYYYY-MM-DDTHH:mm:ss+HH:mmRCheck-in date and time.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2024-01-01T16:00:00+00:00
Codificado:
2024-01-01T16:00:00%2B00:00
−−− checkout_dateYYYY-MM-DDTHH:mm:ss+HH:mmRCheck-out date and time.
IMPORTANT: The dates and phone numbers must have the “+” symbol with URL encode.
2024-01-06T12:00:00+00:00
Codificado:
2024-01-06T12:00:00%2B00:00
−−− establishment_nameAlphanumericREstablishment nameHotel 2
−−− guestsWhole numberRNumber of guests2
−−− descriptionAlphanumericODescription of the item.Ordenador
−−− urlAlphanumericOURL of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2
Codificado:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− image_urlAlphanumericOURL for a picture of the product or service on your platform.
IMPORTANT: The URLs must be encoded with URL Encode.
https://www.micomercio.com/articulo2/imagen.jpg
Encoded:
https%3A%2F%2Fwww.micomercio.com%2Farticulo2
−−− total_discountNumerical with decimals
NNN.nn
OTotal discounts applied to all the units of the item.23.50
−−− addressObject.
Must contain these fields:
– street_address
– postal_code
– city
– country
RJSON object with extra information of the accommodation address.N/A
−−−− street_addressAlphanumericRType of street, street name and number of the accommodation address.Calle canales 2
−−−− street_address_2AlphanumericOUnit number of the accommodation address3 F
−−−− postal_codeAlphanumericRPostcode of the accommodation address08003
−−−− cityAlphanumericRCity of the accommodation addressBarcelona
−−−− countryAlphanumericRCountry of the accommodation addressESP

JSON by service

Below you have sample JSON with the basic parameters (not encrypted) by service: 

				
					{
  "currency": "EUR",
  "amount": 99.00,
  "country": "ES",
  "customerId": "1",
  "merchantId": "12345",
  "merchantTransactionId": "13035363",
  "paymentSolution": "quix",
  "statusURL": "https://test.com/status",
  "successURL": "https://test.com/success",
  "errorURL": "https://test.com/error",
  "cancelURL": "https://test.com/cancel",
  "awaitingURL": "https://test.com/awaiting",
  "firstName": "Nombre",
  "lastName": "Apellido",
  "productId": "14893",
  "customerEmail": "nombre.apellido@correo.com",
  "customerNationalId": "99999999R",
  "customerCountry": "ES",
  "dob": "1981-10-01",
  "ipAdress": "192.168.1.1",
  "paysolExtendedData": {
    "product": "instalments",
    "billing": {
        "first_name": "Nombre",
        "last_name": "Apellido",
        "address": {
            "street_address": "Nombre de la vía y nº",
            "postal_code": "08003",
            "city": "Barcelona",
            "country": "ESP"
        }
    },
    "cart": {
        "currency": "EUR",
        "total_price_with_tax": 99.00,
        "items": [{
                "article": {
                    "name": "Producto físico",
                    "type": "product",
                    "category": "physical",
                    "reference": "4912345678903",
                    "unit_price_with_tax": 49.50
                },
                "units": 2,
                "total_price_with_tax": 99.00,
                "auto_shipping": true
            },
        ]
    }
};
				
			
				
					{
  "currency": "EUR",
  "amount": 99.99,
  "country": "ES",
  "customerId": "1",
  "merchantId": "12345",
  "merchantTransactionId": "13035363",
  "paymentSolution": "quix",
  "statusURL": "https://test.com/status",
  "successURL": "https://test.com/success",
  "errorURL": "https://test.com/error",
  "cancelURL": "https://test.com/cancel",
  "awaitingURL": "https://test.com/awaiting",
  "firstName": "Nombre",
  "lastName": "Apellido",
  "productId": "14893",
  "customerEmail": "nombre.apellido@correo.com",
  "customerNationalId": "99999999R",
  "customerCountry": "ES",
  "dob": "1981-10-01",
  "ipAdress": "192.168.1.1",
  "paysolExtendedData": {
   "product":"instalments",
   "billing":{
      "first_name":"Nombre",
      "last_name":"Apellido",
      "address":{
         "street_address":"Nombre de la vía y nº",
         "postal_code":"08003",
         "city":"Barcelona",
         "country":"ESP"
      }
   },
   "cart":{
      "currency":"EUR",
      "total_price_with_tax":99.99,
      "items":[
         {
            "article":{
               "name":"Nombre del servicio",
               "type":"service",
               "category":"digital",
               "reference":"4912345678904",
               "unit_price_with_tax":99.99,
               "end_date":"2023-12-31T23:59:59+01:00" // El símbolo "+" de este parámetro debe someterse a URL Encode
            },
            "units":1,
            "total_price_with_tax":99.99,
            "auto_shipping": true
         }
      ]
   }
};
				
			
				
					{
  "currency": "EUR",
  "amount": 99.99,
  "country": "ES",
  "customerId": "1",
  "merchantId": "12345",
  "merchantTransactionId": "13035363",
  "paymentSolution": "quix",
  "statusURL": "https://test.com/status",
  "successURL": "https://test.com/success",
  "errorURL": "https://test.com/error",
  "cancelURL": "https://test.com/cancel",
  "awaitingURL": "https://test.com/awaiting",
  "firstName": "Nombre",
  "lastName": "Apellido",
  "productId": "14893",
  "customerEmail": "nombre.apellido@correo.com",
  "customerNationalId": "99999999R",
  "customerCountry": "ES",
  "dob": "1981-10-01",
  "ipAdress": "192.168.1.1",
  "paysolExtendedData": {
    "product": "instalments",
    "billing": {
        "first_name": "Nombre",
        "last_name": "Last Name",
        "address": {
            "street_address": "Nombre de la vía y n 13",
            "postal_code": "08003",
            "city": "Barcelona",
            "country": "ESP"
        }
    },
    "cart": {
        "currency": "EUR",
        "total_price_with_tax": 99.99,
        "items": [{
            "article": {
                "name": "Vuelo MAD - BCN",
                "type": "flight",
                "category": "digital",
                "reference": "4912345678904",
                "unit_price_with_tax": 99.99,
                "departure_date": "2024-01-01T00:00:00+01:00", // El símbolo "+" de este parámetro debe someterse a URL Encode
                "passengers": [{
                    "first_name": "Nombre1",
                    "last_name": "Apellido1",
                }, ],
                "segments": [{
                    "iata_departure_code": "MAD",
                    "iata_destination_code": "BCN",
                }],

            },
            "units": 1,
            "total_price_with_tax": 99.99,
            "auto_shipping": true
        }]
    }
};
				
			
				
					{
  "currency": "EUR",
  "amount": 99.99,
  "country": "ES",
  "customerId": "1",
  "merchantId": "12345",
  "merchantTransactionId": "13035363",
  "paymentSolution": "quix",
  "statusURL": "https://test.com/status",
  "successURL": "https://test.com/success",
  "errorURL": "https://test.com/error",
  "cancelURL": "https://test.com/cancel",
  "awaitingURL": "https://test.com/awaiting",
  "firstName": "Nombre",
  "lastName": "Apellido",
  "productId": "14893",
  "customerEmail": "nombre.apellido@correo.com",
  "customerNationalId": "99999999R",
  "customerCountry": "ES",
  "dob": "1981-10-01",
  "ipAdress": "192.168.1.1",
  "paysolExtendedData": {
    "product": "instalments",
    "billing": {
        "first_name": "Nombre",
        "last_name": "Apellido",
        "address": {
            "street_address": "Nombre de la vía y nº",
            "postal_code": "08003",
            "city": "Barcelona",
            "country": "ESP"
        }
    },
    "cart": {
        "currency": "EUR",
        "total_price_with_tax": 99.99,
        "items": [{
            "article": {
                "name": "Alojamiento",
                "type": "accommodation",
                "category": "physical",
                "reference": "4912345678904",
                "unit_price_with_tax": 99.99,
                "checkin_date": "2024-01-01T16:00:00+00:00", // El símbolo "+" de este parámetro debe someterse a URL Encode
                "checkout_date": "2024-01-06T12:00:00+00:00", // El símbolo "+" de este parámetro debe someterse a URL Encode
                "establishment_name": "Hotel Ejemplo",
                "address": {
                    "street_address": "Tipo, nombre y n.º de la vía",
                    "postal_code": "00000",
                    "city": "Madrid",
                    "country": "ESP"
                },
                "guests": 3
            },
            "units": 1,
            "total_price_with_tax": 99.99,
            "auto_shipping": true
        }]
    }
};
				
			

First response

The charge response includes, among others, these parameters: “nemuruCartHash” and “nemuruAuthToken”. The response “status” is “AWAITING_PAYSOL”, which shows the transaction isn’t finished yet. 

				
					<payfrex-response operation-size="1">
    <message>WorkFlow has finished successfully, for transaction Id: 463689</message>
    <operations>
      <operation sorted-order="1">
        <amount>10.0</amount>
        <currency>EUR</currency>
        <details>{"orderId":"250fefd6-024b-4efb-bb20-c64315ced79e","authToken":"l2PH2noUxxrf702ZMpet8fJbGwtz2vJV"}</details>
        <merchantTransactionId>687259596</merchantTransactionId>
        <message>Transaction was awaiting paysol.</message>
        <operationType>DEBIT</operationType>
        <optionalTransactionParams/>
        <payFrexTransactionId>463689</payFrexTransactionId>
        <paymentDetails>
          <extraDetails>
            <entry>
              <key>nemuruAuthToken</key>
              <value>l2PH2noUxxrf702ZMpet8fJbGwtz2vJV</value>
            </entry>
            <entry>
              <key>nemuruCartHash</key>
              <value>250fefd6-024b-4efb-bb20-c64315ced79e</value>
            </entry>
          </extraDetails>
        </paymentDetails>
        <paymentSolution>nemuru</paymentSolution>
        <status>AWAITING_PAYSOL</status>
      </operation>
    </operations>
    <status>SUCCESS</status>
    <workFlowResponse>
      <id>4975</id>
      <name>NEMURU PAY</name>
      <version>1</version>
    </workFlowResponse>
</payfrex-response>
				
			

To display the Quix widget, and with the previous data, you call the following function. (1)

Optional: If you have sent the “disableFormEdition” parameter, you must call the following function. Also, its value will come in the extraDetails of the previous answer. (2)

1: window['NEMURU'].checkoutNemuru(nemuruAuthToken, nemuruCartHash);

2 (optional): window['NEMURU'].checkoutNemuru(nemuruAuthToken, nemuruCartHash, disableFormEdition);

When the widget process finishes, this commerce function will be called:

window['NEMURU'].setStatusCallback(merchantFunction);

Second response

With the Quix widget loaded, the customer must fill in all their details to complete the transaction. If successfully completed, you will receive a notification indicating the status of the operation:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payfrex-response operation-size="1">
	<message>Quix callback response has finished successfully, for the transaction Id: 7737903</message>
	<operations>
		<operation sorted-order="1">
			<amount>200.0</amount>
			<currency>EUR</currency>
			<details>{"order_id": "f18a5ea7-afa2-47ad-b4cc-e1b326c9a67a", "event": "order_capture_created", "triggered_at": "2023-11-23T14:32:02+00:00", "order_reference_1": "26031079", "order_reference_2":"7737903", "description": "Capture auto-generated by auto shipping", "captured_amount":200, "captured_items":[{"id":"6c92 ef42-5f5d-45f7-a075-38cd126d682c", "total_discount":{"currency":"EUR", "amount":0},"total_price_with _tax":{"currency":"EUR", "amount":200},"units": 1, "article":{"id": "bfd6dc77-8153-49dc-ac67-fffabd18f f69", "type": "online_product", "name":"Nombre del servicio", "category":"physical", "price":{"currency ":"EUR", "amount":200}, "reference":"4912345678904"}}]}</details>
			<merchantTransactionId>26031079</merchantTransactionId>
			<message>Transaction change to SUCCESS.</message>
			<operationType>DEBIT</operationType>
			<transactionId>7737903</transactionId>
			<paymentSolution>quix</paymentSolution>
			<status>SUCCESS</status>
			<respCode>
				<code>0000</code>
				<message>Successful</message>
				<uuid>22da7b17_3644_4cdf_8645_2ae23c2e13bc</uuid>
			</respCode>
		</operation>
	</operations>
	<optionalTransactionParams/>
	<status>SUCCESS</status>
	<workFlowResponse>
		<id>389281</id>
		<name>BNPL</name>
		<version>0</version>
	</workFlowResponse>
</payfrex-response>
				
			

Refunds with Quix

You can make refunds with Quix in 2 ways:

1. Through the AP BackOffice Portal:

  • You can find more information on how to manage transactions through the Addon Payments Portal in the BackOffice Portal Search operations guide.
  • Important: When you click on refund in the BackOffice for a Quix transaction, a Quix pop-up will appear showing the amount of the order and the items in the order. To refund, you must select the items and click on ‘Return products‘ or ‘Devolver productos‘.
  • Upon completion of a secondary transaction via the BackOffice panel, AP will send a notification to your platform with the type of transaction and its amount to the notification URL indicated in “statusURL” in the original transaction request. You can enable your e-commerce platform to handle these notifications and update the status of transactions.

2. By sending a request to an endpoint. These are the connection URLs established for this purpose:

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

Addon Payments allows refunds of the amount of a transaction. For a refund to be possible, the transaction must meet the following conditions:

  • The date of the original transaction must be less than one (1) year old.
  • The sum of the amounts of all returns made on the original transaction may not exceed the amount of the original transaction.
  • It must be in authorized and settled status (SUCCESS).
  • It is not possible to make refunds on transactions:
    • Not captured (PENDING).
    • Voided (VOIDED).
    • Declined (FAIL).
    • Wrong (ERROR).

Refunds can’t be reversed, so you have to be sure both the transaction and the amount to refund are correct.

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 generated refund request to the URL set up for refunds (string and cURL).

				
					amount=600&operationType=debit&paymentSolution=quix&transactionId=289868
				
			
				
					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"'
				
			

Parameters of the refund request

These are the parameters to send for a refund request in Quix. The type column indicates whether the field is required/mandatory (R) or optional (O).

FieldFormatTypeDescriptionExample
transactionIdWhole number
max 100 digits
RID for the original transaction the secondary operation applies to, such as capture, release or refund.76543210
paymentSolutionAlphanumeric
max 45 characters
RName of the payment solution that processed the original transaction. Given in the response for the original transaction.quix
merchantTransactionIdMax 45 characters
Page of Latin-1 codes (ISO-8859-1)
RThis is the transaction ID on your ecommerce platform.
Allows your platform to link notifications received to the customer’s order.
Each transaction must have a unique ID.
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.600
operationTypeAlphanumeric
max 45 characters
OSpecifies type of operation to carry out.
Values accepted:
– debit (default): Payment transaction. Meaning, the funds go from the customer’s account to the merchant
– credit: Payment into customer’s account. Meaning the funds go from the merchant to the customer’s account. For example, prize money. Don’t confuse with refunds. These have their own type of transaction
debit
descriptionMax 1000 characters
Page of Latin-1 codes (ISO-8859-1)
ODescription of the transaction.
Saved in the transaction details and returned in the notification.
Doesn’t affect the transaction. Helps you identify it more easily.
Capture after delivering product

Response

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

This is an example of a response to a refund request in Quix:

				
					<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<payfrex-response operation-size="1">
    <operations>
        <operation sorted-order="1">
            <amount>600</amount>
            <currency>EUR</currency>
            <details>
                {
                  "authToken": "R1e0HcNHQ9DVwBOWmwasjHSgnevemRXd"
                }
            </details>
            <merchantTransactionId>202310021130</merchantTransactionId>
            <message>Transaction amount refunded succesfully</message>
            <operationType>REFUND</operationType>
            <optionalTransactionParams/>
            <originalAmount>600.0</originalAmount>
            <originalCurrency>EUR</originalCurrency>
            <originalPayFrexTransactionId>289867</originalPayFrexTransactionId>
            <transactionId>289868</transactionId>
            <paymentSolution>quix</paymentSolution>
            <remainingAmount>0.0</remainingAmount>
            <status>SUCCESS</status>
            <respCode>
                <code>0000</code>
                <message>Successful</message>
                <uuid>650fca40_9512_42a1_b9c8_e4e512187b88</uuid>
            </respCode>
        </operation>
    </operations>
    <status>SUCCESS</status>
</payfrex-response>
				
			

Rendering the financing calculator (optional)

Quix gives you the option to load a simulation widget using JavaScript anywhere on your ecommerce platform (on the product page, on the cart summary, etc.). This simulator or financing calculator will show the customer how much they will pay and in how many payments:

Required data

To show the simulation to your customers, you have to create a JSON with the following keys and values:

ValueDescriptionSize and formats accepted
productFinancing product to use to calculate the financing. Only one value is currently enabled.
instalments
amountAmount of financing to calculate (product/cart) in cents.Whole number.
For example, 123,45 would be: 12345
currencyISO-4217 code for the currency. The only currency currently enabled is EuroAlphabetical.
EUR
clientIdYour merchant ID on the Quix platform. You will get it from CPC when you sign up for the service.Alphanumeric.
UUID format
localeLanguage to show the customer the widget. It is currently only available in English and SpanishRCF 1766 Format
es-ES
en-UK
decimalSeparatorSymbol to separate decimals in the amounts.
In Spain the decimal symbol is the comma (,).
,
.
thousandSeparatorSymbol to separate thousands in the amounts.
In Spain the thousands separator is the point (.)
,
.
styleColorCustomize the colour used on the widget to highlight certain elements.Alphanumeric
HTML hexadecimal code #RRGGBB
styleVariantType of widget to load.Alphanumeric
– text
– select
– text_banner
– select_banner
styleBrandingVersion of the widget to load, which changes the appearance and legal texts shown. The value to send is provided by Quix.Alphanumeric
Default: “lending_hub”

Rendering with JavaScript

To correctly load the simulation banner, your ecommerce platform must carry out the following steps:

  1. Import the AP library for the Quix payment solution available on the following URL:
    • https://epgjs-rendercashier.easypaymentgateway.com/js/paysol-js/nemuru/nemuru-widget-module.js
    • You can use this code to import the AP library for Quix:
<script src="https://epgjs-rendercashier.easypaymentgateway.com/js/paysol-js/nemuru/nemuru-widget-module.js"></script>

2. Generate a JSON with the parameters indicated in the point above:

				
					{
"product": "instalments",
"amount": 66000,
"currency": "EUR",
"clientId": "2af35701-d4d0-4475-80f8-1e82ab45a1a3",
"locale" : "es-ES",
"decimalSeparator" : ",",
"thousandSeparator" : ".",
"styleColor": "#34aeeb",
"styleVariant" : "select",
"styleBranding" : "lending_hub"
}
				
			

3. Call the function NEMURUWIDGET.renderSimulationWidget() in the imported library, with the following parameters:

    • The “authToken” authentication token from AP.
      • See how to get this authorization token in the section “Sending authentication requests” of the JavaScript integration guide.
    • The JSON generated previously.
    • The ID for the <div> HTML element where you want the simulation banner.
    • Here is a sample function call:
window['NEMURUWIDGET'].renderSimulationWidget(authToken, jsonData, 'identificador_div', "Quix");

Payment process

This is what the customer will experience with the Quix payment solution on AP:

Loading cashier

If the request sent by your platform didn’t indicate that the cashier should only show the Quix payment solution, when the customer’s web browser loads the AP cashier, the customer will see all the payment solutions you have available for the product on your AP merchant. The customer will have to choose “Quix” as the payment solution from the list to start the financing request:

If the request sent by your platform indicated that the cashier should only show the Quix payment solution, when the customer’s web browser loads the AP cashier, they will only see that payment solution:

Below you have the Quix payment process, with a photo gallery at the end illustrating each point:

  1. When they click “OK”, AP loads the Quix simulation widget, regardless of the type of integration, where the customer can:
    • Choose one of the financing periods available (3, 10 or 12 months).
    • See their monthly payments, with the dates and amounts to be charged.
    • See a breakdown of the total cost of the financing to the customer.
    • See the TIN and TAE applied.
  2. If the customer accepts the proposed financing, they click “OK” and move on to the next phase of the application. Here they will have to enter, if not already filled in, the following data:
    • Name.
    • Surnames (must enter 2 surnames).
    • Date of birth
    • DNI (with letter).
    • Phone number (must be Spanish).
  3. After clicking “OK”, the financing company will send the customer an SMS with a five-digit verification code, which they have to enter on the next screen.
  4. The customer enters the code received by SMS:
    • If the customer doesn’t receive the message, they can click “Resend” to try again.
    • When the gateway is set up for the staging environment, it won’t send an SMS with the code. Instead, the validation code is the last 5 digits of the phone number entered.
  5. After clicking “OK”, the customer sees:
    • The breakdown of the total cost of the financing.
    • The TIN and TAE applied.
    • A dropdown with the monthly payments, with the dates and amounts to be charged.
  6. The customer has to tick the box “I understand and consent to the privacy policy” to continue the process.
  7. When they click “OK”, they go to a screen where the financing company requests their credit card details. The initial payment and successive instalments will be charged to this card.
    • When the integration on your ecommerce platform is set up for the staging environment, this screen will show a card you can use for authorized operations in this environment to test integration on your platform.
      • This card will no longer work once you switch your platform settings to operate in the production environment.
  8. When they click “Pay”, AP charges the first instalment to the card.
  9. If this payment is processed correctly, a window will open reminding the customer of their payment amounts and dates, according to the financing granted.
  10. The successive payments will be charged to the customer’s card for that amount on those dates.
1
2
3
4
5 y 6
7
8
9
Comparte este documento

Quix

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