Overview

The open API for wallet to wallet payments

Open Payments is an HTTP-based API that can be implemented by any digital wallet to enable clients to interface with the wallet. It uses a profile of the Grant Negotiation and Agreement Protocol to define a mechanism by which clients get authorization to use the APIs and get data about the wallet owner.

For the purposes of this specification, a digital wallet is any Internet connected system that acts as an agent of a person or business that is capable of sending and receiving payments from or to that person or business.

Goals

The goal of Open Payments is to define a standard API and protocol for access to a digital wallet so that applications can connect to their user's financial accounts and integrate payments into their feature set.

By defining an open standard it should be possible for an application to connect to any wallet that implements the standard without requiring custom integrations or aggregators.

Using fine grained access grants, wallet owners can have very specific control over the permissions they grant to applications that connect to their wallet. This enables powerful use cases such as third-party payment initiation and delegated authorisation without compromising the security of the underlying accounts and payment instruments.

URLs

Every wallet that is accessible via Open Payments APIs is identified by one or more URLs. These URLs not only identify the wallet but also provide the entry point for the API.

URLs that are Open Payments service endpoints are called Payment Pointers and are described in more detail later in this guide.

Payment Rails

The ability to execute payments between wallets that implement the Open Payments API is predicated on the availability of a common payment rail between the wallets.

Grant Negotiation and Authorization Protocol

The Grant Negotiation and Authorization Protocol (GNAP) is a protocol developed at the IETF to succeed OAuth 2.0.

Open Payments leverages GNAP to define a standard mechanism for requesting and granting access tokens for the Open Payments APIs. More details on GNAP and how it is used in the Open Payments APIs is provided in the Security section of this guide.

Differences from Open Banking

Open Payments attempts to improve upon existing Open Banking standards (as defined in the UK, EU and other jurisdictions).

It allows for scenarios where clients dynamically register and engage with the APIs without needing to pre-register with the account provider. This allows for a truly distributed and federated payment ecosystem with global reach and no dependence on any particular underlying account type or settlement system. Existing Open Banking ecosystems are dominated by aggregators and intermediaries making it impossible for an independent 3rd-party such as a small merchant, to use payment initiation APIs directly against their customer’s accounts.

Open Payments is also a significantly simpler standard with a small number of resourc types and a simpler (and yet more powerful) authorization protocol.

The goal of Open Payments is to define a standard that is adopted by all digital wallets (including banks, mobile money providers etc.), creating an application layer for the Internet of Value. This would allow applications to integrate payments directly into their products without requiring users to create new accounts for every application.