1. Introduction

This document provides a comprehensive overview of Saferpay, detailing its purpose, features, system interfaces, functionalities, operating constraints, and responses to external stimuli. It is intended for system stakeholders and developers, serving as a foundational guide for software development.

2. Saferpay

Easy, Flexible, Secure: Saferpay by Worldline –The Comprehensive E-Payment Solution for Your Online Shop.
Saferpay offers a reliable and flexible e-payment solution to streamline secure payments in your online shop. With support for a broad range of national and international payment methods, Saferpay consolidates payment processing via a single, easy-to-integrate interface, adaptable to most shop systems.
This Odoo module enables compatibility with Saferpay, supporting the following payment methods and workflows:

  • VISA
  • MASTERCARD
  • MAESTRO
  • AMERICAN EXPRESS
  • BANCONTACT
  • DINERS
  • JCB
  • WL CRYPTO PAYMENT
  • EPS
  • KLARNA
  • SOFORT BY KLARNA
  • UNIONPAY
  • SEPA ELV
  • PAYPAL
  • GIROPAY
  • TWINT
  • PAYDIREKT
  • IDEAL
  • EPRZELEWY
  • ALIPAY
  • GOOGLEPAY
  • APPLEPAY 

The module supports all core Saferpay features, including the payment page, transaction interface, Saferpay fields, saved card functionality, refund processing, and cancellation. It also provides seamless multi-website compatibility, making it an ideal solution for diverse online business needs.

3. Configurations and Requirements

  • Odoo Working Environment: Ensure a functional Odoo setup.
  • Saferpay Module License: Obtain a valid license for the Saferpay module.
  • Saferpay Account: A valid Saferpay terminal account is required before installation.
  • API Credentials: Secure the necessary API credentials for both live and test environments, including Terminal ID, Customer ID, API Username, and API Password.
  • Payment Acceptance Agreement: A valid acceptance agreement is necessary for all supported payment methods and credit cards.

4. General Configurations in the Backend

a) Configure Saferpay Settings:

  • Navigate to Invoicing → Configuration → Saferpay Provider Configuration to set up Saferpay data:
    • Production URL: Enter the production URL.
    • Test URL: Enter the test URL to toggle between test and production environments.
    • Customer ID: Enter the Customer ID associated with your Saferpay account.
    • Terminal ID: Enter the Terminal ID for the Saferpay account. 

b) Set Payment Means and Terminals:

  • Access payment methods and terminals by going to Settings → Payment Means / Terminals in the Saferpay Backoffice.

Figure 1 - General Configuration

  • API Username: Set the API Username.
  • API Password: Set the API Password, we can create new API login from Saferpay Backoffice, Settings → JSON API basic authentication → Create new JSON API login

Figure 2 – Retrieving JSON API Keys

 

  • API Key: Set the API key that is used for Saferpay Fields.

We can create new API Tokens in the Saferpay Backoffice, from menu Settings → Saferpay Fields Access Tokens.

Figure 3 – Retrieving Saferpay field access token

  • Liability Shift Behaviour: Defines the action if liability shift fails, which checks for potential fraud in transactions. Two options are available:
    • Hold: Puts the transaction on hold.
    • Cancel: Cancels the transaction.
      Note: If no option is selected, the default capture settings associated with 
      the respective payment method will be applied automatically
  • Need Extra Security: Recommended for high-risk businesses (Jewellery, Electronics, etc.) to stick to the highest level of security.
  • Payment Method Synchronization: Automatically retrieves and configure all available payment methods from the Saferpay account.
  • Customer License: Fetches license package and feature details from Saferpay and adds them under Invoicing → Configuration → Saferpay Provider Configuration → Customer License.
  • Create API Key: Generates the API key required for Saferpay field functionality.
  • Send Status Email: Sends automated status update emails to the customer.
  • Update Payment Method Logo From Saferpay(svg): If this field is enabled, the system will automatically run a weekly cron job to update the payment provider's logo. If disabled, a static image will be used instead. 

Figure 4 - Configuration List View

Figure 5 - Configuration Form View

  • Smart buttons
    • Providers: Displays a list of configured providers (payment methods) under this setting.
    • Logging: Shows a list of all logs related to API calls, helping to monitor and troubleshoot integration issues.

5. Payment Icons Configurations

  • You can configure Saferpay payment methods by navigating to Invoicing → Configuration → Payment Methods, as shown in the figure. This menu allows you to set up and manage each payment method integrated with Saferpay. 

Figure 6 - Payment Icon list view

Figure 7 - Payment Icon form View

In this section, you can configure the following for Saferpay transactions:

  • Saferpay Code: This code is used for communication with Saferpay, allowing you to identify the specific payment method utilized for each transaction.
  • Allowed Currencies: This option allows you to define the predefined currencies that can be used with the specified payment method.

6. Provider Configurations in Backend 

  • You can configure the providers/payment methods for Saferpay by navigating to Invoicing → Configuration → Payment Providers, as illustrated in the figure. This menu allows you to manage and set up the various payment methods available through Saferpay.

Figure 8 – Payment Providers Kanban View

Figure 9 - Payment Providers form view

In this section, you can configure the default settings for providers in Odoo:

  • Payment Journal: Specify the journal to be used for this payment provider.
  • Capture Amount Manually: The payments of this provider with this configuration will be in authorized state instead of confirmed. Merchants manually confirm them from backend.
  • Allow SavingPayment Methods:- This option enables customers to save their card information for future transactions, accessible from the checkout page and under My Account → Payment Methods.

Figure 10 - Save Card feature enabled

  • Payment Icons: This section displays the supported payment methods for Saferpay. Here, you can view the allowed currencies and codes associated with each payment provider, which are retrieved from the payment methods configuration.

7. Configurations Only for Saferpay Providers

  • Need Order Limit: If checked we can set the minimum and maximum order limits.
  • Send Customer Address: Determines whether to send the customer's delivery and billing address to the Saferpay back office.
  • Support Notify URL: Allows you to configure the provider’s support Notify URL.
  • Customer Confirmation Email: Specifies if a customer confirmation email is required. Saferpay will send this email only if the customer is redirected to the Saferpay payment page. For DCC transactions, emails will be sent across all payment interfaces.
  • Allowed Currencies: The allowed currencies are loaded from the payment methods. The listing of payment methods on the payment page depends on these currencies. If the shop's currency is not included in the allowed currencies, it will not appear on the shop's payment page.
  • Payment Interface: Choose the payment interface with three options:
    • Payment page: If enabled, then the checkout page will direct to the Saferpay Payment page.
    • Transaction Interface: If enabled, then the checkout page will load the transaction interface (I-frame).
    • Saferpay Fields: If enabled, payment can be proceeded with Saferpay Fields. The workflow is the same as an I-frame, the data is captured by a fully PCI-certified system.
  • Register Payment Type: This is used to define the type of payment method/acquirer, it is more important for saving cards. Which are,
    • CARD
    • BANK_ACCOUNT
    • POSTFINANCE
    • TWINT
  • Support Refunds: Indicates whether this provider supports refund transactions.
  • Smart Buttons:
    • Saferpay Provider Logging: Indicates whether this provider supports refund transactions.
    • Business License: This is used for license switching, e-Commerce, and Business license.

8. Payment Page Interface 

To configure the payment page interface, follow these steps:

  1. Navigate to Invoicing → Configuration → Payment Providers.
  2. Select the desired payment provider from the list.

The configuration options for the selected payment method will be displayed, as shown in the figure below.

Figure 11 – Configuration for Payment page

9. Transaction Interface

To configure the transaction interface, follow these steps:

  1. Navigate to Invoicing → Configuration → Payment Providers.
  2. Select the desired payment provider from the list.

The configuration options for the transaction flow will be displayed, as illustrated in the figure below.

Note: Ensure that the provider license is switched to a business license to activate this transaction flow.

Figure 12 – Configuration for Transaction Interface

10. Saferpay Fields

To configure Saferpay Fields, follow these steps:

  1. Navigate to Invoicing → Configuration → Payment Providers.
  2. Select the desired payment provider from the list.

The configuration options for Saferpay Fields will be displayed, as shown in the figure below.

Note: Make sure to switch the provider license to a business license to activate this flow.

Figure 13 - Saferpay Field Configuration

11. Manual Capture & Multipart Capture & Void Transaction

  • Manual Capture: After the transaction is completed and enters the authorized state, the capture button must be clicked to finalize the transaction.
  • Multipart Capture: The amount can be captured either fully or partially. Clicking the Capture Transaction button captures the full amount, while selecting Multipart Capture allows for partial captures.
  • Void Transaction: Use the Void Transaction button to cancel the transaction at any stage before finalization.

Figure 14– Manual/Multipart Capture

12. Refund

To enable the refund option, ensure that the provider license is switched to a Business License.

The refund functionality offers two options:

  • Referenced Refund: This option allows you to reference the original transaction in the Saferpay back office. Referenced refunds can be performed for both multipart (manual) captured transactions and normal captured transactions.
  • Manually Refunded in Saferpay BO: If refund is completed from Saferpay Backoffice to map same in Odoo need to enable this button to proceed with the credit note flow

Note: For WL Crypto payments, Refunds is only possible from Saferpay Backoffice

Figure 15– Referenced refund for Manual capture

    • Direct Refund: This type of refund is applicable when the original transaction is not available in the Saferpay back office.
      • Managed by Merchant: The merchant can issue refunds to any saved payment token in the system.
      • Refund Managed by Customer: This option allows the refund to be processed against the original transaction, giving the customer the ability to initiate the refund. 

Figure 17 - Direct Refund

  • Multi-refund Functionality: There is an option for multi-refunds using the Saferpay payment provider, allowing multiple refund transactions to be processed at the same time. Each refund request is processed separately by sending a request to Saferpay to validate and execute the refund. The payment status is then updated accordingly, ensuring accurate financial tracking.
  • Important Note: Some payment methods may not support direct refunds. It is essential to consult the Saferpay documentation before configuring these options to ensure compatibility and proper setup.

13. Brief Description

To ensure the smooth functioning of this plugin, several configurations must be completed in the backend:

  • Initial Setup: Begin with the Saferpay Provider Configuration, where you will provide your Terminal ID, Customer ID, API Username, API Password, and API Key from your Saferpay web administration tool.
  • Payment Methods: The Saferpay payment methods will be displayed on the shop's payment page.
  • Transaction Flow: Choose the Saferpay payment method, complete the payment on the Saferpay payment page, and return to the Odoo Webshop.

Initial Step-by-Step Description

Prerequisites: Before integrating the Saferpay payment provider plugin, ensure that you have access to the Saferpay web administration tool, which allows you to verify and process transactions. You will need the API Username, API Password, and API Key for the Odoo backend configuration. 

Step-by-Step Instructions: 

  1. Install the Saferpay Payment Plugin.
  2. Add Saferpay Credentials: Enter the Terminal ID, Customer ID, API Username, API Password, and API Key in the Saferpay Provider Configuration record in the Odoo backend.
  3. Payment Method Synchronization: Click the “Payment Method Synchronization” button to automatically configure and enable available payment methods, or manually enable the desired payment providers.
  4. E-commerce Setup: Go to the e-commerce website, add products to the cart, and proceed to checkout.
  5. Select Payment Method: Choose the Saferpay payment method and click "Pay Now."
  6. Complete Transaction: Fill out the necessary details on the Saferpay Payment Page to complete the transaction.
  7. Order Confirmation: The order is placed upon a successful payment transaction.

14. Technical Requirements / Compatible With:

  • Technical Requirements: Odoo Sales, Payment, Contact and Website Module.
  • Supports Odoo 16 Community and Enterprise editions.
  • Supported Saferpay JSON API version 1.33.

15. Changes Log / Release Notes 

  • Version 1.0.4: April 2025
    • Enhanced overall performance.
    • Added compatibility with Odoo Enterprise edition.
  • Version 1.0.3: October 2024
    • Multipart capture and payment transaction added in the sale order.
  • Version 1.0.2: September 2024
    • Bug fixes and improvements.
  • Version 1.0.0: September 2024
    • Initial release.

16. Support

If you have questions, use our contact form at webshopextension.com or email at support@webshopextension.com.