Skip to main content
The payment methods can be output in the template as a ready-made block. This is quick, but it also fixes the structure. If you want to determine the layout yourself, build the list line by line from the PAY- tags instead. The documentation calls this individual positioning. The basis is always the same loop over the available payment methods. Within the loop, you retrieve the name, icon, costs, and selection field for each payment method. This page describes this core. The additional fields that some payment methods also need are described on a separate page. Guide: Selecting the payment method · Reference: PAY- (Additional fields for the payment method)

The loop over the payment methods

PAY-Data is the entry point and has three forms. As a single tag, it outputs the number of available payment methods; as a range tag, it applies if there are any at all; and as a loop, it iterates over them.
All other tags on this page work within {@PAY-Data}. Outside the loop, no payment method is selected, and they return nothing.

Name and identifier

Materials: Payment method codes
PAY-Data_techname does not return the configured name, but the fixed internal designation of the payment method. It does not change with the shop configuration and is therefore suitable as an anchor for CSS or JavaScript, while PAY-Data_name is the text for the buyer.
The shop system evaluates the additional text PAY-Data_NameSuffix a second time as a template. This means you can include tags in it, and ~WS-Currency~ and ~WS-CurrencySymbol~ are replaced in any case. This lets you, for example, phrase a note about the fee directly in the configuration without entering the amount there as a fixed value.

Is this payment method selected

PAY-Data_IsDefault is not described in the previous documentation. It requires a logged-in buyer with a stored default payment method. Use it to highlight their usual payment method, even before they have clicked anything.

The radio button for selection

Together, eight tags create a complete input element. They return the ID, CSS classes, name, value, and the two state attributes.
For a selected payment method with the code XX, this results in:
The field name ws_radio_payment is fixed in the shop system, as is the structure of the ID. Always take both from the tags, otherwise the shop will not recognize the selection when the form is submitted.
PAY-Data_Selection_radiovalue and PAY-Data_index return the same value, namely the payment method code. In the input element, PAY-Data_Selection_radiovalue is the more descriptive choice; everywhere else, use PAY-Data_index.

Disabled payment methods

The shop system can omit a payment method that is not eligible for this basket or display it grayed out. If you display it, three tags explain the case.
PAY-Data_disabledcode returns the reason why the shop system filtered out the payment method, for example a minimum order value that was not reached or an excluded delivery country. Do not output the code visibly; instead, put it in a data attribute so that support can work with it.
Which code stands for which reason is not documented. Therefore, phrase the visible text via PAY-Data_disabledmessage and the shop configuration, not via your own mapping of the codes.

The icons of a payment method

PAY-Data_Image is a separate loop within the payment method loop. A payment method can have several icons, for credit cards, for example, one per card brand. As a single tag, the tag outputs the number of icons.
For credit cards, the loop iterates over the configured card brands and skips any that is disabled or has no image stored. So you only see the brands that are actually accepted in the shop.
For credit cards, PAY-Data_Image_id returns the identifier of the card brand; for all other payment methods, it returns the payment method code. The previous documentation only mentions the second case.
In the configured onClick call, the shop system replaces the two placeholders ~ID~ and ~Link~ with the identifier and the link of the icon currently being processed. This way, a single entry in the configuration is enough for all card brands.

Costs of the payment method

PAY-Data_Cost outputs the amount the way the shop handles prices, i.e. gross in a gross shop and net in a net shop. PAY-Data_NetCost and PAY-Data_GrossCost each convert in the other direction. If you show both values side by side, consistently use NetCost and GrossCost and leave out PAY-Data_Cost.
An amount of zero is treated as empty. The range tag then does not apply, and the single tag outputs nothing. This is convenient because free payment methods automatically appear without a fee line. But it also means that you have to set an explicit “no fee” line via {!PAY-Data_Cost} if you want one.
The three AltCurrency tags require a selected alternative currency with a stored exchange rate. If the rate is missing, the shop system calculates with zero, and the tags remain empty according to the rule above. Therefore, always wrap the output in a range tag.

Discount on the purchase

Some shops grant a discount if the buyer chooses a particular payment method.
Only the percentage is configured. PAY-Data_Discount calculates the amount from it, based on the discountable subtotal of the basket. Both tags remain empty as long as the basket does not contain a discountable sum. The previous documentation describes the absolute value as a separate setting; this is not correct.
PAY-Data_DiscountRate outputs the number with two decimal places and a period as the separator, for example 3.00. It is the only amount tag on this page that does not go through the shop’s number formatting. In a shop that uses a comma as the separator, this is noticeable, and you should reformat the number in the template.

Customer-specific payment costs

A discount on the payment costs or a complete waiver can be stored for individual customers.
When payment costs are waived, the shop system sets the costs to zero, and all six cost tags from above remain empty. The fee line therefore disappears automatically. PAY-Data_UserPaymentCostFree is the place where you can state the reason for this instead.
All five tags require a logged-in buyer, because the discount is tied to the customer account. If necessary, additionally wrap the area with ST-LoggedIn.

Prepared IDs and CSS classes

Five tags create IDs and class names according to the scheme that the block output also uses. This keeps a hand-built template compatible with the supplied stylesheet. All five require exactly one argument that specifies which element is meant.
These elements are permitted as arguments: main, logo, radio, text, name, clear1, remarks, suffix, inputsuffix1, inputsuffix1_name, inputsuffix1_input, inputsuffix2, inputsuffix2_name, inputsuffix2_input, inputsuffix3, inputsuffix3_name, inputsuffix3_input, costcenternumber, costcenternumber_name, costcenternumber_input, costcenteremail, costcenteremail_name, costcenteremail_input, clear2, disabled, clear3, paymentcountryrule, paymentcountryrule_checkbox, paymentcountryrule_name, paymentcountryrule_input, paymentcountryrule_list, paymentcountryrule_error, payexbank, paypalplus-wrapper
Without an argument or with more than one argument, all five tags are treated as an invalid tag. There is no default.
PAY-Data_html_class_counter numbers the payment methods in the loop consecutively. For example, you can color every second line differently by styling the classes with even and odd numbers differently.
How the elements are nested in the block output is described under WS-PaymentFields.

The area for additional information

PAY-Data_html_container_remarks applies if the payment method has anything at all to display below the name. Use it to create the enclosing container only where it is needed. The range tag applies in four cases: if an additional text is stored, if one of the three free input fields is configured, if an input for number or email address is set up for the cost center payment method, or if an additional rule applies for the delivery country.
The tags for the additional fields themselves are described under PAY- (Additional fields for the payment method).

Having the page recalculated

If the buyer changes the payment method, fees and totals change as well. PAY-reload_hidden_identifier returns the technical value for a hidden field that can be used to have the page recalculated.

Deprecated tags

PAY-Data_KlarnaCost still exists in the shop system, but no longer outputs anything and never applies as a range tag. Remove it from existing templates. Retrieve the costs of a Klarna payment method via PAY-Data_Cost, as with any other.

The tags at a glance

All tags apply on the payment and shipping method page ws_pay_deliv.htm within the @PAY-Data loop. PAY-Data itself is placed outside the loop on this page.
  • Guide: Selecting the payment method
  • Guide: Creating payment methods
  • Reference: PAY- (Additional fields for the payment method)
  • Reference: WS-PaymentFields
  • Materials: Payment method codes