You must be, or be working with, an account servicing entity (ASE). An ASE is an entity that provides and maintains payment accounts for its customers and is regulated in the jurisdictions it operates. Examples of ASEs include banks, digital wallet providers, and mobile money providers. The account servicing entity page provides examples of an ASE’s responsibilities and obligations.
For testing purposes, you can set up a mock account servicing entity that’s deployed Rafiki. However, Rafiki should not be used in production environments by non-regulated ASEs.
Auth service
The Auth service hosts the Open Payments authorization server. Integration with this service is required if you don’t develop your own in-house service for authorization.
Learn more >
Backend service
The Backend service hosts the Open Payments resource server, ILP connector, and Backend Admin API.
Learn more >
Frontend service
The Frontend service offers an optional administrative user interface for interacting with the Backend Admin API.
Learn more >
Tenants
Required A tenant represents an isolated environment for an ASE. You must create a tenant even if you don’t intend to share your Rafiki instance across ASEs.
Create a tenant >
Assets
Required An asset is a monetary unit represented by a currency code and a scale. Rafiki must be set up for at least one asset.
Create an asset >
Wallet addresses
Required Each payment account in the ASE’s system must be linked to a wallet address. You must have at least one asset in Rafiki before creating wallet addresses.
Create a wallet address >
Webhook endpoint
Required You must expose a webhook endpoint that listens for events dispatched by Rafiki, then react accordingly. For example, deposit or withdraw liquidity.
Specify a webhook endpoint >
Integration checklist
Review the integration checklist for more required and optional steps.
Review the checklist >
1. Create an incoming payment
Use the Backend Admin API’s
createIncomingPayment to create an incoming payment resource on the recipient’s wallet account.
createIncomingPayment mutation >
2. Create a quote
Use the Backend Admin API’s
createQuote to create a quote resource on the sender’s wallet account. The quote shows how much it will cost the sender to deliver an amount to the receiver.
createQuote mutation >
3. Create an outgoing payment
Use the Backend Admin API’s
createOutgoingPayment to create an outgoing payment resource on the sender’s wallet account. This operations starts the payment. At this point, the sender’s ASE must fund/approve the payment before it sends.
createOutgoingPayment mutation >
Handle webhook requests
As the payment flow progresses, the ASE is be notified about events that happen in the system. Some events are actionable, such as an
outgoing_payment.created event. Review the webhook events page to learn more about handling each event.
Webhook events >