Open Payments
Rafiki follows the Open Payments standard to enable third-party clients to securely retrieve account information and authorize payments from your customers’ accounts with their consent. The standard describes a uniform way to create and manage grants and resources for incoming payments, quotes, and outgoing payments .
Rafiki’s backend service is the main service for handling business logic and external communication. The service is responsible for, among other things, exposing the endpoints of the Open Payments APIs for clients to perform account management tasks. Every request and response is validated against the Open Payments specification .
Rafiki’s auth service is a reference implementation of an opinionated Open Payments authorization server. The authorization server is responsible for delegating authorization (via grants) to clients to use the Open Payments APIs, resolving clients’ public keys to authenticate and authorize incoming requests, and creating payments and quotes on the backend. Open Payments leverages the Grant Negotiation and Authorization Protocol (GNAP) for delegating authorization. You can learn more about the protocol by reviewing its specification .
Your customer uses a third-party app that allows them to create budgets and monitor their spending. To get the information it needs, the app uses the Open Payments APIs to request your customer’s transaction history.
Your customer begins a purchase from an online merchant. Since the merchant has implemented Open Payments, your customer can enter their wallet address into the merchant’s checkout form instead of their credit card details. The merchant’s server uses the Open Payments APIs to communicate with you to set up the payment and get your customer’s consent for the purchase.
Peer-to-peer payments (for example, remittances)
Section titled “Peer-to-peer payments (for example, remittances)”Your customer uses a third-party remittance app to send money from the US to their family in Mexico. They want their father to receive an exact amount in Mexican pesos, regardless of how much it will cost in USD. Since the app developer has implemented Open Payments, your customer can enter the wallet address for themselves and their father instead of entering bank account details. The app uses the Open Payments APIs to communicate with you to set up the payment and get your customer’s consent for the payment.
We strongly encourage you to familiarize yourself with the Open Payments standard. Extensive documentation is available on the Open Payments website. We recommend you start by reviewing all the pages in the Intro to Open Payments section. Here are a few links to get you started.