---
title: "Prepare a Headless Payment"
method: POST
path: "/v1/transaction/headless/prepare"
tags: ["Headless Transactions"]
---

# Prepare a Headless Payment

`POST /v1/transaction/headless/prepare`

Prepares a Solana headless transaction. Returns a payload that the payer can sign and submit.

## Request body

- PrepareHeadlessTransaction
  - `paymentRequestId` string, required — The ID of the associated payment request.
  - `senderPublicKey` string, required — The sender’s public key on the Solana blockchain.
  - `currencyId` string — The identifier of the currency being used for the transaction.
  - `quantity` number — The quantity of the selected currency.
  - `minimalUnitAmount` number — The minimal unit amount (e.g., in lamports for Solana).
  - `affiliateCode` string — Optional affiliate or referral code linked to the transaction.
  - `btcPublicKey` string — Optional Bitcoin public key if BTC-related properties are included.
  - `customerDetails` object — Details of the customer making the transaction. If the pay link is configured to require these fields, they are no longer optional.
    - `email` string — The customer’s email address.
    - `discordUser` object — Discord user details.
      - `id` string — Discord user ID.
      - `username` string — Discord username.
    - `twitterUsername` string — Twitter username.
    - `telegramUser` object — Telegram user details.
      - `id` number — Telegram user ID.
      - `username` string — Telegram username.
    - `fullName` string — The customer’s full name.
    - `country` string — Country of the customer.
    - `state` string — State of the customer.
    - `city` string — City of the customer.
    - `street` string — Street name.
    - `streetNumber` string — Street number.
    - `areaCode` string — Postal or area code.
    - `deliveryAddress` string — Delivery address, if applicable.
    - `blinkAddress` string — Optional Blink wallet address.
    - `phoneNumber` string — The customer’s phone number.
    - `additionalJSON` string — Optional additional metadata in JSON format.
    - `btcProperties` object — Additional Bitcoin-related properties.
      - `ordinalsAddress` string — The Ordinals wallet address for inscriptions.
  - `productDetails` object — Details of the product involved in the transaction.
    - `name` string — The name of the product.
    - `value` string — The value or SKU of the product.
    - `active` boolean — Whether the product is active.

## Response `200`

The transaction was prepared successfully

- PrepareHeadlessTransaction[]
  - `paymentRequestId` string, required — The ID of the associated payment request.
  - `senderPublicKey` string, required — The sender’s public key on the Solana blockchain.
  - `currencyId` string — The identifier of the currency being used for the transaction.
  - `quantity` number — The quantity of the selected currency.
  - `minimalUnitAmount` number — The minimal unit amount (e.g., in lamports for Solana).
  - `affiliateCode` string — Optional affiliate or referral code linked to the transaction.
  - `btcPublicKey` string — Optional Bitcoin public key if BTC-related properties are included.
  - `customerDetails` object — Details of the customer making the transaction. If the pay link is configured to require these fields, they are no longer optional.
    - `email` string — The customer’s email address.
    - `discordUser` object — Discord user details.
      - `id` string — Discord user ID.
      - `username` string — Discord username.
    - `twitterUsername` string — Twitter username.
    - `telegramUser` object — Telegram user details.
      - `id` number — Telegram user ID.
      - `username` string — Telegram username.
    - `fullName` string — The customer’s full name.
    - `country` string — Country of the customer.
    - `state` string — State of the customer.
    - `city` string — City of the customer.
    - `street` string — Street name.
    - `streetNumber` string — Street number.
    - `areaCode` string — Postal or area code.
    - `deliveryAddress` string — Delivery address, if applicable.
    - `blinkAddress` string — Optional Blink wallet address.
    - `phoneNumber` string — The customer’s phone number.
    - `additionalJSON` string — Optional additional metadata in JSON format.
    - `btcProperties` object — Additional Bitcoin-related properties.
      - `ordinalsAddress` string — The Ordinals wallet address for inscriptions.
  - `productDetails` object — Details of the product involved in the transaction.
    - `name` string — The name of the product.
    - `value` string — The value or SKU of the product.
    - `active` boolean — Whether the product is active.

---

[API](https://skmtc.net/hel/apis/helio-open-api.md) · [All operations](https://skmtc.net/hel/apis/helio-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hel/helio-open-api/revisions/5732beb2d39f/schema)
