> ## Documentation Index
> Fetch the complete documentation index at: https://dev.commerce.moonpay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Charge Status

> Poll the status of a charge you created, authenticated with your API key and secret. Returns the same response as Get a Charge by ID, with its own rate limit instead of the shared public per-IP limit.

> [!TIP]
>
> Use this endpoint, not the public [Get a Charge by ID](https://dev.commerce.moonpay.com/reference/charge/retrieve.md), to poll charge status. See [Polling charge status](https://dev.commerce.moonpay.com/reference/charge/overview.md#polling-charge-status) for rate limits and back-off guidance.


## OpenAPI

````yaml GET /v1/charge/api-key/{token}
openapi: 3.0.0
info:
  title: Helio Open API
  description: |-
    API schema and definitions for Helio API. <br/> 
          The API is using two types of Authentication, for dashboard endpoints we use <b>JSON Web Token (JWT)</b> that is generated by self custodial wallet signing a message from API.</br> 
          We also support authentication with <b>API Key and Secret</b> which can be generated on <a href='https://hel.io'>Helio dashboard</a>.
  version: 1.0.0
  contact: {}
servers:
  - description: Helio API (Mainnet)
    url: https://api.hel.io
security: []
tags:
  - name: Webhooks
  - name: Exports
  - name: Currencies
    description: >-
      Supported currencies endpoint, includes fiat and digital assets
      </br><i>Authentication: </i><b>None</b>
externalDocs:
  description: Helio product documentation
  url: https://dev.commerce.moonpay.com/
paths:
  /v1/charge/api-key/{token}:
    get:
      tags:
        - Charge
      summary: Get Charge Status
      description: >-
        Retrieve a charge you created, authenticated with your API key and
        secret. Returns the same response as [Get a Charge by
        ID](/reference/charge/retrieve), so existing parsing does not change.
        Use this endpoint to poll charge status: it has its own rate limit
        instead of the shared public per-IP limit.


        If the charge has been paid, transaction details appear under the
        `paylinkTx` field. If no transaction has occurred yet, the field is
        returned as `"paylinkTx": null`.


        Requires an API key with the `PAYLINK_READ` permission (or an admin
        key). Only charges created under your account are returned; any other
        token returns `401`.
      operationId: ChargeController_findOneByApiKey
      parameters:
        - name: token
          in: path
          required: true
          description: >-
            The charge token (e.g. the segment at the end of
            `https://app.hel.io/charge/{token}`).
          schema:
            type: string
        - name: apiKey
          in: query
          required: true
          description: >-
            Your API key, which can be generated from the Helio Dashboard
            settings page.
          schema:
            type: string
      responses:
        '200':
          description: Charge successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrichedCharge'
              examples:
                success:
                  summary: Full charge response
                  value:
                    id: 681389bfba5dc7557c9608ec
                    currencySymbol: USDC
                    requestAmount: '1000000'
                    usdcAmount: '1000000'
                    token: 28936112-bcf1-4240-a851-85fb087c282a
                    prepareRequestBody:
                      currency: USDC
                      amount: '1000000'
                      quantity: 1
                    expiresAt: '2025-09-03T09:52:41.000Z'
                    paylink:
                      id: 6813481776c142eb631c14fa
                      platform: HELIO
                      template: LEGACY
                      disabled: false
                      inactive: false
                      notifySenderByEmail: false
                      notifyReceiverByEmail: false
                      addDiscordRole: false
                      addTelegramGroup: false
                      features:
                        canChangeQuantity: false
                        canChangePrice: false
                        requireQuantityLimits: false
                        requireCountry: false
                        requireEmail: false
                        requireDeliveryAddress: false
                        requireDiscordUsername: false
                        requireDiscordLogin: false
                        requireFullName: false
                        requirePhoneNumber: false
                        requireTwitterUsername: false
                        requireTelegramUsername: false
                        requireProductDetails: false
                        requireMaxTransactions: false
                        requireNftGate: false
                        requireDiscordAuth: false
                        requireAccessCode: false
                        requireXFollow: false
                        requireRaffle: false
                        splitRevenue: false
                        splitEqually: false
                        canSwapTokens: false
                        canPayWithCard: true
                        nftDropEnabled: false
                        showDiscountCode: false
                        isEscrowed: false
                        requireAllowlist: false
                        allowAffiliate: false
                        isEventEnabled: false
                        enableCountdown: false
                        requireCaptchaValidation: false
                        shouldRedirectOnSuccess: false
                        customThemeEnabled: false
                        isSubscription: false
                        hasRedirectQueryParams: false
                      name: Your paylink name here
                      discordAuthDetails: []
                      dynamic: false
                      affiliateDetails: null
                      price: '1000000'
                      normalizedPrice: '1000000'
                      redirectQueryParams: []
                      createdAt: '2025-05-01T10:08:23.829Z'
                      updatedAt: '2025-05-01T10:13:53.682Z'
                      creator:
                        id: 667c1f9352919e407156128a
                        userType: MERCHANT
                        isDisabled: false
                        kycVerified: false
                        platformDetails:
                          platform: HELIO
                        roles: []
                        wallets: []
                        payoutWallets: []
                      company:
                        id: 667c1f9352919e407156128c
                        name: Helio
                        websiteUrl: ''
                        discordUsername: ''
                        escrowFunds: false
                        twitterConfirmed: false
                        kycVerified: false
                        kybVerified: false
                        logoUrl: >-
                          https://helioimages113109-prod.s3.eu-west-1.amazonaws.com/attachments/l6uYjlJX5WGhnJZE2MBbYDEP0UFFonPObmVL1LJo.png?AWSAccessKeyId=AKIAZIDE2VZR6C743GDI&Expires=1746111914&Signature=g23tB1gz15LKEskaJ0rjLmS7j8s%3D
                      currency:
                        id: 6340313846e4f91b8abc519b
                        name: USD Coin
                        decimals: 6
                        order: 1
                        mintAddress: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                        coinMarketCapId: 3408
                        symbol: USDC
                        symbolPrefix: $
                        type: DIGITAL
                        iconUrl: USDC.svg
                        features:
                          - PAYMENT_PRICING
                          - PAYMENT_RECIPIENT
                          - SWAP
                        blockchain:
                          id: 6340313846e4f91b8abc515c
                          name: SOL
                          symbol: SOL
                          engine:
                            id: 63b6b1200cfb4b3f6131f2b4
                            type: SOL
                      wallet:
                        id: 667c1f9352919e4071561294
                        name: ''
                        publicKey: 7YancRyNQyp9s6G7YNwx9H93UqswoKWqF9GuNJPufyvW
                        btcProperties: null
                        type: EXTENSION
                        blockchainEngine:
                          id: 63b6b1200cfb4b3f6131f2b4
                          type: SOL
                      recipients:
                        - currency:
                            id: 6340313846e4f91b8abc519b
                            name: USD Coin
                            decimals: 6
                            order: 1
                            mintAddress: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                            coinMarketCapId: 3408
                            symbol: USDC
                            symbolPrefix: $
                            type: DIGITAL
                            iconUrl: USDC.svg
                            features:
                              - PAYMENT_PRICING
                              - PAYMENT_RECIPIENT
                              - SWAP
                            blockchain:
                              id: 6340313846e4f91b8abc515c
                              name: SOL
                              symbol: SOL
                              engine:
                                id: 63b6b1200cfb4b3f6131f2b4
                                type: SOL
                          wallet:
                            id: 667c1f9352919e4071561294
                            name: ''
                            publicKey: 7YancRyNQyp9s6G7YNwx9H93UqswoKWqF9GuNJPufyvW
                            btcProperties: null
                            type: EXTENSION
                            blockchainEngine:
                              id: 63b6b1200cfb4b3f6131f2b4
                              type: SOL
                      product: null
                      additionalImageUrls: []
                      discountCodes: []
                      pricingCurrency:
                        id: 6340313846e4f91b8abc519b
                        name: USD Coin
                        decimals: 6
                        order: 1
                        mintAddress: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                        coinMarketCapId: 3408
                        symbol: USDC
                        symbolPrefix: $
                        type: DIGITAL
                        iconUrl: USDC.svg
                        features:
                          - PAYMENT_PRICING
                          - PAYMENT_RECIPIENT
                          - SWAP
                        blockchain:
                          id: 6340313846e4f91b8abc515c
                          name: SOL
                          symbol: SOL
                          engine:
                            id: 63b6b1200cfb4b3f6131f2b4
                            type: SOL
                    paylinkTx:
                      id: 681389c0ba5dc7557c960901
                      paylinkId: 6813481776c142eb631c14fa
                      quantity: 1
                      createdAt: '2025-09-03T09:22:56.000Z'
                      fee: '0'
                      paymentType: PAYLINK
                      claimDetails:
                        tradingView: null
                        discord: null
                      meta:
                        id: 681389c0ba5dc7557c960902
                        amount: '1000000'
                        totalAmount: '1000000'
                        transactionSignature: >-
                          3xF7k2pVmRjKdQyN8mWcTa5bZE9vHpL4nR6sGtU1wXoA7cY2fD8eJ4gH5iK9lM0nO1pQ3rS6tU
                        recipientPK: BZx1GkP3tVmRjKdQyN8mWcTa5bZE9vHpL4nR6sGtU1wX
                        senderPK: 7Xy2hN9kL3mP5qR8sT1vW4xZ6bC0dF3gJ7iK2lM4nO
                        splitRevenue: false
                        remainingAccounts: []
                        transactionStatus: SUCCESS
                        transactionType: PAYLINK
                        currency:
                          id: 6340313846e4f91b8abc5183
                          name: USD Coin
                          symbol: USDC
                          mintAddress: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                          coinMarketCapId: 3408
                          decimals: 6
                          order: 1
                          type: DIGITAL
                          blockchain:
                            id: 6340313846e4f91b8abc515c
                            name: SOL
                            symbol: SOL
                            engine:
                              id: 63b6b1200cfb4b3f6131f2b4
                              type: SOL
                    pricingCurrencyRequestAmount: '1000000'
                    isSubscriptionRenewal: false
                    redirectUrl: https://example.com/success
                    shopifyPaymentDetails: null
        '401':
          description: >-
            Invalid API key or secret, or the charge does not belong to your
            account.
          content:
            application/json:
              examples:
                unauthorized:
                  summary: Invalid or missing API key
                  value:
                    message: Api key or token is invalid
                    code: 401
                notAllowed:
                  summary: Charge not owned by your account
                  value:
                    message: Not allowed to read charge
                    code: 401
        '403':
          description: The API key does not have the `PAYLINK_READ` permission.
          content:
            application/json:
              examples:
                forbidden:
                  summary: Missing permission
                  value:
                    message: API key is not authorized for this resource
                    code: 403
        '429':
          description: Rate limit exceeded. Back off and retry after a few seconds.
          content:
            application/json:
              examples:
                rateLimited:
                  summary: Too many requests
                  value:
                    message: 'ThrottlerException: Too Many Requests'
                    code: 429
                    errorType: RATE_LIMITED
      security:
        - bearer: []
components:
  schemas:
    EnrichedCharge:
      type: object
      properties:
        pricingCurrencyRequestAmount:
          type: string
        paylink:
          $ref: '#/components/schemas/Paylink'
        paylinkTx:
          description: >-
            The transaction associated with this charge. Null when the charge
            has not yet been paid.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/PaylinkTxWithPublicMeta'
        isSubscriptionRenewal:
          type: boolean
        id:
          type: string
        prepareRequestBody:
          $ref: '#/components/schemas/PrepareRequestBodyFromCharge'
        requestAmount:
          type: string
        token:
          type: string
        currencySymbol:
          type: string
        redirectUrl:
          type: string
        shopifyPaymentDetails:
          description: >-
            Shopify payment session details. Only present for charges created
            via a Shopify integration, null otherwise.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/ShopifyPaymentDetails'
        expiresAt:
          description: >-
            ISO 8601 timestamp indicating when the charge expires. May be absent
            if no expiry was set at creation.
          type: string
        usdcAmount:
          description: >-
            The charge amount denominated in USDC (minimal units). May be absent
            depending on the payment flow.
          type: string
      required:
        - pricingCurrencyRequestAmount
        - paylink
        - paylinkTx
        - isSubscriptionRenewal
        - id
        - prepareRequestBody
        - requestAmount
        - token
        - currencySymbol
        - redirectUrl
    Paylink:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        template:
          type: string
          enum:
            - PRODUCT
            - SUBSCRIPTION
            - PRE_SALE
            - SINGLE_NFT
            - VIDEO
            - DISCORD_MEMBERSHIP
            - TELEGRAM_MEMBERSHIP
            - INVOICE
            - EMBEDDED
            - LINK_OR_FILE
            - TRADING_VIEW
            - EVENT
            - WOO_COMMERCE
            - OTHER
            - LEGACY
            - RAFFLE
            - SHOPIFY
            - BLINK
            - PAYLINK_V2
            - EMBEDDED_V2
            - SUBSCRIPTION_V2
        description:
          type: string
        price:
          type: string
        normalizedPrice:
          type: string
        platform:
          type: string
          enum:
            - HELIO
            - MAGIC_EDEN
        disabled:
          type: boolean
        inactive:
          type: boolean
        dynamic:
          type: boolean
        createdAt:
          type: string
        updatedAt:
          type: string
        notifySenderByEmail:
          type: boolean
        notifyReceiverByEmail:
          type: boolean
        addDiscordRole:
          type: boolean
        image:
          type: string
        imageUrl:
          type: string
        additionalImages:
          type: array
          items:
            type: string
        additionalImageUrls:
          type: array
          items:
            type: string
        maxTransactions:
          type: number
        redirectUrl:
          type: string
        redirectTimeout:
          type: number
        redirectQueryParams:
          type: array
          items:
            $ref: '#/components/schemas/RedirectQueryParamDto'
        nftCollectionAddress:
          type: string
        discordAuthDetails:
          type: array
          items:
            type: object
        affiliateDetails:
          nullable: true
          type: object
        features:
          $ref: '#/components/schemas/LinkFeatures'
        minQuantity:
          type: number
        maxQuantity:
          type: number
        airdropConfigured:
          type: boolean
        creator:
          $ref: '#/components/schemas/User'
        company:
          $ref: '#/components/schemas/BaseCompany'
        currency:
          $ref: '#/components/schemas/Currency'
        wallet:
          $ref: '#/components/schemas/Wallet'
        product:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/Product'
        pricingCurrency:
          $ref: '#/components/schemas/Currency'
        recipients:
          type: array
          items:
            $ref: '#/components/schemas/Recipient'
        splitWallets:
          type: array
          items:
            $ref: '#/components/schemas/SplitWallet'
        discountCodes:
          type: array
          items:
            $ref: '#/components/schemas/DiscountCode'
      required:
        - id
        - name
        - template
        - price
        - platform
        - notifySenderByEmail
        - notifyReceiverByEmail
        - addDiscordRole
        - features
        - creator
        - company
        - currency
        - wallet
        - pricingCurrency
    PaylinkTxWithPublicMeta:
      type: object
      properties:
        id:
          type: string
        paylinkId:
          type: string
        quantity:
          type: number
        createdAt:
          type: string
        fee:
          type: string
        paymentType:
          type: string
          enum:
            - PAYLINK
            - PAYSTREAM
            - INVOICE
            - DEPOSIT
        claimDetails:
          $ref: '#/components/schemas/ClaimDetails'
        meta:
          $ref: '#/components/schemas/PublicTransactionMeta'
      required:
        - id
        - quantity
        - createdAt
        - paymentType
        - claimDetails
        - meta
    PrepareRequestBodyFromCharge:
      type: object
      properties:
        currency:
          type: string
        amount:
          type: string
        quantity:
          type: number
        pricingCurrencyRateToken:
          type: string
      required:
        - currency
    ShopifyPaymentDetails:
      type: object
      properties:
        shopifyPaymentId:
          type: string
        shopifyPaymentGid:
          type: string
      required:
        - shopifyPaymentId
        - shopifyPaymentGid
    RedirectQueryParamDto:
      type: object
      required:
        - queryParamType
      properties:
        queryParamType:
          type: string
          enum:
            - WALLET_ADDRESS
          description: The type of dynamic query parameter to append to the redirect URL.
        value:
          type: string
          description: Optional custom value for the query parameter.
    LinkFeatures:
      type: object
      properties:
        requireEmail:
          type: boolean
        requireDiscordUsername:
          type: boolean
        requireDiscordLogin:
          type: boolean
        requireFullName:
          type: boolean
        requireTwitterUsername:
          type: boolean
        requireTelegramUsername:
          type: boolean
        requireCountry:
          type: boolean
        requireDeliveryAddress:
          type: boolean
        requirePhoneNumber:
          type: boolean
        requireProductDetails:
          type: boolean
        requireMaxTransactions:
          type: boolean
        splitRevenue:
          type: boolean
        splitEqually:
          type: boolean
        requireNftGate:
          type: boolean
        requireDiscordAuth:
          type: boolean
        requireAccessCode:
          type: boolean
        requireXFollow:
          type: boolean
        canSwapTokens:
          type: boolean
        canPayWithCard:
          type: boolean
        nftDropEnabled:
          type: boolean
        showDiscountCode:
          type: boolean
        allowAffiliate:
          type: boolean
        isEventEnabled:
          type: boolean
        enableCountdown:
          type: boolean
        shouldRedirectOnSuccess:
          type: boolean
        customThemeEnabled:
          type: boolean
        hasRedirectQueryParams:
          type: boolean
        isHelioPlay:
          type: boolean
        canChangePrice:
          type: boolean
        requireQuantityLimits:
          type: boolean
        canChangeQuantity:
          type: boolean
        isEscrowed:
          type: boolean
        requireAllowlist:
          type: boolean
        requireAirdrop:
          type: boolean
        requireRaffle:
          type: boolean
        requireCaptchaValidation:
          type: boolean
        isSubscription:
          type: boolean
        hasStripeApiKey:
          type: boolean
        disableEmailReceipt:
          type: boolean
    User:
      type: object
      properties:
        id:
          type: string
        userType:
          nullable: true
          enum:
            - MERCHANT
            - BUYER
          type: string
        name:
          type: string
        email:
          type: string
        discordUsername:
          type: string
        twitterUsername:
          type: string
        isDisabled:
          type: boolean
        kycVerified:
          type: boolean
        helioVerified:
          type: boolean
          description: |-
            undefined = pending helio verification
            Only set to true/false once approved/denied.
        platformDetails:
          $ref: '#/components/schemas/PlatformDetailsBase'
        affiliateCodes:
          type: array
          items:
            $ref: '#/components/schemas/UserAffiliateCode'
      required:
        - id
        - userType
    BaseCompany:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
        logoUrl:
          type: string
        websiteUrl:
          type: string
        twitterUsername:
          type: string
        discordUsername:
          type: string
        address:
          type: string
        phoneNumber:
          type: string
        twitterConfirmed:
          type: boolean
        escrowFunds:
          type: boolean
        kycVerified:
          type: boolean
        kybVerified:
          type: boolean
        helioVerified:
          type: boolean
          description: |-
            undefined = pending helio verification
            Only set to true/false once approved/denied.
      required:
        - id
    Currency:
      type: object
      properties:
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        id:
          type: string
        symbol:
          type: string
        name:
          type: string
        mintAddress:
          type: string
        coinMarketCapId:
          type: number
        decimals:
          type: number
        minDecimals:
          type: number
        symbolPrefix:
          type: string
        order:
          type: number
        type:
          enum:
            - FIAT
            - DIGITAL
          type: string
        features:
          type: array
          items:
            type: string
            enum:
              - PAYMENT_PRICING
              - PAYMENT_RECIPIENT
              - SWAP
        iconUrl:
          type: string
      required:
        - blockchain
        - id
        - symbol
        - name
        - mintAddress
        - coinMarketCapId
        - decimals
        - order
    Wallet:
      type: object
      properties:
        blockchain:
          $ref: '#/components/schemas/Blockchain'
        blockchainEngine:
          $ref: '#/components/schemas/BlockchainEngine'
        id:
          type: string
        publicKey:
          type: string
        name:
          type: string
        btcProperties:
          $ref: '#/components/schemas/BTCProperties'
        type:
          enum:
            - EXTENSION
            - WEB3AUTH
          type: string
      required:
        - blockchainEngine
        - id
        - publicKey
    Product:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        type:
          type: string
        active:
          type: boolean
        optional:
          type: boolean
      required:
        - name
        - description
        - type
        - active
        - optional
    Recipient:
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        wallet:
          type: object
      required:
        - currency
        - wallet
    SplitWallet:
      type: object
      properties:
        address:
          type: string
        percent:
          type: number
      required:
        - address
    DiscountCode:
      type: object
      properties:
        id:
          type: string
        token:
          type: string
        percent:
          type: number
        tokenType:
          type: string
      required:
        - percent
        - tokenType
    ClaimDetails:
      type: object
      properties:
        tradingView:
          type: object
          properties:
            username:
              type: string
        discord:
          type: object
          properties:
            username:
              type: string
    PublicTransactionMeta:
      type: object
      properties:
        id:
          type: string
        amount:
          type: string
        totalAmount:
          type: string
        affiliateAmount:
          type: string
        transactionSignature:
          type: string
        recipientPK:
          type: string
        senderPK:
          type: string
        splitRevenue:
          type: boolean
        remainingAccounts:
          type: array
          items:
            $ref: '#/components/schemas/SplitAccount'
        transactionStatus:
          type: string
          enum:
            - INITIATED
            - PENDING
            - SUCCESS
            - FAILED
            - CANCELED
            - SETTLED
        transactionDataHash:
          type: string
        transactionType:
          type: string
          enum:
            - REFUND
            - PAYLINK
            - BLINK
            - HELIO_WALLET
            - SWAP
            - DEPOSIT
        affiliateCode:
          type: string
        affiliatePublicKey:
          type: string
        tokenQuote:
          type: object
        currency:
          $ref: '#/components/schemas/Currency'
      required:
        - id
        - amount
        - totalAmount
        - transactionSignature
        - recipientPK
        - senderPK
        - splitRevenue
        - remainingAccounts
        - currency
    PlatformDetailsBase:
      type: object
      properties:
        platform:
          type: string
          enum:
            - HELIO
            - MAGIC_EDEN
      required:
        - platform
    UserAffiliateCode:
      type: object
      properties:
        affiliateCode:
          type: string
      required:
        - affiliateCode
    Blockchain:
      type: object
      properties:
        engine:
          $ref: '#/components/schemas/BlockchainEngine'
        id:
          type: string
        name:
          type: string
        symbol:
          type: string
          enum:
            - SOL
            - ETH
            - POLYGON
            - BASE
            - BITCOIN
      required:
        - engine
        - id
        - name
        - symbol
    BlockchainEngine:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - EVM
            - SOL
            - BTC
      required:
        - id
        - type
    BTCProperties:
      type: object
      properties: {}
    SplitAccount:
      type: object
      properties:
        amount:
          type: string
        recipient:
          type: string
      required:
        - amount
        - recipient
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Authentication using JWT token

````