Square · Schema

Square Order

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.

RestaurantBookingsCatalogCheckoutCustomersDisputesEcommerceFinancial TechnologyGift CardsInventoryInvoicingLaborLocationsLoyaltyMerchantsOrdersPaymentsPoint of SaleRefundsRetailSubscriptionsTeamTerminalWebhooks

Properties

Name Type Description
id string The order's unique ID.
location_id string The ID of the seller location that this order is associated with.
reference_id string A client-specified ID to associate an entity in another system with this order.
source object The origination details of the order.
customer_id string The ID of the customer associated with the order.
line_items array The line items included in the order.
taxes array The list of all taxes associated with the order.
discounts array The list of all discounts associated with the order.
service_charges array A list of service charges applied to the order.
fulfillments array Details about order fulfillment.
returns array A collection of items from sale orders being returned in this one.
return_amounts object The rollup of the returned money amounts.
net_amounts object The net money amounts (sale money - return money).
rounding_adjustment object A positive rounding adjustment to the total of the order.
tenders array The tenders that were used to pay for the order.
refunds array The refunds that are part of this order.
metadata object Application-defined data attached to this order. Metadata fields are intended to store descriptive references or associations with an entity in another system.
created_at string The timestamp for when the order was created, in RFC 3339 format.
updated_at string The timestamp for when the order was last updated, in RFC 3339 format.
closed_at string The timestamp for when the order reached a terminal state, in RFC 3339 format.
state string The current state of the order.
version integer The version number, incremented each time an update is committed to the order.
total_money object The total amount of money to collect for the order.
total_tax_money object The total amount of tax money to collect for the order.
total_discount_money object The total amount of discount money to collect for the order.
total_tip_money object The total amount of tip money to collect for the order.
total_service_charge_money object The total amount of service charge money to collect for the order.
ticket_name string A short-term identifier for the order used on receipts, the Seller Dashboard, and the Point of Sale device.
pricing_options object Pricing options for an order.
View JSON Schema on GitHub

JSON Schema

order.json Raw ↑
{
  "$id": "https://github.com/api-evangelist/square/blob/main/json-schema/order.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "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": {
      "type": "string",
      "description": "The order's unique ID.",
      "readOnly": true
    },
    "location_id": {
      "type": "string",
      "description": "The ID of the seller location that this order is associated with.",
      "minLength": 1
    },
    "reference_id": {
      "type": "string",
      "description": "A client-specified ID to associate an entity in another system with this order.",
      "maxLength": 40
    },
    "source": {
      "type": "object",
      "description": "The origination details of the order.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name used to identify the place (application, device, etc.) that created the order."
        }
      }
    },
    "customer_id": {
      "type": "string",
      "description": "The ID of the customer associated with the order.",
      "maxLength": 191
    },
    "line_items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "A unique ID that identifies the line item only within this order."
          },
          "name": {
            "type": "string",
            "description": "The name of the line item."
          },
          "quantity": {
            "type": "string",
            "description": "The quantity purchased, as a string representation of a number."
          },
          "catalog_object_id": {
            "type": "string",
            "description": "The catalog object ID for the item or item variation."
          },
          "catalog_version": {
            "type": "integer",
            "format": "int64",
            "description": "The version of the catalog object that this line item references."
          },
          "variation_name": {
            "type": "string",
            "description": "The name of the variation applied to this line item."
          },
          "note": {
            "type": "string",
            "description": "The note of the line item."
          },
          "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": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tax_uid": {
                  "type": "string",
                  "description": "The uid of the tax for which this applied tax represents."
                },
                "applied_money": {
                  "$ref": "money.json",
                  "description": "The amount of money applied by the tax to the line item."
                }
              }
            },
            "description": "The list of taxes applied to this line item."
          },
          "applied_discounts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "discount_uid": {
                  "type": "string",
                  "description": "The uid of the discount for which this applied discount represents."
                },
                "applied_money": {
                  "$ref": "money.json",
                  "description": "The amount of money applied by the discount to the line item."
                }
              }
            },
            "description": "The list of discounts applied to this line item."
          },
          "item_type": {
            "type": "string",
            "description": "The type of line item: an itemized sale, a non-itemized sale, or a custom amount.",
            "enum": ["ITEM", "CUSTOM_AMOUNT", "GIFT_CARD"]
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Application-defined data attached to this line item."
          }
        },
        "required": ["quantity"]
      },
      "description": "The line items included in the order."
    },
    "taxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "A unique ID that identifies the tax only within this order."
          },
          "catalog_object_id": {
            "type": "string",
            "description": "The catalog object ID referencing a CatalogTax."
          },
          "name": {
            "type": "string",
            "description": "The tax's name."
          },
          "type": {
            "type": "string",
            "description": "Indicates the calculation method used to apply the tax.",
            "enum": ["INCLUSIVE", "ADDITIVE", "UNKNOWN_TAX"]
          },
          "percentage": {
            "type": "string",
            "description": "The percentage of the tax, as a string representation of a decimal number."
          },
          "scope": {
            "type": "string",
            "description": "Indicates whether the tax is scoped to the entire order or a single line item.",
            "enum": ["OTHER_TAX_SCOPE", "ORDER", "LINE_ITEM"]
          },
          "applied_money": {
            "$ref": "money.json",
            "description": "The amount of money applied by the tax in the order.",
            "readOnly": true
          }
        }
      },
      "description": "The list of all taxes associated with the order."
    },
    "discounts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "A unique ID that identifies the discount only within this order."
          },
          "catalog_object_id": {
            "type": "string",
            "description": "The catalog object ID referencing a CatalogDiscount."
          },
          "name": {
            "type": "string",
            "description": "The discount's name."
          },
          "type": {
            "type": "string",
            "description": "The type of discount.",
            "enum": ["FIXED_PERCENTAGE", "FIXED_AMOUNT", "VARIABLE_PERCENTAGE", "VARIABLE_AMOUNT"]
          },
          "percentage": {
            "type": "string",
            "description": "The percentage of the discount, as a string representation of a decimal number."
          },
          "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": {
            "type": "string",
            "description": "Indicates whether the discount is scoped to the entire order or a single line item.",
            "enum": ["OTHER_DISCOUNT_SCOPE", "ORDER", "LINE_ITEM"]
          }
        }
      },
      "description": "The list of all discounts associated with the order."
    },
    "service_charges": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "A unique ID that identifies the service charge only within this order."
          },
          "name": {
            "type": "string",
            "description": "The name of the service charge."
          },
          "catalog_object_id": {
            "type": "string",
            "description": "The catalog object ID referencing the service charge."
          },
          "percentage": {
            "type": "string",
            "description": "The service charge percentage as a string representation of a decimal number."
          },
          "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
          }
        }
      },
      "description": "A list of service charges applied to the order."
    },
    "fulfillments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "description": "A unique ID that identifies the fulfillment only within this order."
          },
          "type": {
            "type": "string",
            "description": "The type of fulfillment.",
            "enum": ["PICKUP", "SHIPMENT", "DELIVERY", "DIGITAL"]
          },
          "state": {
            "type": "string",
            "description": "The current state of the fulfillment.",
            "enum": ["PROPOSED", "RESERVED", "PREPARED", "COMPLETED", "CANCELED", "FAILED"]
          }
        }
      },
      "description": "Details about order fulfillment."
    },
    "returns": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "A collection of items from sale orders being returned."
      },
      "description": "A collection of items from sale orders being returned in this one.",
      "readOnly": true
    },
    "return_amounts": {
      "type": "object",
      "description": "The rollup of the returned money amounts.",
      "readOnly": true
    },
    "net_amounts": {
      "type": "object",
      "description": "The net money amounts (sale money - return money).",
      "readOnly": true
    },
    "rounding_adjustment": {
      "type": "object",
      "description": "A positive rounding adjustment to the total of the order.",
      "readOnly": true
    },
    "tenders": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "A tender represents a payment method used in a transaction."
      },
      "description": "The tenders that were used to pay for the order.",
      "readOnly": true
    },
    "refunds": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "A refund associated with the order."
      },
      "description": "The refunds that are part of this order.",
      "readOnly": true
    },
    "metadata": {
      "type": "object",
      "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."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp for when the order was created, in RFC 3339 format.",
      "readOnly": true
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp for when the order was last updated, in RFC 3339 format.",
      "readOnly": true
    },
    "closed_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp for when the order reached a terminal state, in RFC 3339 format.",
      "readOnly": true
    },
    "state": {
      "type": "string",
      "description": "The current state of the order.",
      "enum": ["OPEN", "COMPLETED", "CANCELED", "DRAFT"],
      "readOnly": true
    },
    "version": {
      "type": "integer",
      "description": "The version number, incremented each time an update is committed to the order.",
      "readOnly": true
    },
    "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": {
      "type": "string",
      "description": "A short-term identifier for the order used on receipts, the Seller Dashboard, and the Point of Sale device."
    },
    "pricing_options": {
      "type": "object",
      "description": "Pricing options for an order.",
      "properties": {
        "auto_apply_discounts": {
          "type": "boolean",
          "description": "Whether automatic discounts are applied."
        },
        "auto_apply_taxes": {
          "type": "boolean",
          "description": "Whether automatic taxes are applied."
        }
      }
    }
  },
  "required": ["location_id"]
}