> For the complete documentation index, see [llms.txt](https://docs.saferpay.com/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.saferpay.com/home/integration-guide/payment-methods/wero.md).

# Wero

Wero payments can be processed with Saferpay without much effort. This chapter describes what needs to be considered in this regard.

## General requirements

The handling of Wero payments with Saferpay requires:

* A [corresponding license](/home/master/licensing.md), and thus a valid identification with a username and password for the Saferpay system.
* Availability of at least one active Saferpay terminal via which payment can be carried out, and availability of the associated Saferpay TerminalId.
* A valid Wero contract
  * Currently available in Belgium, France, Luxembourg and Germany.

{% hint style="info" %}
Need a Wero contract? Simply [contact our sales](/home/integration-guide/support.md#worldline-sales-team) to get one.
{% endhint %}

### Technical requirements

The general integration of Wero can only be done via the [Payment Page](/home/integration-guide/licences-and-interfaces/payment-page.md) and requires the following things to be noted:

* **Spec-Version 1.38** or higher is required.
* The **`Payment.OrderId`** parameter is **mandatory**.
  * Maximum length for Wero is 35 characters.
* [Refunds](/home/integration-guide/licences-and-interfaces/transaction-interface/refunds.md) cannot be cancelled once executed, even if the [capture](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md) has not been executed.
* While not mandatory for payments, it is highly recommended to use `Payment.PayerNote`, as it is displayed during checkout.
  * However, <mark style="color:$warning;">**PayerNote is mandatory in Wero refunds**</mark> and can only include SEPA characters.

{% hint style="info" %}
Supported SEPA characters contain: letters (a–z, A–Z), digits (0–9), and the symbols / ? : ( ) . , ' + - as well as whitespace.
{% endhint %}

{% hint style="info" %}
Saferpay will automatically <mark style="color:$warning;">**sanitize**</mark> submitted values.
{% endhint %}

{% hint style="info" %}
If **`PayerNote`** has not been set, Saferpay will use the **`OrderId`** instead.
{% endhint %}

Furthermore, for other flows (Refunds etc.), please also refer to the table below.

### Supported features

Unlike other payment methods, Wero's feature set is highly dependent on a configured plan. So the following table will show the available feature set, based upon the configured plan for Wero.

<table data-header-hidden data-full-width="false"><thead><tr><th width="297.5">Feature</th><th width="225" align="center"></th><th align="center"></th></tr></thead><tbody><tr><td>Feature</td><td align="center"><strong>Single Immediate</strong></td><td align="center"><strong>Event Dependent</strong></td></tr><tr><td><a href="/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md">Capture</a>/<a href="/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md#cancel">Cancel</a></td><td align="center">❌<br></td><td align="center">✅</td></tr><tr><td>Multipart Captures</td><td align="center">❌</td><td align="center">✅</td></tr><tr><td>Secure Card Data</td><td align="center">❌</td><td align="center">❌</td></tr><tr><td><a href="/home/integration-guide/licences-and-interfaces/transaction-interface/refunds.md">Refunds</a> (Needs attention!)</td><td align="center">✅</td><td align="center">✅</td></tr><tr><td>Recurring Payments</td><td align="center">❌</td><td align="center">❌</td></tr><tr><td>3D Secure</td><td align="center">❌</td><td align="center">❌</td></tr><tr><td>Dynamic Currency Conversion (DCC)</td><td align="center">❌</td><td align="center">❌</td></tr><tr><td>Mail Phone Order</td><td align="center">❌</td><td align="center">❌</td></tr><tr><td><a href="#testing">Testing</a></td><td align="center">✅</td><td align="center">✅</td></tr><tr><td>Omni-Channel</td><td align="center">❌</td><td align="center">❌</td></tr></tbody></table>

#### Additional information about the different plans

Due to their specific nature, different plans may also have additional features and restrictions outside of the general requirements.

* **Event Dependent:**
  * **Reservation times:** The maximum time frame an authorization will be open for capture is seven days, which can be set to a maximum of 10 days. Please make sure to capture your transaction within this time frame. Otherwise, the reserved money will be released.

## Pending refund capture

Under certain circumstances, Saferpay cannot retrieve the information about a refund capture in time to respond with either a success or a failure, due to processing limitations on the banking side. In this case, you will receive a [Capture](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md) **`"Status": "PENDING"`**.

In this state, the success or failure of the capture is still open and will change in the future.

### Handling pending captures on API level

The whole **`PENDING`** procedure can be handled automatically via API, so that your system can automatically adjust the transaction status once the final [Capture](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md) state has been confirmed.

First, you have to set the **`PendingNotification`** container with the [Capture request](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md). This container behaves basically the same as the [normal Payment Page flow](/home/integration-guide/licences-and-interfaces/payment-page.md):

* **`MerchantEmails`:** This array can store up to 10 different emails, to which Saferpay will send an email once the final [Capture](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md) status has been confirmed, informing a person or team directly.
* **`NotifyUrl`**: This URL is the important part for automatic processing. It behaves similarly to the NotificationUrls you know from the Payment Page itself. It will be called once Saferpay has been able to confirm the final [Capture](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md) status.

Once the **`NotifyUrl`** has been called, you can query the final outcome of the [Capture](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md) by using the [Assert Capture request](https://saferpay.github.io/jsonapi/#Payment_v1_Transaction_AssertCapture), allowing you to update the refund transaction on your system automatically.

#### What if the Capture returns a failure?

This is a possible scenario and should this happen, it is best to [cancel the whole refund](/home/integration-guide/licences-and-interfaces/capture-and-daily-closing.md#cancel) and execute a new one.

## Testing

Please refer to [this chapter](/home/integration-guide/testing-and-go-live.md#wero), if you want to test Wero.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.saferpay.com/home/integration-guide/payment-methods/wero.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
