# Get a sales order or quote

```http
GET https://secure.yoprint.com/v2/api/store/{team_slug}/v2/sales_order/{order_unique_key}
```

- API version: v2
- Operation ID: `v2_public_order_show`
- Section: Sales › [Sales orders](https://developer.yoprint.com/reference/sales-orders.md)
- Web page: https://developer.yoprint.com/reference/sales-orders/v2-order-show/
- Authentication: `Authorization: Bearer YOUR_API_KEY`

Returns one sales order or quote with its line items (`items`), customer and message participants.

`{order_unique_key}` is the sales order or quote `id` (for example `V4keXwwxMQyXw7`) or its `unique_key` (it starts with `ord_`). The order number people see, such as SO1001, is not accepted here. Deleted orders are returned too (`trashed: true`).

The answer is the order: its `id` and `unique_key`, `scoped_id` (the number people see), `name`, `object_type` (`sales_order` or `quote`), `internal_status` (`draft` until published), `status_id` and `status`, the customer and addresses, dates, notes, `is_rush`, pricing settings and totals. The value of the order's lines is `order_item_cart_total`. `invoiced_total`, `invoiced_order_item_subtotal`, `invoiced_shipment_subtotal`, `invoiced_tax_subtotal` and `invoiced_discount_subtotal` count only what has been **invoiced** (0 until the order has an invoice). They are **decimal pairs** (`{ "value": 850000, "dp": 4 }` is 85.00; always read `dp`). `paid_amount`, `calc_deposit_total` and `unallocated_amount` are in **thousandths** (`135000` is 135.00). `deposit_total` is a **percentage ×1000** (`50000` is 50%). `calc_subtotal`, `calc_discount`, `calc_tax` and `calc_total` are deprecated thousandths copies of the invoiced totals: they still return, but use the decimal pair fields instead.

## Permission

Any member of the team.

## Path parameters

- `team_slug` (string, required): Your team slug, shown as Team ID next to your API key in Profile. Example `your-team`.
- `order_unique_key` (string, required): The sales order's or quote's `id` (a hash id), or its `unique_key` (`ord_…`). The order number (`scoped_id`) does not work. Example `V4keXwwxMQyXw7`.

## Request body

This operation takes no request body.

### Example request

```bash
curl 'https://secure.yoprint.com/v2/api/store/your-team/v2/sales_order/V4keXwwxMQyXw7' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: application/json' \
  -H 'X-Yoprint-Decimal-Format: exact-v1'
```

## Response

`200` Successful response.

Fields:

- `data` (object, required): A sales order or quote.
  - `id` (string, required): The order's hash id: use it in every other call.
  - `internal_status` (string, required): `draft` until published. One of: `"draft"`, `"published"`.
  - `object_type` (string, required): One of: `"sales_order"`, `"quote"`.
  - `scoped_id` (string, required): The order number people see, `SO` and at least four digits (quotes too). Not an id.
  - `unique_key` (string, required): The order's unique key (`ord_…`); accepted wherever `{order_unique_key}` is.
  - `approval_status` (string | null, optional): `requested`, `sent-to-customer`, `viewed-by-customer`, `need-changes` or `approved`; null without approvals.
  - `assigned_users` (array of objects, optional): The team members in the order's Assigned To list (always included).
    - Each item:
      - `avatar_url` (string | null, optional)
      - `email` (string, optional)
      - `id` (string, optional)
      - `name` (string, optional)
      - `timezone` (string | null, optional): IANA time zone, for example `America/Chicago`.
  - `auto_invoice_managed` (boolean, optional): true when YoPrint keeps one invoice in step with the order.
  - `auto_invoice_shipment_price_type` (string | null, optional): `DONOTMANAGE`, `NONE`, `MARKUP` or `MARGIN`.
  - `auto_invoice_shipment_rate` (decimal pair, optional): The MARKUP or MARGIN percentage. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 12500000, "dp": 6 }` is 12.50). Kept with 6 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `auto_invoice_type` (string | null, optional): How the automatic invoice is built. Always `single_invoice` today.
  - `billing_address` (object | null, optional): An address, as the address operations return it.
    - `city` (string | null, optional)
    - `country_code` (string | null, optional)
    - `id` (string, optional)
    - `is_primary` (boolean, optional)
    - `label` (string | null, optional)
    - `postcode` (string | null, optional)
    - `role` (string | null, optional): `billing`, `shipping` or a warehouse role.
    - `state_code` (string | null, optional)
  - `billing_address_id` (string | null, optional)
  - `calc_deposit_total` (integer | number | string | null, optional): The deposit amount, rounded to 2 decimal places: the percentage of `order_item_cart_total`, or of the invoiced total once every line is invoiced (or the invoiced total reaches the order's); 0 unless `deposit_required`. Thousandths, an older encoding: `12500` is 12.50. Usually a whole number; an amount finer than a thousandth comes back as a number with a fraction (`1234.5` is 1.2345), or as a string (`"1234.5"`) when you send `X-Yoprint-Decimal-Format: exact-v1`. See [Money and quantities](/concepts/money-and-quantities/).
  - `client_note` (string | null, optional): The Client Note.
  - `created_at` (string (date-time) | null, optional): Created. ISO 8601 with offset, or null.
  - `created_by` (string | null, optional): Created By (a team member id).
  - `creator_name` (string | null, optional)
  - `cust_due_date` (string (date-time) | null, optional): Customer in-hands date. ISO 8601 with offset, or null.
  - `customer` (object | null, optional): Always present on order answers, lists included: the customer record, or null when the order has none. Get a sales order also nests the customer's contacts, addresses, brand profiles, tags, files and assigned users in it.
    - `default_payment_term_id` (string | null, optional)
    - `default_pricing_group_id` (string | null, optional)
    - `id` (string, optional)
    - `is_external` (boolean, optional): true for a customer synced from an integration.
    - `name` (string, optional)
    - `tax_exempt` (boolean, optional)
  - `customer_billing_contact_id` (string | null, optional): The id of the contact on the order (the same contact as `customer_contact_id`), or null.
  - `customer_contact_id` (string | null, optional)
  - `customer_has_email` (boolean, optional)
  - `customer_id` (string | null, optional)
  - `customer_po_number` (string | null, optional)
  - `customer_profile_id` (string | null, optional): Brand profile.
  - `deposit_amount_due` (decimal pair, optional): Deposit still to pay (negative once overpaid). A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `deposit_due` (string (date-time) | null, optional): Deposit due date. ISO 8601 with offset, or null.
  - `deposit_required` (boolean, optional)
  - `deposit_total` (integer | number | string | null, optional): The deposit as a **percentage** of the order. A percentage ×1000: `8250` is 8.25%. With `X-Yoprint-Decimal-Format: exact-v1`, a value that isn't a whole number comes back as a string.
  - `due_date` (string (date-time) | null, optional): Production due. ISO 8601 with offset, or null.
  - `external_ids` (array of objects, optional): The order's links to records in other systems. An empty list when there are none.
  - `external_type` (string | null, optional): `shopify` for a Shopify order; null for YoPrint orders.
  - `from_legacy` (boolean, optional): true for an order that was moved over from the old format.
  - `full_amount_due` (string (date-time) | null, optional): Full payment due date. ISO 8601 with offset, or null.
  - `grouped_pdf` (array of objects, optional): PDF links, grouped: `Main` (only for roles with `view_order_finance`), `Job` (not on Shopify orders), `Shipment` and the team's templates.
    - Each item:
      - `documents` (array of objects, optional)
      - `label` (string, optional)
  - `has_external_integration_sync_error` (boolean, optional): true when the last sync with an integration failed.
  - `has_invoice` (boolean, optional): true when the order has at least one invoice, so a zero invoiced total can be told apart from no invoice.
  - `has_not_invoiced_items` (boolean, optional): true when some line items are not on an invoice yet.
  - `has_over_invoiced_items` (boolean, optional): true when some line items are invoiced for more than the order has.
  - `has_shipment_items_not_allocated` (boolean, optional): true when some line items are not on a shipment yet.
  - `has_shipment_items_over_allocated` (boolean, optional): true when some line items are on shipments for more than the order has.
  - `has_valid_invoice` (boolean, optional): true when at least one of the order's invoices is in a valid state.
  - `has_valid_shipment` (boolean, optional): true when at least one of the order's shipments is in a valid state.
  - `inventory_status` (string | null, optional): Stock status of the order's lines: `not_committed`, `committed`, `partially_committed`, `not_applicable` or `pending`.
  - `invoice_lock_version` (integer | string | null, optional): Changes whenever the order's invoices change.
  - `invoiced_discount_subtotal` (decimal pair, optional): Discounts on the order's invoices; 0 until invoiced. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `invoiced_order_item_subtotal` (decimal pair, optional): The lines and shipping fees the order's invoices bill (the sum of their `cart_item_subtotal`); 0 until invoiced. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `invoiced_shipment_subtotal` (decimal pair, optional): The shipping fees in `invoiced_order_item_subtotal`; 0 until invoiced. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `invoiced_tax_subtotal` (decimal pair, optional): Tax on the order's invoices; 0 until invoiced. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `invoiced_total` (decimal pair, optional): Total of the order's invoices. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `is_client_note_editable` (boolean, optional): false for a Shopify order, whose client note comes from Shopify.
  - `is_external` (boolean, optional): true for an order synced from an integration such as Shopify.
  - `is_legacy` (boolean, optional): true for an order made in the old format.
  - `is_rush` (boolean, optional)
  - `issue_date` (string (date-time) | null, optional): Issue date. ISO 8601 with offset, or null.
  - `items` (array of objects, optional): The order's lines (Get only).
    - Each item:
      - `_meta` (object, optional): The line's own values again (`id`, `type`, `order_id`, `unit_price`, `subtotal` and so on). Always an object.
      - `id` (string, optional)
      - `inventory_status` (string | null, optional): Stock status of the line.
      - `job` (object, optional)
      - `lock_version` (integer | null, optional): The line's own lock version (a microsecond timestamp).
      - `order_id` (string, optional)
      - `order_unique_key` (string, optional): The order's `unique_key`. The line's own `unique_key` is not in the answer: use `id`.
      - `position` (integer, optional)
      - `pricing` (object, optional)
      - `pricing_rule_applied` (object | null, optional): The pricing rule that set the line's product price, or null when no rule did. List the line items, Get one line item and the bulk save answer with the full summary below. Other answers carry only `type`, the two ids and the two totals.
        - `after` (string, optional): Full summary only: the price after the rule, as a decimal string.
        - `after_total` (decimal pair, optional): The product price per unit after the rule. 6 decimal places. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 1250, "dp": 2 }` is 12.50). Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
        - `base` (string, optional): Full summary only: that starting price, as a decimal string with at least 2 decimal places.
        - `base_type` (string, optional): Full summary only: what the rule started from: the supplier price for catalog lines, the product's own price for other lines. One of: `"supplier_price"`, `"base_price"`.
        - `normal_price` (string | null, optional): Full summary only: what the line would cost with no rule. For catalog lines the supplier price plus the group's catalog markup as it is now; otherwise the same as `base`.
        - `original_total` (decimal pair, optional): The product price per unit before the rule. 6 decimal places. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 1250, "dp": 2 }` is 12.50). Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
        - `pricing_group_id` (string | null, optional): The pricing group whose rule applied.
        - `pricing_group_name` (string | null, optional): Full summary only: the group's name now.
        - `pricing_group_removed` (boolean | null, optional): Full summary only: true when the group was removed since. The line keeps its price.
        - `pricing_rule_id` (string | null, optional): The rule that applied.
        - `rule` (object | null, optional): Full summary only: the rule as the group holds it now, with its current name and position (1 is the first rule checked). Null when the rule no longer exists.
          - `id` (string, optional)
          - `label` (string | null, optional)
          - `position` (integer, optional)
        - `type` (string, optional): `product` on a line.
      - `product` (object, optional)
      - `quantity` (object, optional): The quantity, trailing zeros dropped: 10 is `{ "value": 10, "dp": 0 }`.
      - `subtotal` (decimal pair, optional): `unit_price` times the quantity. 4 decimal places: 125.00 is `{ "value": 1250000, "dp": 4 }`. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 1250, "dp": 2 }` is 12.50). Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
      - `trashed` (boolean, optional): true when the line was deleted.
      - `type` (string, optional): The kind of line: db_catalog, user_simple, db_variant, custom or fee.
      - `unit_price` (decimal pair, optional): The price of one unit: the product price plus the decoration price. 6 decimal places: 12.50 is `{ "value": 12500000, "dp": 6 }`. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 1250, "dp": 2 }` is 12.50). Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `job_lock_version` (integer | string | null, optional): Changes whenever the order's jobs change.
  - `last_payment_request_date` (string (date-time) | null, optional): When a payment reminder was last emailed for the order. ISO 8601 with offset, or null.
  - `lock_version` (integer | string | null, optional): Changes on every save.
  - `mode` (string, optional): Older flag: `create` for a draft, `view` once published. One of: `"create"`, `"view"`, `"edit"`.
  - `name` (string | null, optional)
  - `order_balance_due` (decimal pair, optional): Invoiced total minus paid. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `order_item_cart_total` (decimal pair, optional): The value of the order's lines: the order's own total before invoicing. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `order_item_lock_version` (integer | string | null, optional): Changes whenever the order's line items change.
  - `order_margin_percentage` (decimal pair, optional): Margin, in percent. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 1250, "dp": 2 }` is 12.50). Kept with 2 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `order_markup_percentage` (decimal pair, optional): Markup, in percent. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 1250, "dp": 2 }` is 12.50). Kept with 2 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `order_profit` (decimal pair, optional): Profit. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 1250, "dp": 2 }` is 12.50). Kept with 2 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `paid_amount` (integer | number | string | null, optional): Paid so far. Thousandths, an older encoding: `12500` is 12.50. Usually a whole number; an amount finer than a thousandth comes back as a number with a fraction (`1234.5` is 1.2345), or as a string (`"1234.5"`) when you send `X-Yoprint-Decimal-Format: exact-v1`. See [Money and quantities](/concepts/money-and-quantities/).
  - `participants` (array of objects, optional): Who receives the order's messages (Get only).
  - `payment_lock_version` (integer | string | null, optional): Changes whenever the order's payments change.
  - `payment_term_id` (string | null, optional)
  - `pricing_group_id` (string | null, optional)
  - `pricing_strategy` (string | null, optional): `job_separately`, `job_together` or `service_loc_together`.
  - `prod_note` (string | null, optional): The production note.
  - `producible_item_count` (number | integer | string | null, optional): Quantity to produce.
  - `quickbook_disable_sync` (boolean, optional): true when QuickBooks sync is off for this order.
  - `quickbook_disable_sync_at` (string (date-time) | null, optional): When the switch was last changed. ISO 8601 with offset, or null.
  - `quickbook_disable_sync_by` (string | null, optional): The team member who last changed the switch, or null.
  - `quickbook_disable_sync_reason` (string | null, optional): The note given at the last change of the order's QuickBooks sync switch (off or back on), at most 500 characters, or null.
  - `quickbook_last_error_sync` (string (date-time) | null, optional): When a QuickBooks sync of the order last failed. ISO 8601 with offset, or null.
  - `quickbook_last_success_sync` (string (date-time) | null, optional): When QuickBooks last accepted the order. ISO 8601 with offset, or null.
  - `quickbooks_hold` (object | null, optional): Set when YoPrint holds back a QuickBooks payment covering this order: `code` is `changed`, `deleted` or `rejected` (the payment was changed or deleted in QuickBooks, or QuickBooks refused a change), and `detail` is `already_deposited` (the payment is in a QuickBooks bank deposit) or null. Null when nothing is held.
    - `code` (string, optional): One of: `"changed"`, `"deleted"`, `"rejected"`.
    - `detail` (string | null, optional)
  - `quote` (boolean, optional): Older flag: true for a quote.
  - `ship_due_date` (string (date-time) | null, optional): Ship due date. ISO 8601 with offset, or null.
  - `shipment_billable_fee_invoice_status` (string | null, optional): Whether those shipping fees are on an invoice. Null when there is nothing to bill.
  - `shipment_billable_fee_total` (decimal pair, optional): The shipping fees you bill the customer on the order's shipments. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `shipment_cost_total` (decimal pair, optional): Shipping cost incurred. A decimal pair: the amount is `value` ÷ 10^`dp` (`{ "value": 125000, "dp": 4 }` is 12.50). Kept with 4 decimal places; an amount never set can come as `{ "value": 0, "dp": 0 }`. Read `dp` every time: it can differ between fields and records. See https://developer.yoprint.com/concepts/money-and-quantities.md.
  - `shipment_lock_version` (integer | string | null, optional): Changes whenever the order's shipments change.
  - `shipping_address` (object | null, optional): An address, as the address operations return it. Same fields as `data.billing_address` above.
  - `shipping_address_id` (string | null, optional)
  - `shopify_last_error_sync` (string (date-time) | null, optional): When a Shopify sync of the order last failed. Shopify orders only. ISO 8601 with offset, or null.
  - `shopify_last_success_sync` (string (date-time) | null, optional): When Shopify last accepted the order. Shopify orders only. ISO 8601 with offset, or null.
  - `shopify_terminal_topic` (string | null, optional): Shopify orders only: the Shopify event name behind the order's final state there. Null on YoPrint orders. The answer can also hold more `shopify_*` fields (`shopify_admin_url`, `shopify_compliance_deletion`, `shopify_finance_notices`, `shopify_has_fulfillment_conflict`, `shopify_last_fulfillment_conflict_at`): they are null or empty on YoPrint orders.
  - `start_date` (string (date-time) | null, optional): Production start. ISO 8601 with offset, or null.
  - `status` (object | null, optional): The order's status (always included).
    - `color` (string, required): A hex color, such as `#2196f3`.
    - `customer_label` (string, required): What customers see in the customer portal. When none is set: `Pending` for `start`, `In Progress` for `in_progress` and `pre_production`, `Completed` for `end`.
    - `id` (string, required)
    - `label` (string, required): The status name people see.
    - `position` (integer, required): Sort order within its list, lowest first.
    - `role` (string, required): Which list the status belongs to: `order`, `quote`, `job`, `shipment`, `purchase_order`, `pipeline` or `customer_message`.
    - `trashed` (boolean, required): true for a deleted status.
    - `type` (string, required): `start` is the first status of its list and `end` the last; `pre_production` and `in_progress` are the ones in between. One of: `"start"`, `"pre_production"`, `"in_progress"`, `"end"`.
    - `pipeline_id` (string, optional): The task preset, for `pipeline` statuses only; absent for other roles.
  - `status_completion_date` (string (date-time) | null, optional): When the order's status last moved to an end status. ISO 8601 with offset, or null.
  - `status_id` (string, optional): The order's status (from the team's sales order or quote statuses).
  - `status_last_change_date` (string (date-time) | null, optional): Last status change. ISO 8601 with offset, or null.
  - `tags` (array of objects, optional)
    - Each item:
      - `color_hex` (string | null, optional): Tag color, for example `#E53935`.
      - `id` (string, optional)
      - `name` (string, optional)
  - `total_qty_need_ordering` (string, optional): Quantity still to buy, as a decimal string with 8 decimal places (`"24.00000000"`).
  - `trashed` (boolean, optional): true when the order is deleted.
  - `type` (string, optional): Older name for `object_type`. One of: `"order"`, `"quote"`.
  - `unallocated_amount` (integer | number | string | null, optional): Payments not yet allocated to an invoice. Thousandths, an older encoding: `12500` is 12.50. Usually a whole number; an amount finer than a thousandth comes back as a number with a fraction (`1234.5` is 1.2345), or as a string (`"1234.5"`) when you send `X-Yoprint-Decimal-Format: exact-v1`. See [Money and quantities](/concepts/money-and-quantities/).
  - `updated_at` (string (date-time) | null, optional): Last changed. ISO 8601 with offset, or null.
  - `version` (integer | string | null, optional): The order format version.
  - `wallet_currency_iso` (string | null, optional): The order's currency code (`USD` and so on), or null on older orders without one.
  - `warehouse_id` (string | null, optional)
  - `calc_discount` (integer | number | string | null, optional, deprecated): **Deprecated:** use `invoiced_discount_subtotal`, the same amount. Thousandths, an older encoding: `12500` is 12.50. Usually a whole number; an amount finer than a thousandth comes back as a number with a fraction (`1234.5` is 1.2345), or as a string (`"1234.5"`) when you send `X-Yoprint-Decimal-Format: exact-v1`. See [Money and quantities](/concepts/money-and-quantities/).
  - `calc_subtotal` (integer | number | string | null, optional, deprecated): **Deprecated:** use `invoiced_order_item_subtotal`, which already includes billed shipping. This older field adds `invoiced_shipment_subtotal` to it once more. Thousandths, an older encoding: `12500` is 12.50. Usually a whole number; an amount finer than a thousandth comes back as a number with a fraction (`1234.5` is 1.2345), or as a string (`"1234.5"`) when you send `X-Yoprint-Decimal-Format: exact-v1`. See [Money and quantities](/concepts/money-and-quantities/).
  - `calc_tax` (integer | number | string | null, optional, deprecated): **Deprecated:** use `invoiced_tax_subtotal`, the same amount. Thousandths, an older encoding: `12500` is 12.50. Usually a whole number; an amount finer than a thousandth comes back as a number with a fraction (`1234.5` is 1.2345), or as a string (`"1234.5"`) when you send `X-Yoprint-Decimal-Format: exact-v1`. See [Money and quantities](/concepts/money-and-quantities/).
  - `calc_total` (integer | number | string | null, optional, deprecated): **Deprecated:** use `invoiced_total`, the same amount. Thousandths, an older encoding: `12500` is 12.50. Usually a whole number; an amount finer than a thousandth comes back as a number with a fraction (`1234.5` is 1.2345), or as a string (`"1234.5"`) when you send `X-Yoprint-Decimal-Format: exact-v1`. See [Money and quantities](/concepts/money-and-quantities/).
- `status` (integer, required)
- `success` (boolean, required)

Example response:

```json
{
  "data": {
    "assigned_users": [],
    "calc_deposit_total": 67500,
    "customer": {
      "id": "63KcENAAsKuipY",
      "is_external": false,
      "name": "Northwind Apparel",
      "tax_exempt": false
    },
    "customer_id": "63KcENAAsKuipY",
    "customer_po_number": "PO-1188",
    "deposit_amount_due": {
      "dp": 4,
      "value": 175000
    },
    "deposit_required": true,
    "deposit_total": 50000,
    "due_date": "2026-11-14T00:00:00+00:00",
    "id": "V4keXwwxMQyXw7",
    "internal_status": "published",
    "invoiced_discount_subtotal": {
      "dp": 4,
      "value": 0
    },
    "invoiced_order_item_subtotal": {
      "dp": 4,
      "value": 1250000
    },
    "invoiced_shipment_subtotal": {
      "dp": 4,
      "value": 0
    },
    "invoiced_tax_subtotal": {
      "dp": 4,
      "value": 100000
    },
    "invoiced_total": {
      "dp": 4,
      "value": 1350000
    },
    "is_rush": false,
    "issue_date": "2026-11-03T00:00:00+00:00",
    "items": [
      {
        "id": "Owr88lhAk28aqL",
        "job": {
          "id": "K6iF8n29iwOZnj",
          "scoped_id": "JOB-1001",
          "type": "linked",
          "unique_key": "job_EXAMPLEuniqueKey"
        },
        "lock_version": 1793696400234567,
        "order_id": "V4keXwwxMQyXw7",
        "order_unique_key": "ord_EXAMPLEuniqueKey",
        "position": 200000,
        "pricing": {
          "product": {
            "override": true,
            "total": {
              "dp": 6,
              "value": 12500000
            }
          },
          "type": "product_cost_service"
        },
        "product": {
          "properties": {
            "customer_supplied": false,
            "id": "nqSB3HG1O2u5Jg"
          },
          "type": "user_simple"
        },
        "quantity": {
          "total": {
            "dp": 0,
            "value": 10
          },
          "type": "unit"
        },
        "subtotal": {
          "dp": 4,
          "value": 1250000
        },
        "trashed": false,
        "type": "user_simple",
        "unit_price": {
          "dp": 6,
          "value": 12500000
        }
      }
    ],
    "mode": "view",
    "name": "Spring team shirts",
    "object_type": "sales_order",
    "order_balance_due": {
      "dp": 4,
      "value": 850000
    },
    "order_item_cart_total": {
      "dp": 4,
      "value": 1250000
    },
    "paid_amount": 50000,
    "quote": false,
    "scoped_id": "SO1001",
    "status": {
      "color": "#2196f3",
      "customer_label": "In Progress",
      "id": "52CuV8sWcDZLPm",
      "label": "In production",
      "position": 2,
      "role": "order",
      "trashed": false,
      "type": "in_progress"
    },
    "status_id": "52CuV8sWcDZLPm",
    "total_qty_need_ordering": "0.00000000",
    "trashed": false,
    "type": "order",
    "unique_key": "ord_EXAMPLEuniqueKey"
  },
  "status": 200,
  "success": true
}
```

## Errors

- `401` The API key is missing or wrong (`unauthenticated`).
- `403` You are not allowed to do this. `api_access_not_in_plan`: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only `{"message": "Insufficient Permission"}`. Other refusals use the error envelope, with `unauthorized` or `user_is_not_authorized`.
- `404` Not found. `page_not_found`: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's. `code: null`, with a message that starts "No query results for": there is no record with that id.

## Notes

- To find an order by its number, use search; to list a customer's orders, use the sales order or quote filter with `customer_id`.
- Line items here use the same shape as List the line items.

## Related

- [List sales orders](https://developer.yoprint.com/reference/sales-orders/v2-sales-order-filter.md): `POST /v2/api/store/{team_slug}/v2/sales_order/filter`
- [List quotes](https://developer.yoprint.com/reference/quotes/v2-quote-filter.md): `POST /v2/api/store/{team_slug}/v2/quote/filter`
- [List the line items of a sales order or quote](https://developer.yoprint.com/reference/sales-order-line-items/v2-order-item-index.md): `GET /v2/api/store/{team_slug}/v2/sales_order/{order_unique_key}/order_item`
- [List the history of a sales order or quote](https://developer.yoprint.com/reference/sales-orders/v2-order-history.md): `GET /v2/api/store/{team_slug}/v2/sales_order/{order_unique_key}/history`
