Wirecard Payment Page v1 LEGACY

Hosted Payment Page LEGACY

Hosted Payment Page with Payment Method Selection

Integration is as easy as including a JavaScript library into the merchant’s checkout page:

<script src="https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"></script>

Specification of the payment data:

var requestedData = {
  merchant_account_id: "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  request_id: "c68b9039-968d-1c6b-d9f6-27e9ab2bcb3e",
  request_time_stamp: "20200116084718",
  payment_method: "creditcard",
  transaction_type: "authorization",
  requested_amount: "2.56",
  requested_amount_currency: "EUR",
  locale: "en",
  request_signature: "e44730486d180cca590bc2e8dea22bd175395636a37b0da0ef785"
}

A function call of that library provides the payment functionality:

WirecardPaymentPage.hostedPay(requestedData);

Or call a different name library with the same functionality:

ElasticPaymentPage.hostedPay(requestedData);
Sample: Redirecting to the Hosted Payment Page
Basic HTML Sample
<html>
<head>
  <title>example 01</title>
  <script src="https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"></script>
  <script>
    function pay() {
      var requestData = {
        "request_id": "4d87f443-423c-6b13-e609-cc8b59c32d6b",
        "request_time_stamp": "20160817140742",
        "merchant_account_id": "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
        "transaction_type": "auto-sale",
        "requested_amount": "0",
        "requested_amount_currency": "EUR",
        "request_signature": "283a346275444f3f4fbbbd7e3bcf815b41c4edf1a2531208e201fab12a9b0d53",
        "payment_method": "creditcard",
        "first_name": "John",
        "last_name": "Doe"
      };
      WirecardPaymentPage.hostedPay(requestData);
    }
  </script>
</head>
<body>
  <h1>example 01</h1>
  <form>
    <input type="button" value="Pay" onClick="pay()">
  </form>
</body>
</html>
Basic HTML Sample with Credit Card Form
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>
      Demo shop
    </title>
    <script src="https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"></script>
  </head>
  <body>
    <form>
      <input id="wirecard_pay_btn" type="button" onclick="pay()" value="Pay Now"> <script type="text/javascript">
        function pay() {
        var requestedData = {
            merchant_account_id: "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
            request_id: "c68b9039-968d-1c6b-d9f6-27e9ab2bcb3e",
            request_time_stamp: "20150226084718",
            payment_method: "creditcard",
            transaction_type: "purchase",
            requested_amount: "2.56",
            requested_amount_currency: "EUR",
            locale: "en",
            request_signature: "kg44730486d159df0bc2e8dea22bd175395636a37b0da0ef785"
         }
        WirecardPaymentPage.hostedPay(requestedData);
        }
      </script>
    </form>
  </body>
</html>
Basic HTML Sample with PayPal Checkout Portal
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>
      Demo shop
    </title>
<script src="https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"></script>
  </head>
   <body>
    <form>
      <input id="wirecard_pay_btn" type="button" onclick="pay()" value="Pay Now"> <script type="text/javascript">
      function pay() {
         var requestedData = {
            merchant_account_id: "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
            request_id: "c68b9039-968d-1c6b-d9f6-27e9ab2bcb3e",
            request_time_stamp: "20150226084718",
            payment_method: "paypal",
            transaction_type: "debit",
            requested_amount: "2.56",
            requested_amount_currency: "EUR",
            locale: "en",
            request_signature: "d730486d159df0bc2e8dea22bd175395636a37b0da0ef785"
         }
       WirecardPaymentPage.hostedPay(requestedData);
       }
      </script>
    </form>
  </body>
</html>
Please note that only the fields payment_method and transaction_type differ.

Embedded Payment Page LEGACY

From a technical point of view, merchants just include a JavaScript library:

<script src="https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"></script>

A function call of that library provides the payment functionality:

WirecardPaymentPage.embeddedPay(requestedData);

Or call a different name library with the same functionality:

ElasticPaymentPage.embeddedPay(requestedData);
Sample: Showing the Embedded Payment Page
Basic HTML Sample
<html>
    <head>
        <title>example 01</title>
        <script src=" https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"/>
        <script>
function pay() {
var requestData = {
"request_id" : "4d87f443-423c-6b13-e609-cc8b59c32d6b",
"request_time_stamp" : "20160817140742",
"merchant_account_id" : "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
"transaction_type" : "auto-sale",
"requested_amount" : "0",
"requested_amount_currency" : "EUR",
"request_signature" : "283a346275444f3f4fbbbd7e3bcf815b41c4edf1a2531208e201fab12a9b0d53",
"payment_method" : "creditcard",
"first_name" : "John",
"last_name" : "Doe"
};
WirecardPaymentPage.embeddedPay(requestData);
}
        </script>
    </head>
    <body>
        <h1>example 01</h1>
        <form>
            <input type="button" value="Pay" onClick="pay()">
            </form>
        </body>
    </html>
Basic HTML Sample with Credit Card Form
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Demo shop</title>
    <script src="https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"></script>
</head>
<body>
    <input id="wirecard_pay_btn" type="button" onclick="pay()" value="Pay Now"/>
    <script type="text/javascript">
        function pay() {
          var requestedData = {
          merchant_account_id: "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
          request_id: "c68b9039-968d-1c6b-d9f6-27e9ab2bcb3e",
          request_time_stamp: "20150226084718",
          payment_method: "creditcard",
          transaction_type: "purchase",
          requested_amount: "2.56",
          requested_amount_currency: "EUR",
          locale: "en",
          request_signature: "e44730486d180cca590bc2e8dea22bd175395636a37b0da0ef785"
          }
         WirecardPaymentPage.embeddedPay(requestedData);
        }
    </script>
</body>
</html>

Seamless Integration LEGACY

Integration is done via a JavaScript library which merchants include in their checkout page:

<script src="https://api-test.wirecard.com/engine/hpp/paymentPageLoader.js" type="text/javascript"></script>

There are three functions provided by the library:

You can optionally use ElasticPaymentPage instead of WirecardPaymentPage, e.g. call ElasticPaymentPage.seamlessRenderForm().
Render the form
WirecardPaymentPage.seamlessRenderForm({
    requestData : requestData, (1)
    wrappingDivId : "seamless-target", (2)
    onSuccess : processSucceededResult (3)
    onError : processErrorResult (4)
});

Renders the form. Parameters are

1 requestData: request data object, same as for Hosted Payment Page and similar to REST API integration
2 wrappingDivId: ID of the HTML element where the form will be rendered
3 onSuccess: callback on successful render
4 onError: callback if an error occurred
Submit the form
WirecardPaymentPage.seamlessSubmitForm({
    requestData : requestData, (1)
    onSuccess : processSucceededResult, (2)
    onError : processErrorResult (3)
});

Submits the form. Parameters are

1 requestData: additional request data (optional)
2 onSuccess: callback on successful form submission
3 onError: callback when an error occurred during form submission
Submit the payment request
WirecardPaymentPage.seamlessPay({
    requestData : requestData, (1)
    onSuccess : processSucceededResult, (2)
    onError : processErrorResult (3)
});

Submits the payment request. Parameters are

1 requestData: request data object, same as for Hosted Payment Page and similar to REST API integration
2 onSuccess: callback on successful payment request submission
3 onError: callback if an error occurred during payment request submission
The only parameter of the functions in case of both success and error is response.
Card Form Integration

This use-case covers the payment form displayed directly on the merchant’s checkout page for a seamless user experience (no browser redirects).

Render Form

Merchant renders the form into element on their checkout page. The transaction details are specified in requestData. The element is identified by wrappingDivId parameter.

var requestData = {
  "request_id" : "217c3832-8575-c1d5-0e3a-2fa08003b0fd",
  "request_time_stamp" : "20190403095835",
  "merchant_account_id" : "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  "transaction_type" : "purchase",
  "requested_amount" : "2.00",
  "requested_amount_currency" : "EUR",
  "ip_address" : "127.0.0.1",
  "request_signature" : "43fd8c261a8fdad693024c7cc009239ad344f1e5716de0c3163237b5392d5700",
  "payment_method" : "creditcard"
};
WirecardPaymentPage.seamlessRenderForm({
  requestData : requestData,
  wrappingDivId : "seamless-target",
  onSuccess : processSucceededResult,
  onError : processErrorResult
});
Use a unique Request ID for each request.
Transaction Data Received from onSuccess Callback of seamlessRenderForm()
{
  "ip_address": "127.0.0.1",
  "merchant_account_id": "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  "request_id": "217c3832-8575-c1d5-0e3a-2fa08003b0fd",
  "requested_amount": "2.00",
  "requested_amount_currency": "EUR",
  "status_code_1": "201.0000",
  "status_description_1": "The resource was successfully created.",
  "status_severity_1": "information",
  "transaction_id": "5ff1cf52-8471-11e5-95ea-005056b13376",
  "transaction_state": "success",
  "transaction_type": "check-signature"
}
Submit Form

Merchant assigns the call function to a pay button on the checkout page. requestData are optional when submitting form. They will be merged with data from the first step. Form input is validated before the submit.

WirecardPaymentPage.seamlessSubmitForm({
  onSuccess : processSucceededResult,
  onError : processErrorResult
});
Transaction Data Received from onSuccess Callback of seamlessSubmitForm()
{
  "api_id": "elastic-api",
  "authorization_code": "153620",
  "completion_time_stamp": "20190406103540",
  "first_name": "John",
  "ip_address": "127.0.0.1",
  "last_name": "Doe",
  "masked_account_number": "444433******1111",
  "merchant_account_id": "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  "payment_method": "creditcard",
  "provider_transaction_id_1": "8ee6e543-c96f-459a-a379-50d0e9152fd3",
  "request_id": "217c3832-8575-c1d5-0e3a-2fa08003b0fd",
  "requested_amount": "2.00",
  "requested_amount_currency": "EUR",
  "self": "https://api-test.wirecard.com:9000/engine/rest/merchants/61e8c484-dbb3-4b69-ad8f-706f13ca141b/payments/1fe8a33a-8472-11e5-95ea-005056b13376",
  "status_code_1": "201.0000",
  "status_description_1": "3d-acquirer:The resource was successfully created.",
  "status_severity_1": "information",
  "token_id": "4186409015611111",
  "transaction_id": "1fe8a33a-8472-11e5-95ea-005056b13376",
  "transaction_state": "success",
  "transaction_type": "purchase"
}
Decoupling Card Data Collection from Payment

When the merchant decides to display a recap order page between the payment data collection page and actually submitting the payment, the merchant may use the payment form to perform a:

  • Zero authorization transaction that may later be referenced by a regular authorization or purchase. The advantage for credit card payments is that a zero authorization transaction is confirmed by an issuer and the CVC is verified.

  • Tokenization-only transaction. A token (non-sensitive data) is returned to the merchant that can be used for a real authorization or purchase later.

In either case, sensitive payment data will not touch any of the merchant’s systems.

The difference to the previous scenario is that an authorization-only transaction type with a zero amount is used instead of a purchase transaction type (tokenization transaction type may be used for a similar effect), and the real fund booking only comes in the third (additional) step. The payment form is displayed directly on the merchant’s checkout page.

Render Form

The merchant renders the form into an element on their checkout page. The transaction details are specified in requestData. The element is identified by wrappingDivId parameter.

var requestData = {
  "request_id" : "217c3832-8575-c1d5-0e3a-2fa08003b0fd",
  "request_time_stamp" : "20190403095835",
  "merchant_account_id" : "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  "transaction_type" : "authorization-only",
  "requested_amount" : "0",
  "requested_amount_currency" : "EUR",
  "ip_address" : "127.0.0.1",
  "request_signature" : "43fd8c261a8fdad693024c7cc009239ad344f1e5716de0c3163237b5392d5700",
  "payment_method" : "creditcard"
};
WirecardPaymentPage.seamlessRenderForm({
  requestData : requestData,
  wrappingDivId : "seamless-target",
  onSuccess : processSucceededResult,
  onError : processErrorResult
});
Use a unique Request ID for each request.
Transaction Data Received from onSuccess Callback of seamlessRenderForm()
{
  "ip_address": "127.0.0.1",
  "merchant_account_id": "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  "request_id": "217c3832-8575-c1d5-0e3a-2fa08003b0fd",
  "requested_amount": "0",
  "requested_amount_currency": "EUR",
  "status_code_1": "201.0000",
  "status_description_1": "The resource was successfully created.",
  "status_severity_1": "information",
  "transaction_id": "5ff1cf52-8471-11e5-95ea-005056b13376",
  "transaction_state": "success",
  "transaction_type": "check-signature"
}
Submit Form

The merchant will assign call of the function to a pay button on their checkout page. requestData are optional when submitting the form. They will be merged with data from the first step. Form input is validated before the submit.

WirecardPaymentPage.seamlessSubmitForm({
  onSuccess : processSucceededResult,
  onError : processErrorResult
});
Transaction Data Received from onSuccess Callback of seamlessSubmitForm()
{
   "api_id":"elastic-api",
   "authorization_code":"153620",
   "completion_time_stamp":"20190406103540",
   "first_name":"John",
   "ip_address":"127.0.0.1",
   "last_name":"Doe",
   "masked_account_number":"444433******1111",
   "merchant_account_id":"61e8c484-dbb3-4b69-ad8f-706f13ca141b",
   "payment_method":"creditcard",
   "provider_transaction_id_1":"8ee6e543-c96f-459a-a379-50d0e9152fd3",
   "request_id":"217c3832-8575-c1d5-0e3a-2fa08003b0fd",
   "requested_amount":"0",
   "requested_amount_currency":"EUR",
   "self":"https://api-test.wirecard.com:9000/engine/rest/merchants/61e8c484-dbb3-4b69-ad8f-706f13ca141b/payments/1fe8a33a-8472-11e5-95ea-005056b13376",
   "status_code_1":"201.0000",
   "status_description_1":"3d-acquirer:The resource was successfully created.",
   "status_severity_1":"information",
   "token_id":"4186409015611111",
   "transaction_id":"1fe8a33a-8472-11e5-95ea-005056b13376",
   "transaction_state":"success",
   "transaction_type":"authorization-only"
}
Actual Payment

The merchant can now reference an existing authorization-only transaction to do a payment without further consumer involvement. The merchant may also do this using the function from Wirecard’s JavaScript library from the browser.

var requestData = {
  "request_id" : "679047dc-8a4d-657b-91dc-df6d80cd6a10",
  "request_time_stamp" : "20190403101310",
  "merchant_account_id" : "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  "transaction_type" : "purchase",
  "requested_amount" : "12",
  "requested_amount_currency" : "EUR",
  "ip_address" : "127.0.0.1",
  "request_signature" : "ea468004287bf191a43b4c5ac33e38d5f035050ad784cad293646c1533e7fc48",
  "payment_method" : "creditcard",
  "parent_transaction_id" : "26c14051-8213-11e5-a96e-0050b667eb91"
};
WirecardPaymentPage.seamlessPay({
  requestData : requestData,
  onSuccess : processSucceededResult,
  onError : processErrorResult
});
Use a unique Request ID for each request.
Transaction Data Received from onSuccess Callback of seamlessPay()
{
  "api_id": "elastic-api",
  "authorization_code": "153620",
  "completion_time_stamp": "20190406103540",
  "first_name": "John",
  "ip_address": "127.0.0.1",
  "last_name": "Doe",
  "masked_account_number": "444433******1111",
  "merchant_account_id": "61e8c484-dbb3-4b69-ad8f-706f13ca141b",
  "payment_method": "creditcard",
  "provider_transaction_id_1": "8ee6e543-c96f-459a-a379-50d0e9152fd3",
  "request_id": "217c3832-8575-c1d5-0e3a-2fa08003b0fd",
  "requested_amount": "12",
  "requested_amount_currency": "EUR",
  "self": "https://api-test.wirecard.com:9000/engine/rest/merchants/61e8c484-dbb3-4b69-ad8f-706f13ca141b/payments/1fe8a33a-8472-11e5-95ea-005056b13376",
  "status_code_1": "201.0000",
  "status_description_1": "3d-acquirer:The resource was successfully created.",
  "status_severity_1": "information",
  "token_id": "4186409015611111",
  "transaction_id": "1fe8a33a-8472-11e5-95ea-005056b13376",
  "transaction_state": "success",
  "transaction_type": "purchase"
}
Validation, Language and Custom Templates
Form Validation

Merchant can request form validity by using function.

The only parameter is the name of the callback function.

WirecardPaymentPage.seamlessFormIsValid({
 onValidationResult : processValidationResult
});

Merchant can validate the form input anytime calling function.

The only parameter is the name of the callback function. Otherwise, the form is validated always on form submit.

WirecardPaymentPage.seamlessValidateForm({
 onValidationResult : processValidationResult
});
Change Language

Merchant can change form’s locale using function.

The only parameter is the language ISO code.

WirecardPaymentPage.seamlessChangeLocale("en");
Custom Templates

Merchants are able to specify their own custom templates to be used instead of Wirecard’s default payment form. The template consists of HTML content, CSS and JavaScript parts. The following template is an example of a merchant’s custom template that uses bootstrap and form validation libraries. First, the HTML part is inserted into the <body> tag of the page, so it is a simple HTML form:

<h3 data-i18n="cc_form_title">Billing information</h3>
<form id="seamless-form" data-wd-validate-form="true" th:object="${payment}">
  <div class="row">
    <div class="form-group col-xs-12">
      <div class="card-types btn-group" data-toggle="buttons">
        <label class="btn btn-default active"> <input type="radio"
          class="ee-request-nvp" name="card_type" value="visa"
          checked="checked" data-fv-wdcardtype="true"
          data-fv-wdcardtype-message="select_valid_card_type"
          data-fv-wdcardtype-creditcardfield="account_number" /> <img
          src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Visa_Inc._logo.svg/1280px-Visa_Inc._logo.svg.png"
          alt="Visa" />
        </label> <label class="btn btn-default"> <input type="radio"
          class="ee-request-nvp" name="card_type" value="mastercard" /> <img
          src="https://lh5.googleusercontent.com/-_o1E3Ie8C8Y/U1YW_49rhBI/AAAAAAAAAbI/vGfq1_kakSU/w800-h800/mastercard-logo-in-jokerman-font.png"
          alt="Mastercard" />
        </label> <label class="btn btn-default"> <input type="radio"
          class="ee-request-nvp" name="card_type" value="diners" /> <img
          src="http://www.golf.co.nz/uploads/diners-logo-transparent.png"
          alt="Diners" />
        </label>
      </div>
    </div>
  </div>
  <div class="row">
    <div class="col-sm-8">
      <div class="form-group">
        <input type="text" class="form-control ee-request-nvp"
          id="account_number" name="account_number" placeholder="Card number"
          data-i18n="card_number" data-fv-wdcreditcard="true"
          data-fv-wdcreditcard-message="enter_creditcard_number"
          data-fv-wdcreditcard-cardtypefield="card_type"
          data-fv-wdcreditcard-cvvfield="card_security_code"
          data-fv-wdcreditcard-allowedcardtypes="visa,mastercard,diners"
          data-fv-onsuccess="FormValidation.WDHelper.onCardNumberSuccess"
          data-fv-onerror="FormValidation.WDHelper.onCardNumberError" />
      </div>
    </div>
    <div class="col-sm-4">
      <div class="form-group">
        <input type="text" class="form-control ee-request-nvp"
          id="card_security_code" name="card_security_code" placeholder="CVV"
          data-fv-wdcvv="true" data-fv-wdcvv-message="enter_cvv"
          data-fv-wdcvv-creditcardfield="account_number"
          data-i18n="card_security_code" />
      </div>
    </div>
  </div>
  <div id="expiry-date-div" class="row">
    <div class="col-sm-8"></div>
    <div class="col-sm-2">
      <div class="form-group">
        <input type="number" class="form-control ee-request-nvp"
          id="expiration_month" name="expiration_month" placeholder="Month"
          data-i18n="expiration_month" data-fv-notempty="true"
          data-fv-notempty-message="enter_value" data-fv-wdexpirymonth="true"
          data-fv-wdexpirymonth-message="invalid_expiry_date"
          data-fv-wdexpirymonth-yearfield="expiration_year" />
      </div>
    </div>
    <div class="col-sm-2">
      <div class="form-group">
        <input type="number" class="form-control ee-request-nvp"
          id="expiration_year" data-fv-notempty="true"
          data-fv-notempty-message="enter_value" data-fv-wdexpiryyear="true"
          data-fv-wdexpiryyear-message="invalid_expiry_date"
          data-fv-wdexpiryyear-yearscount="20"
          data-fv-wdexpiryyear-monthfield="expiration_month"
          name="expiration_year" placeholder="Year"
          data-i18n="expiration_year" />
      </div>
    </div>
  </div>
  <div class="row">
    <div class="col-sm-6">
      <div class="form-group">
        <input type="text" class="form-control ee-request-nvp"
          id="first_name" name="first_name"
          placeholder="Cardholder first name" data-i18n="first_name"
          th:value="*{accountHolder} ? *{accountHolder.firstName}" />
      </div>
    </div>
    <div class="col-sm-6">
      <div class="form-group">
        <input type="text" class="form-control ee-request-nvp"
          id="last_name" name="last_name" placeholder="Cardholder last name"
          data-fv-notempty="true" data-fv-notempty-message="enter_value"
          data-i18n="last_name"
          th:value="*{accountHolder} ? *{accountHolder.lastName}" />
      </div>
    </div>
  </div>
</form>

The HTML part may be completed with a CSS stylesheet:

body {
  font-family: Verdana;
  font-size: 12px;
  padding: 20px;
}
input {
  width: 100%;
}
.btn {
  outline: none !important;
}
.card-types .btn {
  height: 40px
}
.card-types .btn img {
  width: 40px;
}
.card-types .form-control-feedback {
  right: -40px !important;
  top: 1px !important;
}

Each merchant may provide multiple templates and specify which one to use when rendering the Seamless form.

Please contact merchant support in order to set up custom templates.
Seamless Configuration UI

The Seamless Configuration UI endpoint has been created for the purpose of changing a Seamless template online and previewing it just in time.

After browser authentication, the Seamless Configuration UI is accessible on https://api-test.wirecard.com/engine/rest/config/seamless/ui

The following view should be displayed, once access is granted:

Seamless Templates Configuration MAID

When an existing merchant is selected, all the merchant’s related templates should be loaded automatically from the server via REST API. The list of the merchant’s configured templates is displayed on the left-side menu. Template-specific details are displayed on the right in tabs.

Template Details
Production Deployment Process

Currently, the Seamless UI editor is available only on the TEST environment. Therefore, once a template has been created by the merchant and is ready for production, the merchant has to export the theme and send it to merchant support to upload it to the PRODUCTION environment.

Resources Management

The screenshot below shows the Template Resources (JS and CSS) configuration. Selecting resources is optional. A resource should be added just in case it is required by a particular template.

To select a resource, double-click on it in the Available Resources list on top (or select it and use arrows between list boxes). To deselect a resource, double-click on it in the bottom list of Selected Resources. To change the order, use the arrows next to the Selected Resources list.

The order is important when loading libraries with dependencies.

Template Resources
Translation Management

A template-specific i18n configuration can be made within the Template Translations tab. Here, new translations can be created or existing ones updated/deleted. Changes are applied once the whole template is successfully saved. The user can add/paste all required translations there (for multiple locales) at once.

Each i18n configuration must contain a language code (2-letters code in square brackets) at the beginning followed by all required key=value translations mappings separated by a new line. The language code is case-insensitive. There can be just one translation key per locale. The translation key can contain letters, numerics, dashes or underscores only.

Template Translations

Seamless i18n

Translations are maintained by the jquery.i18n.properties library and its EE extension, ee.i18n library. Each element containing a data-i18n attribute is automatically translated according to the locale (2-letters language code) specified within the payment request. The value of the data-i18n attribute represents a translation key. Please see the list of current default translation keys and associated translations below. They are used within the default Seamless template. It is possible to override all these translations as well as specify the new ones when configuring a new template. It is also possible to define an arbitrary language code.

Default Translations
# default language (English)
card_number=Card number
expiry_date=Valid until
year=Year
month=Month
invalid_expiry_date=Please enter a valid expiry date
first_name=First name
last_name=Last name
enter_value=Please enter a value
select_valid_card_type=Please enter a valid credit card type
enter_creditcard_number=Please enter the valid and confirmed credit card number
enter_cvv=Please enter a valid security code (CVV)

[de]
card_number=Kartennummer
first_name=Vorname
last_name=Nachname
expiry_date=Gültig bis
year=Jahr
month=Monat
enter_value = Bitte geben Sie einen Wert ein
enter_creditcard_number = Bitte geben Sie die gültige und bestätigte Kreditkartennummer an
select_valid_card_type = Bitte geben Sie den gültigen Kreditkartentyp an
invalid_expiry_date = Bitte gültiges Ablaufdatum angeben
enter_cvv = Bitte geben Sie den gültigen Sicherheitscode (CVV) an

[es]
card_number=Número de tarjeta
first_name=Nombre
last_name=Apellidos
expiry_date=Válido hasta
year = Año
enter_value = Introduzca un valor
enter_creditcard_number = Indique una tarjeta de crédito válida y confirmada
select_valid_card_type = Indique un tipo de tarjeta de crédito válido
invalid_expiry_date = Indique una fecha de caducidad válida
enter_cvv = Indique el código de seguridad (CVV) válido

[fr]
card_number=Numéro de carte
first_name=Prénom
last_name=Nom
expiry_date=Date d''expiration
year = Année
enter_value = Veuillez saisir une valeur
enter_creditcard_number = Veuillez saisir un numéro de carte de crédit valide et confirmé
select_valid_card_type = Veuillez saisir un type de carte de crédit valide
invalid_expiry_date = Veuillez saisir une date d'expiration valide
enter_cvv = Veuillez saisir un code de sécurité valide (CVV)

[it]
card_number=Numero di carta
first_name=Nome
last_name=Cognome
expiry_date=Valido fino a
year = Anno
enter_value = Immettere un valore
enter_creditcard_number = Immettere un numero di carta di credito valido e confermato
select_valid_card_type = Immettere un tipo di carta di credito valido
invalid_expiry_date = Immettere una data di scadenza valida
enter_cvv = Immettere un codice di sicurezza valido (CVV)

[nl]
card_number=Kaartnummer
first_name=Voornaam
last_name=Achternaam
expiry_date=Geldig tot
year = Jaar
enter_value = Voer een waarde in
enter_creditcard_number = Voer een geldig en bevestigd creditcardnummer in
select_valid_card_type = Voer een geldig creditcardtype in
invalid_expiry_date = Voer een geldige einddatum in
enter_cvv = Voer de geldige veiligheidscode (CVV) in
Template PREVIEW

To preview the selected and saved template press the Eye Symbol button. A couple of details need to be entered before the preview is shown - such as dimensions, locale or currency (currency is necessary just in case the selected template needs the merchant’s configured card types model).

Template Preview 1

The template preview is provided by the endpoint {URL}/engine/rest/seamless/renderform/preview/{merchantAccountId}/{paymentMethodId}/{templateName}

and handled by

com.ep.engine.controller.SeamlessPaymentController

When the appropriate GET request is performed, the rendered template view is returned and it looks exactly as if it would be rendered via /engine/rest/seamless/renderform endpoint

This endpoint is secured by a basic authentication and the role ROLE_CONFIG_SEAMLESS

Template Preview 2
Import/Export Template

The selected template can be exported to a .json file by clicking the export button Export Symbol. The exported template can then be imported within different environments (integration, test, production, …​) by clicking on + Add a template > Import from JSON file and selecting the particular .json file from the local storage.

Template Import
Clone Default Template

The default credit card template default-cc-template can be cloned to the current merchant account’s Seamless configuration by clicking on + Clone default CC template. This feature can help in situations when just few changes within the default template would be needed. Once the default template is cloned, the configuration can be finished much easier.

Default Seamless Template

Merchants have two options with which Seamless can be shown:

  • Manual Card Brand Selection

  • Automatic Card Brand Recognition (default)

If there is a need to use manual selection, please send template_name in the request.

Manual Card Brand Selection
template_name = default-cc-template
Automatic Card Brand Recognition
template_name = default-cc-auto

Fields LEGACY

Most of the fields from REST API are also available for Hosted Payment Page (HPP), Embedded Payment Page (EPP) and Seamless integration, differing only in the usage of an underscore instead of a hyphen.

The following table describes the fields that may appear in the HTML form in case of Hosted Payment Page (HPP) or as data for a JavaScript call in case of Embedded Payment Page (EPP) or Seamless integration.

Request Fields
Field Information Description

Field Size Cardinality Datatype

Description

request_time_stamp 14 Mandatory yyyyMMddHHmmss

The UTC time-stamp that represents the request.

request_signature 64 Mandatory Alphanumeric

Refer to SHA-256 request signature.

merchant_account_id 36 Mandatory Alphanumeric

A unique identifier assigned for every Merchant Account.

request_id 150 Mandatory Alphanumeric

The unique string that the merchant sends with every transaction in order to uniquely identify it. The merchant system can subsequently request the status or existence of a transaction using this identifier.

entry_mode n/a Optional Alphanumeric

The method in which the account holder information was collected. Possible values are:

Value Meaning

empty

unknown source

ecommerce

collected over the internet

mcommerce

collected over mobile devices

mail-order

collected over mail order

telephone-order

collected over telephone

pos

collected by the primary payment instrument

periodic_type n/a Optional Alphanumeric

Indicates how and why a payment occurs more than once. Possible values include installment: one in a set that completes a financial transaction and recurring: one in a set that occurs repeatedly, such as a subscription.

sequence_type n/a Optional Alphanumeric

Used in conjunction with periodic_type to indicate the sequence. Possible values include first: first transaction in a set, recurring: subsequent transactions in the set, final: the last transaction in the set.

transaction_type 30 Mandatory Alphanumeric

A unique identifier assigned for every transaction type.

requested_amount 11,2 Mandatory Decimal

The only amount that accompanies the transaction when it is created and/or requested. In the case of a sale or refund, this is what the merchant requests. In the case of a chargeback, this is the amount that is being contested.

requested_amount_currency 3 Mandatory Alphanumeric

The currency in which a transaction is originally completed.

first_name 32 Optional Alphanumeric

The first name of the account holder.

last_name 32 Mandatory Alphanumeric

The last name of the account holder.

token_id 36 Optional - Or Card Number Numeric

A unique identifier assigned for every card token. This is a surrogate value for the primary account number.

card_type 15 Mandatory - Or Card Token Alphanumeric

A card scheme accepted by the processing system. This includes physically issued cards.

account_number 36 Mandatory - Or Card Token Numeric

The embossed or encoded number that identifies the card issuer to which a transaction is to be routed and the account to which it is to be charged unless specific instructions indicate otherwise. In the case of a credit card, this is the primary account number.

expiration_month 2 Mandatory - Or Card Token Numeric

The 2-digit representation of the expiration month of the card account.

expiration_year 4 Mandatory - Or Card Token Numeric

The 4-digit representation of the expiration year of the card account.

card_security_code 4 Optional - Depending on merchant account settings Numeric

A security feature for credit or debit card transactions, providing increased protection against credit card fraud. The Card Security Code is located on the back of Mastercard, Visa and Discover credit or debit cards and is typically a separate group of 3 digits to the right of the signature strip. On American Express cards, the Card Security Code is a printed, not embossed, group of four digits on the front towards the right.

redirect_url 256 Optional Alphanumeric

The URL where the account holder will be redirected to following transaction completion.

ip_address 15 Optional Alphanumeric

The IP address of the cardholder as recorded by the entity receiving the transaction attempt from the cardholder.

email 64 Optional Alphanumeric

The email address of the account holder.

phone 32 Optional Alphanumeric

The phone number of the account holder.

order_detail 256 Optional Alphanumeric

Merchant-provided string to store the order detail for the transaction.

order_number 64 Optional Alphanumeric

Merchant-provided string to store the order detail for the transaction.

merchant_crm_id 64 Optional Alphanumeric

The merchant CRM ID for the account holder.

field_name_n[1-10] 36 Optional Alphanumeric

Text used to name the transaction custom field. Possible values for n can be in the range from 1 to 10.

field_value_n[1-10] 256 Optional Alphanumeric

Used with a key, the content used to define the value of the transaction custom field. Possible values for n can be in the range from 1 to 10.

notification_url_n[1-3] 256 Optional Alphanumeric

WPG uses the notification URL to inform the merchant about the outcome of the payment process. Usually the merchant provides one URL, to which WPG will send the notification to. If required, the merchant can define more than one notification URL.

notification_transaction_state_n[1-3] 12 Optional Alphanumeric

The merchants can provide notification URLs which correspond to the transaction state. The merchants define one URL for success and one for failure.
If the merchants want to do that, they must use both fields in parallel: notification_url_n[1-3] and notification_transaction_state_n[1-3].

descriptor 64 Optional Alphanumeric

The field which is shown on the customer’s card statement. This feature is not supported by all the acquirers. The size of this field depends on the acquirer. Please contact technical support for further clarification.

parent_transaction_id 36 Optional Alphanumeric

A unique identifier assigned for every parent transaction.

payment_method 15 Optional Alphanumeric

Text used to name the payment method.

locale 6 Optional Alphanumeric

Code to indicate which default language the payment page should be rendered in.

device_fingerprint 4096 Optional Alphanumeric

A device fingerprint is information collected about a remote computing device for the purpose of identification. Fingerprints can be used to fully or partially identify individual users or devices even when cookies are turned off.

processing_redirect_url 2000 Optional Alphanumeric

The URL to which the Account Holder will be re-directed during payment processing. This is normally a page on the Merchant’s website.

cancel_redirect_url 2000 Optional Alphanumeric

The URL to which the Account Holder will be re-directed after he has cancelled a payment. This is normally a page on the Merchant’s website.

fail_redirect_url 2000 Optional Alphanumeric

The URL to which the Account Holder will be re-directed after an unsuccessful payment. This is normally a page on the Merchant’s website notifying the Account Holder of a failed payment often with the option to try another Payment Method.

success_redirect_url 2000 Optional Alphanumeric

The URL to which the Account Holder will be re-directed after a successful payment. This is normally a success confirmation page on the Merchant’s website.

merchant_account_resolver_category 32 Mandatory Alphanumeric

Configuration specific category name for automatic merchant account resolving based on logged in user or "super merchant account".

notification_transaction_url 2000 Mandatory Alphanumeric

This field has been replaced by notification_url_n[1-3] (see above). It can still be used but it can only provide a single URL for notifications.

cryptogram_type 11 Optional Alphanumeric

Cryptogram type enumeration – android-pay or apple-pay.

cryptogram_value Optional Alphanumeric

Cryptogram value for android or apple creditcard payments.

mandate_signature_image Optional Alphanumeric

The signature of the Mandate Transaction.

mandate_signed_city 36 Optional Alphanumeric

The city that the Mandate was signed in.

mandate_signed_date 16 Optional YYYY-MM-DD

The date that the Mandate was signed.

mandate_due_date Optional Alphanumeric

The date that the Mandate Transaction is due.

mandate_mandate_id 35 Optional Alphanumeric

The Mandate ID for the Mandate Transaction.

capture_date Optional Alphanumeric

bank_account_bank_code 15 Optional Alphanumeric

The national bank sorting code for national bank transfers.

bank_account_bank_name 100 Optional Alphanumeric

The name of the consumer’s bank.

bank_account_account_number 34 Mandatory Alphanumeric

The number designating a bank account used nationally.

bank_account_account_owner **

Bank account owner name (not used anymore - last_name and first_name used instead).

bank_account_iban 34 Optional Alphanumeric

The International Bank Account Number required in a Bank Transfer. It is an international standard for identifying bank accounts across national borders. The current standard is ISO 13616:2007, which indicates SWIFT as the formal registrar.

bank_account_bic 15 Optional Alphanumeric

The Bank Identifier Code information required in a Bank Transfer.

bank_account_branch_city 64 Optional Alphanumeric

The city that the bank is located in. Typically required for Chinese Bank Transfers.

bank_account_branch_state 64 Optional Alphanumeric

The state that the bank is located in. Typically required for Chinese Bank Transfers.

bank_account_branch_address 64 Optional Alphanumeric

The address of the bank. Typically required for Chinese Bank Transfers.

postal_code 16 Optional Alphanumeric

ZIP postal Code

country 3 Mandatory Alphanumeric

Account holder country code.

payment_country 3 Optional Alphanumeric

Payment related country code – usually used for payment method specific validation (country restrictions)

state 32 Optional Alphanumeric

State

city 32 Mandatory Alphanumeric

City

street1 128 Mandatory Alphanumeric

Primary Street Address

street2 128 Optional Alphanumeric

Secondary Street Address

social_security_number 14 Optional Alphanumeric

The Social Security number of the Account Holder.

payment_method_url Optional Alphanumeric

URL of payment method provider that user should be redirected to so payment can be finished. (not needed and ignored in request.)

attempt_three_d Optional TRUE/FALSE

Indicates that the Transaction Request should proceed with the 3D Secure workflow if the Card Holder is enrolled. Otherwise, the transaction proceeds without 3D Secure. This field is used in conjunction with Hosted Payment Page.

psp_name 256 Optional Alphanumeric

The assigned skin name for a merchant’s customized HPP skin. This will display the merchant’s skin instead of the default skin.

psp_id 36 Optional Alphanumeric

Not needed in request. EE internal Payment Service Provider ID.

file_name 255 Optional Alphanumeric

Batch payment…

record_number 11 Optional Numeric

Batch payment…

consumer_id 50 Optional Alphanumeric

The Identifier of the Consumer.

consumer_email 64 Optional Alphanumeric

Consumer email address.

risk_reference_id 24 Optional Alphanumeric

api_id 36 Optional Alphanumeric

Reserved for future use.

group_transaction_id 36 Optional Alphanumeric

Common ID for all referenced transactions. It is usually transaction ID of the first transaction in chain.

notifications_format 256 Optional Alphanumeric

Content type of the IPN (application/xml, application/json, application/x-www-form-urlencoded).

date_of_birth Optional YYYY-MM-DD

Account holder birth date.

creditor_id 35 Optional Alphanumeric

The Creditor Id for the Merchant Account SEPA.

gender 1 Optional Alphanumeric

Enumeration – m or f

shipping_country 3 Mandatory Alphanumeric

The Country ID portion of the address of the Shipping Address.

shipping_state 32 Optional Alphanumeric

The state or province portion of the address of the Shipping Address.

shipping_city 32 Mandatory Alphanumeric

The city of the address of the Shipping Address.

shipping_postal_code 16 Optional Alphanumeric

The postal code or ZIP of the address of the Shipping Address.

shipping_street1 128 Mandatory Alphanumeric

The first line of the street address of the Shipping Address.

shipping_street2 128 Optional Alphanumeric

The second line of the street address of the Shipping Address.

shipping_first_name 32 Mandatory Alphanumeric

The first name of the Shipping Address.

shipping_last_name 32 Mandatory Alphanumeric

The last name of the Shipping Address.

shipping_block_no Optional Alphanumeric

Additional shipping information (paylah).

shipping_level Optional Alphanumeric

Additional shipping information (paylah).

shipping_unit Optional Alphanumeric

Additional shipping information (paylah).

shipping_phone 32 Optional Alphanumeric

The phone number of the Shipping Address.

pares Optional Alphanumeric

Digitally signed, base64-encoded authentication response message received from the issuer (3D Secure transaction).

custom_css_url 2000 Optional Alphanumeric

URL specified by merchant pointing to the CSS resource customizing HPP/EPP.

item_name_1 256 O/Mandatory Alphanumeric

Order item name.

item_id_1 256 Optional Alphanumeric

Order item article identifier.

item_amount_1 18,6 O/Mandatory Numeric

Order item amount.

item_quantity_1 5 O/Mandatory Numeric

Order item quantity.

item_description_1 1024 Optional Alphanumeric

Order item description.

otp Optional Alphanumeric

One time password (icashcard).

wallet_account_id 128 Mandatory Alphanumeric

The unique identifier of the Account Holder’s Wallet Account.

browser_ip_address 32 Optional Alphanumeric

IP address of consumer obtained by payment page in time of payment.

browser_hostname 255 Optional Alphanumeric

Consumer’s web browser obtained by payment page in time of payment.

browser_version 255 Optional Alphanumeric

Version number of consumer’s web browser obtained by payment page in time of payment.

browser_os 255 Optional Alphanumeric

Consumer’s operating system obtained by payment page in time of payment.

browser_screen_resolution 32 Optional Alphanumeric

Consumer’s screen resolution obtained by payment page in time of payment.

browser_referrer 4096 Optional Alphanumeric

URL referring to previous page consumer visited before payment page.

liability_shift_indicator 1 Optional Alphanumeric

Indicating liability shift in case of 3D Secure transactions. Possible values:

Y - Liability Shift transferred to issuer
N - No Liability Shift
U - LI information unavailable

consumer_date_of_birth Optional Alphanumeric

Consumer date of birth.

consumer_social_security_number 14 Optional Alphanumeric

Social security number of the consumer.

consumer_gender 1 Optional Alphanumeric

Gender of consumer.

order_item_amount 18,6 Mandatory Numeric

Order item(s) price(s) per unit.

order_item_quantity 5 Mandatory Numeric

Total count(s) of the item(s) in the order.

order_item_article_number 256 Optional Alphanumeric

Item EAN(s) or other article(s) identifier(s).

order_item_name 256 Mandatory Alphanumeric

Name(s) of the item(s) in the basket.

order_item_amount_currency 3 Mandatory Alphanumeric

Currency(ies) of the order item amount(s).

order_item_tax_rate 5,2 Optional Numeric

Order item tax rate(s) in percentage already included within order item price (order_item_amount).

order_item_tax_amount 18,6 Optional Numeric

Order item tax(es) per unit already included within the order item price (order_item_amount).

orderItems[n].name 256 O/Mandatory Alphanumeric

Order item name.

orderItems[n].articleNumber 256 Optional Alphanumeric

Order item article identifier.

orderItems[n].amount.value 18,6 O/Mandatory Numeric

Order item price.

orderItems[n].amount.currency 3 O/Mandatory Alphanumeric

Currency of the order item price (amount.value).

orderItems[n].taxRate 5,2 Optional Numeric

Order item tax rate in percentage already included within order item price (amount.value).

orderItems[n].taxAmount.value 18,6 Optional Numeric

Order item tax per unit already included within the order item price (amount.value).

orderItems[n].taxAmount.currency 3 Optional Alphanumeric

Tax amount currency.

orderItems[n].quantity 5 O/Mandatory Numeric

Total count of the item in the order.

airline_industry_airline_code 3 Optional Alphanumeric

The airline code assigned by IATA.

airline_industry_airline_name 64 Optional Alphanumeric

Name of the airline.

airline_industry_passenger_code 10 Optional Alphanumeric

The file key of the Passenger Name Record (PNR). This information is mandatory for transactions with AirPlus UATP cards.

airline_industry_passenger_name 10 Optional Alphanumeric

The name of the Airline Transaction passenger.

airline_industry_passenger_phone 32 Optional Alphanumeric

The phone number of the Airline Transaction passenger.

airline_industry_passenger_email 64 Optional Alphanumeric

The Email Address of the Airline Transaction passenger.

airline_industry_passenger_ip_address 45 Optional Alphanumeric

The IP Address of the Airline Transaction passenger.

airline_industry_ticket_issue_date Optional Date

The date the ticket was issued.

airline_industry_ticket_number 11 Optional Alphanumeric

The airline ticket number, including the check digit. If no airline ticket number (IATA) is used, the element field must be populated with 99999999999.

airline_industry_ticket_restricted_flag Optional 0/1

Indicates that the Airline Transaction is restricted. 0 = No restriction, 1 = Restricted (non-refundable).

airline_industry_pnr_file_key Optional Alphanumeric

The Passenger Name File ID for the Airline Transaction.

airline_industry_ticket_check_digit Optional Numeric

The airline ticket check digit.

airline_industry_agent_code Optional Alphanumeric

The agency code assigned by IATA. If no IATA code is used, the element field must be populated with 99999999.

airline_industry_agent_name Optional Alphanumeric

The agency name.

airline_industry_non_taxable_net_amount Optional Numeric

This field must contain the net amount of the purchase transaction in the specified currency for which the tax is levied. Two decimal places are implied. If this field contains a value greater than zero, the indicated value must differ to the content of the transaction amount.

airline_industry_ticket_issuer_street1 Mandatory Alphanumeric

The Issuer Address Street for the Airline Transaction.

airline_industry_ticket_issuer_street2 Optional Alphanumeric

The Issuer Address Street 2 for the Airline Transaction.

airline_industry_ticket_issuer_city 32 Mandatory Alphanumeric

The city of the address of the Airline Transaction issuer.

airline_industry_ticket_issuer_state Optional Alphanumeric

The state of the address of the Airline Transaction issuer.

airline_industry_ticket_issuer_country 3 Mandatory Alphanumeric

The Issuer Address Country ID for the Airline Transaction.

airline_industry_ticket_issuer_postal_code 16 Optional Alphanumeric

An alphanumeric numeric code used to represent the Airline Transaction issuer Postal.

airline_industry_number_of_passengers 3 Optional Numeric

The number of passengers on the Airline Transaction.

airline_industry_reservation_code 32 Optional Alphanumeric

The reservation code of the Airline Transaction passenger.

airline_industry_itinerary_segment_​n[1-10]_carrier_code 3 Mandatory Alphanumeric

The 2-letter airline code (e.g. LH, BA, KL) supplied by IATA for each leg of a flight.

airline_industry_itinerary_segment_​n[1-10]_departure_airport_code 3 Mandatory Alphanumeric

The departure airport code. IATA assigns the airport codes.

airline_industry_itinerary_segment_​n[1-10]_departure_city_code 32 Mandatory Alphanumeric

The departure City Code of the Itinerary Segment. IATA assigns the airport codes.

airline_industry_itinerary_segment_​n[1-10]_arrival_airport_code 3 Mandatory Alphanumeric

The arrival airport code of the Itinerary Segment. IATA assigns the airport codes.

airline_industry_itinerary_segment_​n[1-10]_arrival_city_code 32 Mandatory Alphanumeric

The arrival city code of the Itinerary Segment. IATA assigns the airport codes.

airline_industry_itinerary_segment_​n[1-10]_departure_date Mandatory Date

The departure date for a given leg.

airline_industry_itinerary_segment_​n[1-10]_arrival_date Mandatory Date

The arrival date of the Itinerary Segment. IATA assigns the airport codes.

airline_industry_itinerary_segment_​n[1-10]_flight_number 6 Optional Alphanumeric

The flight number of the Itinerary Segment.

airline_industry_itinerary_segment_​n[1-10]_fare_class 6 Optional Alphanumeric

Used to distinguish between First Class, Business Class and Economy Class, but also used to distinguish between different fares and booking codes within the same type of service.

airline_industry_itinerary_segment_​n[1-10]_fare_basis 6 Optional Alphanumeric

Represents a specific fare and class of service with letters, numbers, or a combination of both.

airline_industry_itinerary_segment_​n[1-10]_stop_over_code Optional 0/1

0 = allowed, 1 = not allowed

airline_industry_itinerary_segment_​n[1-10]_tax_amount 18,6 Optional Numeric

The amount of the Value Added Tax levied on the transaction amount in the specified currency.

cruise_industry_carrier_code 10 Optional Alphanumeric

The airline code assigned by IATA.

cruise_agent_code 10 Optional Alphanumeric

The agency code assigned by IATA.

cruise_industry_travel_package_type_code 10 Optional Alphanumeric

This indicates if the package includes car rental, airline flight, both or neither. Valid entries include: C = Car rental reservation included, A = Airline flight reservation included, B = Both car rental and airline flight reservations included, N = Unknown.

cruise_industry_ticket_number 15 Optional Alphanumeric

The ticket number, including the check digit.

cruise_passenger_name 100 Optional Alphanumeric

The name of the passenger.

cruise_lodging_check_in_date Optional Date

The cruise departure date also known as the sail date.

cruise_lodging_check_out_date Optional Date

The cruise return date also known as the sail end date.

cruise_lodging_room_rate 18,6 Optional Numeric

The total cost of the cruise.

cruise_number_of_nights 3 Optional Numeric

The length of the cruise in days.

cruise_lodging_name 100 Optional Alphanumeric

The ship name booked for the cruise.

cruise_lodging_city_name 20 Optional Alphanumeric

The name of the city where the lodging property is located.

cruise_lodging_region_code 10 Optional Alphanumeric

The region code where the lodging property is located.

cruise_lodging_country_code 10 Optional Alphanumeric

The country code where the lodging property is located.

cruise_industry_itinerary_segment_​n[1-10]_carrier_code 3 Mandatory Alphanumeric

The 2-letter airline code (e.g. LH, BA, KL) supplied by IATA for each leg of a flight.

cruise_industry_itinerary_segment_​n[1-10]_departure_airport_code 3 Mandatory Alphanumeric

The departure airport code. IATA assigns the airport codes.

cruise_industry_itinerary_segment_​n[1-10]_departure_city_code 32 Mandatory Alphanumeric

The departure City Code of the Itinerary Segment. IATA assigns the airport codes.

cruise_industry_itinerary_segment_​n[1-10]_arrival_airport_code 3 Mandatory Alphanumeric

The arrival airport code of the Itinerary Segment. IATA assigns the airport codes.

cruise_industry_itinerary_segment_​n[1-10]_arrival_city_code 32 Mandatory Alphanumeric

The arrival city code of the Itinerary Segment. IATA assigns the airport codes.

cruise_industry_itinerary_segment_​n[1-10]_departure_date Mandatory Date

The departure date for a given leg.

cruise_industry_itinerary_segment_​n[1-10]_arrival_date Mandatory Date

The arrival date of the Itinerary Segment. IATA assigns the airport codes.

cruise_industry_itinerary_segment_​n[1-10]_flight_number 6 Optional Alphanumeric

The flight number of the Itinerary Segment.

cruise_industry_itinerary_segment_​n[1-10]_fare_class 6 Optional Alphanumeric

Used to distinguish between First Class, Business Class and Economy Class, but also used to distinguish between different fares and booking codes within the same type of service.

cruise_industry_itinerary_segment_​n[1-10]_fare_basis 6 Optional Alphanumeric

Represents a specific fare and class of service with letters, numbers, or a combination of both.

cruise_industry_itinerary_segment_​n[1-10]_stop_over_code Optional 0/1

0 = allowed, 1 = not allowed

cruise_industry_itinerary_segment_​n[1-10]_tax_amount 18,6 Optional Numeric

The amount of the Value Added Tax levied on the transaction amount in the specified currency.

hpp_processing_timeout 8 Optional String (Cardinal Number)

This field uses cardinal numbers which are treated like a string. It determines the timeout of an HPP page in milliseconds when this HPP page uses popup. During an open popup, Wirecard Payment Gateway polls query requests. If these poll requests are not accomplished until timeout, polling stops and displays a message. Default timeout is 10 minutes (value = "600000").

Response Fields
Field Information Description

Field Size Cardinality Datatype

Description

response_signature 64 Mandatory Alphanumeric

Refer to SHA-256 response signature.

transaction_type 30 Mandatory Alphanumeric

A unique identifier assigned for every transaction type.

transaction_state 12 Mandatory Alphanumeric

The current status of a transaction. Typically, a transaction will start from a submitted state, to an in-progress, and then finish in either the success or failed state.

transaction_id 36 Mandatory Alphanumeric

A unique identifier assigned for every transaction.

request_id 150 Mandatory Alphanumeric

The unique string that the merchant sends with every transaction in order to uniquely identify it. The merchant system can subsequently request the status or existence of a transaction using this identifier.

requested_amount 18,2 Mandatory Numeric

The only amount that accompanies the transaction when it is created and/or requested. In the case of a sale or refund, this is what the merchant requests. In the case of a chargeback, this is the amount that is being contested.

merchant_account_id 36 Mandatory Alphanumeric

A unique identifier assigned for every Merchant Account.

completion_time_stamp 14 Mandatory yyyyMMddHHmmss

The UTC time-stamp that represents the response.

status_code_n 12 Mandatory Alphanumeric

The status of a transaction. This is primarily used in conjunction with the transaction state to determine the exact details of the status of the transaction.

status_description_n 256 Mandatory Alphanumeric

Text used to describe the transaction status.

status_severity_n 20 Mandatory Alphanumeric

The severity of the transaction, can be information, warning, error.

provider_transaction_id_n 36 Optional Alphanumeric

The unique identifier for a provider transaction, typically generated by the provider.

provider_transaction_reference_id 36 Optional Alphanumeric

Provider’s reference ID. This may be non-unique.

authorization_code 36 Mandatory Alphanumeric

An alphanumeric numeric code used to represent the provider authorization.

token_id 36 Optional - Or Card Number Alphanumeric

A unique identifier assigned for every card token. This is a surrogate value for the primary account number.

masked_account_number 36 Optional Alphanumeric

A code used to represent the card masked account.

ip_address 15 Optional Alphanumeric

The IP address of the cardholder as recorded by the entity receiving the transaction attempt from the cardholder.