How to fund a Customer address via ONRAMP
Overview
ONRAMP allows customers to pay in fiat and receive cryptocurrency to a customer purse address.
Use this guide when you already use Customers and want to fund a customer's crypto address through ONRAMP API or ONRAMP Widget.
Prerequisites
| Requirement | Description |
|---|
| Customer exists | Create a customer before starting the ONRAMP flow. |
| Customer address exists | Get a customer purse address for each currency that can be funded through ONRAMP. |
| Webhooks are configured | Subscribe to customer purse transaction webhooks and ONRAMP payment webhooks. |
| Currency is supported | Make sure the target currency is available for the customer purse address and ONRAMP flow. |
Integration flow
-
Create a customer by using [POST] customer-purse/customer/create
-
Get the customer's deposit address by using [POST] customer-purse/address/get
-
Create an ONRAMP payment or initialize the ONRAMP widget. Pass the customer purse address as the destination external address.
-
Customer completes fiat payment through the ONRAMP flow.
-
Receive customer purse webhooks when crypto is credited to the customer address.
-
Confirm customer transaction details by using [POST] customer-purse/transaction/get
Sequence
Names of requests on the scheme indicate Customer Purse API methods, ONRAMP flow, and customer purse webhooks.

Implementation notes
| Step | Details |
|---|
| Save customer ID | The customer ID links the user in your system to Calypso customer purse operations. |
| Save purse address | The purse address is passed to ONRAMP as the crypto destination address. |
| Use ONRAMP API or Widget | Choose API integration for server-side flow or Widget for embedded customer payment flow. |
| Track final deposit status | Customer purse transaction webhooks confirm whether the crypto deposit was received or declined. |
Expected customer purse webhooks
| Event | Meaning |
|---|
| CUSTOMER_PURSE_PENDING_COMPLIANCE | The resulting crypto transaction is under compliance check. |
| CUSTOMER_PURSE_COMPLIANCE_DECLINED | The resulting crypto transaction failed compliance check. |
| CUSTOMER_PURSE_FUNDS_RECEIVED_FOR_PURSE | The resulting crypto transaction was received by the customer purse. |
| CUSTOMER_PURSE_TRANSLATION_TO_ACCOUNT_COMPLETED | Funds were credited to the merchant account. |