Skip to content
Web Monetization logoWeb Monetization
GitHub

Receiving payments

Two key components of receiving a Web Monetization (WM) payment are WM receivers and Open Payments-enabled accounts.

WM receivers

A WM receiver is an entity that provides an Open Payments-enabled account into which payments can be received. Individuals interested in receiving Web Monetization payments can establish a relationship with a WM receiver of their choice by signing up for an account.

We anticipate most WM receivers to offer some form of digital wallet to their users. Many digital wallet providers, not just WM receivers, are often required to verify their users’ identities before allowing funds to be withdrawn.

Open Payments and payment pointers

Web Monetization works with two complementary technologies that enable open and interoperable payments between WM providers and WM receivers: Open Payments and payment pointers.

Open Payments

Accounts supplied by both WM providers and WM receivers must implement the Open Payments (OP) specification.

The OP specification defines standards for access to accounts. When granted access, applications and other entities can integrate payments into their feature sets by connecting to their users’ accounts. The ability to then execute payments between OP-enabled accounts relies on the availability of a common payment rail between the accounts.

Payment pointers

Access to an OP-enabled account, whether for sending or receiving, always starts with a payment pointer. A payment pointer is a unique, standardized identifier for a payment account that always resolves to an HTTPS URL.

When an individual establishes an account with a WM receiver, the receiver assigns the account a payment pointer. The payment pointer allows certain account details to be safely shared with third-parties. Third-parties use the details to initiate payments to or from the account. A WM agent is an example of a third-party.

A payment pointer is required to web monetize a page and must be added as the href value within the monetization <link> element.

For example:

<link rel="monetization" href="https://wallet.example/alice" />

The WM agent uses the payment pointer to begin the money movement process.

Receiving a payment

When an individual visits a web monetized page, their WM agent detects the monetization <link> element and associated payment pointer. The WM agent sends a request to the payment pointer, which is the beginning of a series of API calls needed to:

  1. Get the details about the underlying receiving account
  2. Receive permission to send a payment to the account
  3. Create a monetization session within the site visitor’s browser tab/window
  4. Create the outgoing payment request

When the payment is successful, the funds are deducted from the WM provider’s account and deposited into the WM receiver’s account.

For more information, visit the Web Monetization flow page.

Specifying a payment amount

Web Monetization does not enable a site to specify the amount it wants to receive. The amount, frequency, and other payment parameters are controlled by the web monetized visitor, through their relationship with their WM provider.

If a site should specify a price, then integration with the W3C’s Payment Request API may be a better alternative to Web Monetization. The Payment Request API allows sites to ask to be paid a certain amount, then the browser (typically with the user’s approval) pays that amount.