Wero Payment Integration
Wero is a European account-to-account wallet that lets customers pay directly from their bank account. It is available to customers in Germany, Belgium, and France. This guide explains how to accept Wero payments with the Netvalve Payment Gateway.
| Customer country | Currency | paymentOption |
|---|---|---|
| Germany (DE), Belgium (BE), France (FR) | EUR | apm_wero |
The order currency must be EUR for Wero to be offered.
For the shared redirect flow, webhook handling, and Checkout SDK notes, see the European Payment Methods overview.
How to offer Wero
Contact the Netvalve team to enable Wero on your account before going live.
Step 1 — Create the order
Send a POST request to the Create Order endpoint with paymentOption set to "apm_wero" and the order currency set to EUR. Set customerCountryCode to the customer's country (DE, BE, or FR).
{
"amount": 44.99,
"currency": "EUR",
"siteId": "f76fb7ed-3312-4791-a216-45918f899271",
"clientOrderId": "{{clientOrderId}}",
"orderDesc": "Order #12345",
"successUrl": "https://merchantsite.com/success.html",
"cancelUrl": "https://merchantsite.com/cancel.html",
"failedUrl": "https://merchantsite.com/failed.html",
"pendingUrl": "https://merchantsite.com/pending.html",
"paymentOption": "apm_wero",
"customerDetails": {
"customerAddress": "1 Test Street",
"customerCity": "Berlin",
"customerCountryCode": "DE",
"customerEmail": "customer@example.com",
"customerIp": "123.123.123.123",
"customerName": "Max",
"customerLastName": "Mustermann",
"customerPhone": "800-1234567",
"customerZipCode": "10115"
}
}
paymentOption accepts a comma-separated list. For example, "card,apm_wero" shows both card and Wero on the hosted page.
Step 2 — Redirect and handle the outcome
On success the response contains a redirectUrl (verify responseCode === "GTW_1000" first). Send the customer there; Netvalve takes them to Wero to authorise, then returns them to one of your URLs:
| Outcome | Redirect target |
|---|---|
| Payment succeeded | successUrl |
| Customer cancelled | cancelUrl |
| Payment failed | failedUrl |
| Payment pending | pendingUrl |
Treat the webhook or an Inquiry poll as the source of truth for the final result.
Sandbox testing
Create the order against the Sandbox / UAT base URL and follow the redirectUrl. On the Wero test page:
- Select Pay with Wero code and click the displayed code to copy it.
- Open the Wero sandbox consent page and click Give consent.
- Paste the copied code into the field provided and choose the outcome — Approve or Deny.
- Check that the customer lands on the matching return URL and that your webhook records the same result.
See Testing in sandbox for the shared setup, amount limits, and how to test the pending path.
Related resources
| Resource | Link |
|---|---|
| European Payment Methods overview | Overview |
| Hosted Payment Page guide | Hosted Payment Page |
| Swagger API reference | API Reference |
| Webhook Message guide | Webhook Message |
| Error Codes reference | Error Codes |