Host your own checkout UI
Using our API endpoints, you're able to build your own crypto payment checkout experience which is in line with your website UI and branding.
ImportantNever accept a payload before validating that the webhook signature is correct.
SDK - the UI Customisation AlternativeIf you want customisation but do not want to build your own UI, please check our Payments SDK.
It's a great alternative if you want to adjust the default Coinify Payment Window to your app/website/brand colors.
Overview
This guide lists the steps and relevant API endpoints which you'll need to interact with in order to provide all the necessary Customer Information — as required by Travel Rule Regulations — and provide your customers the necessary Payment Data complete payments in the Self-Hosted checkout integration.
If you're happy with redirecting the customers to Coinify's default checkout Payment Window, then this article is not for you. In this case, we recommend you follow default flow as described here.
First-time Coinify crypto checkout user flow
- Create Customer
- IMPORTANT: Make sure to store the customer
idreturned in the response!
- IMPORTANT: Make sure to store the customer
- **Create Customer Wallet **
- This is the wallet that the customer will use to send the transaction/s to complete payment/s.
- One customer can have multiple wallet entries.
- Create Payment Intent
- You can fetch the list of available cryptocurrencies for the Payment Intent from Read Currencies endpoint and provide to the customer to choose from.
- Make sure you pass the specific customer's
coinifyCustomerIdwhich is theidreturned from the Create Customer API response.
- Create Quote
- Create the quote for the customer's Payment Intent. Make sure to pass the relevant
walletIdthe customer selected they're paying with.
- Create the quote for the customer's Payment Intent. Make sure to pass the relevant
- Display the Quote information to the customer
- Provide the amount, currency and destination address information to the end-user, as retrieved from the Create Quote endpoint.
- You can use the
paymentUrivalue to generate a QR code for customer's convenience.
Recurring Coinify crypto checkout user flow
- Read Customer Info and fetch the previously created — allow the customer to select from the existing wallet entries or to create a new one.
- Create Payment Intent
- You can fetch the list of available cryptocurrencies for the Payment Intent from Read Currencies endpoint and provide to the customer to choose from.
- Make sure you pass the specific customer's
coinifyCustomerIdwhich is theidreturned from the Create Customer API response.
- Create Quote
- Create the quote for the customer's Payment Intent. Make sure to pass the relevant
walletIdthe customer selected they're paying with.
- Create the quote for the customer's Payment Intent. Make sure to pass the relevant
- Display the Quote information to the customer
- Provide the amount, currency and destination address information to the end-user, as retrieved from the Create Quote endpoint.
- You can use the
paymentUrivalue to generate a QR code for customer's convenience.
Please note that not all wallets are guaranteed to successfully read the QR code as there isn't a standard to which they all adhere. We're using the URI which proved to be readable by all of the wallets we tested.
Expect a notification 📬
Coinify sends a notification to the provided URL when the Payment Intent has been completed or has failed.
For more information, read the Webhooks guide.
Validate the signature 🕵️
ImportantNever accept a payload before validating that the callback signature is correct.
Coinify includes a signature in the form of a header in the sent request.
For more information, read the Webhooks guide.
The amount has been credited 💰
Once you receive a payment-intent.completed notification that contains the correct signature, you can serve your customer. The payment was successful and the amount has been credited to your account.
Updated 1 day ago
