Hosted Payment Page

Your payment page

RelayPay hosts a checkout page for you on your own subdomain, so you can take crypto payments without building any integration. Your customer opens the page, fills in the invoice number and amount, picks a crypto currency and pays. We settle with you in your fiat currency.

The page lives at:

https://yourbrandhere.relaypay.io

yourbrandhere is the merchant id of your account. It is the same value you would send as x-merchant-id on the API. RelayPay sets the subdomain up for you when your account is activated.

Pre-filling the page

You can send a customer to the page with the invoice details already filled in. Add them as query parameters to the URL, for example from a "Pay with crypto" button or a link in the invoice email:

https://yourbrandhere.relaypay.io/?invoiceNo=INV-2041&amount=42.87&currency=AUD&email=jane%40example.com&storeName=Store24

Every parameter is optional. Whatever you leave out, the customer types in. The customer can still edit a pre-filled field before paying.

ParameterExampleDescription
invoiceNoINV-2041Your invoice or order number. Pre-fills the Bill/Invoice Number field. Stored as the orderId of the payment, so you can look the payment up with it afterwards.
amount42.87The amount to pay, in the fiat currency of the page. Pre-fills the Amount field. Use a dot as the decimal separator.
currencyAUDThe fiat currency of the invoice. Must be one of the currencies enabled on your account, otherwise the parameter is ignored and the page keeps your primary currency.
email[email protected]The customer's email address. Pre-fills the email field and is validated on the spot, so a malformed value shows an error instead of silently blocking the Next button.
storeNameStore24The name of the store or brand the invoice is from. Sent back as storeName in the webhook and by the merchant transaction endpoints, and named in the payment emails. Useful when one account takes payments for several stores.
shortCode!d8Xk2The short code of the Xero online invoice, when you link from Xero. Stored with the payment.

Values must be URL-encoded. In the example above the @ in the email is sent as %40.

Tracking a hosted payment

Webhook. If a webhook URL is registered on your merchant profile (general settings in the Merchant Dashboard), every hosted payment posts the same PaymentUpdate webhook as an API payment, signed the same way. See the Merchant Native Integration guide for the payload, the x-api-signature header and the retry rules. Two differences for a hosted payment:

  • orderId is the invoice number from the page (invoiceNo, or what the customer typed).
  • transactionId is RelayPay's id of the payment, since there is no payment request of yours to refer to.

Dashboard. Every payment is listed in the Merchant Dashboard with its orderId, status and settlement.

API. Call Get merchant transaction with orderId set to your invoice number, or Get transactions list for a page of payments. Both return storeName when it was given.

Possible statuses are the same as for API payments: Pending, Success, Failed, Cancelled and Expired.