Upload Sales Data

Uploads a list of sales tickets into Apicbase.

This endpoint is used to upload a list of sales tickets to one or more locations. Takes a list of tickets in the request body.

To ensure that inventory stock updates happen as expected, should be uploaded chronologically. An automated routine processes recent tickets to update stock according to the amount of items sold, but this routine will not pick up tickets older than other tickets that were already processed.

📘

Ticket uploads are limited to 100 tickets at a time.

For performance reasons, the amount of tickets that you can upload in one request is limited to 100 tickets. Requests exceeding this limit will receive a 400 Bad Request error response. If you have more than 100 tickets to upload, make sure to break them up into smaller batches.

No tickets in failed requests will get processed.

Price attributes on a ticket line

On a ticket line, either unit_price or total_price must be given and the other will be calculated.

  • unit_price represents the sell price of one unit of the item. This value does not include modifiers.
  • total_price represents the total price of the line before discounts. This value does include modifiers.

In either case, the price value represents the price before subtracting discounts. Finally, total_discount is a flat value that gets subtracted from the total price (either the given total price or the calculated total price).

When a PLU referenced in a ticket cannot be found

When a PLU referenced in a ticket does not correspond to an existing product in the catalogue, Apicbase will automatically create a new entry for that product. If present, the product_name attribute will be used to assign a name to the dynamically generated product.

In these cases, Apicbase will return a successful response with a status code of 200, but the response body will include a message alerting the user that certain items were not found and had to be created. This warning response looks like this:

{
  "message":"Some PLUs that were sold could not be found in the product catalogue. These products have been automatically created.",
  "plus_not_found":["603005"]
}

It's important to note that this does not indicate an error. Even if you encounter this message, the uploaded tickets are successfully recorded.

👍

Wondering what are the best practices when uploading sales?

Check out the Generic POS API guide we've prepared for you. It will give you a starting point and answer the most common questions that developers come up with.

Language
Authorization
OAuth2
Click Try It! to start a request and see the response here!