---
title: "Create an order"
method: POST
path: "/api/mint/v1/enterprise/{enterpriseId}/orders"
tags: ["Mint"]
---

# Create an order

`POST /api/mint/v1/enterprise/{enterpriseId}/orders`

Submits a new mint or burn order for the enterprise

## Path parameters

- `enterpriseId` string, required

## Request body

- object — Request body for creating a new exchange order.
  - `idempotencyKey` string — Idempotency key to prevent duplicate order creation. Scoped per enterprise — the same key can be reused across different enterprises. Leading/trailing whitespace is stripped on decode; an all-whitespace value is rejected.
  - `memo` string — Optional free-text annotation for internal reference (max 500 characters). Stored on the order and returned in all read responses.
  - `source` PostExchangeOrderSource, required — Source details for an exchange order.
    - `asset` string, required — Source asset
    - `amount` string, required — Source amount in base units. Must be a positive integer string.
    - `walletId` string, required — Source wallet ID (GoAccount ID or wallet ID)
    - `type` 'GO_ACCOUNT', required — Source type — only GO_ACCOUNT is supported.
  - `destination` PostExchangeOrderDestination, required — Destination details for an exchange order. Exactly one of `address` or `walletId` must be provided, consistent with `type`.
    - `asset` string, required — Destination asset
    - `type` union, required — Destination type — where funds are going. Use BLOCKCHAIN_ADDRESS for any raw on-chain address. Use GO_ACCOUNT or WALLET with walletId for wallet-based destinations.
      - 'GO_ACCOUNT' — Transfer via BitGo internal GoAccount
      - 'BLOCKCHAIN_ADDRESS' — Transfer via a raw blockchain address — use this for any on-chain address regardless of whether it belongs to a BitGo wallet or an external party.
      - 'WALLET' — Transfer destined to a BitGo custodial wallet (internal use)
    - `address` string — Destination address (blockchain address). Required when type is BLOCKCHAIN_ADDRESS.
    - `walletId` string — Destination wallet ID. Required when type is GO_ACCOUNT or WALLET.

## Response `201`

Created

- PostExchangeOrderResponse
  - `id` string, required — Unique identifier for the exchange order @example "95bdbd9c-9cdc-41a4-ae70-165387b7aa51"
  - `userId` string, required — User identifier @example "6437d9f07d6a87000613e6c06e4218d3"
  - `type` 'MINT' | 'BURN', required — Order direction — MINT or BURN (derived from the execution plan)
  - `status` 'CREATED' | 'CONFIRMED_DEPOSIT' | 'PROCESSING' | 'FULFILLED' | 'FAILED', required — Current status of the exchange order @example "CREATED"
  - `enterpriseId` string, required — Enterprise identifier @example "67bc4ae090e8af8f9b412d3d67e85252"
  - `source` ExchangeOrderSourceResponse, required — Source side of an exchange order response. Shared by POST, list, and GET.
    - `asset` string, required — Source asset @example "sol:usd1"
    - `amount` string, required — Source amount in base units @example "1000500000"
    - `type` 'GO_ACCOUNT' | 'BLOCKCHAIN_ADDRESS' | 'WALLET', required — Source type @example "GO_ACCOUNT"
    - `walletId` string — Source wallet ID (e.g., GoAccount ID or wallet ID) @example "67bc4b038f5408faefbfc8edcf6e6577"
  - `destination` ExchangeOrderDestinationResponse, required — Destination side of an exchange order response. Shared by POST, list, and GET. address and walletId are mutually exclusive for BLOCKCHAIN_ADDRESS destinations (address only) and fiat GO_ACCOUNT destinations (walletId only). For non-fiat GO_ACCOUNT and WALLET destinations both fields are present: walletId identifies the wallet and address is the resolved receive address. Omit both fields only when no destination identifier is available.
    - `asset` string, required — Destination asset @example "fiatusd"
    - `type` 'GO_ACCOUNT' | 'BLOCKCHAIN_ADDRESS' | 'WALLET' | 'BANK_ACCOUNT', required — Destination type @example "BLOCKCHAIN_ADDRESS"
    - `amount` string — Destination amount in base units (after fees) @example "99900000"
    - `address` string — On-chain destination address. Present when type is BLOCKCHAIN_ADDRESS, or when a receive address has been resolved for a GO_ACCOUNT or WALLET destination.
    - `walletId` string — Destination wallet ID. Present when type is GO_ACCOUNT or WALLET.
    - `transferId` string — Settlement transfer ID — populated once settlement completes.
    - `transactionHash` string — Settlement transaction hash — populated once settlement completes.
  - `fee` ExchangeOrderFee, required — Fields shared across all three exchange order response types: POST /enterprise/:enterpriseId/orders, GET /enterprise/:enterpriseId/orders, GET /enterprise/:enterpriseId/orders/:id (and their admin equivalents).
    - `basisPoints` string, required — Fee rate in basis points (1 bps = 0.01%)
  - `createdAt` string, date-time, required — ISO8601 creation timestamp @example "2025-04-04T09:25:48.216Z"
  - `updatedAt` string, date-time, required — ISO8601 last-updated timestamp @example "2025-04-04T09:25:48.216Z"
  - `idempotencyKey` string — Idempotency key — present only when the order was created with one
  - `depositInstructions` union
    - object — Deposit instructions describing where the source funds should be sent. Returned after order creation when a treasury/deposit address is resolved. Exported so the list endpoint can reuse the same shape.
      - `type` 'GO_ACCOUNT' | 'BLOCKCHAIN_ADDRESS' | 'WALLET', required — Indicates how to interpret the deposit identifier (GO_ACCOUNT, BLOCKCHAIN_ADDRESS, WALLET)
      - `asset` string, required — The asset to deposit @example "tpolygon:usdc"
      - `sequenceId` string, required — Sequence ID to use when initiating the source funds transfer
      - `address` string, required — On-chain address where source funds should be deposited. Present when type is BLOCKCHAIN_ADDRESS.
    - object — Deposit instructions describing where the source funds should be sent. Returned after order creation when a treasury/deposit address is resolved. Exported so the list endpoint can reuse the same shape.
      - `type` 'GO_ACCOUNT' | 'BLOCKCHAIN_ADDRESS' | 'WALLET', required — Indicates how to interpret the deposit identifier (GO_ACCOUNT, BLOCKCHAIN_ADDRESS, WALLET)
      - `asset` string, required — The asset to deposit @example "tpolygon:usdc"
      - `sequenceId` string, required — Sequence ID to use when initiating the source funds transfer
      - `walletId` string, required — BitGo wallet ID (GoAccount or wallet) where source funds should be deposited. Present when type is GO_ACCOUNT or WALLET.
  - `orderMethod` 'ISSUER_DIRECT' — Present only for issuer-direct orders. Absent means standard deposit flow.
  - `memo` string — Free-text annotation provided at order creation @example "Q2 rebalance batch 3"

---

[API](https://skmtc.net/bitgo/apis/bitgo-api.md) · [All operations](https://skmtc.net/bitgo/apis/bitgo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bitgo/bitgo-api/revisions/e445c15e5bee/schema)
