Headless Payments

Run complete payment flows via API - no UI required

Using Helio, you can make end-to-end headless payments with no UI required. This is ideal for seamless integrations with third-party services, allowing merchants to accept payments through Helio without a UI.

ℹ️

This feature is currently supported only on the Solana network.

How It Works

  • Merchants generate Pay Links that define the payment request, including supported currencies.
  • Payers prepare a transaction via the API using the Pay Link and their public key.
  • Helio provides the transaction payload (serialized transaction, message, and token) needed for signing.
  • Payers sign and submit the transaction, completing the payment fully through the API without a UI.

How to Get Started

  1. Create a Pay Link

The merchant creates and shares a Pay Link ID. Optionally, they may also specify a currency ID.

  • If no currency is provided, it will default to USDC.
  • If USDC is not available, the first enabled currency on the Pay Link will be used.
  1. Prepare the Transaction

The payer calls the prepare endpoint, passing the following parameters:

  • paymentRequestId - The Pay Link ID
  • senderPublicKey - the payer's public key
  • currencyId (optional)
  • any other required fields (see API reference for full list)
  1. Sign the Transaction

The /prepare endpoint responds with:

  • transactionToken - Identifier required to submit the signed transaction.
  • transactionMessage - Metadata or message tied to the transaction.
  • serializedTransaction - Unsigned transaction data to be signed by the payer.
  • addressLookupTableAccounts - Accounts used to resolve addresses in the transaction.

The payer uses the serializedTransaction to sign the transaction, producing a signedTransaction value. This signed transaction will be used in the submission step.

  1. Submit the Transaction

The payer calls the submit endpoint, providing:

  • the signedTransaction value
  • the transactionToken from the /prepare response.

This submits the fully signed transaction for processing.