How to handle taxes and fees with the online ordering API?

felipezavanfelipezavan Member Posts: 2

Hello,

I’m using the online ordering API endpoint to import online orders from a 3rd party service into LightSpeed.

I’m POSTing the following request to /rest/onlineordering/customer/123/order:

{

 "customerId":123,

 "deliveryDate":"2020-09-17T12:05:00Z",

 "type":"takeaway",

 "status":"ACCEPTED",

 "description":"SPILLOVER: BH order #53. Automatically imported on 09/18/2020 08:42:35 AM CDT.",

 "orderItems":[

   {

     "productId":123,

     "amount":"1",

     "totalPrice":8.66,

     "totalPriceWithoutVat":8.0,

     "unitPrice":8.66,

     "unitPriceWithoutVat":8.0,

     "modifiers":[

       {

         "description":"Rosemary Sourdough",

         "modifierId":123,

         "modifierName":"Bread",

         "modifierValueId":123,

         "price":0.54,

         "priceWithoutVat":0.5

       },

       {

         "description":"Cheddar Cheese",

         "modifierId":123,

         "modifierName":"Veggies \u0026 Toppings",

         "modifierValueId":123,

         "price":0.0,

         "priceWithoutVat":0

       },

       {

         "description":"Mayo",

         "modifierId":123,

         "modifierName":"Veggies \u0026 Toppings",

         "modifierValueId":123,

         "price":0.0,

         "priceWithoutVat":0

       },

       {

         "description":"Red Onion",

         "modifierId":123,

         "modifierName":"Veggies \u0026 Toppings",

         "modifierValueId":123,

         "price":0.0,

         "priceWithoutVat":0

       },

       {

         "description":"Avocado",

         "modifierId":123,

         "modifierName":"Veggies \u0026 Toppings",

         "modifierValueId":123,

         "price":0.54,

         "priceWithoutVat":0.5

       },

       {

         "description":"Pesto",

         "modifierId":123,

         "modifierName":"Veggies \u0026 Toppings",

         "modifierValueId":123,

         "price":0.54,

         "priceWithoutVat":0.5

       },

       {

         "description":"Steak",

         "modifierId":123,

         "modifierName":"Protein",

         "modifierValueId":123,

         "price":1.08,

         "priceWithoutVat":1.0

       },

       {

         "description":"Toasted",

         "modifierId":123,

         "modifierName":"Options",

         "modifierValueId":123,

         "price":0.0,

         "priceWithoutVat":0

       },

       {

         "description":"French Fries",

         "modifierId":123,

         "modifierName":"Sides",

         "modifierValueId":123,

         "price":0.0,

         "priceWithoutVat":0

       }

     ],

     "subitems": []

   }

 ],

 "orderPayments":[

   {

     "amount":"14.26",

     "paymentTypeId":123,

     "paymentTypeTypeId":4

   }

 ]

}


I’m using all the fields that the API documentation says can be used. You can see that I’m sending both price fields for each item/modifier, the “unitPriceWithoutVat/priceWithoutVat” fields (which I assume should not include taxes) and the “unitPrice/price” fields (which I then assume should include taxes).

The order posts successfully and shows up in the app:

But I have some questions:

  1. The tax rate shows as 0, even though the items and subtotal include taxes. What is the correct way to handle taxes/the tax rate with the online ordering API? Is there a way to associate the correct tax rate to online orders when posting the request? I looked through the docs but couldn’t find anything.
  2. It is unusual to show the item price with taxes included in the US, like shown in the app. Is this configurable?
  3. You can see that the order has a total due of -2.89, that because the paid amount that I’m sending (14.26) includes:
    1. The items without taxes: 10.50;
    2. The taxes: 0.87;
    3. The online ordering fee: 1.00;
    4. The delivery fee: in this case 0.00 because it’s a takeaway order;
    5. The tip: 1.89.

 

This adds up to the 14.26 total, but I couldn’t find a way to send the fees and tip (c, d, e) to the online ordering API, hence the total due of -2.89 (11.37 – 14.26). How should these fees be handled? I see that I can add a tip in the app, but I see no such field on the API.

 

Regards,

Felipe Zavan.

Sign In or Register to comment.