Skip to content
GitHub

Implementing Open Payments

This page is the starting point for account servicing entity (ASE) implementors.

To make accounts Open Payments-enabled, ASEs operate three servers and integrate with an identity provider:

  • A wallet address server that returns public information about each Open Payments-enabled account.
  • A resource server that hosts the incoming-payment, quote, and outgoing-payment APIs.
  • An authorization server that processes grant requests, issues access tokens, and coordinates user consent.
  • An identity provider integration that authenticates the resource owner and collects explicit consent for outgoing-payment grants.

ASEs are also responsible for settlement. Open Payments only carries the payment instruction; actual movement of funds happens between ASEs over a shared payment rail.

ASEs should refer to the For ASEs section for server-side details. This section is organized as follows:

The Developer Concepts pages (under Overview → Concepts and Identity and access management) describe what client developers need to know to call the APIs. ASEs are welcome to read them. They describe the same protocol from the other side, but they are not the authoritative source for ASE implementation requirements. The For ASEs section is.

Rafiki is an open-source implementation of an Open Payments-compatible server stack. The ASE implementation guide describes the standard- and protocol-level requirements; Rafiki’s documentation describes one specific implementation.