Price Check

Calculates the authoritative totals for a cart, including subtotal, tax, and the amount due, before an order is submitted. Use this endpoint to display accurate pricing to the guest and to confirm that taxes and charges are applied correctly prior to payment.

Request Headers

HeaderRequiredDescription
AuthorizationYesBearer YOUR_ACCESS_TOKEN
Content-TypeYesapplication/json

Request Parameters

Path Parameters

ParameterTypeRequiredDescription
urlstringYesBase API URL (environment variable).
versionstringYesAPI version (environment variable).
location_idstringYesUnique identifier for the location.

Query Parameters

ParameterTypeRequiredDescription
global_on_idintegerYesProvided by SoftPoint.
user_idintegerYesProvided by SoftPoint.
i18nstringNoLanguage code for localized content, for example en.

Request Body Fields

FieldTypeRequiredDescription
cartobjectYesCart details.
cart.employee_id_externalstringNoExternal employee ID.
cart.itemsarrayYesList of cart items.
cart.items[].category_idintegerNoCategory of the item.
cart.items[].idintegerYesInternal item ID.
cart.items[].id_externalstringNoExternal item ID.
cart.items[].modifiersarrayNoList of modifiers (if any).
cart.items[].priceintegerYesPrice of the item.
cart.items[].price_per_unitintegerNoPrice per unit.
cart.items[].quantityintegerYesQuantity of the item.
cart.items[].commentstringNoOptional comment.
cart.items[].namestringNoItem name.
cart.order_type_id_externalstringNoExternal order type ID.
cart.revenue_center_id_externalstringNoExternal revenue center ID.
global_on_idstringYesProvided by SoftPoint.
user_idintegerYesProvided by SoftPoint.

Request Example

{
  "cart": {
    "employee_id_external": "195",
    "items": [
      {
        "category_id": 189588,
        "id": 1672955,
        "id_external": "30004",
        "modifiers": [
          { "id": 494660, "id_external": "10011", "price": 0, "name": "*A LA MODE $$", "status": 1, "pos_id": "10011" }
        ],
        "price": 429,
        "price_per_unit": 429,
        "quantity": 1,
        "comment": "",
        "name": "FR SILK(SLI)"
      },
      {
        "category_id": 189587,
        "id": 1672949,
        "id_external": "23002",
        "modifiers": [],
        "price": 329,
        "price_per_unit": 329,
        "quantity": 1,
        "comment": "",
        "name": "CINNROLL"
      }
    ],
    "order_type_id_external": "2",
    "revenue_center_id_external": "2"
  },
  "global_on_id": "12",
  "user_id": 7
}

cURL Example

curl --request POST \
  --url "https://sandbox-api.softpoint.io/interface/v1/locations/YOUR_LOCATION_ID/app/checkout/price_check?global_on_id=12&user_id=7&i18n=en" \
  --header "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "cart": {
      "employee_id_external": "195",
      "items": [
        { "category_id": 189588, "id": 1672955, "id_external": "30004", "modifiers": [], "price": 429, "quantity": 1, "name": "FR SILK(SLI)" },
        { "category_id": 189587, "id": 1672949, "id_external": "23002", "modifiers": [], "price": 329, "quantity": 1, "name": "CINNROLL" }
      ],
      "order_type_id_external": "2",
      "revenue_center_id_external": "2"
    },
    "global_on_id": "12",
    "user_id": 7
  }'

Success Response

{
  "discounts": 0,
  "due": 958,
  "exclusive_tax": null,
  "inclusive_tax": null,
  "items": 852,
  "other_charges": 0,
  "paid": 0,
  "service_charges": 0,
  "sub_total": 852,
  "tax": 106,
  "tips": 0,
  "total": 958
}

Response Fields

FieldTypeDescription
discountsintegerTotal discounts applied, in minor units.
dueintegerAmount due after payments, in minor units.
exclusive_taxintegerTax not included in item prices, in minor units. May be null when not applicable.
inclusive_taxintegerTax included in item prices, in minor units. May be null when not applicable.
itemsintegerCombined price of all items, in minor units.
other_chargesintegerAdditional charges, in minor units.
paidintegerAmount already paid, in minor units.
service_chargesintegerService charges applied, in minor units.
sub_totalintegerSubtotal before tax, in minor units.
taxintegerTotal tax, in minor units.
tipsintegerTip total, in minor units.
totalintegerGrand total, in minor units.

Error Responses

Price Check uses the standard error envelope. A missing channel identifier produces error code 10189, consistent with other ordering endpoints.

{
  "error": {
    "code": 10189,
    "message": "Invalid global on id.",
    "details": {
      "error": "The parameter global_on_id is required"
    }
  }
}

Status Codes

CodeDescription
200Cart priced successfully.
400Invalid cart contents.
401Missing or invalid access token, or missing channel identifier.

Workflow Placement

Price Check sits between cart building and order submission:

  1. Build a cart from menu items.

  2. Call Price Check to obtain authoritative totals.

  3. Submit the order with Pay & Create Order.

Notes

  • All amounts are expressed in minor units (cents).

  • The returned total and due should be used as the authoritative figures for display and payment, since taxes and charges are computed server-side.

  • exclusive_tax and inclusive_tax may be null when no tax of that type applies.

Common Mistakes

  • Summing item prices on the client instead of relying on the returned totals.

  • Omitting global_on_id, which results in error code 10189.

  • Sending prices in major units (dollars) rather than minor units (cents).

Query Params
integer
integer
string
Body Params
Response

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json