|
|
Click to Pay (CTP) is a simplified and streamlined solution for online checkouts based on card payments which makes the checkout experience consistent, convenient and secure. It acts as a digital wallet. enabling customers to store their card details securely with the card schemes and eliminating the need to manually enter the card details during checkout. |
Our Click to Pay feature is offered as part of your VISA and Mastercard credit card acceptance with PAYONE and is embedded in the New Hosted Tokenization Form.
Enrolled customers can select stored cards in their Click to Pay wallet instead of manually re-entering the card details. To use Click to Pay, customers can create profiles using their email address either with card schemes, Visa and Mastercard or enable Click to Pay directly with their issuing bank.
The cardholder data and the card details are securely stored with the card schemes Click to Pay solutions. Cardholders may choose to store multiple cards with their Click to Pay profile.
Enrolled customers with Click to Pay can be recognized when email address or mobile phone number is provided during checkout and can select their preferred card from Click to Pay profile to complete the payment. The payment information is delivered to you by the card schemes Click to Pay solution in an encrypted format, in similar way as other digital wallets encrypted payment data and passed to PAYONE for completing the payment.
To begin with Click to Pay processing in Production environment you will have to be onboarded against Card Schemes. This will be done on Payone side after requesting the product.
Credentials are fetched automatically by the Hosted tokenization application during loading.
In order to Implement Click to Pay you have to complete the New Hosted tokenization Page implementation.
It can be done by following our New Hosted Tokenization integration guide.
Once you integrate the New Hosted Tokenization it is fairly simple to enable Click to Pay.
To configure Click to Pay, you have to include the Click to Pay configuration within the config parameter when invoking the getPaymentPage() method.
|
The parameters are defined in CTP Config section of the Hosted Tokenization configuration. This section encompasses all configurations related to Click to Pay for various card schemes, including Mastercard and Visa.
| Parameter name |
Type and Value |
Optional/Mandatory for Click to Pay | Description |
| string | Optional - but is is highly recommended for Click to Pay | Can be provided by Merchant to speed up Click to Pay payment for the end consumer | |
| locale | locale value such as de_DE | Optional with default us_EN. |
Currently only de_DE and us_EN are supported by Hosted tokenization Page. Click to Pay however supports many other european languages. In order to fully implement other languages please use Custom Language option within the Hosted Tokenization form |
| mode | Only LIVE for Click to Pay | Optional . Default LIVE | mode for DCP - manual mode - Tests not supported for CTP in PROD Environment |
| enableCTP |
boolean true or false |
Mandatory for Click to Pay enablement default=false |
Set to true to enable Click to Pay. When the CTP feature is enabled, users can switch between Click to Pay (CTP) and Manual Card Entry. |
| enableCustomerOnboarding |
boolean true or false |
Optional default=false |
Set to true to enable user registration with Click to Pay |
| merchantPresentationName | string | Optional | The name of the shop the customer is. |
| transactionAmount |
Object amount: '<value>', currencyCode: 'USD', |
Mandatory for Click to Pay currencyCode- Alpha-3 currency code amount - 600 for 6.00 EUR etc |
Amount and currency of the transaction |
| Mandatory for Click to Pay | |||
| uiConfig | Object | Optional |
uiConfig: |
Example uiConfig object: Under this object we can only change the values of the properties.
|
Once the Hosted Tokenization process is completed you will have to send the Payment Request to Server API containing token information. You will have to identify what payment clearing type to use based on the cardInputMode. For the Click to Pay integration you need to supported cardInputmode parameter that is specific for Click to Pay. Depending on the cardInputmode you will request payment authorization either as Click to Pay or as standard card payment.
Please follow this decision making matrix:
| cardInputMode | Token Type | Clearing type | Clearing subtype | Comment |
| manual | PPAN | clearingtype=cc | n/a | it`s a classic Credit Card payment - no changes needed for the Authorization of the Credit card. |
| clickToPay | paymentcheckout_data | clearingtype=wlt | wallettype=CTP | Payload for an existing user paying with CTP |
| register | paymentcheckout_data | clearingtype=wlt | wallettype=CTP | No actual different for the Merchant. This is to be expected only if the registration is enabled. Handle as normal Click to Pay transaction |
cardInputMode : ClickToPay
|
cardInputMode : Manual
|
cardInputMode : Register
|
There is no big deviation between similar API Requests against PAYONE Server API. Additionally the following parameter to be added to a typical payment request : add_paydata[paymentcheckout_data]
POST Request Pre- /Authorization
| request
required
|
Fixed Value: preauthorisation/authorization
|
| mid
required
|
your merchant ID, 5-digit numeric
|
| aid
required
|
your subaccount ID, 5-digit numeric
|
| portalId
required
|
your Portal ID, 7-digit numeric
|
| key
required
|
your key value, alpha-numeric
|
| firstname optional
|
Format CHAR(1..50)
First name of customer; optional if company is used, i.e.: you may use "company" or "lastname" or "firstname" plus "lastname" |
| lastname
required
|
Format CHAR(2..50)
Last name of customer; optional if company is used, i.e.: you may use "company" or "lastname" or "firstname" plus "lastname" |
| company optional
|
Format CHAR(2..50)
Company name, required for B2B transactions (if add_paydata[b2b] = “yes”) |
| street optional
|
Format CHAR(1..50)
Street number and name (required: at least one character) |
| zip optional
|
Format CHAR(2..50)
Permitted Symbols [0-9][A-Z][a-z][_.-/ ]
Postcode |
| city optional
|
Format CHAR(2..50)
City of customer |
| country
required
|
Format List
Permitted values ISO 3166 2-letter-codes Samples DE / GB/ US Specifies country of address for the customer. Some countries require additional information in parameter "state"
|
| email optional
|
Format CHAR(5..254)
Permitted Symbols RFC 5322 Special Remark email validation: Max. length for email is 254 characters. Validation is set up in the following way: Username = Max. 63 characters Domain Name = Max. 63 characters "@" and "." is counted as a character as well; in case of a total of three suffixes, this would allow a total of 254 characters. email-address of customer |
| birthday optional
|
Format DATE(8), YYYYMMDD
Samples 20190101 / 19991231 Date of birth of customer |
| telephonenumber optional
|
Telephone number |
|
wallettype
required
|
Fixed Value: CTP
CTP: Click to Pay
|
|
successurl
required
|
Format CHAR(2..255)
Scheme <scheme>://<host>/<path> <scheme>://<host>/<path>?<query> scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}
URL for "payment successful" |
|
errorurl
required
|
Format CHAR(2..255)
Scheme <scheme>://<host>/<path> <scheme>://<host>/<path>?<query> scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}
URL for "faulty payment" |
|
backurl
required
|
Format CHAR(2..255)
Scheme <scheme>://<host>/<path> <scheme>://<host>/<path>?<query> scheme-pattern: [a-zA-Z]{1}[a-zA-Z0-9]{1,9}
URL for "Back" or "Cancel" |
|
mode
required
|
Fixed value: live
Only live mode is supported
---end
|
|
add_paydata
required
|
Sample rhHAQUrR118u[...]cwDw Click to Pay encrypted token |
|
Permitted Values REDIRECT
ERROR |
|
Format NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
|
| userid |
Format NUMERIC(9..12)
PAYONE User ID, defined by PAYONE |
|
Format NUMERIC(1..6)
In case of error the PAYONE Platform returns an error code for your internal usage. |
|
|
Format CHAR(1..1024)
In case of error the PAYONE Platform returns an error message for your internal usage. |
|
|
Format CHAR(1..1024)
The customermessage is returned to your system in order to be displayed to the customer. (Language selection is based on the end customer's language, parameter "language") |
Host: api.pay1.de Content-Type: application/x-www-form-urlencoded
Payload
add_paydata[paymentcheckout_data]=FpFyA6zSGkZC[...]xi8xeXCNbpGBpvlNXfcang==
aid=12345
amount=1000
clearingtype=wlt
country=DE
currency=EUR
encoding=UTF-8
firstname=Demo
key=123456789abcdefghij
lastname=Dude
mid=12345
mode=live
portalid=123456
reference=013265464564654
request=preauthorization
wallettype=CTP
RESPONSE
status=REDIRECT
txid=123456789
userid=987654321
POST Request Capture
The capture request is used to finalize a preauthorized transaction.
| request
required
|
Fixed Value: capture
|
| mid
required
|
your merchant ID, 5-digit numeric
|
| aid
required
|
your subaccount ID, 5-digit numeric
|
| portalId
required
|
your Portal ID, 7-digit numeric
|
| key
required
|
your key value, alpha-numeric
|
| txid
required
|
Format: NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
||||||
| clearingtype
optional
|
Fixed Value: wlt
|
||||||
| wallettype
optional
|
Fixed Value: CTP
CTP: Click to Pay |
||||||
| capturemode
required
|
Format: LIST
Specifies whether this capture is the last one or whether there will be another one in future. |
||||||
| sequencenumber
optional
|
Format: NUMERIC(1..3)
Permitted values: 0..127
Sequence number for this transaction within the payment process (1..n), e.g. PreAuthorization: 0, 1. Capture: 1, 2. Capture: 2 Required for multi partial capture (starting with the 2nd capture) |
||||||
| amount
required
|
Format: NUMERIC(1..10)
Permitted values: max. +/- 19 999 999 99
Specifies the total gross amount of a payment transaction. Value is given in smallest currency unit, e.g. Cent of Euro The amount must be less than or equal to the amount of the corresponding booking. |
||||||
| currency
required
|
Fixed Value: EUR
|
||||||
| narrative_text
optional
|
Format: CHAR(1..81)
Dynamic text element on account statements |
|
Permitted Values
APPROVED
ERROR |
|
Format: NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
|||||||||
| settleaccount |
Format: LIST
Carry out settlement of outstanding balances. The request is booked and the resulting balance is settled by means of a collection, e.g. a refund. |
|
Format: NUMERIC(1..6)
In case of error the PAYONE Platform returns an error code for your internal usage. |
|
|
Format: CHAR(1..1024)
In case of error the PAYONE Platform returns an error message for your internal usage. |
|
| customermessage |
Format: CHAR(1..1024)
The customer message is returned to your system in order to be displayed to the customer. (Language selection is based on the end customer's language, parameter "language") |
Host: api.pay1.de Content-Type: application/x-www-form-urlencoded
POST Request Debit
| request
required
|
Fixed Value: debit
|
| mid
required
|
your merchant ID, 5-digit numeric
|
| aid
required
|
your subaccount ID, 5-digit numeric
|
| portalId
required
|
your Portal ID, 7-digit numeric
|
| key
required
|
your key value, alpha-numeric
|
| txid
required
|
Format: NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
||||||||
| sequencenumber
required
|
Format: NUMERIC(1..3)
Permitted values 0..127 Sequence number for this transaction within the payment process (1..n), e.g. PreAuthorization: 0, 1. Capture: 1, 2. Capture: 2 Required for multi partial capture (starting with the 2nd capture) |
||||||||
| amount
required
|
Format: NUMERIC(1..10)
Permitted values max. +/- 19 999 999 99 Specifies the total gross amount of a payment transaction. Value is given in smallest currency unit, e.g. Cent of Euro; Pence of Pound sterling; Öre of Swedish krona. The amount must be less than or equal to the amount of the corresponding booking. |
||||||||
| currency
required
|
Fixed Value: EUR
|
||||||||
| settleaccount
optional
|
Format: LIST
Carry out settlement of outstanding balances. The request is booked and the resulting balance is settled by means of a collection, e.g. a refund. |
|
Permitted Values
APPROVED
ERROR |
| txid |
Format: NUMERIC(9..12)
The txid specifies the payment process within the PAYONE platform |
||||||
| settleaccount |
Format: LIST
Provides information about whether a settlement of balances has been carried out. |
| errorcode |
Format: NUMERIC(1..6)
In case of error the PAYONE Platform returns an error code for your internal usage. |
| errormessage |
Format: CHAR(1..1024)
In case of error the PAYONE Platform returns an error message for your internal usage. |
| customermessage |
Format: CHAR(1..1024)
The customermessage is returned to your system in order to be displayed to the customer. (Language selection is based on the end customer's language, parameter "language") |
Host: api.pay1.de Content-Type: application/x-www-form-urlencoded
Payment flow for Click to Pay relies heavily on the standard Credit Card payment flow once the Click to Pay checkout session is complete and you received the encrypted payment information to be passed in a pre/authorization request to PAYONE.