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:

Provides data on house accounts, including their charges and payments.

Kitchen - Kitchen order bump times

Calls:

Provides data on kitchen queues and bump times.

Labor2 - Employee shifts, worked hours, and labor schedules

Calls:

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:

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:

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:

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}

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.svc service (tempuri.org namespace) passes accessToken and locationToken inside 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 .svc URL (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.