---
title: Sale - GraphQL Admin
description: >-
  An individual sale record associated with a sales agreement. Every money value

  in an order's sales data is represented in the currency's smallest unit. When

  amounts are divided across multiple line items, such as taxes or order

  discounts, the amounts might not divide evenly across all of the line items on

  the order. To address this, the remaining currency units that couldn't be

  divided evenly are allocated one at a time, starting with the first line item,

  until they are all accounted for. In aggregate, the values sum up correctly.
  In

  isolation, one line item might have a different tax or discount amount than

  another line item of the same price, before taxes and discounts. This is
  because

  the amount could not be divided evenly across the items. The allocation of

  currency units across line items is immutable. After they are allocated,

  currency units are never reallocated or redistributed among the line items.
api_version: 2026-10
source_url:
  html: 'https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Sale'
  md: 'https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Sale.md'
api_name: admin
api_type: graphql
type: interface
---

# Sale

interface

Requires `read_orders` access scope.

An individual sale record associated with a sales agreement. Every money value in an order's sales data is represented in the currency's smallest unit. When amounts are divided across multiple line items, such as taxes or order discounts, the amounts might not divide evenly across all of the line items on the order. To address this, the remaining currency units that couldn't be divided evenly are allocated one at a time, starting with the first line item, until they are all accounted for. In aggregate, the values sum up correctly. In isolation, one line item might have a different tax or discount amount than another line item of the same price, before taxes and discounts. This is because the amount could not be divided evenly across the items. The allocation of currency units across line items is immutable. After they are allocated, currency units are never reallocated or redistributed among the line items.

## Fields

* action​Type

  [Sale​Action​Type!](https://shopify.dev/docs/api/admin-graphql/latest/enums/SaleActionType)

  non-null

  The type of order action that the sale represents.

* id

  [ID!](https://shopify.dev/docs/api/admin-graphql/latest/scalars/ID)

  non-null

  The unique ID for the sale.

* line​Type

  [Sale​Line​Type!](https://shopify.dev/docs/api/admin-graphql/latest/enums/SaleLineType)

  non-null

  The line type assocated with the sale.

* quantity

  [Int](https://shopify.dev/docs/api/admin-graphql/latest/scalars/Int)

  The number of units either ordered or intended to be returned.

* taxes

  [\[Sale​Tax!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/SaleTax)

  non-null

  All individual taxes associated with the sale.

* total​Amount

  [Money​Bag!](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyBag)

  non-null

  The total sale amount after taxes and discounts.

* total​Discount​Amount​After​Taxes

  [Money​Bag!](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyBag)

  non-null

  The total discounts allocated to the sale after taxes.

* total​Discount​Amount​Before​Taxes

  [Money​Bag!](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyBag)

  non-null

  The total discounts allocated to the sale before taxes.

* total​Tax​Amount

  [Money​Bag!](https://shopify.dev/docs/api/admin-graphql/latest/objects/MoneyBag)

  non-null

  The total amount of taxes for the sale.

***

##### Variables

```json
{
	"actionType": "",
	"id": "",
	"lineType": "",
	"quantity": "",
	"taxes": "",
	"totalAmount": "",
	"totalDiscountAmountAfterTaxes": "",
	"totalDiscountAmountBeforeTaxes": "",
	"totalTaxAmount": ""
}
```

##### Schema

```graphql
interface Sale {
  actionType: SaleActionType!
  id: ID!
  lineType: SaleLineType!
  quantity: Int
  taxes: [SaleTax!]!
  totalAmount: MoneyBag!
  totalDiscountAmountAfterTaxes: MoneyBag!
  totalDiscountAmountBeforeTaxes: MoneyBag!
  totalTaxAmount: MoneyBag!
}
```
