Skip to content

Latest commit

 

History

History
80 lines (70 loc) · 11.2 KB

order.md

File metadata and controls

80 lines (70 loc) · 11.2 KB

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.

All Connect V2 Transactions have all been converted to Orders including all associated itemization data.

Structure

Order

Fields

Name Type Tags Description
id string | undefined Optional The order's unique ID.
locationId string Required The ID of the seller location that this order is associated with.
Constraints: Minimum Length: 1
referenceId string | undefined Optional A client-specified ID to associate an entity in another system
with this order.
Constraints: Maximum Length: 40
source OrderSource | undefined Optional Represents the origination details of an order.
customerId string | undefined Optional The ID of the customer associated with the order.

IMPORTANT: You should specify a customer_id if you want the corresponding payment transactions
to be explicitly linked to the customer in the Seller Dashboard. If this field is omitted, the
customer_id assigned to any underlying Payment objects is ignored and might result in the
creation of new instant profiles.
Constraints: Maximum Length: 191
lineItems OrderLineItem[] | undefined Optional The line items included in the order.
taxes OrderLineItemTax[] | undefined Optional The list of all taxes associated with the order.

Taxes can be scoped to either ORDER or LINE_ITEM. For taxes with LINE_ITEM scope, an
OrderLineItemAppliedTax must be added to each line item that the tax applies to. For taxes
with ORDER scope, the server generates an OrderLineItemAppliedTax for every line item.

On reads, each tax in the list includes the total amount of that tax applied to the order.

IMPORTANT: If LINE_ITEM scope is set on any taxes in this field, using the deprecated
line_items.taxes field results in an error. Use line_items.applied_taxes
instead.
discounts OrderLineItemDiscount[] | undefined Optional The list of all discounts associated with the order.

Discounts can be scoped to either ORDER or LINE_ITEM. For discounts scoped to LINE_ITEM,
an OrderLineItemAppliedDiscount must be added to each line item that the discount applies to.
For discounts with ORDER scope, the server generates an OrderLineItemAppliedDiscount
for every line item.

IMPORTANT: If LINE_ITEM scope is set on any discounts in this field, using the deprecated
line_items.discounts field results in an error. Use line_items.applied_discounts
instead.
serviceCharges OrderServiceCharge[] | undefined Optional A list of service charges applied to the order.
fulfillments OrderFulfillment[] | undefined Optional Details about order fulfillment.

Orders can only be created with at most one fulfillment. However, orders returned
by the API might contain multiple fulfillments.
returns OrderReturn[] | undefined Optional A collection of items from sale orders being returned in this one. Normally part of an
itemized return or exchange. There is exactly one Return object per sale Order being
referenced.
returnAmounts OrderMoneyAmounts | undefined Optional A collection of various money amounts.
netAmounts OrderMoneyAmounts | undefined Optional A collection of various money amounts.
roundingAdjustment OrderRoundingAdjustment | undefined Optional A rounding adjustment of the money being returned. Commonly used to apply cash rounding
when the minimum unit of the account is smaller than the lowest physical denomination of the currency.
tenders Tender[] | undefined Optional The tenders that were used to pay for the order.
refunds Refund[] | undefined Optional The refunds that are part of this order.
metadata Record<string, string> | undefined Optional Application-defined data attached to this order. Metadata fields are intended
to store descriptive references or associations with an entity in another system or store brief
information about the object. Square does not process this field; it only stores and returns it
in relevant API calls. Do not use metadata to store any sensitive information (such as personally
identifiable information or card details).

Keys written by applications must be 60 characters or less and must be in the character set
[a-zA-Z0-9_-]. Entries can also include metadata generated by Square. These keys are prefixed
with a namespace, separated from the key with a ':' character.

Values have a maximum length of 255 characters.

An application can have up to 10 entries per metadata field.

Entries written by applications are private and can only be read or modified by the same
application.

For more information, see Metadata.
createdAt string | undefined Optional The timestamp for when the order was created, in RFC 3339 format (for example, "2016-09-04T23:59:33.123Z").
updatedAt string | undefined Optional The timestamp for when the order was last updated, in RFC 3339 format (for example, "2016-09-04T23:59:33.123Z").
closedAt string | undefined Optional The timestamp for when the order reached a terminal state, in RFC 3339 format (for example "2016-09-04T23:59:33.123Z").
state string | undefined Optional The state of the order.
version number | undefined Optional The version number, which is incremented each time an update is committed to the order.
Orders not created through the API do not include a version number and
therefore cannot be updated.

Read more about working with versions.
totalMoney Money | undefined Optional Represents an amount of money. Money fields can be signed or unsigned.
Fields that do not explicitly define whether they are signed or unsigned are
considered unsigned and can only hold positive amounts. For signed fields, the
sign of the value indicates the purpose of the money transfer. See
Working with Monetary Amounts
for more information.
totalTaxMoney Money | undefined Optional Represents an amount of money. Money fields can be signed or unsigned.
Fields that do not explicitly define whether they are signed or unsigned are
considered unsigned and can only hold positive amounts. For signed fields, the
sign of the value indicates the purpose of the money transfer. See
Working with Monetary Amounts
for more information.
totalDiscountMoney Money | undefined Optional Represents an amount of money. Money fields can be signed or unsigned.
Fields that do not explicitly define whether they are signed or unsigned are
considered unsigned and can only hold positive amounts. For signed fields, the
sign of the value indicates the purpose of the money transfer. See
Working with Monetary Amounts
for more information.
totalTipMoney Money | undefined Optional Represents an amount of money. Money fields can be signed or unsigned.
Fields that do not explicitly define whether they are signed or unsigned are
considered unsigned and can only hold positive amounts. For signed fields, the
sign of the value indicates the purpose of the money transfer. See
Working with Monetary Amounts
for more information.
totalServiceChargeMoney Money | undefined Optional Represents an amount of money. Money fields can be signed or unsigned.
Fields that do not explicitly define whether they are signed or unsigned are
considered unsigned and can only hold positive amounts. For signed fields, the
sign of the value indicates the purpose of the money transfer. See
Working with Monetary Amounts
for more information.
ticketName string | undefined Optional A short-term identifier for the order (such as a customer first name,
table number, or auto-generated order number that resets daily).
Constraints: Maximum Length: 30
pricingOptions OrderPricingOptions | undefined Optional Pricing options for an order. The options affect how the order's price is calculated.
They can be used, for example, to apply automatic price adjustments that are based on preconfigured
pricing rules.
rewards OrderReward[] | undefined Optional A set-like list of Rewards that have been added to the Order.
netAmountDueMoney Money | undefined Optional Represents an amount of money. Money fields can be signed or unsigned.
Fields that do not explicitly define whether they are signed or unsigned are
considered unsigned and can only hold positive amounts. For signed fields, the
sign of the value indicates the purpose of the money transfer. See
Working with Monetary Amounts
for more information.

Example (as JSON)

{
  "location_id": "location_id4",
  "reference_id": null,
  "source": null,
  "customer_id": null,
  "line_items": null,
  "taxes": null,
  "discounts": null,
  "service_charges": null,
  "fulfillments": null,
  "return_amounts": null,
  "net_amounts": null,
  "rounding_adjustment": null,
  "metadata": null,
  "state": null,
  "version": null,
  "total_money": null,
  "total_tax_money": null,
  "total_discount_money": null,
  "total_tip_money": null,
  "total_service_charge_money": null,
  "ticket_name": null,
  "pricing_options": null,
  "net_amount_due_money": null
}