> ## Documentation Index
> Fetch the complete documentation index at: https://docs.range.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Track transaction status

> 
Returns the status of a transaction by hash.  

The `status` key of the response provides a status of the transaction which is one of

- submitted
- pending
- completed
- failed
- abandoned
- unknown

The `raw` key provides the full response from the provider, which may provide additional information including links to block explorers and intermediary transactions. As each provider response is different it is up to clients to parse raw provider responses to use them. 

### Query Parameters
Clients that did not submit their transaction via the Faraday API can still use this endpoint by providing:

- **tx_hash** *(required, path)* — The transaction hash on the source chain.
- **quote_id** *(optional, query string)* — If the transaction originated from a Faraday quote, include the quote UUID to link to the original quote record.




## OpenAPI

````yaml /api-reference/faraday-api.json get /v1/transactions/track/{tx_hash}
openapi: 3.1.0
info:
  title: Faraday API
  description: >-

    The **Faraday API** provides secure, compliant infrastructure for stablecoin
    transactions, identity verification, and transaction monitoring across
    multiple blockchains.


    ### Key Features

    - **Swap Routing** — Discover optimal swap paths for stablecoin transfers,
    including cross-chain routes.

    - **IVMS101 Person Records** — Create, query, and manage structured person
    data for FATF Travel Rule compliance.

    - **Transaction Submission and Monitoring** — Submit and track stablecoin
    transactions.

    - **Reporting** — View historical transaction reports including associated
    IVMS101 records.


    ### Authentication

    Most requests require an API key (Bearer token).


    Generate and manage API keys by signing in to https://app.range.org/


    API Keys can be found under the APIs section. A free monthly credit
    allowance is available, with more credits available to paid plans.


    Include this header with every authenticated Faraday request:


    ```

    Authorization: Bearer <your_token>

    ```


    ### Base URL

    - Production: `https://api.faraday.range.org`


    ### Example Request

    ```bash

    curl -X GET 'https://api.faraday.range.org/v1/persons'   --header
    'Authorization: Bearer <your_token>'

    ```
            
  contact:
    name: Faraday
    url: https://range.org/faraday
    email: faraday@range.org
  license:
    name: ''
  version: 1.0.0
servers:
  - url: https://api.faraday.range.org
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Transactions
    description: Send, track and find transactions
  - name: Persons
    description: >-
      Manage IVMS101 Person records. This includes creation and retrieval of
      structured person data for compliance with FATF Travel Rule standards.
  - name: Chains
    description: Chains supported by Faraday
  - name: Tokens
    description: Tokens supported by Faraday
  - name: Providers
    description: Providers supported by Faraday
paths:
  /v1/transactions/track/{tx_hash}:
    get:
      tags:
        - Transactions
      summary: Track transaction status
      description: >

        Returns the status of a transaction by hash.  


        The `status` key of the response provides a status of the transaction
        which is one of


        - submitted

        - pending

        - completed

        - failed

        - abandoned

        - unknown


        The `raw` key provides the full response from the provider, which may
        provide additional information including links to block explorers and
        intermediary transactions. As each provider response is different it is
        up to clients to parse raw provider responses to use them. 


        ### Query Parameters

        Clients that did not submit their transaction via the Faraday API can
        still use this endpoint by providing:


        - **tx_hash** *(required, path)* — The transaction hash on the source
        chain.

        - **quote_id** *(optional, query string)* — If the transaction
        originated from a Faraday quote, include the quote UUID to link to the
        original quote record.
      operationId: track_transaction
      parameters:
        - name: tx_hash
          in: path
          description: Transaction hash to track
          required: true
          schema:
            type: string
        - name: quote_id
          in: query
          description: >-
            Optional quote ID if the transaction was not submitted via the
            Faraday API
          required: false
          schema:
            type: string
      responses:
        '200':
          description: |

            **OK**

            Transaction status successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TxStatusResponse'
              examples:
                SkipGo Sepolia USDC to Solana USDC:
                  value:
                    provider: skipgo
                    raw:
                      error: null
                      next_blocking_transfer: null
                      state: STATE_COMPLETED_SUCCESS
                      status: STATE_COMPLETED
                      transfer_asset_release:
                        amount: '4536971'
                        chain_id: solana-devnet
                        denom: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
                        released: true
                      transfer_sequence:
                        - cctp_transfer:
                            from_chain_id: '11155111'
                            state: CCTP_TRANSFER_RECEIVED
                            to_chain_id: solana-devnet
                            txs:
                              receive_tx:
                                chain_id: solana-devnet
                                explorer_link: >-
                                  https://solscan.io/tx/2iWuf6wS4wAbuV6R1ZoCh2x1g9U2g3d2EwJ2jUBR6BRteak7fpsEtxCwDSkpDKgFriicBKjeUGJtnBMba256J5Ao?cluster=devnet
                                on_chain_at: '2025-10-27T18:28:49.766120570Z'
                                tx_hash: >-
                                  2iWuf6wS4wAbuV6R1ZoCh2x1g9U2g3d2EwJ2jUBR6BRteak7fpsEtxCwDSkpDKgFriicBKjeUGJtnBMba256J5Ao
                              send_tx:
                                chain_id: '11155111'
                                explorer_link: >-
                                  https://sepolia.etherscan.io/tx/0x66682E126367F63E9714F78CE4417E8B0096D5DE77F17DF6A179315E7D325BB3
                                on_chain_at: '2025-10-27T18:23:48Z'
                                tx_hash: >-
                                  0x66682E126367F63E9714F78CE4417E8B0096D5DE77F17DF6A179315E7D325BB3
                      transfers:
                        - next_blocking_transfer: null
                          state: STATE_COMPLETED_SUCCESS
                          transfer_asset_release:
                            amount: '4536971'
                            chain_id: solana-devnet
                            denom: 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
                            released: true
                          transfer_sequence:
                            - cctp_transfer:
                                from_chain_id: '11155111'
                                state: CCTP_TRANSFER_RECEIVED
                                to_chain_id: solana-devnet
                                txs:
                                  receive_tx:
                                    chain_id: solana-devnet
                                    explorer_link: >-
                                      https://solscan.io/tx/2iWuf6wS4wAbuV6R1ZoCh2x1g9U2g3d2EwJ2jUBR6BRteak7fpsEtxCwDSkpDKgFriicBKjeUGJtnBMba256J5Ao?cluster=devnet
                                    on_chain_at: '2025-10-27T18:28:49.766120570Z'
                                    tx_hash: >-
                                      2iWuf6wS4wAbuV6R1ZoCh2x1g9U2g3d2EwJ2jUBR6BRteak7fpsEtxCwDSkpDKgFriicBKjeUGJtnBMba256J5Ao
                                  send_tx:
                                    chain_id: '11155111'
                                    explorer_link: >-
                                      https://sepolia.etherscan.io/tx/0x66682E126367F63E9714F78CE4417E8B0096D5DE77F17DF6A179315E7D325BB3
                                    on_chain_at: '2025-10-27T18:23:48Z'
                                    tx_hash: >-
                                      0x66682E126367F63E9714F78CE4417E8B0096D5DE77F17DF6A179315E7D325BB3
                    status: completed
        '401':
          description: |

            **Unauthorized**

            This error indicates that the API key is missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Missing key:
                  summary: API Key Missing
                  description: >-
                    An API key is missing in the request and should be provided
                    in the `Authorization: Bearer` header.
                  value:
                    details:
                      message: >-
                        No API key found, please set this in an Authorization:
                        Bearer header
                    error: authentication failed
                Unauthorized:
                  summary: Unauthorized
                  description: >-
                    The API key may be invalid, an empty key was provided, or
                    the key is not authorized.
                  value:
                    details:
                      message: The API key provided is not authorised or invalid
                    error: authentication failed
        '403':
          description: >

            **Forbidden**


            This error indicates that the API key is valid but the requested
            feature or resource is disabled for this workspace.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Disabled API Key:
                  summary: Feature disabled
                  description: >-
                    The API key is valid but the associated feature or endpoint
                    has been disabled for this workspace.
                  value:
                    details:
                      message: Feature disabled for this API key
                    error: authentication failed
        '404':
          description: >

            **Not Found**


            Returned when no matching quote or transaction could be located.


            This can occur if:

            - The transaction has not yet been indexed by the blockchain.

            - The provided `tx_hash` does not correspond to any quote.

            - No `quote_id` was provided for a transaction submitted directly to
            a blockchain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                No quote found for tx_hash and no quote_id provided:
                  value:
                    details:
                      message: >-
                        No quote found for tx_hash deadbeef1234... and no
                        quote_id provided
                    error: not found
                No quotes available from any provider:
                  value:
                    details:
                      message: quote not found
                    error: not found
        '429':
          description: >

            **Too Many Requests**


            This error indicates that the API key has exceeded its allowed
            number of requests within the current quota.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Rate Limited API Key:
                  summary: Rate limit exceeded
                  description: The API key has exceeded its quota.
                  value:
                    details:
                      message: API Key Rate limit exceeded
                    error: authentication failed
        '500':
          description: >

            **Internal Server Error**


            An unexpected internal error occurred while processing the request.
            This typically indicates a transient backend or database issue.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal Server Error:
                  summary: Internal error
                  description: >-
                    An unhandled exception or service outage prevented the
                    request from completing successfully.
                  value:
                    error: internal server error
components:
  schemas:
    TxStatusResponse:
      type: object
      required:
        - provider
        - status
        - raw
      properties:
        provider:
          type: string
          description: Provider name (e.g., "Skip Go", "Squid", "Axelar").
          example: Skip Go
        raw:
          type: object
          description: Raw provider payload for debugging or analytics.
        status:
          $ref: '#/components/schemas/TxStatus'
          description: Normalized transaction status (Pending, Completed, etc.)
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    TxStatus:
      type: string
      description: Canonical transaction lifecycle states shared across all providers.
      enum:
        - submitted
        - pending
        - completed
        - failed
        - abandoned
        - unknown
      example: pending
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````