Skip to content
Last updated

Version 1.1 Changes

The following changes were introduced to support Pay at Table scenarios.

  • Added the update sale endpoint to allow both the POS and partner App to update the OPEN sale.
  • Added the SALE_UPDATED webhook event for the POS to be notified when changes are made to the sale.
  • Added the SALE_CLOSED webhook event for the POS to be notified when the sale status changes from OPEN to CLOSED.

The following change was introduced to support reopened sales.

  • Added the SALE_REOPENED webhook event for the POS to be notified when a new sale has been created with status REOPENED.

Sale Entity

New/updated FieldDescriptionChangeChange Description
versionRepresents the last read version of the sale returned by the GET request. If this version is out of date, the request will fail with a 412. Get the latest sale and merge it with the values from this request, then retry with the latest version.NewAdded to handle accidental overwrites for the PATCH request since multiple partners can modify the same sale.
statusAn enum describing the status of the saleUpdatedNew status enum values OPEN and REOPENED added
closedZonedDateTimeThe time local time the sale was closed on the partner.UpdatedThis value is now optional for OPEN sales
parentSaleIdThe original sale id referencing the previous sale that was reopenedNewThis attribute can only be set when creating a REOPENED sale
items.hiddenThis can be set by the POS to indicate that this item should be hidden by the partner AppNewAdded new optional hidden field to items
payments.methodThe payment methodUpdatedNew payment enum added called ONLINE for sales made via partner App
payments.itemsOptional list that indicates which line items this payment is forNewAdded optional items array to payments. This allows partners to track which items are fully or partially paid for
paymentsPayments made for the saleUpdatedPayments is now optional for OPEN sales
taxThe total amount (in cents) of tax collected for this sale by the merchant.UpdatedTax is now optional for OPEN sales
customer.nameName of the customerRemovedCustomer name has been removed as it was deprecated in version 1.0
customer.idId of the customerUpdatedCustomer id is now optional
registerInformation about which register in the venue was usedUpdatedRegister fields are now optional

Version 1.0 Changes

The following changes were made since the 'experimental' version released in 2018.

Sale Entity

Experimental FieldDescriptionChangesNew Field Name
transactionIdPOS generated ID of the saleMovedorigin.saleId
merchantIdPOS generated customer IDMovedcustomer.id
merchantNamePOS generated customer nameMovedcustomer.name
transactionTypeThe type of the sale (SALE, REFUND, VOID)Movedtype
transactionDateTimeThe local date and time of the saleSplitsaleOpenedDateTime & saleCompletedDateTime (RFC 3339 - section 5.6)
storeNamePOS generated name of the store / location / venueRemovedNow added automatically by Tyro Connect
staffIdThe ID of the staff member entering in the saleMovedstaff.id
staffNameThe name of the staff memberRemoved
posNameThe name of the registerMovedregister.name
posIdThe ID of the registerMovedregister.id
tableNumberThe table number where the guests were seatedMovedtable.number
seatsThe number of guests that were seated at the tableMovedtable.seats
sectionThe name of the section that the guests were seated inSplitsection.id & section.name
tipAmountThe total tip amount included in the saleMovedMoney object (amount, currency)
discountThe discount applied at the basket level (over and above item level discount/s)Splitdiscounts[] - array of Money object (amount, currency, description)
totalExTaxThe total of the sale excluding taxRemoved
taxThe tax collected as part of the saleSplitMoney object (amount, currency)
totalThe total of the sale (sum of items - discounts + surcharges)SplitMoney object (amount, currency)
statusThe status of the saleNo change
payment[]An array of payment objects contained in the saleMovedpayments[]
items[]An array of item objects contained in the saleNo change
experimental[]An array of experimental objectsRemoved

New fields added to the Sale Object

New Field NameDescription
surcharges[]An array of surcharges applied to the sale (amount, currency, description)

Payment Entity

Experimental FieldDescriptionChangesNew Field Name
terminalIdThe ID of the acquirer's terminalSplitNow an acquirer object (name, transactionReference, terminalId)
paymentTransactionIdThe acquirer's transaction referenceMovedacquirer.transactionReference (for Tyro use integratedTransactionId)
typeThe type of payment (SALE, REFUND, VOID)No change
surchargeAmountThe surcharge charged by the acquirer for the paymentSplitMoney object (amount, currency)
tipAmountThe tip amount made above the payment amountSplitMoney object (amount, currency)
amountThe amount of the payment related to the goods and services purchasedMovedgoodsAndServicesAmount
statusThe status of the paymentRemoved

New fields added to the Payment Object

New Field NameDescription
cashoutAmountThe cashout amount requested over the goodsAndServices amount
methodAn enum set (EFTPOS, CASH, GIFT_CARD, POINTS)

Item Entity

Experimental FieldDescriptionChangesNew Field Name
skuThe Stock Keeping Unit (SKU or PLU)No change
productIdThe product IDMovedid
productNameThe product nameMovedname
descriptionThe product descriptionNo change
quantityThe quantity involvedNow a float
discountAmountThe discount applied to this line itemMoveddiscounts[] - array of Money object (amount, currency, description)
unitPriceThe unit price of each item (including tax but excluding discounts)SplitMoney object (amount, currency)
unitPriceExTaxThe unit price of each item (excluding tax and excluding discounts)Removed
unitPriceTaxThe tax component of the unit priceSplitMoney object (amount, currency)
barcodeThe barcode for the itemNo change
salesCategoryNameThe category that the item is inMovedcategory

New fields added to the Item Entity

New Field NameDescription
unitCostThe unit cost of each (paid by the merchant) (including tax)
unitCostTaxThe tax component of the unit cost (paid by the merchant - input tax credit)
modifiersNested array of Items used as modifiers of the Item they are connected to (useful for restaurants looking to capture modifications made to the item)
taxThe amount of tax collected by the merchant for this item
surchargesArray of Money object (amount, currency, description)
totalThe total price for this line item. Expected to be equal to (unitPrice * quantity) - sum(discounts) - sum(surcharges) + sum(modifiers[].total)