What is Open Payments?
Open Payments is an open API standard that can be implemented by account servicing entities (e.g. banks, digital wallet providers, and mobile money providers) to facilitate interoperability in the setup and completion of payments for different use cases including:
- Web Monetization
- Tipping/Donations (low value/low friction)
- eCommerce checkout
- P2P transfers
- Subscriptions
- Invoice Payments
The Open Payments APIs are a collection of three sub-systems:
- A wallet address server which exposes public information about Open Payments-enabled accounts called "wallet addresses"
- A resource server which exposes APIs for performing functions against the underlying accounts
- A authorisation server which exposes APIs compliant with the GNAP standard for getting grants to access the resource server APIs
The three Open Payments OpenAPI specifications are found in the open-payments-specifications repository, while this repository hosts the documentation for the APIs, published on openpayments.dev.
Open Payments SDKs
The Open Payments SDKs provide developers with pre-built functions that simplify interactions with the Open Payments API.
New to Interledger?
Never heard of Interledger before? Or would you like to learn more? Here are some excellent places to start:
- Interledger Website
- Interledger Specification
- Interledger Explainer Video
- Open Payments
- Web monetization
Contributing
Please read the contribution guidelines before submitting contributions. All contributions must adhere to our code of conduct.
Open Payments Community Call
We invite our community to join our bi-weekly Open Payments calls. These calls take place every other Thursday at 12:00 UTC via Google Meet.
Video call link: https://meet.google.com/fcb-xamx-csr
Local Development Environment
Prerequisites
Environment Setup
# install node from `./.nvmrc` nvm install # install pnpm corepack enable # if moving from yarn run pnpm clean # install dependencies pnpm i # install `open-payments-specifications` submodule git submodule update --init
Local Development
You can preview the docs by running the command
pnpm --filter docs start
Useful commands
# format and lint code: pnpm format # check lint and formatting pnpm checks # verify code formatting: pnpm check:prettier # verify lint pnpm check:lint