import type * as Square from "../index"; /** * 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. */ export interface Order { /** The order's unique ID. */ id?: string; /** The ID of the seller location that this order is associated with. */ locationId: string; /** * A client-specified ID to associate an entity in another system * with this order. */ referenceId?: string | null; /** * The latest source details of the order. * * This field reflects the most recent source that interacted with or modified the order, * and may change during the order lifecycle. For example: * - An order created via API (source.name = "MyPOS") paid with Square Terminal may have * source updated to reflect the Terminal application (which uses REGISTER, like POS) * - An order updated or completed by a different application may have source updated * to reflect that application. * * To preserve the original source from order creation regardless of subsequent updates, * use the `creation_source` field instead. */ source?: Square.OrderSource; /** * The ID of the [customer](entity:Customer) associated with the order. * * You should specify a `customer_id` on the order (or the payment) to ensure that transactions * are reliably linked to customers. Omitting this field might result in the creation of new * [instant profiles](https://developer.squareup.com/docs/customers-api/what-it-does#instant-profiles). */ customerId?: string | null; /** The line items included in the order. */ lineItems?: Square.OrderLineItem[] | null; /** * 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. */ taxes?: Square.OrderLineItemTax[] | null; /** * 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. */ discounts?: Square.OrderLineItemDiscount[] | null; /** A list of service charges applied to the order. */ serviceCharges?: Square.OrderServiceCharge[] | null; /** * Details about order fulfillment. * * Orders can only be created with at most one fulfillment. However, orders returned * by the API might contain multiple fulfillments. */ fulfillments?: Square.Fulfillment[] | null; /** * 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. */ returns?: Square.OrderReturn[]; /** The rollup of the returned money amounts. */ returnAmounts?: Square.OrderMoneyAmounts; /** The net money amounts (sale money - return money). */ netAmounts?: Square.OrderMoneyAmounts; /** * A positive rounding adjustment to the total of the order. This adjustment is commonly * used to apply cash rounding when the minimum unit of account is smaller than the lowest physical * denomination of the currency. */ roundingAdjustment?: Square.OrderRoundingAdjustment; /** The tenders that were used to pay for the order. */ tenders?: Square.Tender[]; /** The refunds that are part of this order. */ refunds?: Square.Refund[]; /** * 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](https://developer.squareup.com/docs/build-basics/metadata). */ metadata?: Record | null; /** The timestamp for when the order was created, at server side, in RFC 3339 format (for example, "2016-09-04T23:59:33.123Z"). */ createdAt?: string; /** The timestamp for when the order was last updated, at server side, in RFC 3339 format (for example, "2016-09-04T23:59:33.123Z"). */ updatedAt?: string; /** The timestamp for when the order reached a terminal [state](entity:OrderState), in RFC 3339 format (for example "2016-09-04T23:59:33.123Z"). */ closedAt?: string; /** * The current state of the order. * See [OrderState](#type-orderstate) for possible values */ state?: Square.OrderState; /** * 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](https://developer.squareup.com/docs/orders-api/manage-orders/update-orders). */ version?: number; /** The total amount of money to collect for the order. */ totalMoney?: Square.Money; /** The total amount of tax money to collect for the order. */ totalTaxMoney?: Square.Money; /** The total amount of discount money to collect for the order. */ totalDiscountMoney?: Square.Money; /** The total amount of tip money to collect for the order. */ totalTipMoney?: Square.Money; /** * The total amount of money collected in service charges for the order. * * Note: `total_service_charge_money` is the sum of `applied_money` fields for each individual * service charge. Therefore, `total_service_charge_money` only includes inclusive tax amounts, * not additive tax amounts. */ totalServiceChargeMoney?: Square.Money; /** * A short-term identifier for the order (such as a customer first name, * table number, or auto-generated order number that resets daily). */ ticketName?: string | null; /** * 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](entity:CatalogPricingRule). */ pricingOptions?: Square.OrderPricingOptions; /** A set-like list of Rewards that have been added to the Order. */ rewards?: Square.OrderReward[]; /** The net amount of money due on the order. */ netAmountDueMoney?: Square.Money; }