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

# Register a tx for a request (V3 body).



## OpenAPI

````yaml /api-reference/openapi.json patch /v3/register-tx
openapi: 3.1.0
info:
  title: BOB Gateway API
  description: BOB Gateway API for Bitcoin swaps
  license:
    name: ''
  version: 1.0.0
servers:
  - url: https://gateway-api-mainnet.gobob.xyz
    description: Production
  - url: https://gateway-api-staging.gobob.xyz
    description: Staging
security: []
tags:
  - name: v1
    description: BOB Gateway Core API (v1)
  - name: v2
    description: BOB Gateway Core API (v2)
  - name: v3
    description: BOB Gateway Core API (v3)
paths:
  /v3/register-tx:
    patch:
      tags:
        - v3
      summary: Register a tx for a request (V3 body).
      operationId: register_tx_v3
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterTxV3'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterTxSuccess'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayErrorV3'
components:
  schemas:
    RegisterTxV3:
      oneOf:
        - type: object
          required:
            - onramp
          properties:
            onramp:
              type: object
              required:
                - order_id
              properties:
                bitcoin_tx_hex:
                  type:
                    - string
                    - 'null'
                  description: Hex-encoded full Bitcoin transaction
                bitcoin_txid:
                  type:
                    - string
                    - 'null'
                  description: Bitcoin transaction ID (txid)
                order_id:
                  type: string
                  description: Unique order id
                  example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
        - type: object
          required:
            - offramp
          properties:
            offramp:
              type: object
              required:
                - order_id
                - src_tx_hash
                - src_chain
              properties:
                order_id:
                  type: string
                  description: Unique order id
                  example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
                src_chain:
                  type: string
                  description: Source chain (e.g. `"ethereum"`, `"solana"`)
                src_tx_hash:
                  type: string
                  description: >-
                    Source-chain transaction hash (`0x…` on EVM, Base58
                    signature on Solana)
        - type: object
          required:
            - tokenSwap
          properties:
            tokenSwap:
              type: object
              required:
                - order_id
                - src_tx_hash
                - src_chain
              properties:
                order_id:
                  type: string
                  description: Unique order id
                  example: f81d4fae-7dec-11d0-a765-00a0c91e6bf6
                src_chain:
                  type: string
                  description: Source chain (e.g. `"ethereum"`, `"solana"`)
                src_tx_hash:
                  type: string
                  description: >-
                    Source-chain transaction hash (`0x…` on EVM, Base58
                    signature on Solana)
      description: >-
        V3 register-tx body. Offramp and token-swap use chain-aware `srcTxHash`
        + `srcChain`

        (EVM `0x…` on EVM chains, Base58 signature on Solana).
    RegisterTxSuccess:
      oneOf:
        - type: object
          required:
            - onramp
          properties:
            onramp:
              type: object
              required:
                - txid
              properties:
                txid:
                  type: string
        - type: string
          enum:
            - ok
    GatewayErrorV3:
      type: object
      description: Structured error response for V3 API.
      required:
        - code
        - error
      properties:
        code:
          $ref: '#/components/schemas/GatewayErrorCodeV3'
          description: Stable error code for frontend parsing
        details:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/GatewayErrorDetailsV3'
              description: Optional structured details specific to the error type
        error:
          type: string
          description: Human-readable error message
    GatewayErrorCodeV3:
      oneOf:
        - $ref: '#/components/schemas/GatewayErrorCode'
        - $ref: '#/components/schemas/GatewayErrorCodeV2Variants'
        - $ref: '#/components/schemas/GatewayErrorCodeV3Variants'
      description: Error codes for V3 API - includes all V1/V2 codes plus new ones.
    GatewayErrorDetailsV3:
      oneOf:
        - type: object
          required:
            - addresses
          properties:
            addresses:
              type: array
              items:
                type: string
        - type: object
          required:
            - expected
            - actual
          properties:
            actual:
              type: string
            expected:
              type: string
        - type: object
          required:
            - required
            - available
          properties:
            available:
              type: string
            required:
              type: string
        - type: object
          required:
            - total_fees
            - available_amount
          properties:
            available_amount:
              type: string
            total_fees:
              type: string
        - type: object
          properties:
            tenderly_url:
              type:
                - string
                - 'null'
        - type: object
          required:
            - src_chain
            - src_token
            - dst_chain
            - dst_token
          properties:
            dst_chain:
              type: string
            dst_token:
              type: string
            src_chain:
              type: string
            src_token:
              type: string
        - type: object
          required:
            - limit
          properties:
            limit:
              type: string
        - type: 'null'
          default: null
        - type: object
          required:
            - minimum
            - actual
          properties:
            actual:
              type: string
            minimum:
              type: string
        - type: object
          required:
            - limit
            - token
            - chain_id
          properties:
            chain_id:
              type: string
            limit:
              type: string
            token:
              type: string
        - type: object
          required:
            - src_chain
            - src_token
            - dst_chain
            - dst_token
          properties:
            dst_chain:
              type: string
            dst_token:
              type: string
            src_chain:
              type: string
            src_token:
              type: string
        - type: object
          required:
            - max
            - actual
          properties:
            actual:
              type: string
            max:
              type: string
        - type: object
          required:
            - message
          properties:
            message:
              type: string
      description: >-
        Structured details for V3 error types - all V2 variants plus V3-only
        ones.


        Kept as a single flat `oneOf` (not nested under V1/V2/V3 wrappers) so
        OpenAPI clients

        (e.g. typescript-fetch) can generate type guards correctly.
    GatewayErrorCode:
      type: string
      description: >-
        Error codes for structured error responses that the frontend can parse.

        These codes are stable and should not be changed without coordinating
        with the frontend.
      enum:
        - INSUFFICIENT_AMOUNT
        - QUOTE_AMOUNT_TOO_LOW
        - INSUFFICIENT_SWAP_AMOUNT
        - INSUFFICIENT_SOLVER_BALANCE
        - INSUFFICIENT_PAYMENT_AMOUNT
        - UNABLE_TO_COVER_FEES
        - INSUFFICIENT_CONFIRMED_FUNDS
        - SIMULATION_FAILED
        - GAS_ESTIMATE_FAILED
        - PER_ACCOUNT_LIMIT_EXCEEDED
        - GLOBAL_LIMIT_EXCEEDED
        - EXCEEDED_LIMIT
        - INVALID_REQUEST
        - INVALID_ORDER_ARGS
        - INVALID_AFFILIATE_FEE
        - SLIPPAGE_TOO_LOW
        - SLIPPAGE_TOO_HIGH
        - NO_ROUTE
        - DISABLED_CHAIN
        - INVALID_DESTINATION_CHAIN_ID
        - ORDER_NOT_FOUND
        - ORDER_EXPIRED
        - DUPLICATE_ORDER
        - INTERNAL_ERROR
    GatewayErrorCodeV2Variants:
      type: string
      description: New error codes for V2.
      enum:
        - INVALID_CURSOR
        - INSUFFICIENT_SOLVER_BALANCE
        - AFFILIATE_FEES_NOT_SUPPORTED_FOR_ROUTE
        - UNKNOWN
    GatewayErrorCodeV3Variants:
      type: string
      description: New error codes for V3.
      enum:
        - BUNGEE_NO_ROUTE
        - MISSING_OWNER_ADDRESS
        - NON_COMPLIANT_ADDRESSES
        - TOO_MANY_AFFILIATES

````