Skip to main content

Wero

Wero is a European digital wallet launched under the European Payments Initiative (EPI). It allows shoppers across participating EU countries to pay directly from their bank accounts through their bank app or Wero wallet, enabling easy account-to-account payments with strong authentication.

Shopper approving a Wero payment in their walletShopper approving a Wero payment in their wallet

EU-wide Digital Wallet

Shoppers approve payments in the participating banks app or Wero wallet app, linked directly to their bank accounts.

  • Pan-European coverage
  • Strong shopper authentication
  • Unified user experience across banks

Details

Country
France
Germany
Belgium
Netherlands
Currency EUR
InputQR code
Integrations Direct API

Capabilities

Refunds
Partial refunds
Multiple partial refunds
Final amount captured later
Multiple partial captures
Incremental authorizations
Disputes
Recurring payments
Split payments
Flow TypesImmediateRecurring
info
  • Delayed capture is possible upto 10 days after the original authorization.
  • Partial refunds are applicable to pre-dispute reolutions only.

Flows

Wero Onboarding

This flow works for ONE_TIME , RECURRING , and TOKEN_ONLY transaction types.

Steps

  1. Shopper selects Wero wallet at checkout.
  2. Merchant Initiates Payment with Nopan.
  3. Nopan creates a payment intent with Wero.
info

User might be presented with a QR code or if not recognized with a bank selection page.

  1. Shopper receives a push notification in the Bank app or Wero wallet app.
  2. Shopper approves with strong authentication (PIN, biometrics, or device-based authentication).
info

Depending on the flow user might see different details about the transaction.

  1. Wero notifies Nopan, and user is redirected back to the merchant.
  2. Once Nopan confirms the consent it will trigger an authorization and enable capturing the money.

Integration

Send a POST /payments/initiate request to Nopan with the following format:

{
"processingAccountId": "merchant",
"clientTransactionId": "order123",
"returnUrl": "https://api.merchant.callback?ref=order123",
"transactionType": "ONE_TIME",
"paymentDetails": {
"amount": 75,
"currency": "EUR",
"country": "DE",
"description": "Product ID 1234 purchase"
},
"providerDetails": {
"providerId": "WERO"
},
"payerDetails": {
"payerId": "payerUUID"
},
"requestContext": {
"ipAddress": "203.0.113.45",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
"channel": "WEB",
"deviceId": "device-11223",
"locale": "de-DE"
},
"metadata": {
"orderId": "12345",
"customerId": "cust-789",
"checkoutVersion": "v2.1"
}
}
tip

returnUrl and payerId fields are mandatory.


Wero Recurring

This flow works only with RECURRING transaction types.

Steps

  1. Merchant sends Nopan a Charge Request.
  2. Nopan processes the recurring payment with Wero.
  3. Bank authorizes the debit, and Nopan confirms the result to the merchant.

Integration

Send a POST /payments/charge request to Nopan with the following format:

{
"clientTransactionId": "order123",
"transactionType": "RECURRING",
"paymentDetails": {
"amount": 200,
"currency": "EUR",
"country": "DE",
"description": "Product ID 1234 purchase"
},
"providerDetails": {
"providerId": "WERO"
},
"payerDetails": {
"payerId": "payerUUID",
"paymentToken": "paymentTokenUUID"
}
}
tip

paymentToken or payerId is required.


Testing

Leverage Nopan Mocking framework to test your Wero integration with Nopan. Alternatively merchant can request to register with Wero testing portal to test end-to-end payment with Wero.

info

Contact Nopan if you would like to register with Wero testing portal. You will need:

  • Email address.
  • Use cases you would like to test

You can also choose to mock the behaviour with Nopan directly. See Mocking for more details.


Error Codes

info

For a full list of Nopan error codes, see Error Handling.

Wero errors follow RFC7807 Problem Details.
They always include a static title, an HTTP status, a unique callId, and optional detail or violations. This means that Wero doesn't use copmany specific error codes but rather a combination of HTTP status codes + additional context. Nopan is combining that additional context into consumable error to map it internally.

Wero Code
Nopan Reason Code
Description
Action
400
4000
Bad Request - invalid or missing fields, combined with additional context
Fix Request
401
4970
Unauthorized - missing or invalid OAuth2 token, malformed or expired token.
Fix Request
403
4971
Forbidden - valid token but insufficient scope, or client certificate errors.
Adjust Logic
404
4001
Not Found - referenced paymentId or transactionId does not exist.
Fix Request
405
4000
Method Not Allowed - wrong HTTP method used for endpoint.
Fix Request
409
3002
Conflict - conflicting payload.
Adjust Logic
422
8002
Unprocessable Entity - business logic errors.
Adjust Logic
429
3000
Too Many Requests - rate limit exceeded.
Retry
500
8004
Processor Server Error - downstream service not ready or unavailable.
Retry
502
8004
Bad Gateway - upstream service failure.
Retry
503
8004
Service Unavailable - downstream service not ready or unavailable.
Retry

Requirements

  • Shopper must use participating bank app or the Wero wallet app linked to a participating bank.
  • Recurring payments require explicit shopper consent.

Learn More

Learn more about Wero and the European Payments Initiative on EPI official site and Wero.