Skip to main content
OP Open Payment Address Protocol
Local-first with no tracking

One address · Two payment methods

Let the payer choose how to send euros

A shop can accept euros in more than one way behind the same payment address. The payer chooses the option that works for them; the shop does not need to publish separate addresses for its bank account and wallet.

Familiar option

Bank transfer

Pay from a regular bank account using the recipient name and a synthetic test IBAN.

Digital-money option

Monerium EURe

Generate a digital-euro payment URL and QR code for a compatible external wallet. The Browser Payer does not connect to that wallet.

Nothing is chosen behind the payer’s back

The payment app shows the supported choices and the exact recipient before anything continues. The payer decides which method to use and can stop at any point.

Safe interactive example

See what the payer sees

Compare the bank-transfer and digital-euro QR/URL choices. We will fill in the example address for you. You can review the payment steps, but no real money will be sent.

Simulate this payment

Example address: https://openpaymentaddress.org/examples/multi-rail

Ready to make your own? Create a payment address.

Technical details for developers

Published payment file

OPAP Record

Payment apps derive this file’s location from the public payment address, verify it, and use it to present the available payment options. Visitors do not need to read or edit this code.

OPID

https://openpaymentaddress.org/examples/multi-rail
{
  "version": 1,
  "id": "https://openpaymentaddress.org/examples/multi-rail",
  "revision": 2,
  "issued_at": "2026-07-22T18:02:43Z",
  "expires_at": "2030-01-01T00:00:00Z",
  "name": "Dual-rail EUR receiver demonstration",
  "payment": {
    "type": "options",
    "options": [
      {
        "type": "sepa",
        "currency": "EUR",
        "name": "OPAP dual-rail shop demonstration",
        "iban": "NL96TEST0000000000"
      },
      {
        "type": "erc20",
        "currency": "EUR",
        "chain": "eip155:10200",
        "asset": "0x7a47605930002CC2Cd2c3c408D1F33fc2a18aB71",
        "recipient": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
        "symbol": "EURe"
      }
    ]
  }
}
Open the JSON file