Integration guides

Payments

Integrate stablecoin payments into your Volt Checkout flow


Overview

Stablecoin payments are created and tracked the same way as any other Volt payment — through the and a redirect to the hosted Volt Checkout, following the . This page covers what's specific to stablecoins; for the conceptual flow, see in the integration overview.

Prerequisites

Stablecoin payments run on the Global API. If you are still on the legacy Gateway API, follow the before going live.

Before you can accept stablecoin payments, your account must be enabled and onboarded. See .

Create the payment

Stablecoin payments reuse your existing payment request — you only need to make sure a few extra fields are present, which licensed-partner compliance requires, then redirect the customer to the returned Checkout URL exactly as for any other payment.

SectionFieldRequirement
payerreferenceRequired
payerfirstNameRequired for an individual payer
payerlastNameRequired for an individual payer
payerorganisationNameRequired if the payer is a company
payeremailRequired
payer.additionaldateOfBirthRequired, format YYYY-MM-DD
deviceipRequired
Example request fragment
{
  "payer": {
    "reference": "customer-123",
    "firstName": "John",
    "lastName": "Smith",
    "email": "john.smith@example.com",
    "additional": {
      "dateOfBirth": "1990-05-15"
    }
  },
  "device": {
    "ip": "203.0.113.42"
  }
}

For the full request schema, see the and .

If you want the checkout to show only the stablecoin option, add the cryptoOnly=true query parameter to the checkout URL:

https://checkout.volt.io/...?cryptoOnly=true

Stablecoin payment in Volt checkout

Track the result

Volt notifies you of status changes via the same webhooks you already use for payment updates — there's no separate stablecoin-specific event. The payment moves through a clear lifecycle, from NEW (awaiting funds) to COMPLETED once the expected amount is confirmed on-chain. See Payment statuses for the full list, including partial-payment states such as OVERPAID and UNDERPAID.

You can also inspect an individual payment in Fuzebox — see in the integration overview.

Payment statuses

This section covers only the statuses for Stablecoin payments. The statuses for open banking payments remain unchanged and can be found in the documentation.

StatusDescription
NEWIntent created; no on-chain activity yet. The payer has not sent funds.
PROCESSINGOne or more incoming transactions have been detected and are awaiting confirmations.
OVERPAIDThe payer sent more than the expected amount. Will trigger an auto-refund of the excess or require manual reconciliation.
UNDERPAIDThe payer sent less than the expected amount. Will trigger an auto-refund of the full amount or require manual reconciliation.
COMPLETEDExpected amount received and confirmed. Terminal success state.
EXPIREDThe payment time-window elapsed before the consumer confirmed the transaction.
CANCELLEDThe payment was cancelled before completion.
FAILEDThe payment failed due to an error.
ON_HOLDThe payment is paused pending manual review. Can transition back to PROCESSING or to a terminal state.

How is this guide?

Last updated on