Using SOAP APIs
PAR POS is a SOAP-based API service. All data is structured via XML, but you can consume the WSDLs (Web Service Description Language) for each PAR POS Service and generate classes using a WSDL to Class Generator for the language you are programming in.
Web Services
The web services available on the PAR POS API are separated by focus and contain methods you can call to get or post data for a location.
HouseAccounts - House account balances, charges, and payments
Calls:
- GetHouseAccount - What is the general information for this House Account?
- GetHouseAccountCharges - What are the charges towards this House Account for a date range?
- GetHouseAccountPayments - What are the payments from this House Account for a date range?
- GetHouseAccounts - What are all the House Accounts for this location?
Provides data on house accounts, including their charges and payments.
Kitchen - Kitchen order bump times
Calls:
- GetOrderBumpTimes - What are the Order Bump Times available for this business date?
- GetOrderItemBumpTimes - What are the Order Item Bump Times available for this business date?
Provides data on kitchen queues and bump times.
Labor2 - Employee shifts, worked hours, and labor schedules
Calls:
- GetLaborSchedule - What is the Labor Schedule at this location?
- GetShifts - What are the Shifts that have been worked at this location?
- SaveLaborSchedule - Saving ScheduledShifts for this location.
Provides labor functionalities like the ability to save and retrieve labor schedules, as well as retrieve shifts recorded by the Register at a location.
Ordering - Orders, payments, item availability, and terminal status
Calls:
- ApplyPayment - Apply partial or complete payment to an order at a location.
- CalculateOrder - Calculate the taxes, subtotals, and totals for this Order.
- CancelOrder - Cancel an open Order that has not yet been sent to the kitchen.
- GetItemAvailability - Quantity still available for one or more particular Items.
- GetMasterTerminalStatus - Is the Primary Register online or offline?
- GetOrder - Retrieve an open Order from current Business Date.
- GetParty - Retrieve an open Party from current Business Date.
- GetUnavailableItems - Retrieve the list of item IDs that are active but unavailable at the location on current Business Date.
- SendKitchenInstructions - Send kitchen instructions to the KDS (Kitchen Display System).
- SendOrder - Manually send an order from current Business Date to kitchen at this location.
- SubmitOrder - Submit a new Order at the location.
- UpdateItemAvailability - Update the quantity available for one or more particular items.
Provides ordering functionalities like the ability to calculate, submit, and retrieve orders, update or retrieve item availability, and many more. Additionally there is a GetMasterTerminalStatus call which checks that the Primary Register is online.
Sales2 - Business date, orders, deposits, future-date orders, and tills
Calls:
- GetCurrentBusinessDate - Retrieve the Business Date on the Register.
- GetDeposits - Retrieve the Deposits made on a specific business date.
- GetFutureDateOrderDeposits - Retrieve the Deposits made on a specific business date for an order one or more days in advance.
- GetFutureDateOrders - Retrieve the Future Date Orders for a specific date range.
- GetOrders - Retrieve the Orders opened on a specific business date.
- GetTills - Retrieve the Tills on a specific business date.
Provides data on the sales at a location, namely Deposits, Orders, Tills, and the current business date of the Register.
Settings - Legacy POS configuration (read-only)
Calls:
- GetCashDrawers - Retrieve the Cash Drawers for this location.
- GetDayParts - Retrieve the Day Parts for this location.
- GetDestinations - Retrieve the Destinations for my orders.
- GetDiscounts - Retrieve the Discounts at this location.
- GetEmployees - Retrieve the Employees for this location.
- GetItemGroups - Retrieve the Item Groups for this location.
- GetItems - Retrieve the Items for this location.
- GetJobs - Retrieve the Jobs employees can clock in under for this location.
- GetModifierCodes - Retrieve the Modifier Codes for this location.
- GetModifierGroups - Retrieve the Modifier Groups for this location.
- GetOptions - Retrieve the Options for this location.
- GetPettyAccounts - Retrieve the Petty Accounts for this location.
- GetPromotions - Retrieve the Promotions at this location.
- GetRegisters - Retrieve the Registers for this location.
- GetRevenueCenters - Retrieve the Revenue Centers for this location.
- GetSections - Retrieve the Sections for this location.
- GetSurcharges - Retrieve the Surcharges at this location.
- GetTaxes - Retrieve the Taxes at this location.
- GetTenders - Retrieve the Tenders for this location.
- GetVoidReasons - Retrieve the Void Reasons for this location.
Provides data about the configuration Settings for a single location.
Note: Authentication for Settings.svc uses tokens in the SOAP body, not HTTP headers.
Settings2 - POS configuration v2 (full CRUD)
Calls:
- DeleteBusinessHours - Delete existing business hours of a location.
- DeleteDestinations - Delete existing destinations at a location.
- DeleteExceptionDates - Delete existing exception dates of a location.
- DeleteItems - Delete existing items at a location.
- DeletePriceChanges - Remove a price change at a location.
- DeleteTaxes - Delete existing taxes at a location.
- GetBrands - Retrieve the available brands containing set of items that were assigned to a brand.
- GetBusinessHours - Retrieve the business hours for a location along with any exceptions.
- GetCharities - Retrieve the list of charities for a location.
- GetDestinations - Retrieves the list of the destinations for a location.
- GetEmployees - Retrieve the Employees for this location.
- GetFutureOrderingOptions - Retrieve the Future Ordering Options for this location.
- GetItems - Retrieve the list of items for a location.
- GetJobs - Retrieve the Jobs employees can clock in under for this location.
- GetKitchenQueues - Retrieve the Kitchen Queues for this location.
- GetLastModifiedTime - Retrieve the last time the Settings and/or Employees were modified.
- GetMenu - What is included in a particular Menu?
- GetModifierGroups - Retrieve the Modifier Groups for this location.
- GetOnlineOrderingMenuOptions - Retrieve the Id of the Online Ordering Menu and/or other Alternate Menus.
- GetPermissions - Retrieve the Permissions at this location.
- GetPriceChanges - Retrieve the Price Changes that have occurred at this location.
- GetPromotions - Retrieve the list of promotions for a location.
- GetRefundReasons - Retrieve the list of Refund Reasons for a location.
- GetSecurityLevels - Retrieve the Security Levels at this location.
- GetSettings - Retrieve multiple or all the settings at this location.
- GetTables - Retrieve the Tables at this location.
- GetTaxes - Retrieve the list of taxes for a location.
- SaveBusinessHours - Create or update the existing business hours of a location.
- SaveDestinations - Create new destination or update the existing destination details.
- SaveEmployees - Create or update one or more Employees at a location.
- SaveExceptionDates - Create or update the existing exception dates of a location.
- SaveItems - Create new items or update the existing item details at a location.
- SaveModifierGroups - Create new modifier groups or update the existing modifier groups details.
- SavePriceChanges - Upsert a price change at a location for marking up or down prices.
- SavePromotions - Upsert a promotion at a location.
- SaveTaxes - Create new taxes or update the existing taxes details at a location.
- UpdateItemPrice - Update an item's price at a location.
Provides data about the configuration Settings for a single location, with enhanced APIs. There are additional APIs on top of the ones already existing in Settings.svc to better manage configuration settings.
Note: Authentication for Settings.svc uses tokens in the SOAP body, not HTTP headers.
Endpoints and WSDLs
The endpoints that you hit to access the PAR POS API are dependent on what server your group and location is on.
Production Example: https://api2.parpos.com/{ServiceName}.svc
Development/Testing (APIINT): https://api-apiint.parpos.com/{ServiceName}.svc
WSDL URLs (Latest Version)
| Service | WSDL URL |
|---|---|
| HouseAccounts | https://cdn.parpos.com/WSDL/latest/HouseAccounts.xml |
| Kitchen | https://cdn.parpos.com/WSDL/latest/Kitchen.xml |
| Labor2 | https://cdn.parpos.com/WSDL/latest/Labor2.xml |
| Ordering | https://cdn.parpos.com/WSDL/latest/Ordering.xml |
| Sales2 | https://cdn.parpos.com/WSDL/latest/Sales2.xml |
| Settings | https://cdn.parpos.com/WSDL/latest/Settings.xml |
| Settings2 | https://cdn.parpos.com/WSDL/latest/Settings2.xml |
SOAP Actions
The following is a table of SOAP Action formats for each service. Include the SOAPAction header in your requests.
| Service | SOAP Action Format |
|---|---|
| HouseAccounts | http://www.brinksoftware.com/webservices/houseaccounts/IHouseAccountsWebService/{MethodName} |
| Kitchen | http://www.brinksoftware.com/webservices/kitchen/v1/IKitchenWebService/{MethodName} |
| Labor2 | http://www.brinksoftware.com/webservices/labor/v2/ILaborWebService2/{MethodName} |
| Ordering | http://www.brinksoftware.com/webservices/ordering/20140219/IOrderingWebService/{MethodName} |
| Sales2 | http://www.brinksoftware.com/webservices/sales/v2/ISalesWebService2/{MethodName} |
| Settings | http://tempuri.org/ISettingsWebService/{MethodName} |
| Settings2 | http://www.brinksoftware.com/webservices/settings/v2/ISettingsWebService2/{MethodName} |
Recommended Tools
For testing purposes, we recommend using free tools like SoapUI or Postman to make test calls.
-
SoapUI - You can create a SOAP-based project by consuming a WSDL from one of the WSDL URLs listed above. It will generate sample requests for the calls within a given service so that you can visualize the format of the request and response returned. You will be able to add HTTP Web Request Headers (if necessary for your call) and specify the endpoint that you want to hit. Note: All fields within the sample requests will appear as "Optional" by default, but that is not necessarily the case.
-
Postman - You can make POST calls to your specified endpoint. You will have to provide a raw request body and include all necessary HTTP Web Request Headers such as tokens, Content-Type ("text/xml"), and SOAPAction (e.g. "http://www.brinksoftware.com/webservices/sales/v2/ISalesWebService2/GetOrders"). We usually recommend that you copy/paste the sample request generated through SoapUI into the body of your Postman request.
Authentication
Most services require two HTTP headers on every request:
| Header | Description |
|---|---|
AccessToken |
Your API access token, issued by PAR POS |
LocationToken |
Token identifying the specific location |
Exception - Settings service: The legacy
Settings.svcservice (tempuri.org namespace) passesaccessTokenandlocationTokeninside the SOAP request body, not as HTTP headers. See the individual Settings operations for the correct envelope format.
Request Format
All SOAP requests are HTTP POST with:
| Header | Value |
|---|---|
Content-Type |
text/xml; charset=utf-8 |
SOAPAction |
Operation-specific URL (required; fixed value per operation) |
| Body | A complete SOAP 1.1 envelope |
SOAP Endpoint URL: The actual endpoint is just the
.svcURL (e.g.,https://yourserver.parpos.com/HouseAccounts.svc). The operation name shown in paths (e.g.,/GetHouseAccount) is for documentation purposes only. The SOAPAction header determines which operation is called.
Result Codes
All responses include a ResultCode field:
| Code | Meaning |
|---|---|
| 0 | Request went through successfully |
| 1 | Request returned an unknown error |
| 2 | Request was not valid |
| 3 | Server is currently unavailable and unable to receive the request |
| 4 | Access Denied - check that your AccessToken and LocationToken are correct |
Note: Service-specific result codes may be returned. Check individual operation documentation.