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

# Submit a signed order

> Submit a signed equity order to the market-maker network for settlement.

Relays the payload from `/order` plus the owner's signature, and returns the
order hash. Poll `GET /order/{order_hash}` to track its lifecycle (`pending` →
`filled` / `expired` / `cancelled`).



## OpenAPI

````yaml /v2/combined_spec.json post /v2/tokenized_assets/order/submit
openapi: 3.1.0
info:
  title: Compass API
  description: Compass Labs DeFi API
  version: 0.0.1
servers:
  - url: https://api.compasslabs.ai
    description: Production server
security:
  - ApiKeyAuth: []
paths:
  /v2/tokenized_assets/order/submit:
    post:
      tags:
        - Tokenized Assets
      summary: Submit a signed order
      description: >-
        Submit a signed equity order to the market-maker network for settlement.


        Relays the payload from `/order` plus the owner's signature, and returns
        the

        order hash. Poll `GET /order/{order_hash}` to track its lifecycle
        (`pending` →

        `filled` / `expired` / `cancelled`).
      operationId: v2_tokenized_assets_order_submit
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenizedAssetsSubmitOrderRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenizedAssetsSubmitOrderResponse'
        '409':
          description: >-
            `Insufficient liquidity` — order accepted for settlement but no
            market maker can fill it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenizedAssetsErrorResponse'
        '410':
          description: '`Quote expired` — re-quote, re-sign, retry.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenizedAssetsErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            `Swap service unavailable` — the swap service is temporarily
            unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenizedAssetsErrorResponse'
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            from compass_api_sdk import CompassAPI


            with CompassAPI(
                api_key_auth="<YOUR_API_KEY_HERE>",
            ) as compass_api:

                res = compass_api.tokenized_assets.tokenized_assets_order_submit(signed_order={
                    "key": "<value>",
                }, signature="<value>", extension="m2a", quote_id="<id>")

                # Handle response
                print(res)
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { CompassApiSDK } from "@compass-labs/api-sdk";

            const compassApiSDK = new CompassApiSDK({
              apiKeyAuth: "<YOUR_API_KEY_HERE>",
            });

            async function run() {
              const result = await compassApiSDK.tokenizedAssets.tokenizedAssetsOrderSubmit({
                signedOrder: {
                  "key": "<value>",
                },
                signature: "<value>",
                extension: "m2a",
                quoteId: "<id>",
              });

              console.log(result);
            }

            run();
components:
  schemas:
    TokenizedAssetsSubmitOrderRequest:
      properties:
        signed_order:
          additionalProperties: true
          type: object
          title: Signed Order
          description: >-
            The order struct returned by `/order` (`order.order_message`).
            `maker` is the Tokenized Assets Account, not the owner's wallet —
            pass this dict back to the API verbatim.
        signature:
          type: string
          title: Signature
          description: >-
            Owner's EIP-712 signature over `order.safe_message_eip712` from the
            `/order` response. The signature is validated against the Tokenized
            Equities Account at fill time, so it must be a signature over the
            typed-data hash, not the raw order hash.
        extension:
          type: string
          title: Extension
          description: Opaque hex blob from the `/order` response — pass back unchanged.
        quote_id:
          type: string
          title: Quote Id
          description: '`order.quote_id` from the `/order` response — pass back unchanged.'
        order_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Order Hash
          description: >-
            `order.order_hash` from the `/order` response. Optional but
            recommended: the upstream relayer occasionally returns a 2xx with an
            empty body, and supplying the hash lets the API still return a
            usable handle for status and cancel lookups instead of failing.
      type: object
      required:
        - signed_order
        - signature
        - extension
        - quote_id
      title: TokenizedAssetsSubmitOrderRequest
      description: |-
        Submit an owner-signed order for settlement.

        The shape echoes what `POST /order` returned plus the owner's
        EIP-712 signature. The maker is the Tokenized Assets Account, so the
        signature is validated against the product account at fill time.
      example:
        extension: '0x00'
        order_hash: '0xabababababababababababababababababababababababababababababababab'
        quote_id: 9afa6d80-9216-4bcd-b762-87151f9dae51
        signature: >-
          0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
        signed_order:
          maker: '0x2ed5C9c14E1F8baA94CD3e9b5b6e3F8e3D27504F'
          makerAsset: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
          makerTraits: '0'
          makingAmount: '100000000'
          receiver: '0x399740157391a9f1bf4e9921a8834f9bc8f2678e'
          salt: '1234'
          takerAsset: '0xf6b1117ec07684D3958caD8BEb1b302bfD21103f'
          takingAmount: '260000000000000000'
    TokenizedAssetsSubmitOrderResponse:
      properties:
        order_hash:
          type: string
          title: Order Hash
          description: On-chain order hash for status / cancel lookups.
        submitted_at:
          type: string
          title: Submitted At
          description: Server-side ISO 8601 UTC timestamp at which the order was relayed.
      type: object
      required:
        - order_hash
        - submitted_at
      title: TokenizedAssetsSubmitOrderResponse
      description: Returned after the signed order is submitted for settlement.
      example:
        order_hash: '0x14459af3a06abf6f7a0d3c2c1fa3b64d2e1b8a7c5e3d2b1f0a9876543210596b'
        submitted_at: '2026-05-04T11:42:31Z'
    TokenizedAssetsErrorResponse:
      properties:
        error:
          type: string
          title: Error
          description: >-
            Short human-readable error label (e.g. `Market not found.`,
            `Insufficient liquidity`, `Order not found.`).
        message:
          type: string
          title: Message
          description: Human-readable explanation.
      type: object
      required:
        - error
        - message
      title: TokenizedAssetsErrorResponse
      description: >-
        Standard error envelope returned by every non-2xx response.


        Surfaced in OpenAPI ``responses`` declarations so SDK consumers can
        decode

        failures uniformly without inspecting per-status-code shapes.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your Compass API Key. Get your key
        [here](https://www.compasslabs.ai/dashboard).

````