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

# Submit transaction

> Hand back the signed transaction for Bridg to broadcast, or the hash of one your wallet already sent. Exactly one of `signedTransaction` and `txHash`. The transaction is decoded and compared to the steps that were built; anything else is refused and nothing is broadcast. Idempotent: a repeat answers with the hash on record and `accepted: false`.



## OpenAPI

````yaml openapi/openapi.json POST /bridge/transfers/{id}/submit
openapi: 3.1.0
info:
  title: Bridg API
  version: 1.0.0
  description: >-
    Quote, build, submit and track cross-chain transfers across every venue
    Bridg aggregates.
servers:
  - url: https://api.bridg.now/v1
security: []
paths:
  /bridge/transfers/{id}/submit:
    post:
      tags:
        - bridge
      summary: Submit transaction
      description: >-
        Hand back the signed transaction for Bridg to broadcast, or the hash of
        one your wallet already sent. Exactly one of `signedTransaction` and
        `txHash`. The transaction is decoded and compared to the steps that were
        built; anything else is refused and nothing is broadcast. Idempotent: a
        repeat answers with the hash on record and `accepted: false`.
      parameters:
        - schema:
            type: string
            pattern: >-
              ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
          required: true
          name: id
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                signedTransaction:
                  type: string
                  minLength: 1
                  maxLength: 100000
                txHash:
                  type: string
                  minLength: 1
                  maxLength: 128
                step:
                  type: string
                  enum:
                    - approve
                    - fee
                    - main
                    - redeem
                userIp:
                  anyOf:
                    - type: string
                      format: ip
                    - type: string
                      format: ip
      responses:
        '200':
          description: The transfer’s new state and the hash on record
          content:
            application/json:
              schema:
                type: object
                properties:
                  transferId:
                    type: string
                  status:
                    type: string
                  txHash:
                    type: string
                    nullable: true
                  step:
                    type: string
                    enum:
                      - approve
                      - fee
                      - main
                      - redeem
                  accepted:
                    type: boolean
                  verification:
                    type: string
                    nullable: true
                    enum:
                      - verified
                      - pending
                      - unverified_no_rpc
                      - unverified_rpc_error
                      - refuted
                      - null
                required:
                  - transferId
                  - status
                  - txHash
                  - step
                  - accepted
                  - verification
        '400':
          description: >-
            Malformed request, an unknown asset, or a signed transaction that is
            not what we built
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                      retryAfterMs:
                        type: integer
                    required:
                      - code
                      - message
                required:
                  - error
        '404':
          description: No such decision or transfer, or the aggregator is switched off
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                      retryAfterMs:
                        type: integer
                    required:
                      - code
                      - message
                required:
                  - error
        '409':
          description: >-
            The decision is indicative, the quote expired or drifted, the venue
            is ineligible, or execution is switched off
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                      retryAfterMs:
                        type: integer
                    required:
                      - code
                      - message
                required:
                  - error
        '429':
          description: Rate limited; retry after `retryAfterMs`
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                      retryAfterMs:
                        type: integer
                    required:
                      - code
                      - message
                required:
                  - error
        '502':
          description: The venue refused to build, or the broadcast was rejected
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                      retryAfterMs:
                        type: integer
                    required:
                      - code
                      - message
                required:
                  - error

````