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
This repository contains contains a NodeJS Open Payments SDK to make requests via the Open Payments API, as well as TypeScript types for the API.
It also contains two additional libraries:
@interledger/http-signature-utils
provides tools for working with HTTP Message Signatures.@interledger/openapi
exposes functionality to validate requests and responses according to a given OpenAPI 3.1 schema.
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
Please read the contribution guidelines before submitting contributions. All contributions must adhere to our code of conduct.
Our catchup calls are open to our community. We have them every other Wednesday at 13:00 GMT, via Google Meet.
Video call link: https://meet.google.com/htd-eefo-ovn
Or dial: (DE) +49 30 300195061 and enter this PIN: 105 520 503#
More phone numbers: https://tel.meet/htd-eefo-ovn?hs=5
This repository contains a Git submodule, which contains the Open Payments OpenAPI specifications. After cloning, make sure to initialize and update it:
git submodule update --init
Alternatively, clone the repository with submodules in one step:
git clone --recurse-submodules git@github.com:interledger/open-payments-node.git
# install node from `./.nvmrc`
nvm install
# install pnpm
corepack enable
# if moving from yarn run
pnpm clean
# install dependencies
pnpm i
# format and lint code:
pnpm format
# check lint and formatting
pnpm checks
# verify code formatting:
pnpm check:prettier
# verify lint
pnpm check:lint
# build all the packages in the repo:
pnpm -r build
# run individual tests (e.g. open-payments)
pnpm --filter open-payments test
# run all tests
pnpm -r --workspace-concurrency=1 test