Square · JSON Structure
Order Structure
Contains all information related to a single order to process with Square, including line items that specify the products to purchase. Order objects also include information about any associated tenders, refunds, and returns.
Type: object
Properties: 29
Required: 1
RestaurantBookingsCatalogCheckoutCustomersDisputesEcommerceFinancial TechnologyGift CardsInventoryInvoicingLaborLocationsLoyaltyMerchantsOrdersPaymentsPoint of SaleRefundsRetailSubscriptionsTeamTerminalWebhooks
Square Order is a JSON Structure definition published by Square, describing 29 properties, of which 1 is required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
id
location_id
reference_id
source
customer_id
line_items
taxes
discounts
service_charges
fulfillments
returns
return_amounts
net_amounts
rounding_adjustment
tenders
refunds
metadata
created_at
updated_at
closed_at
state
version
total_money
total_tax_money
total_discount_money
total_tip_money
total_service_charge_money
ticket_name
pricing_options
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://raw.githubusercontent.com/api-evangelist/square/refs/heads/main/json-structure/order-structure.json",
"name": "Square Order",
"description": "Contains all information related to a single order to process with Square, including line items that specify the products to purchase. Order objects also include information about any associated tenders, refunds, and returns.",
"type": "object",
"properties": {
"id": {
"description": "The order's unique ID.",
"readOnly": true,
"type": "string"
},
"location_id": {
"description": "The ID of the seller location that this order is associated with.",
"minLength": 1,
"type": "string"
},
"reference_id": {
"description": "A client-specified ID to associate an entity in another system with this order.",
"maxLength": 40,
"type": "string"
},
"source": {
"description": "The origination details of the order.",
"properties": {
"name": {
"description": "The name used to identify the place (application, device, etc.) that created the order.",
"type": "string"
}
},
"type": "object"
},
"customer_id": {
"description": "The ID of the customer associated with the order.",
"maxLength": 191,
"type": "string"
},
"line_items": {
"items": {
"properties": {
"uid": {
"description": "A unique ID that identifies the line item only within this order.",
"type": "string"
},
"name": {
"description": "The name of the line item.",
"type": "string"
},
"quantity": {
"description": "The quantity purchased, as a string representation of a number.",
"type": "string"
},
"catalog_object_id": {
"description": "The catalog object ID for the item or item variation.",
"type": "string"
},
"catalog_version": {
"description": "The version of the catalog object that this line item references.",
"type": "int64"
},
"variation_name": {
"description": "The name of the variation applied to this line item.",
"type": "string"
},
"note": {
"description": "The note of the line item.",
"type": "string"
},
"base_price_money": {
"$ref": "money.json",
"description": "The base price for a single unit of the line item."
},
"gross_sales_money": {
"$ref": "money.json",
"description": "The gross sales amount of money calculated as (item base price) * quantity.",
"readOnly": true
},
"total_tax_money": {
"$ref": "money.json",
"description": "The total tax amount of money to collect for the line item.",
"readOnly": true
},
"total_discount_money": {
"$ref": "money.json",
"description": "The total discount amount of money to collect for the line item.",
"readOnly": true
},
"total_money": {
"$ref": "money.json",
"description": "The total amount of money to collect for this line item.",
"readOnly": true
},
"applied_taxes": {
"items": {
"properties": {
"tax_uid": {
"description": "The uid of the tax for which this applied tax represents.",
"type": "string"
},
"applied_money": {
"$ref": "money.json",
"description": "The amount of money applied by the tax to the line item."
}
},
"type": "object"
},
"description": "The list of taxes applied to this line item.",
"type": "array"
},
"applied_discounts": {
"items": {
"properties": {
"discount_uid": {
"description": "The uid of the discount for which this applied discount represents.",
"type": "string"
},
"applied_money": {
"$ref": "money.json",
"description": "The amount of money applied by the discount to the line item."
}
},
"type": "object"
},
"description": "The list of discounts applied to this line item.",
"type": "array"
},
"item_type": {
"description": "The type of line item: an itemized sale, a non-itemized sale, or a custom amount.",
"enum": [
"ITEM",
"CUSTOM_AMOUNT",
"GIFT_CARD"
],
"type": "string"
},
"metadata": {
"additionalProperties": {
"type": "string"
},
"description": "Application-defined data attached to this line item.",
"type": "object"
}
},
"required": [
"quantity"
],
"type": "object"
},
"description": "The line items included in the order.",
"type": "array"
},
"taxes": {
"items": {
"properties": {
"uid": {
"description": "A unique ID that identifies the tax only within this order.",
"type": "string"
},
"catalog_object_id": {
"description": "The catalog object ID referencing a CatalogTax.",
"type": "string"
},
"name": {
"description": "The tax's name.",
"type": "string"
},
"type": {
"description": "Indicates the calculation method used to apply the tax.",
"enum": [
"INCLUSIVE",
"ADDITIVE",
"UNKNOWN_TAX"
],
"type": "string"
},
"percentage": {
"description": "The percentage of the tax, as a string representation of a decimal number.",
"type": "string"
},
"scope": {
"description": "Indicates whether the tax is scoped to the entire order or a single line item.",
"enum": [
"OTHER_TAX_SCOPE",
"ORDER",
"LINE_ITEM"
],
"type": "string"
},
"applied_money": {
"$ref": "money.json",
"description": "The amount of money applied by the tax in the order.",
"readOnly": true
}
},
"type": "object"
},
"description": "The list of all taxes associated with the order.",
"type": "array"
},
"discounts": {
"items": {
"properties": {
"uid": {
"description": "A unique ID that identifies the discount only within this order.",
"type": "string"
},
"catalog_object_id": {
"description": "The catalog object ID referencing a CatalogDiscount.",
"type": "string"
},
"name": {
"description": "The discount's name.",
"type": "string"
},
"type": {
"description": "The type of discount.",
"enum": [
"FIXED_PERCENTAGE",
"FIXED_AMOUNT",
"VARIABLE_PERCENTAGE",
"VARIABLE_AMOUNT"
],
"type": "string"
},
"percentage": {
"description": "The percentage of the discount, as a string representation of a decimal number.",
"type": "string"
},
"amount_money": {
"$ref": "money.json",
"description": "The fixed amount of the discount."
},
"applied_money": {
"$ref": "money.json",
"description": "The amount of money applied by the discount in the order.",
"readOnly": true
},
"scope": {
"description": "Indicates whether the discount is scoped to the entire order or a single line item.",
"enum": [
"OTHER_DISCOUNT_SCOPE",
"ORDER",
"LINE_ITEM"
],
"type": "string"
}
},
"type": "object"
},
"description": "The list of all discounts associated with the order.",
"type": "array"
},
"service_charges": {
"items": {
"properties": {
"uid": {
"description": "A unique ID that identifies the service charge only within this order.",
"type": "string"
},
"name": {
"description": "The name of the service charge.",
"type": "string"
},
"catalog_object_id": {
"description": "The catalog object ID referencing the service charge.",
"type": "string"
},
"percentage": {
"description": "The service charge percentage as a string representation of a decimal number.",
"type": "string"
},
"amount_money": {
"$ref": "money.json",
"description": "The amount of a non-percentage-based service charge."
},
"total_money": {
"$ref": "money.json",
"description": "The total amount of money to collect for the service charge.",
"readOnly": true
}
},
"type": "object"
},
"description": "A list of service charges applied to the order.",
"type": "array"
},
"fulfillments": {
"items": {
"properties": {
"uid": {
"description": "A unique ID that identifies the fulfillment only within this order.",
"type": "string"
},
"type": {
"description": "The type of fulfillment.",
"enum": [
"PICKUP",
"SHIPMENT",
"DELIVERY",
"DIGITAL"
],
"type": "string"
},
"state": {
"description": "The current state of the fulfillment.",
"enum": [
"PROPOSED",
"RESERVED",
"PREPARED",
"COMPLETED",
"CANCELED",
"FAILED"
],
"type": "string"
}
},
"type": "object"
},
"description": "Details about order fulfillment.",
"type": "array"
},
"returns": {
"items": {
"description": "A collection of items from sale orders being returned.",
"type": "object"
},
"description": "A collection of items from sale orders being returned in this one.",
"readOnly": true,
"type": "array"
},
"return_amounts": {
"description": "The rollup of the returned money amounts.",
"readOnly": true,
"type": "object"
},
"net_amounts": {
"description": "The net money amounts (sale money - return money).",
"readOnly": true,
"type": "object"
},
"rounding_adjustment": {
"description": "A positive rounding adjustment to the total of the order.",
"readOnly": true,
"type": "object"
},
"tenders": {
"items": {
"description": "A tender represents a payment method used in a transaction.",
"type": "object"
},
"description": "The tenders that were used to pay for the order.",
"readOnly": true,
"type": "array"
},
"refunds": {
"items": {
"description": "A refund associated with the order.",
"type": "object"
},
"description": "The refunds that are part of this order.",
"readOnly": true,
"type": "array"
},
"metadata": {
"additionalProperties": {
"type": "string"
},
"description": "Application-defined data attached to this order. Metadata fields are intended to store descriptive references or associations with an entity in another system.",
"type": "object"
},
"created_at": {
"description": "The timestamp for when the order was created, in RFC 3339 format.",
"readOnly": true,
"type": "datetime"
},
"updated_at": {
"description": "The timestamp for when the order was last updated, in RFC 3339 format.",
"readOnly": true,
"type": "datetime"
},
"closed_at": {
"description": "The timestamp for when the order reached a terminal state, in RFC 3339 format.",
"readOnly": true,
"type": "datetime"
},
"state": {
"description": "The current state of the order.",
"enum": [
"OPEN",
"COMPLETED",
"CANCELED",
"DRAFT"
],
"readOnly": true,
"type": "string"
},
"version": {
"description": "The version number, incremented each time an update is committed to the order.",
"readOnly": true,
"type": "int32"
},
"total_money": {
"$ref": "money.json",
"description": "The total amount of money to collect for the order.",
"readOnly": true
},
"total_tax_money": {
"$ref": "money.json",
"description": "The total amount of tax money to collect for the order.",
"readOnly": true
},
"total_discount_money": {
"$ref": "money.json",
"description": "The total amount of discount money to collect for the order.",
"readOnly": true
},
"total_tip_money": {
"$ref": "money.json",
"description": "The total amount of tip money to collect for the order.",
"readOnly": true
},
"total_service_charge_money": {
"$ref": "money.json",
"description": "The total amount of service charge money to collect for the order.",
"readOnly": true
},
"ticket_name": {
"description": "A short-term identifier for the order used on receipts, the Seller Dashboard, and the Point of Sale device.",
"type": "string"
},
"pricing_options": {
"description": "Pricing options for an order.",
"properties": {
"auto_apply_discounts": {
"description": "Whether automatic discounts are applied.",
"type": "boolean"
},
"auto_apply_taxes": {
"description": "Whether automatic taxes are applied.",
"type": "boolean"
}
},
"type": "object"
}
},
"required": [
"location_id"
]
}