Skip to main content
Payment methods are the part of the shop.config with the most sections. This is because each payment method gets its own section, all sections share the same set of standard parameters, and some payment methods bring along their own additional parameters. This page is therefore structured from the inside out. First, the common schema of all payment method sections. Then the standard parameters that may appear in each of these sections. After that, the four subsections and the two central dependency sections that let you control availability more finely. Finally, the special features of the individual payment methods and the accompanying sections for credit checks, credit card types, and error messages from service providers. Reference: Shop configuration shop.config, overview of all sections

The PaymentXXX-Txt schema

Each payment method is configured in its own section whose name follows the pattern PaymentXXX-Txt. XXX stands for the identifier of the payment method. For SOFORT Überweisung, this results in PaymentDIRECTebanking-Txt; for cash on delivery, PaymentCashOnDelivery-Txt.

When a section is read at all

Before any further parameter is evaluated, the kernel checks three things. If one of these checks fails, the entire section is discarded without any message appearing.
If both a test section and a production section for the same payment method are in the configuration and test mode is active, the test section wins. The production section is then no longer read.
For all payment methods that run via online clearing, a fourth condition applies. If the corresponding clearing isn’t enabled for the shop, the payment method is deactivated, even if the section is completely and correctly filled in. This affects PayPal, iDEAL, giropay online transfer, SOFORT Überweisung, TWINT, Apple Pay, and Google Pay, among others. Enabling isn’t a setting in the shop.config; it is done by WEBSALE AG.

Standard parameters

The following parameters are allowed in every PaymentXXX-Txt section. They’re grouped by task here, because alphabetical order hides the relationship between parameters that belong together.

Basic setting and display

RadioOnClick and ImgOnClick only take effect if the payment method selection is implemented with DIV containers. In RadioOnClick, the local tags RadiobuttonID and ID are available; in ImgOnClick, the tags Link and ID.
If Dependencies contains HTML, WS-TplComment must be prepended for technical reasons, for example like this:

Local tags in NameSuffix

Costs and discounts

Cost-List is written as a sequence of tiers in parentheses. Before the colon is the merchandise value from which the tier applies; after it, the costs. A trailing percent sign turns the absolute amount into a percentage of the merchandise value.
Up to 500 tiers are possible. TotalSumAddition absorbs rounding differences. If the payment is only authorized and the merchandise management system later wants to collect one cent more than was authorized, this fails without the surcharge.

Availability by amount and weight

A fixed order determines which maximum value actually applies. First MaxOrderForNewUser-Value, if the buyer has no customer number and the value is set. Then MaxOrderForReseller-Value, if the buyer is a reseller and the value is set. Then the value stored in the customer account, if MaxOrderForUserAccount-Allow is enabled. Only after that MaxOrder-Value.
MaxOrderForUserAccount-Allow and IgnoreMaxOrderValueForReseller-Allow aren’t described in the previous documentation. They’re evaluated by the kernel and have been added in this migration.

Availability by country

Any value other than AllowCountries acts like DenyCountries, including an empty one. If both rule and list remain empty, no country restriction applies.

Availability by customer

Availability by basket contents

eBooks-Allow isn’t described as a parameter in the previous documentation, even though rejection reason 20 refers to it. It has been added in this migration.

Availability by shipping method

Reference: Section +Deliverer

Additional inputs for the payment method

These six parameters aren’t described in the previous documentation and have been added in this migration. The leading asterisk is part of the parameter name. For each number, the kernel first looks for the variant with an asterisk and only if it’s missing, for the variant without. If both are in the configuration, the variant with the asterisk wins and the field is a required field.
For more extensive additional inputs with selection lists, country dependency, and a required field message, use the +CountryRule subsections instead.

Dependencies by ID

Display as deactivated

The kernel evaluates this parameter in three stages. An empty value and never switch the display off. always always switches it on. Any other value is read as a comma-separated list of rejection reasons, including a typo. If you write allways, for example, you don’t get an error message, but a list with the single unknown entry allways, which doesn’t match any rejection reason.

ShowDisabled-Txt

This subsection of a PaymentXXX-Txt section contains the note texts that appear for a grayed-out payment method. You can specify a separate text for each rejection reason, plus a text under the key default for all reasons without their own text.
A subsection of the same name also exists for shipping methods, there within DelivererShowDisabled-Definitions.

Rejection reasons

AddressFilter

With this subsection, you make the payment method dependent on a specific input in the billing address. A typical use is a free address field containing, for example, a customer group or a sales channel.
The default value of Rule is Allow, not Deny. The kernel sets Allow as the initial value and only switches to Deny if exactly this value is in the configuration. The previous documentation stated Deny as the default. This has been corrected in this migration. If you relied on the old default, you get exactly the opposite behavior.
The filter switches itself off if TechnicalFieldName is empty or Values-List is empty. In both cases, the payment method remains available without any message appearing. If the buyer didn’t fill in the field, the filter doesn’t apply either. If the filter should always apply, the address field must be a required field.
The AddressFilter section may appear multiple times within a PaymentXXX-Txt section. The kernel reads the blocks one after another. The previous documentation describes it only in the singular.
Reference: Section AddressFields-Txt

+CountryRule

With these subsections, you request additional information for a payment method, for example a phone number for the clearing service provider or a consent checkbox. Up to ten +CountryRule sections are possible per PaymentXXX-Txt section. The order in the configuration determines the order in the shop.
If you request additional information for the payment method, the error message PaymentInputSuffix must be defined in the NotifyMessages-Txt section. If it’s missing, the required field check gives no visible feedback.

Parameters

UseAddressInput determines which address supplies the country. customer uses the billing address. delivery uses the delivery address if one was chosen, otherwise the billing address. onlydelivery uses only the delivery address and doesn’t request anything at all if no different delivery address was chosen. UserDependency refers to the company name field. company only requests the input if a company name is entered. private only requests it if none is entered. Any value other than private and company acts like no.
Several peculiarities of the evaluation aren’t described in the previous documentation and are added here.MaxLength is silently set to the internal maximum for a value less than or equal to zero and for a value above that maximum. There is no error message.Type = checkbox fixes MaxLength at 10, because only checked or nothing is stored as the value.Type = dateofbirth fixes UseAddressInput to customer. The input is additionally saved in the customer data.Any value of Type other than listbox, dateofbirth, or checkbox results in input.
Each Type has a technical ID that can be queried in the template using the PAY- tags.

+listentry

You define the entries of a selection list in +listentry subsections. Up to 100 entries are possible. The section is only needed if Type = listbox is set. If you omit ID for an entry, you get a selection option without a technical value, for example for the entry “Please select”.
The value of ID is transmitted to the external system if the additional information is used for a payment or clearing procedure.

Reserved IDs

All IDs with the prefix ws_ are reserved. Additional information with these IDs is evaluated by certain clearing and credit check procedures. For these, the kernel overrides part of your configuration so that the procedure receives the data in the expected form.
The previous documentation lists only seven of these IDs and states no enforced settings for ws_clearing_easycredit and ws_clearing_ppc_invoice_phone. The table has been completed in this migration based on the kernel.The two entries with the addition “only without an existing phone number” aren’t requested at all if the billing address already contains a phone or mobile number. The required field is then omitted.

PaymentEnvironmentDependencies-Definitions

Here you specify that a payment method is only offered on certain devices. The basis is the user agent that the buyer’s browser transmits. The assignment to the payment method is made via the +UsePaymentEnvironmentDependency-ID parameter in the PaymentXXX-Txt section. The section may appear only once in the shop.config and needs at least one +EnvironmentDependency subsection.
The conditions in this section make a payment method available when they’re met. The reverse case can’t be configured. A condition that applies can’t exclude a payment method.
Note the nesting. +EnvironmentDependency contains +DependencyGroup, which contains +Dependency.

PaymentProductDependencies-Definitions

Here you specify that a payment method depends on the product index, the product number, or a free product data field. The assignment is made via +UseProductDependency-ID in the PaymentXXX-Txt section. This section, too, may appear only once in the shop.config and needs at least one +ProductDependency subsection.
As with the section for devices, the conditions make a payment method available when they’re met. An exclusion can’t be expressed. If you want to exclude a payment method for certain products, phrase the condition negatively, for example with notvalue or notinlist.
Free product fields carry the prefix AF-, for example AF-DeliveryTime. They must also be enabled for the basket in the AdditionalProductFieldsInBasket section. For greater and smaller, both values are converted to integers. A value that can’t be converted is read as 0. For matchsimplewildcard and notmatchsimplewildcard, ? stands for exactly one arbitrary character at that position and * for any number of characters. The asterisk may only appear at the end.
In the source documentation, this section contained two errors that are corrected here. The note on nesting said <+ProducttDependency> with a double t. For the BasketBehavior parameter, the permitted value was given as matche-once instead of match-once.

The individual payment methods

All of the following sections also understand all standard parameters from above. Only their own parameters are listed.

Without their own parameters

These sections get by with the standard parameters.

PaymentPrepayment-Txt

Prepayment. The three parameters fill the display of the bank details.

PaymentCreditCard-Txt

Credit card. You also define the offered card types in the Card1 to Card5 sections.
ShowCardDataAfterOnlineClearing determines whether credit card data becomes visible in the order.no doesn’t display it and is the recommended setting.protected displays it exclusively in the encrypted Online Service Area.unsafe is intended exclusively for pseudo credit card numbers that the payment service provider generates and that are worthless without its integration. This setting may only be enabled in justified exceptional cases and after consultation with WEBSALE AG.
The content of the CustomFields is truncated to 50 characters after parsing and then UTF-8 encoded.

PaymentDebitNote-Txt

Direct debit. This section covers three variants: classic direct debit, direct debit via Paymorrow, and direct debit via PayPal Checkout. Accordingly, not all parameters are relevant for every integration.

Input field labels

Required fields and visibility

SEPA

With SEPAMandateGeneratorPrefix = DEU- and SEPAMandateGeneratorOffset = 320001, the first generated mandate references are DEU-320001, DEU-320002, and so on.
In the source documentation, the example values of these two parameters were swapped. The offset was assigned DEU- and the prefix 320001. This is corrected here.

Electronic direct debit

Selection box for saved bank details

Paymorrow

A product name is mandatory for Paymorrow. PaymorrowLineItemDefaultName prevents a product without a name from blocking the purchase. The pseudo product numbers must not come from the number range of the products offered in the shop and must be agreed with the merchant. Paymorrow’s external error messages are output via the MSG-PayDeliv_Notify tag. Without prefix and suffix, they appear unstyled. The salutation lists ensure that the correct salutation is preselected when the address is passed to Paymorrow.

PaymentDebitNote-Country

Holds the plain-text names for the country codes of the direct debit. The parameter names are the ISO codes themselves; other is also possible.

PaymentPaymorrow-Txt

Invoice via Paymorrow. The parameters B2BMode, PaymorrowRequestLanguageCode, the two notify parameters, the eight LineItem parameters, and the two salutation lists correspond to those from PaymentDebitNote-Txt. In addition:
For Paymorrow, DenyDifferentDeliveryAddress is set to yes by default. ExplicitAllowDifferentDeliveryAddress = yes overrides this. An accepted different delivery address must be agreed with Paymorrow in advance.

PaymentPaypal-Txt

PayPal in the direct integration, via Computop, and as Express Checkout. Depending on the integration, only some of the parameters are relevant. ExpressCheckoutNoShipping controls the delivery address. 0 displays it on the PayPal pages. 1 hides all delivery address fields. 2 takes the address from the shop’s customer account if the buyer doesn’t specify one. Three modes are available for the basket transfer. AllEntriesAsSingleLineItem-TotalSum transfers the entire order as one item. OneEntryPerLineItem-SubTotalSum transfers one item per basket entry without surcharges and deductions, and is only possible with Express Checkout. OneEntryPerLineItemWithDummies-TotalSum transfers one item per basket entry plus the dummy products. The default in both cases is AllEntriesAsSingleLineItem-TotalSum.
If PassBasketToPayPal-DummyAddition or PassBasketToPayPal-DummyReduction is empty, the shop automatically switches the mode back to AllEntriesAsSingleLineItem-TotalSum.
With PaypalPaymentAction = order and PaypalPaymentAction = authorization, InstantPaymentOnly-Allow = no must be set.InflateAuthorizationAmount is only evaluated for these two values. With sale, the parameter has no effect because no capture takes place. Negative values are set to 0. This parameter isn’t described in the previous documentation and is added here.
PaypalPaymentAction in detail. sale debits immediately. authorization only authorizes and checks creditworthiness with PayPal; the authorization is valid for a maximum of 29 days. order only obtains the user’s consent, without PayPal checking the availability of funds, and can be kept open longer than 29 days. Characters that aren’t alphanumeric aren’t passed to PayPal with PassToPaypalAsCustomParameter. This also applies to spaces and umlauts. If no logo is defined via PayPalLogoImg, the company name entered under PayPalBrandName appears. If that’s also missing, PayPal uses the company name stored in the account.

PaymentPayPalPlus-Txt

PayPal PLUS. With PaypalDenyPendingPayments-Allow = no, the merchant must subsequently check whether payment has been made for an order with the status “pending” before processing it.

PaymentPayPalCheckout-Txt

PayPal via the PayPal Checkout integration.

PaymentPayPalCheckoutPayLater-Txt

Pay Later via PayPal Checkout. Supports DummyItemAddition and LanguageCode with the same meaning as above.

PaymentPayPalInvoice-Txt

Purchase on invoice with RatePay via PayPal Checkout. All five parameters are mandatory. Purchase on invoice via this integration is currently only available in Germany.

Alternative payment methods via PayPal Checkout

These sections all follow the same pattern and support DummyItemAddition and LanguageCode. Two sections also bring their own parameters. PaymentPayPalCheckoutAPM_GOOGLEPAY-Txt for Google Pay additionally supports ExpressCheckout-Allow with the values yes and no, default no. PaymentPayPalCheckoutAPM_APPLEPAY-Txt for Apple Pay additionally supports ExpressCheckout-Allow, Brandname for the company name on the PayPal page with a maximum of 127 characters, and ExpressCheckoutNoDeliveryMessage with the values 0, 1, and 2 for handling the delivery address.
The source documentation on Apple Pay via PayPal Checkout contained two errors that are corrected here. The example code was headed with <PaymentPayPalCheckoutAPM_GOOGLEPAY-Txt>. In the parameter table, the parameter was introduced as Brandname, but referred to as PayPalBrandName in the description text. The correct parameter name in this section is Brandname.

PaymentApplePay-Txt and PaymentGooglePay-Txt

Apple Pay and Google Pay in the integration via Computop. Both sections support the same three parameters. If the corresponding Computop clearing isn’t enabled, the entire section is skipped and none of these parameters is read.

PaymentKlarna-Txt

Klarna Payments in the direct integration.

PaymentPaydirekt-Txt

Paydirekt. The pseudo product numbers must not come from the number range of the products offered.

PaymentBillie-Txt

Billie purchase on invoice.

PaymentInstallment-Txt

Installment purchase. Depending on the provider, further sections are added.
The shop operator is obliged to show the buyer the total amount including interest before the purchase is completed, at the latest on the order overview page. If the interest costs are used as payment costs, this is automatically the total amount of the order. Otherwise, the interest costs aren’t automatically included in the grand total.

PaymentDIRECTebanking-Txt

SOFORT Überweisung.

PaymentPostFinance-Txt

PostFinance.

PaymentPayU-Txt

PayU.

Credit check

Two sections set the threshold values for the credit check. The parameters InfoScore-Allow and CreditPass-Allow in the respective PaymentXXX-Txt section determine which payment method is checked.

InfoScore

Whether the total merchandise value is considered gross or net depends on the shop’s setting in the VAT section. For example, if the invoice payment method should be removed as soon as Infoscore returns a value of 350 or less, set InfoScore-Allow = yes in the PaymentBill-Txt section and eScoreDenyLessThan-Value = 351. The higher the Infoscore value, the better the creditworthiness. Clarify the appropriate decision threshold directly with Infoscore.
CreditCheckPeriod only works if your merchandise management system supplies the date of the last check.

CreditPass

Card1 to Card5

Defines the accepted credit card types. In addition, the credit card payment method must be enabled in the PaymentCreditCard-Txt section with Allow = yes.
The five parameters BrandID, PaymetricBrandID, Img, Link, and ImgOnClick aren’t described in the previous documentation and are added here.A Card section is discarded completely if Name is empty or Allow isn’t set to yes. No message appears.
Values for CompuTopBrandID: VISA, MasterCard, Maestro, AMEX, Diners, Discover, and AirPlus. Values for TeleCashSec2ID: M for MasterCard, V for Visa, A for American Express, C for Diners, and J for JCB. Values for WSCardType: 1 for VISA, 2 for MasterCard, 3 for American Express, 4 for Diners Club, and 5 for JCB. Values above 100 can be used freely. The parameter is mandatory when using the order generator, but isn’t evaluated for the technical processing of the order.

CompuTop-ErrorMessages

Defines how the shop handles error messages from Computop. The section is only needed if Computop error messages should appear in the language of the subshop in foreign-language subshops.
You get the error codes directly from Computop.

Paymorrow-Mapping and PaymorrowDebit-Mapping

Link free address data fields of the shop with the Paymorrow parameters. This is needed to request legal form, company owner, and registration number from business customers. Paymorrow-Mapping applies to invoice via Paymorrow, PaymorrowDebit-Mapping to direct debit via Paymorrow. Both sections support the same three parameters.
You create the address data fields themselves in the AddressFields-Txt section. Reference: Section AddressFields-Txt

Paymorrow-NotifyMessages and PaymorrowDebit-NotifyMessages

Define the error messages for invoice or direct debit via Paymorrow. A +Entry subsection is created for each error case. Both sections support the same seven parameters.
Clarify directly with Paymorrow which values Paymorrow supplies in which error case.
If several errors occur at the same time, only the first matching message defined in this section appears. The order of the +Entry sections therefore determines which message the buyer sees.