1 About Hosted Payment Page

1.1 General information about Hosted Payment Page

The Hosted Payment Page is a checkout that contains only the step of selecting the payment method. It is a HTML form with responsive design that is displayed properly on all devices.

In the case of payments via Hosted Payment Page, the shop redirects its customers to the 1cs Online Payment System HTML form where they selects their payment method. After confirming the selection depending on the payment method 1cs Online Payment System forwards the customer to a 1cs Online Payment System HTML form or to a form from an external service provider and notifies the shop after completion about the payment result.

Following table contains the payment methods which you can use via Hosted Payment Page:

Payment typePayType
Credit cardCC
Direct debitEDD
PayPalPayPal
iDEALiDEAL
KlarnaKlarnaPM
SofortSofort
giropaygiropay
paydirektpaydirekt
AlipayAlipay
BancontactBanconPP
Bank TransferBankTranPP
BitPayBitPayPP
BluecodeBluecode
DragonpayDragonPP
eNETSENETSPP
Finland Online Bank TransferFinOBTPP
Indonesia ATMIndoATMPP
MultibancoMultibanPP
My BankMyBankPP
MyClear FPXMyClearPP
Przelewy 24P24PP
POLiPOLiPP
PostFinancePOSTFINPP
paysafecardPSCPP
QIWIQIWIPP
RHB BankRHBBankPP
SafetyPaySafetyPPP
7-ElevenSevenElePP
SkrillSkrillPP
TrustPayTrustPayPP
Apple PayApplePay
B4PaymentB4Payment
BoletoBoletoPP
CUPCUPPP
EPSEPS
WechatWechatPP

Following table lists all card brands that can be uses via the Hosted Payment Page. When submitting the value CC in parameter PayTypes all brands are displayed that are configured for a certain merchant. Selecting specific brands can be done by submitting a string of the desired brand names separated by pipe signs.

Kreditkartenmarke / Scheme Names  → values for CCBrand
AirPlus
AMEX
ARGENCARD
Aura
Bancontact
CABAL
Cartes Bancaires
Maestro
CBN
CENCOSUD
ComfortCard
CUP
Dankort
DINERS
Discover
Elo
Hipercard
JCB
Laser
Maestro
MasterCard
NARANJA
RuPay
SHOPPING
TOTAL
VISA

1.2 Process of payment

To make payments via the Hosted Payment Page you send a request to following URL with HTTPS GET or HTTPS POST:

https://www.computop-paygate.com/paymentPage.aspx

All details required for payment processing are forwarded as parameters. The parameters are encrypted with Blowfish to ensure that neither the customer nor a third party can manipulate the data.

When calling the form, the OPS decrypts the parameters and shows the HTML page with the payment methods. The customer selects the payment method and triggers the forwarding by clicking the button “Next”.

After the payment has been made the OPS redirects the customers back to a shop page via HTTPS GET (URLSuccess, URLFailure) and transmits the result of the payment as a Blowfish-encrypted parameter string to these URLs. In addition, the OPS transmits the result via HTTPS POST to the shop’s Notify page (URLNotify). The shop accepts the payment result and decrypts the data in order to inform the customer about the status.

1.3 Calling the Hosted Payment Page

Calling the Hosted Payment Page starts with the correct composition of the parameters which consist of a key and a value and which are separated by an equals sign (=):

MerchantID=Test

All parameters are assembled in a character string and separated by the character &:

Amount=100&Currency=EUR&TransID=12345

Notice: Since the characters “=” and “&” are used as separating characters, these characters cannot be transmitted as values. All values which you transmit without BlowFish-encryption must be URL-Encoded.

A correct parameter character string for the OPS contains three basic parameters: MerchantID, Len and Data. The parameters MerchantID and Len are unencrypted. Only the Data parameter is Blowfish-encrypted:

MerchantID=Test&Len=67&Data=0A67FE96a65d384350F50FF1

The Data parameter contains the sensitive payment details such as amount and currency. The encrypted bytes are Hex-encoded and completed to two characters from the left with a zero. Encryption is via Blowfish ECB and is available to you as source-code and components.

The Len parameter is very important for encryption because it contains the length of the unencrypted(!) character string in the Data parameter. Since the data quantity to be encrypted is increased by a multiple of 8 in the case of the Blowfish encryption, the correct length of the character string must be known for decryption. Otherwise accidental characters emerge at the end of the character string.

The parameters are transmitted via HTTPS POST or HTTPS GET. The recommended transmit method is HTTPS POST because the parameter character string in the case of GET is attached to the URL, which is limited to 2048 bytes depending on the browser.

Notice: Please note that the maximum length of a payment request is limited to 5120 characters. If you require longer strings please contact First Cash Solution Support.

The following listings show the development of a payment request. The first listing is the unencrypted parameter character string:

MerchantID=Test&TransID=100000001&Amount=11&Currency=EUR&URLSuccess=https://www.shop.com/ok.html&URLFailure=https://www.shop.com/failed.html&URLNotify=https://www.shop.com/notify.cgi&OrderDesc=My order

Notice: Please note that a value is to be assigned to each parameter. Do not transmit empty parameters, as this can cause the payment to fail.

This character string is encrypted and transmitted as the Data parameter. The HTTPS GET request for the Hosted Payment Page looks like this:

<a href=https://www.computop-paygate.com/paymentPage.aspx?MerchantID=Test&Len=162&Data=E98D40FFFD622C5FE7414F73539A1852C2CE7C8B09D34DF217E27FA2E194B9968DE9
ABAE3B1F44B5485EFE3EF2597C7395BADBAD4340CDFD000DD57129EEFAA0BE904A7E23
39DCF9363DA6ACDBE5EF98E169FC3092B160252A037135421FD0CE092C174A7D1D63517BD
45099AC2B682F5E3CD2C942A6F0E741A833C0&Language=en&URLBack=https://www.shop.com/canceled
”>

Notice: Please note that parameters like Language or URLBack are transmitted unencrypted. A table with all possible unencrypted parameters can be found also witihn this document.

2 1cs OPS interface

2.1 Definitions

2.1.1 Data formats

FormatDescription
aalphabetical
asalphabetical with special characters
nnumeric
analphanumeric
ansalphanumeric with special characters
nsnumeric with special characters
boolboolean expression (true or false)
3fixed length with 3 digits/characters
..3variable length with maximum 3 digits/characters
enumenumeration of allowed values
dttmISODateTime (YYYY-MM-DDThh:mm:ss)

2.1.2 Abbreviations

AbbreviationDescriptionComment
CNDcondition 
MmandatoryIf a parameter is mandatory, then it must be present
OoptionalIf a parameter is optional, then it can be present, but it is not required
CconditionalIf a parameter is conditional, then there is a conditional rule which specifies whether it is mandatory or optional

Notice: Please note that the names of parameters can be returned in upper or lower case.

2.2 Parameters of the Hosted Payment Page

These parameters are mandatory for all payment methods and has to be submitted Blowfish-encrypted within the Data parameter to the Hosted Payment Page.

Notice: Please take all further parameters specifically for a payment method from the manual of that respective payment method.

The following table describes the encrypted payment request parameters:

KeyFormatCNDDescription
MerchantIDans..30MMerchantID, assigned by First Cash Solution. Additionally this parameter has to be passed in plain language too.
Amountn..10MAmount in the smallest currency unit (e.g. EUR Cent) Please contact the helpdesk, if you want to capture amounts < 100 (smallest currency unit).
Currencya3MCurrency, three digits DIN / ISO 4217
MACan64MHash Message Authentication Code (HMAC) with SHA-256 algorithm.
TransIDans..64MTransactionID which should be unique for each payment
RefNrns..30OUnique reference number -> exact format depends on the available paymethods for your MerchantId. Please choose your format in that way that all paymethods are covered.
OrderDescans..384MDescription of purchased goods, unit prices etc. Please note: The first 27 characters appear on the customer-account statement. You can view the full data in the Merchant Cockpit.
UserDataans..1024OIf specified at request, the OPS forwards the parameter with the payment result to the shop
URLSuccessans..256MComplete URL which calls up the OPS if payment has been successful. The URL may be called up only via port 443 This URL may not contain parameters: In order to exchange values between the OPS and shop, please use the parameter UserData. -> Common notes: – We recommend to use parameter “response=encrypted” to get an encrypted response by Paygate – However, fraudster may just copy the encrypted DATA-element which are sent to URLFailure and send the DATA to URLSuccess. Therefore ensure to check the “code”-value which indicates success/failure of the action. Only a result of “code=00000000” should be considered successful.
URLFailureans..256MComplete URL which calls up the OPS if payment has been unsuccessful. The URL may be called up only via port 443 This URL may not contain parameters: In order to exchange values between the OPS and shop, please use the parameter UserData. -> Common notes: – We recommend to use parameter “response=encrypted” to get an encrypted response by Paygate – However, fraudster may just copy the encrypted DATA-element which are sent to URLFailure and send the DATA to URLSuccess/URLNotify. Therefore ensure to check the “code”-value which indicates success/failure of the action. Only a result of “code=00000000” should be considered successful.
Responsea7OStatus response sent by the OPS to URLSuccess and URLFailure, should be encrypted. For this purpose, transmit Response=encrypt parameter.
URLNotifyans..256MComplete URL which the OPS calls up in order to notify the shop about the payment result. The URL may be called up only via port 443 It may not contain parameters: Use the UserData parameter instead. -> Common notes: – We recommend to use parameter “response=encrypted” to get an encrypted response by Paygate – However, fraudster may just copy the encrypted DATA-element which are sent to URLFailure and send the DATA to URLSuccess/URLNotify. Therefore ensure to check the “code”-value which indicates success/failure of the action. Only a result of “code=00000000” should be considered successful.
ExpirationDateans..19OTimestamp for the end time of the PaymentPage call, currently specified in European time (CET/DST). Time zone evaluation will be changed to UTC uniformly soon. Format: YYYY-MM-ddTHH:mm:ss

Parameters for Hosted Payment Page

Following parameters are optional and can be submitted unencrypted to the Hosted Payment Page:

KeyFormatCNDDescription
Templateans..20OName of XSLT-file with your own layout for the HPP pay form.
CCTemplateans..20OName of XSLT-file with your own layout for the credit card form. This is used only if the customer selects a credit card brand and then clicks on „Next“ button. If you don’t submit a value the responsive First Cash Solution credit card form template is displayed.
SDDTemplateans..20OName of XSLT-file with your own layout for the direct debit form. This is used only if the customer selects direct debit as payment method and clicks on „Next“ button. If you don’t submit a value the responsive First Cash Solution direct debit form template is displayed.
Languagea2 (enum)OLanguage code: <de> German, <al> Albanian, <at> Austrian, <cz/cs> Czech, <dk> Danish, <en> English, <fi> Finish, <fr> French, <gr> Greek, <hu> Hungarian, <it> Italian, <jp> Japanese,  <nl> Dutch, <no> Norwegian, <pl> Polish, <pt> Portuguese, <ro> Romanian, <ru> Russian, <es> Spanish, <se> Swedish, <sk> Slovakian, <sl> Slovenian, <tr> Turkey, <zh> Simplified Chinese. No details means the language is German. -> The supported languages may vary depending on the selected template.
URLBackans..256OComplete URL which Paygate calls in case that Cancel is clicked by the customer. The parameter “URLBack” can be sent – either as plain parameter (unencrypted) (compatibility mode) – or be part of encrypted payment request parameters (preferred mode)
PayTypesans..256OWith this parameter you can override the payment methods to be displayed, i.e. you can decide within this parameter separated by pipe which of the available payment methods are displayed. Take the possible values from the column PayType within the table of payment methods given above. Example: …&PayTypes=CC|EDD|Alipay

3.0 1cs Online Payment System default templates customization

How to customize the payment page?

When the merchant decides to use the standard Computop payment page, there possibility to insert his logo and customize up to 9 specific fields (also called CustomFields) of the payment form.

CustomField1ans..50O  Amount and currency of the transaction  

CustomField2

ans..50
OOrder’s number

CustomField3

ans..50
OMerchant’s logo, URL of the logo. Format: .png Logo can be in any size, templates will adjust the preferred size.

CustomField4

ans..50

O
Order’s description

CustomField5

ans..50

O
Buyer’s information

CustomField6

ans..50
OShipping information

CustomField7

ans..50
ODelivery information
CustomField8ans..50OName of a new field added by the merchant 
CustomField9ans..50O
Value of a new field added by the merchant
URLBackans..50OPage to return if customer decides to cancel the payment form using “x” button in upper right corner

Payment request using custom fields:

…….aspx?MerchantID=Test&Len=67&Data=0A67FE96a65d384350F50FF1&CustomField1=…&CustomField2=….