marcopolo Online payment
Sign up

Introduction

Our SAP Commerce Cloud plug-in comes with regular updates and full integration support, offering a versatile out-of-the-box solution to accept online payments easily:

  • Supports both Hosted Checkout Page and Hosted Tokenization Page integration methods.
  • Manages multiple stores.
  • Accepts payment operations (Refunds, authorisations, captures etc.) directly from your SAP Commerce Cloud Backoffice.

Find the complete list of payment methods the plugin supports in our payment methods overview.

Keep an eye on our Release Notes to stay informed about updates and new features (i.e. payment methods, features, integration methods) we have added to this plugin!

Check out our documentation to learn how to link your store with our platform to profit from all these features!

Download plugin
  • Entrust a system administrator with the installation and configuration of the plugin. Accordingly, the target audience of this documentation is system administrators with a profound knowledge of SAP Commerce Cloud / Hybris.

Account Creation

To process transactions with this plugin, you need an account on our platform.

This plugin works with both our test and live environments. A test account is a great way to get familiar with both the plugin and our platform. Once you want to go live, contact us!

Plugin code modifications void technical support

For security and stability, ANZ Worldline Payment Solutions does not support plugins whose code has been modified by the merchant or a third party. Plugins are provided as-is (official version). Any unauthorised modification voids support and warranty and may cause malfunctions, security gaps, or incompatibilities with PSP updates.

Installation

  1. Install plugin
  2. Configuration
  3. Manage payments

Install plugin

The first step to use the plugin is the installation process. Before you proceed, make sure your infrastructure meets these system requirements:

Item Description
Plugin package

Download the plugin

ANZ Worldline Payment Solutions credentials
Java

At least version 17, SapMachine 17 is recommended

JAVA_HOME property will need to be set to the correct location for the installer to work correctly

SAP Commerce

Officially supported versions of SAP Commerce cloud are:

  • 2211.2

Other patch releases of 2211 are compatible with this plugin. However, the plugin is untested for other versions.

You will need to source a copy of SAP Commerce, as it is not included with the plugin.

SAP Commerce components

The reference storefront implementation is designed to work with both B2C and B2B accelerators.

If you have already customised your system heavily, some additional integration may be required, as this plugin is designed to work with the standard Accelerator UI.

Development environment

The examples in this document work with a UNIX-based development environment (e.g. Mac OS X or Linux).

For Windows installations, use the appropriate Windows commands (e.g. setantenv.bat, hybrisserver.bat).

PCI compliancy

SAQ A

The plugin’s in-built features ensure this security level, but you still need to get the certificate from your acquirer.

On top of these prerequisites, make sure to respect the extension structure:

Property Description
worldlinedirectb2ccheckoutaddon Contains the storefront modifications required to facilitate the injection of the Worldline Online Payments Direct payment journeys into the B2C Storefront Checkout Journey.
worldlinedirectbackoffice Contains Backoffice modifications to facilitate configuration of the plugin.
worldlinedirectb2bcheckoutaddon Contains the storefront modifications required to facilitate the injection of the Worldline
Direct payment journeys into the B2B Storefront Checkout Journey.
worldlinedirectcore Contains any data model additions and functional services which use our REST API. Also includes the Java SDK.
worldlinedirectcustomersupportbackoffice Contains modifications to the Customer Support Backoffice perspective, which allow a Customer Support agent to manually capture or refund a transaction.
worldlinedirectocc Contains enhancements to the Omni Commerce Connect REST APIs included with SAP Commerce: You can process payments from a headless storefront or mobile app.
worldlinedirectwebhook Contains an endpoint for transaction status updates from our platform via webhooks.

This installation process applies to either:

  • a brand-new project with a standard.
  • out of the box accelerator storefront.
  • an existing project with its own storefront extension based on yacceleratorstorefront.

Once done, follow these steps:

1. Install SAP Commerce using ‘cx’ Recipe

SAP provides instructions for using the installation recipes in the SAP Help Portal. If you are unfamiliar with the general installation process, make sure to read through this before the installation.

You will require an existing installation of SAP Commerce to use the plugin. If you already have an installation of SAP Commerce with the B2C Accelerator and its corresponding extensions included, skip this step.

  • Download SAP Commerce in .Zip format. Unzip the platform and navigate to the ‘installer’ directory.
  • Run the following command: Replace ‘your_password’ with your desired administrator password for the system.
./install.sh -r cx -A local_property:initialpassword.admin=your_password
  • Run the following to build and initialise the system:
./install.sh -r cx initialize -A local_property:initialpassword.admin=your_password
hybris/
           config/
bin/
custom/
worldline/
  • The config directory contains a sample set of configurations in the local.properties file. Copy these configurations into the local.properties file generated after the SAP Commerce installation.
  • The config directory also contains a localextensions.xml file. Add the following from this file to your own localextensions.xml file that was generated after the SAP Commerce installation:
<!-- WORLDLINE -->
<extension dir="${HYBRIS_BIN_DIR}/custom/worldline/worldlinedirectcore"/>
<extension dir="${HYBRIS_BIN_DIR}/custom/worldline/worldlinedirectb2ccheckoutaddon"/>
<extension dir="${HYBRIS_BIN_DIR}/custom/worldline/worldlinedirectb2bcheckoutaddon"/>
<extension dir="${HYBRIS_BIN_DIR}/custom/worldline/worldlinedirectbackoffice"/>
<extension dir="${HYBRIS_BIN_DIR}/custom/worldline/worldlinedirectocc"/>
<extension dir="${HYBRIS_BIN_DIR}/custom/worldline/worldlinedirectwebhook"/>

You should examine each extension’s extensioninfo.xml file (contained within the root of each extension’s directory) to ensure the extensions mentioned within each <requires-extension> tag are included in your localextensions.xml.

  • The bin/custom/worldline directory contains all required extensions. Copy them into your own hybris/bin/custom/worldline directory. If you wish to put these extensions in a different directory, update your localextensions.xml accordingly.

2. Install Extension to Storefront

  • To run the ant commands below, you will need to run . ./setantenv.sh or its Windows equivalent within the hybris/bin/platform directory.
  • You may need to run the following command to ensure the correct addons are available in your storefront:
ant addoninstall
-Daddonnames="adaptivesearchsamplesaddon,assistedservicecustomerinterestsaddon,assist
edservicepromotionaddon,assistedservicestorefront,assistedserviceyprofileaddon,captch
aaddon,configurablebundleaddon,consignmenttrackingaddon,customercouponaddon,customerc
ouponsamplesaddon,customerinterestsaddon,customerticketingaddon,eventtrackingwsaddon,
merchandisingaddon,merchandisingstorefrontsampledataaddon,multicountrysampledataaddon
,notificationaddon,ordermanagementaddon,orderselfserviceaddon,pcmbackofficesamplesadd
on,personalizationaddon,personalizationsampledataaddon,personalizationyprofilesampled
ataaddon,profiletagaddon,selectivecartsplitlistaddon,smarteditaddon,stocknotification
addon,textfieldconfiguratortemplateaddon,timedaccesspromotionengineaddon,timedaccessp
romotionenginesamplesaddon,xyformssamples,xyformsstorefrontcommons,ysapproductconfiga
ddon" -DaddonStorefront.yacceleratorstorefront=""

Replace <YOUR-STOREFRONT> with your storefront extension’s name, e.g. yacceleratorstorefront or <project>storefront

  • Install the Addon to your Storefront, use the following command:
ant addoninstall -Daddonnames="worldlinedirectb2ccheckoutaddon"
-DaddonStorefront.yacceleratorstorefront="<YOUR-STOREFRONT>"
  • Use the following command to install the B2B addon to your storefront:
ant addoninstall -Daddonnames="worldlinedirectb2bcheckoutaddon" 
-DaddonStorefront.yacceleratorstorefront="<YOUR-STOREFRONT>"
  • Now rebuild your system:
ant clean all
  • Perform either an initialisation or system update. You can do both via the Hybris Administration Console (HAC) at https://<your-server>:9002/hac or you can initialize this via the ant target:
ant initialize


Configuration

After the installation, you need to configure the plugin to link your store to our platform. This section of the documentation will cover technical configuration elements only.

Also, please note that the Worldline API has a 50-character limit for the customer email address field, while the SAP Commerce Cloud platform and the plugin do not. So do not forget to validate this field to conform to this limit.

Configure properties

  • From worldlinedirectcore/project.properties :
worldline.direct.api.authorizationType=V1HMAC
worldline.direct.api.connectTimeout=10000
worldline.direct.api.socketTimeout=10000
worldline.direct.api.maxConnections=10
worldline.direct.api.integrator=Worldline


The Java SDK passes these configurations and controls the connectivity. Have a look at our dedicated Java SDK documentation for more information.

  • From worldlinedirectbackoffice/project.properties:
worldline.contact.support.default.cc=
worldline.contact.support.default.bcc=
worldline.contact.support.default.subject=default subject


These configurations control the button within the SAP Back Office, which is used to contact us for support via email.

    Configure Webhooks

    The plugin uses webhooks to get the current status of your transactions from our platform. SAP Commerce uses the endpoint /worldline/webhook to receive these status updates.

    Configure a WebhooksKey, WebhooksKeySecret and Endpoint URLs in your PSPID as described in our dedicated guide. Make sure the URL:

    • Contains your site’s hostname '(i.e. https://<your-domain>:9002/worldline/webhook)'
    • Has a valid SSL certificate

    Configure SAP Backoffice

    The following steps cover the configuration process of the SAP Commerce Backoffice. For general information about the SAP Commerce Backoffice, refer to the Business User guides in the SAP Help Portal.

    After the successful installation, the SAP Backoffice contains a new item type “Worldline Configuration”. Follow these steps to link your Base Store in SAP Commerce to our platform:

    • Login to the SAP Commerce Backoffice via the default URL https://<hostname>:9002/backoffice. Default administrator credentials will have been defined during installation or provided to you separately.

    Go to Worldline > Worldline Configuration. Click on the “+” – symbol in the taskbar.

    The image above shows where to find the Worldline Configuration item and the “+” symbol in the taskbar
    • Enter the following from the table in the appearing pop-window:
    Property Description/Actions
    API Key Enter the API key of your test or live PSPID. Read our dedicated guide to learn how to generate one.
    API Secret Enter the API secret of your test or live PSPID. Read our dedicated guide to learn how to generate one.
    Apply Surcharge

    Confirm choices on whether you want to apply surcharge to your transactions.
    Mind that the surcharge only applies to non-EU markets and requires configuring on your account. Learn more in our dedicated guide.

    Ask Consumer Consent Configure this in the following step.
    Endpoint URL

    The test or live endpoint on our platform. Copy them from our dedicated guide.

    • Read our dedicated guides about API endpoints and authentication to get a thorough understanding about the test/live environment and API key/API secret.
    • Make sure not to mix up credentials from test with live and vice versa.
    • Make sure to switch to the LIVE-URL as soon as you have finalised your tests.
    First recurring payment

    Indicate whether to fully charge your customers for the first order in a series of multiple orders.
    True: Charge the first order.
    False: Do not charge the first order.

    Grouped cards

    Define whether to group all card payment methods on the Hosted Checkout Page.

    Split order level promotion to line items

    This functionality is still available inside the plugin, but it is no longer required. The Worldline API has been updated to include order-level discounts, so you can safely disable this feature.

    Merchant ID Enter the PSPID on our platform that you want to use for transaction processing.
    webhookKeyId Enter the webhookKeyId of your test or live PSPID from the previous step.
    webhookSecret Enter the webhookSecret of your test or live PSPID from the previous step.

    Click on "Finish" to confirm your configuration.

    Select a config from the list of existing configurations to modify it. Open it, and the editor will appear at the bottom of the screen. Please remember to save the updated configurations.

    Test Connection

    Once you complete these steps, verify the configuration by establishing a test connection between the plugin and our platform:

    Screenshot of the test connection button

    Merchants can now share feedback or request additional features via the “Request a new feature” button inside the plugin.

    Click on the configuration profile in the table you have just confirmed. Enter the following from the table overview:

    Worldline Tab

    Property Description/Actions
    Operation configuration
    • Operation Code: Define whether to process the transactions as authorisation mode or as direct sale. Select one of the following options:
      • Authorization: the amount is only blocked on your customer's card. Successful transactions will have StatusCode=5 (this is used when you wish to capture a transaction only after shipping the article).
      • Sale: the amount has been ordered to be paid out in one go. Successful transactions will have StatusCode=9
    • Capture Time Frame: Set a capture delay for authorised transactions of X days. At the end of this duration, a cron job will capture the transaction automatically. If the transaction is partially captured already in the meantime, any available funds that remain will be captured.

    If "Operation Code" is set to "Authorization", beware of the following:

    • Make sure that you capture authorised transaction later. Only then will the transaction reach statusCode=9, for which you receive the actual payment for the transaction.
    • Even if the "Capture Delay" is set to X days, you can also manually capture funds fully/partially by opening an individual order once you have delivered the goods/services.
    • Session Timeout: Define the duration of a customer session for adding payment details. If undefined, the duration is 180 minutes. Only applicable for transactions processed via Hosted Tokenization Page.
    Tokenization configuration
    • Ask Consumer Consent: Define whether your customers must opt-in/opt-out for permanent Token creation.
    • Tokenization Template: If you process transactions via our Hosted Tokenization Page, enter the file name of your template to adapt the iframe to the look and feel of your shop.

      To learn how to create templates, see our dedicated chapter in Hosted Tokenization Page guide.

    Grouped cards configuration
    • Grouped cards: Define whether to group all card payment methods on the Hosted Checkout Page.
    • Grouped Cards icon: Add a SAP CC media file to display a card's label. 
    Recurring payments configuration
    • Replenishment number of retries on failure: Define the number of allowed retries for failed payments for subsequent orders. Default value: 5.
    • First recurring payment: Indicate whether to fully charge your customers for the first order in a series of multiple orders.
      • True: Charge the first order.
      • False: Do not charge the first order.
    Payment method sorting Configure the order in which payment methods are displayed on the checkout page.
    Bank transfers
    • Off (default): Both instant and standard bank transfers are accepted.
    • On: Only instant bank transfers (e.g., real-time SEPA credit transfers) are accepted. Standard bank transfers that take 1-3 business days to settle will be rejected.
    Intersolve configuration Configure the Session Timeout for Intersolve payments.

    3D Secure Configuration (3DS tab)

    Property Description/Actions
    Enable 3D Secure

    Control whether 3D Secure authentication (SCA) is required for card payments. It maps inversely to the Worldline API's skipAuthentication flag:

    • On (default): skipAuthentication = false – The cardholder will be prompted for 3D Secure authentication (e.g., SMS code, bank app approval).
    • Off: skipAuthentication = true – 3D Secure is skipped entirely, meaning no cardholder authentication challenge is triggered.
    Enable Mandatory 3D Secure

    Controls the challengeIndicator sent to the Worldline API:

    • Off (default): challengeIndicator = "nopreference" – The issuing bank decides whether to challenge the cardholder. The bank may still allow the transaction without Strong Customer Authentication (SCA) if it deems the risk low enough.
    • On: challengeIndicator = "challenge-required" – Forces the issuing bank to always challenge the cardholder, regardless of risk assessment. Every card transaction will require active authentication.
    3D Secure Exemption type

    Allows you to request an exemption from Strong Customer Authentication (SCA) for transactions qualifying under PSD2 rules.

    • NO_3DS_EXEMPTION: Disables exemptions entirely. No exemption is ever requested.
    • NO_CHALLENGE_REQUEST: Asks the issuer not to challenge, but the issuer may still require SCA up to a configurable limit of 100 EUR.
    • LOW_VALUE: Requests the PSD2 low-value exemption for small transactions up to a configurable limit of 30 EUR.
    • TRANSACTION_RISK_ANALYSIS: Requests an acquirer-side TRA exemption. Liability shifts to the merchant if fraud occurs on exempted transactions up to a configurable limit of 100 EUR.
    3D Secure Exemption limit

    Sets the maximum order total up to which the configured exemption will be applied. If the order total is greater than or equal to this limit, no exemption is requested, and standard 3DS/SCA rules apply instead.

    This field is dynamically validated based on the selected exemption type.

    • Must be <= 30 EUR when the exemption type is LOW_VALUE
    • Must be <= 100 EUR when the exemption type is NO_CHALLENGE_REQUEST or TRANSACTION_RISK_ANALYSIS


    Click on “SAVE” to confirm your configuration.

    Configure Base store

    Before you start processing (test) transactions, you need to

    To do so, follow these steps and confirm by clicking "SAVE" in each tab:

    • Go to Base Commerce > Base Store. Select the store from the table with headers "ID" / "Name".

    Select "Worldline" from the available tabs and scroll down to "WORLDLINE CONFIGURATION".

    The image above shows where to find the "WORLDLINE" tab.
    • Enter the following from the table overview:
    Property Description/Actions
    Payment Provider Configuration

    Associates your base store with a configuration profile.

    Click on the field to select the configuration profile you set up in the previous steps.

    Checkout type

    Select an integration method for transaction processing. You can choose from the following options:

    • Hosted Checkout Page - Each payment method and card brand is listed individually on your checkout page. When selecting a payment method, the user is redirected to our Hosted Checkout Page to enter their payment credentials. Read our dedicated Hosted Checkout Page guide to learn more.
    • Hosted Tokenization Page - All card brands are displayed as a single "Credit card" payment option in a single iFrame on your checkout page. This allows your customers to stay on your checkout page while entering their card details. Read our dedicated Hosted Tokenization Page guide to learn more.

    Bancontact is only available on the Hosted Checkout Page in QR code mode.

    If you choose the Hosted Tokenization Page method, make sure to configure a template via Worldline > Worldline Configuration.

    Do not switch between checkout modes whilst the site is live, as this might lead to undesirable effects on your customers' payment journey.

    Merchant Email

    Define the sender e-mail address your customers will receive updates from about updates for their replenishment orders.

    • Select "ADMINISTRATION" from the available tabs and scroll down to "UNBOUND". Enter "worldlineB2CResponsiveCheckoutGroup" in the field "Checkout Flow Group"
    • Select "PROPERTIES" from the available tabs and scroll down to "PAYMENT PROVIDER". Enter "Worldline" in the field "Payment Provider"
    The image above shows where to find the “PROPERTIES” and the "ADMINISTRATION" tab.

    Configure Payment Modes

    To configure this list of Payment Modes in SAP Commerce, navigate to the following menu in Backoffice:

    Screenshot of Payment Modes configuration menu

    Once you click on Payment Modes, you will see a list of Payment Modes currently loaded in the system. After selecting a Payment Mode, you can enable or disable it by changing the isActive flag.

    Screenshot of Payment Modes configuration - changing status

    If you add a new Payment Mode to your account in the ANZ Worldline Payment Solutions Backoffice, you may need to manually add it to the system by clicking the '+' button at the top of the Payment Modes List.

    Configure Card On File

    To configure Card On File, go to Worldline > Worldline Recurring Token

    This list shows all available tokens for Card On File in your system. Click in the respective line in the table to get a comprehensive overview about the individual token and possible actions: 

    Property Description
    Token Unique identifier of the token on our platform. Returned by our platform when creating the token with the first order.
    Alias Masked card number linked to this token. 
    Cardholder name Name of the cardholder linked to this token.
    Expiry date Expiry date of the card linked to this token. 
    Subscription ID Unique identifier of the replenishment order and of the cronjob generating all subsequent orders.
    Status

    The token's status. Possible values: 

    • Active: Can be used for Card On File.
    • Blocked: The plugin blocks the usage of the token. 
    • Revoked: Token has been deleted on our platform and cannot be used anymore.
    Customer

    Unique identifier of your customer who placed the initial order when creating the token. Refer to the Administration tab for more information. 

    Store

    Unique identifier of the store ID managing the replenishment. Refer to the Administration tab for more information. 

     

    Replenishment Orders

    Both B2B and B2C storefronts have access to the replenishment order feature. There are several configurations you need to set to customise it, which we have explained in the previous sections.

    Replenishment orders are created using a cronjob. You need the following properties for replenishment order processes:

    • Cart – This is the blueprint of the replenishment order.
    • Orders – List of orders placed using the Cart data. The first placed order is the one that the customer places manually during the checkout process. All subsequent orders are created from the cronjob.
    • CronJobHistoryEntries – Keeps information about cronjob executions.
    • Payment Info – The payment info used for server-to-server calls to ANZ Worldline Payment Solutions used to process payments for subsequent orders.
    • Submitted – This property is used to indicate there were no issues during cronjob creation. If it is set to false, no future orders will be created.

    You can find all detailed configurations and processes in the README guide shipped with the plugin package.

    Screenshot of replenishment orders configuration

    Manage payments

    We have designed the plugin to follow up on your orders automatically and autonomously, freeing you from the administration involved. Learn here how to use our plugin effectively, which could help your business to thrive!

    Perform maintenance operations

    Captures, refunds and cancellations of authorisations are standard processes (also known as maintenance operations) in your everyday business logic. You can perform these operations on a transaction using the Customer Support Backoffice.

    Once you log in to the Customer Support Backoffice, all orders will be listed in the Orders section. You can select the order you want to perform maintenance operations on.

    Screenshot of performing maintenance operations in backoffice Screenshot of performing maintenance operations in backoffice

    You can perform actions like capturing or cancelling payments from the options available at the top of the order details section. Cancelling an order will trigger a refund request or authorisation cancellation where applicable.

    Managing recurring tokens

    Maintenance operations also allow you to manage recurring tokens. You may Block, Unblock, or Revoke them.

    Screenshot of managing recurring tokens in backoffice

    Managing mandates

    You can manage the status of mandates through the following actions: Block, Unblock or Revoke.

    Screenshot of managing mandates in backoffice

    Perform test transactions

    Use our platform's test environment to make sure your plugin works as intended. We offer test data sets on our dedicated Test cases page. Target our test environment as described in the "Configure Plugin" section.

    Make sure to switch to the LIVE environment as soon as you have finalised your tests.


    Was this page helpful?

    Do you have any comments?

    Thank you for your response.