User flow for crypto onramp

The checkout page is a part of the invoice-based payment flow. This page allows customers to complete their deposits by getting the corresponding payment details.

To direct your customer to this hosted page to pay the invoice, you simply need to:

  1. Create the invoice via the API to generate the checkout page URL

  2. Retrieve the checkout page URL value from the response

  3. Redirect the customer to the URL in their browser using the appropriate method in your application (e.g. redirect() in PHP, HTTP redirect in Node.js)

  4. Your customer will be taken to the invoice-specific hosted checkout page to complete the payment

When you create a new invoice via the API, the response will include a data field. This contains the URL for the hosted checkout page specific to that invoice.

Example
{
  "data": "https://checkout.xgateway.tech/v2/invoice/78327180-119b-49cd-9d0a-4eec6986b195",
  "success": true
}

Where 78327180-119b-49cd-9d0a-4eec6986b195 is the invoice ID.

This allows you to seamlessly create invoices and send customers to the payment pages without hosting your checkout solution.

Structure

When your customer is directed to the hosted checkout page, they will go through a simple 2-step process to complete payment:

The first step:

  • Deposit amount - This field is pre-filled with the invoice amount and cannot be edited.

  • Pay with - Your customers can choose which currency they want to pay with.

After a customer chooses currency and proceeds with payment, the invoice activates and an expiration 20-minute timer starts.

The second step:

  • QR code - A scannable QR code is provided for easy wallet/app-based payment.

  • Wallet address - A unique generated wallet address where the customer will deposit funds.

  • Time remaining - Invoice expiration timer.

  • Min deposit - Minimal amount to process a deposit transaction.

  • Pay amount - The amount your customers have to pay in the selected currency.

  • Receive amount - The amount your customers will get after finishing the payment.

After checkout, we validate the payment on the blockchain and automatically mark the invoice as paid once funds are received. After that the customer is redirected to the success page.

If the invoice expires without successful payment, the customer is redirected to the time-out page.

Customization

We're constantly working on improving our checkout page. We'll keep you posted on future customisation options.

The hosted checkout page is customised to match your business needs and branding by default:

Business Name

  • Your company name is prominently displayed at the top of the checkout page on both steps.

Agreement Block

  • You can define or toggle the privacy policy and terms of use that customers must accept.

For your convenience, you can find the blocks on the example invoice shown below.

Please contact our support team if you need any assistance tailoring and enabling the customised hosted checkout pages.

Troubleshooting

400 Bad Request Error

  • Too many requests. Your customer has more than 10 active invoices at the same time. Wait till previous invoices expire.

404 Not Found Error

If your request results in a 404 Not Found error, the requested invoice cannot be found in our system. This can happen if:

  • The invoice does not exist. Make sure it was successfully created.

  • The link you are trying to use is not valid. Make sure it matches the one we sent you.

  • There is an error in your integration or code making the API request. Verify the endpoint, parameters, and headers are correct.

422 Unprocessable Entity Error

  • The hash in your invoice link is not valid. Make sure that your checkout page link matches the one we sent you.

500 Internal Server Error

  • Something has gone wrong on an app server. Try again and refresh the page in a few minutes. If the page still fails, get in touch with us so we can get this fixed for you.

If you have verified the invoice is valid, not expired, or deleted, contact our support team with your invoice ID, API request values, and any other relevant details. We will investigate why the invoice is not accessible and assist with resolving the issue.

Last updated