Settings2.svc

Calls

**Our recommended approach to obtain settings (currently only supports Settings2.svc) is using GetSettings call so that you can grab all the newly upgraded settings.
Sending a Request to Settings2.svc
All calls to Settings2.svc require the AccessToken and the LocationToken in the HTTP Web Request Headers of the request. With the exceptions of GetMenu, GetSettings, and SaveEmployees, no other parameters in the body are necessary.

Settings2.svc Endpoint
Endpoint
https://{{server}}.brinkpos.net/Settings2.svc


HTTP Web Request Headers
Header Name
Header Value
AccessToken
{{AccessToken}}
LocationToken
{{LocationToken}}
Receiving a Response from Settings2.svc
All responses from the Settings2.svc follow the format below, with the exceptions of GetFutureOrderingOptions, GetLastModifiedTime, GetMenu, GetOnlineOrderingMenuOptions, GetSettings, and SaveEmployees, which are outlined in their respective sections.

Settings2.svc Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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 and you are properly provisioned
Collection
Array of Settings
Array of the appropriate Settings type, depending on the call
This call is to remove business hours of a location . Please do not keep batch size of more than 20, i.e. the number of operations in a single request should not be more than 20.

DeleteBusinessHours Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
Boolean
Whether or not the change should be applied immediately (will restart all registers at the location)
BusinessHourIds
A Collection of Int
A Collection of BusinessHourIds to delete


DeleteBusinessHours Response
Data Name
Data Type
Data Description
Errors
A Collection of String
Contains error messages if the request failed


This call is to remove a destination at a location . Please do not keep batch size of more than 20, i.e. the number of operations in a single request should not be more than 20.

DeleteDestinations Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
Boolean
Whether or not the change should be applied immediately (will restart all registers at the location)
DestinationIds
A Collection of Int
A Collection of DestinationIds to delete


DeleteDestinations Response
Data Name
Data Type
Data Description
Errors
A Collection of String
Contains error messages if the request failed


This call is to remove exception dates of a location . Please do not keep batch size of more than 20, i.e. the number of operations in a single request should not be more than 20.

DeleteExceptionDates Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
Boolean
Whether or not the change should be applied immediately (will restart all registers at the location)
ExceptionDateIds
A Collection of Int
A Collection of ExceptionDateIds to delete


DeleteExceptionDates Response
Data Name
Data Type
Data Description
Errors
A Collection of String
Contains error messages if the request failed


This call is to remove items at a location . Please do not keep batch size of more than 20, i.e. the number of operations in a single request should not be more than 20.

DeleteItems Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
Boolean
Whether or not the change should be applied immediately (will restart all registers at the location)
ItemIds
A Collection of Int
A Collection of Item Ids to delete


DeleteItems Response
Data Name
Data Type
Data Description
Errors
A Collection of String
Contains error messages if the request failed


This call is to remove a price change at a location based on existing PriceChangeIds. Please do not keep batch requests, i.e. single operation should be performed in a single request.

DeletePriceChanges Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
Boolean
Whether or not the change should be applied immediately (will restart all registers at the location)
PriceChangeIds
A Collection of Int
A Collection of Price Change Ids to delete


DeletePriceChanges Response
Data Name
Data Type
Data Description
Errors
A Collection of String
Contains error messages if the request failed


This call is to remove a tax at a location . Please do not keep batch size of more than 20, i.e. the number of operations in a single request should not be more than 20.

DeleteTaxes Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
Boolean
Whether or not the change should be applied immediately (will restart all registers at the location)
TaxIds
A Collection of Int
A Collection of Tax Ids to delete


DeleteTaxes Response
Data Name
Data Type
Data Description
Errors
A Collection of String
Contains error messages if the request failed


This call is to retrieve an array of Brand objects for the location.

This call is to retrieve the business hours for a location along with any exceptions.

GetBusinessHours Request
Data Name
Data Type
Data Description
StartDate
DateTime?
Used to find exception dates greater than this date if specified.
EndDate
DateTime?
Used to find exception dates less than this date if specified.


GetBusinessHours Response
Data Name
Data Type
Data Description
LocationOptions
Contains information on BusinessHours and ExceptionDates
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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


This call is to retrieve an array of Destination objects for the location.

This call is to retrieve an array of Employee objects for the location.

This call is to retrieve a FutureOrderingOptions object for the location.

GetFutureOrderingOptions Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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
FutureOrderingOptions
FutureOrderingOptions
Options for future ordering


This call is to retrieve an array of Item objects for the location.

GetItems Request
Data Name
Data Type
Data Description
ItemIds
Array of int
Depending on the ItemId(-s) passed in request the response will return the details of that(those) item(-s)


This call is to retrieve an array of Job objects for the location.

This call is to retrieve an array of KitchenQueue objects for the location.

This call is to retrieve the DateTime for when the Settings and/or Employees were last modified for the location.

GetLastModifiedTime Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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
EmployeesOnlyLastModifiedTime
DateTimeOffset?
Date and time corresponding to the most recent Employees modification at the location, in location's local time
SettingsLastModified
DateTimeOffset?
Date and time corresponding to the most recent Employees or Settings modification at the location, whichever is more recent when taken into consideration together, in location's local time.
SettingsOnlyLastModifiedTime
DateTimeOffset?
Date and time corresponding to the most recent Settings modification at the location, in location's local time
This call is to retrieve a Menu object for the location.

GetMenu Request
Data Name
Data Type
Data Description
MenuId
int
Specify the Id of the Menu you would like to retrieve


GetMenu Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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
Menu
Menu with the MenuId you specified, if one is found


This call is to retrieve an array of AlternateMenu objects and/or an OnlineOrderingMenuId for the location.

GetOnlineOrderingMenuOptions Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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
AlternateMenus
Array of AlternateMenu
Alternate menus for this location
OnlineOrderingMenuId
int?
Id for the default Online Ordering Menu


This call is to retrieve an array of Permission objects for the location.

This call is to retrieve an array of PriceChange objects for the location.

This call is to retrieve an array of SecurityLevel objects for the location.

This call is to retrieve multiple Settings for the location.

GetSettings Request
Data Name
Data Type
Data Description
DataTypes
Array of DataType
See DataType field for more information. Depending on the DataType(-s) inserted the response will return that (those) setting(-s)


Data Type
Data Name
Data Type
Data Description
DataType
DataType
Specify one or more DataType you would like to retrieve. You can choose one of the following:
  • Employee
  • Job
  • Permission
  • SecurityLevel
  • KitchenQueue
  • FutureOrderingOptions
  • Menu
  • OnlineOrderingMenuOptions
  • PriceChange
  • Promotion
  • Table
  • Brand
  • Printer
  • MenuItem
  • PaymentOptions
  • PrinterGroup
  • PriceLevel
  • ModifierTiers
  • KitchenVideoGroups
  • Panels
  • Screens
  • Tares


GetSettings Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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
Settings
Settings object
Settings with the DataType you spefified


Settings Type
Data Name
Data Type
Data Description
Brands
Array of Brands
Brands for the location if specified
Employees
Array of Employee
Employees for the location if specified
Jobs
Array of Job
Jobs for the location if specified
Permissions
Array of Permission
Permissions for the location if specified
SecurityLevels
Array of SecurityLevel
SecurityLevels for the location if specified
KitchenQueues
Array of KitchenQueue
KitchenQueues for the location if specified
FutureOrderingOptions
FutureOrderingOptions for the location if specified
Menus
Array of Menu
Menus for the location if specified
OnlineOrderingMenu Options
OnlineOrderingMenuOptions for the location if specified
PriceChanges
Array of PriceChange
PriceChanges for the location if specified
Promotions
Array of Promotion
Promotions for the location if specified
Printer
Array of Printer
Printers for the location if specified
Tables
Array of Table
Tables for the location if specified
This call is to retrieve a collection of Table object setup at the location.(Only used for Table Service locations)

This call is to retrieve an array of Tax objects for the location.

This call is to upsert business hours of a location . Please do not keep batch size of more than 100, i.e. the number of operations in a single request should not be more than 100.

SaveBusinessHours Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
bool
Whether or not the change should be applied immediately (will restart all registers at the location)
BusinessHours
Collection of BusinessHoursType
Specify one or more BusinessHour objects you would like to create


SaveBusinessHours Response
Data Name
Data Type
Data Description
SaveResults
A Collection of SaveBusinessHoursResult
Contains details on whether or not the request has succeeded with success details or failure details


This call is to upsert a destination to a location . Please do not keep batch size of more than 100, i.e. the number of operations in a single request should not be more than 100.

SaveDestinations Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
bool
Whether or not the change should be applied immediately (will restart all registers at the location)
Destinations
Collection of Destination
Specify one or more Destination objects you would like to create


SaveDestinations Response
Data Name
Data Type
Data Description
SaveResults
A Collection of SaveDestinationsResult
Contains details on whether or not the request has succeeded with success details or failure details


This call is to create or update one or more Employees for the location.

SaveEmployees Request
Data Name
Data Type
Data Description
Employees
Array of Employee
Specify one or more Employee objects you would like to create and/or update


SaveEmployees Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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
SaveResults
Details about the outcome of your request
ValidationMessages
List<string>
Details if the request was unsuccessful


This call is to upsert exception dates of a location . Please do not keep batch size of more than 100, i.e. the number of operations in a single request should not be more than 100.

SaveExceptionDates Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
bool
Whether or not the change should be applied immediately (will restart all registers at the location)
ExceptionDates
Collection of ExceptionDate
Specify one or more ExceptionDates objects you would like to create


SaveExceptionDates Response
Data Name
Data Type
Data Description
SaveResults
A Collection of SaveexceptiondatesResult
Contains details on whether or not the request has succeeded with success details or failure details


This call is to upsert items to a location . Please do not keep batch size of more than 100, i.e. the number of operations in a single request should not be more than 100.

SaveItems Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
bool
Whether or not the change should be applied immediately (will restart all registers at the location)
Items
Collection of Item
Specify one or more Item objects you would like to create


SaveItems Response
Data Name
Data Type
Data Description
SaveResults
A collection of SaveItemsResult
Contains details on whether or not the request has succeeded with success details or failure details


This call is to upsert a price change to a location for marking up or down an item's/items' base price. Please do not keep batch requests, i.e. single operation should be performed in a single request.

SavePriceChanges Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
bool
Determines whether or not to publish the change immediately on the Register (will restart all registers at the location)
PriceChanges
Collection of PriceChange
Specify one or more PriceChange objects you would like to create


SavePriceChanges Response
Data Name
Data Type
Data Description
SaveResults
A Collection of SavePriceChangeResult
Contains details on whether or not the request has succeeded with success details or failure details


This call is to upsert a tax to a location . Please do not keep batch size of more than 100, i.e. the number of operations in a single request should not be more than 100.

SaveTaxes Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
IsImmediatePublish
bool
Whether or not the change should be applied immediately (will restart all registers at the location)
Taxes
Collection of Tax
Specify one or more Tax objects you would like to create


SaveTaxes Response
Data Name
Data Type
Data Description
SaveResults
A Collection of SaveTaxesResult
Contains details on whether or not the request has succeeded with success details or failure details


This call is to update an Item's price or Component Item's price for the location. Price changes will be applied after the businessday specified in the request.

UpdateItemPrice Request
Data Name
Data Type
Data Description
BusinessDate
DateTime?
The BusinessDate from when the change should apply. Default is the current BusinessDate of the location
ChangesetName
string
Optionally provide a custom "changeset" name. If the value is not passed, a default "changeset" name is created.
ItemPriceUpdates
Array of ItemPriceUpdate
Specify one or more ItemPriceUpdate objects you would like to create


UpdateItemPrice Response
Data Name
Data Type
Data Description
Message
string
Returns a Brink Error message if the request did not go through. Otherwise, this field will be null.
ResultCode
int
Returns one of the following:
  • 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
  • 5 = Settings Error
  • 6 = Partial Success
Errors
Details if the request was unsuccessful


Global Type
All the Types available in Settings2.svc will be displayed below.

AlternateMenu Type
Data Name
Data Type
Data Description
Days
byte?
Returns a byte describing the days this AlternateMenu is available:
  • 0 = None
  • 1 = Sunday
  • 2 = Monday
  • 4 = Tuesday
  • 8 = Wednesday
  • 16 = Thursday
  • 32 = Friday
  • 64 = Saturday

If multiple days are selected, binary addition is used in determining this value.
EndTime
TimeSpan
End time of this AlternateMenu
Id
int
Unique Id of this AlternateMenu
MenuId
int
Maps to the Id of the Menu for this AlternateMenu
StartTime
TimeSpan
Start time of this AlternateMenu
TimeType
byte
Returns a byte describing the time type of this AlternateMenu:
  • 0 = RequestedTime
  • 1 = CalculatedSendTime


Brands Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Brand
Name
string
Name of the Brand


BusinessHour Type
Data Name
Data Type
Data Description
CloseTime
TimeSpan
The open time of the store on the given day
OpenTime
TimeSpan
The end time of the store on the given day
DayOfWeek
DayOfWeek
One of the days of the week (Monday/Tuesday/Wednesday/Thursday/Friday/Saturday/Sunday)


ComponentItemPriceChange Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this ComponentItemPriceChange
ItemId
int
Maps to the Id of the Item of this ComponentPriceChange
Price
decimal?
Price of this ComponentItemPriceChange


ComponentPriceChange Type
Data Name
Data Type
Data Description
ComponentId
int
Id of the Component of this ComponentPriceChange
ComponentItemPrice Changes
Component item price changes of this ComponentPriceChange
Id
int
Unique Id of this ComponentPriceChange
Price
decimal?
Price of this ComponentPriceChange


Customfield Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this customfield
FieldName
string
Name of the customfield
Value
string
Value for the customfield


DestinationDeliveryZone Type
Data Name
Data Type
Data Description
Coordinates
Coordinates of the delivery zone
Id
int
Unique identifier of the object.
Name
string
Name of the object
SurchargeId
int?
ID of the surcharge


DestinationDeliveryZoneCoordinates Type
Data Name
Data Type
Data Description
Id
int
Unique ID of this object
Latitude
double
Latitude of the delivery zone
Longitude
double
Longitude of the delivery zone


Destinations Type
Data Name
Data Type
Data Description
Description
string
When entered, replaces the destination name in Customer Portal.
Id
int
Unique Id of this Destination
Name
string
Name of the destination.
ValidDeliveryZones
List of valid Delivery Zones where delivery can be done


Employee Type
Data Name
Data Type
Data Description
DisplayName
string
Employee's display name on the register
Id
int
Unique Id in Brink for this Employee
Jobs
Array of EmployeeJob
Jobs assigned to this Employee
PayrollId
string
Unique payroll Id for this Employee


EmployeeJob Type
Data Name
Data Type
Data Description
Id
int
Unique Id of the Employee-Job relationship
JobId
int
Maps to the Id of the Job of this EmployeeJob
JobUniqueId
Guid
PayRate
decimal
Pay rate for this EmployeeJob
SecurityLevelId
int
Maps to the Id of the SecurityLevel of this EmployeeJob
SecurityLevelUniqueId
Guid


EmployeeLocation Type
Data Name
Data Type
Data Description
Id
int
Unique Id of the Employee-Location relationship
LocationId
Guid
Id of the location


EmployeePermission Type
Data Name
Data Type
Data Description
Id
int
Unique Id of the Employee-Permission relationship
PermissionId
int
Maps to the Id of the Permission of this EmployeePermission
PermissionUniqueId
Guid
Primary Key for Permission in Brink with SMX ON


ExceptionDate Type
Data Name
Data Type
Data Description
CloseTime
TimeSpan?
The open time at which this current exception begins
OpenTime
TimeSpan?
The close time at which this current exception ends
Date
DateTime
The date at which this current exception is triggered upon
IsOpen
Boolean
Whether or not the location is open at the given date. If this value is false, the OpenTime and CloseTime are null


FutureOrderingOptions Type
Data Name
Data Type
Data Description
AllowFutureDateOrdering
bool
True if future ordering is allowed at this location, False if not
MinimumLeadMinutes
short
Minumum amount of time that the order pickup time needs to be from placement time
MinimumPrepMinutes
short
Minimum amount of time before the order pickup time allocated at which the order is open on the register and sent to the kitchen


ItemBrandAllocation Type
Data Name
Data Type
Data Description
BrandId
int
Brand to allocate sales to
Id
int
Unique Id of this BrandAllocation
Weight
decimal
Percent of the net sales to allocate to the selected brand


ItemCompositeComponent Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Component
ItemGroupId
int?
The item group to which the component is assigned
Items
The items that are eligible to be this component of the combo
Name
string
The name of the combo component
OverridePrice
bool
True if the Item's price specified in this dialog overrides all other prices for this item when it is in a combo, False if not
Panels
Panels that are to be displayed when the item is ordered or selected
Price
decimal?
Enter the price of the item
RollupPrice
bool
True if the Item's price isn't displayed separately on the 'OrderList' screen on the Register, but is included in the total price of the combo, False if not


ItemCompositeComponentItem Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this ItemComponent
IsDefault
bool
True if this item is used as the default item for this combo component, False if not
ItemId
int
Maps to the Id of the Item of this ItemCompositeComponentItem
OverridePrice
bool
True if the price specified in this dialog overrides all other prices for this item when it is in a combo, False if not
Price
decimal?
Enter the price of the item


ItemCompositeComponentPanel Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Panel
PanelId
int
The panel to be shown, when screen matches
ScreenId
int?
Current screen that triggers the selected panel


ItemIncludedModifier Type
Data Name
Data Type
Data Description
AutomaticallyAdd
bool
True if this item automatically add the modifier when the item is ordered, False if not
Id
int
Unique Id of this IncludedModifier
IsIncluded
bool
True if modifier is included in/on the item, False if not
ItemId
int
Maps to the Id of the Item of this ItemIncludedModifier
ModifierGroupId
int
Modifier group the included modifier belongs to
Position
short
Returns an index of where this ItemIncludeModifier is positioned
PrintInKitchen
bool
True if item always print the modifier in the kitchen, even when not selected, False if not


ItemIngredient Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Ingredient
ItemId
int
Maps to the Id of the Item of this ItemIngredient
Position
short
Returns an index of where this ItemIngredient is positioned


ItemModifierGroup Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this ModifierGroup
ModifierGroupId
int
Modifier groups that are to be available when the item is ordered or modified
Position
short
Returns an index of where this ItemModifierGroup is positioned


ItemModifyPanel Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this ModifyPanel
PanelId
int
The panel to be shown, when screen matches
ScreenId
int?
Current screen that triggers the selected panel


ItemPriceChange Type
Data Name
Data Type
Data Description
ComponentPriceChanges
Component price changes of this ItemPriceChange
Id
int
Unique Id of this ItemPriceChange
ItemId
int
Maps to the Id of the Item of this ItemPriceChange
Name
string
Name of this ItemPriceChange
OriginalPrice
decimal?
Original price of the Item before this ItemPriceChange
Price
decimal?
Resulting price of the Item before this ItemPriceChange


ItemPriceUpdate Type
Data Name
Data Type
Data Description
ComponentId
int?
Id of the the group that contains details on specific child items (see FAQs on combos). The ComponentId can be found in GetItems that lives in Settings.svc for items that are of type combo. If ComponentId is specified, then ComponentItemId must also be specified
ComponentItemId
int?
ItemId of ItemCompositeComponentItem. This is to target a specific child item and update it's price. ComponentId is required if updating the price of a ComponentItemId
ItemId
int
Maps to the Id of the Item to update the price for
Price
decimal
The value we would like to change the item or component item to


ItemPriceUpdateError Type
Data Name
Data Type
Data Description
ErrorCode
string
Error Code for the error due to any validation failed
Key
Specify the ItemPriceUpdateKey for error object


ItemPriceUpdateKey Type
Data Name
Data Type
Data Description
ComponentId
int?
Id of the the group that contains details on specific child items
ComponentItemId
int?
ItemId
int
Maps to the Id of the Item to update the price for


ItemSelectionPanel Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this SelectionPanel
PanelId
int
The panel to be shown, when screen matches
ScreenId
int?
Current screen that triggers the selected panel


Items Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Item
Name
string
Name of this Item
Price
decimal
Price of this Item
SelectionPanels
Panels that are to be displayed when the item is ordered or selected


Job Type
Data Name
Data Type
Data Description
Id
int
Unique Id in Brink for this Job
Name
string
Name of this Job


JobMenu Type
Data Name
Data Type
Data Description
Days
byte?
Days of the week on which the scheduled menu is to be displayed
MenuId
int
Id of the menu which is to be displayed according to the schedule
StartTime
TimeSpan?
Time at which the scheduled menu will begin displaying


JobShiftBreakType Type
Data Name
Data Type
Data Description
Id
int
Unique Id of the Job-ShiftBreakType relationship
ShiftBreakTypeId
int
Id of the ShiftBreakType of this JobMenuShiftBreakType


KeyedSettingsObjectSaveResult Type
Data Name
Data Type
Data Description
Id
int
New Id of the Employee created
OriginalId
int
Original Id in the Employee creation request
ValidationMessages
List<string>
Details if the request was unsuccessful


KitchenQueue Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this KitchenQueue
Name
string
Name of this KitchenQueue


LeadTimeThreshold Type
Data Name
Data Type
Data Description
LeadMinutes
int
Minutes for a lead time threshold


LocationOptions Type
Data Name
Data Type
Data Description
BusinessHours
IEnumerable<BusinessHour>
A collection that contains time-related information of each business BusinessHours
ExceptionDates
IEnumerable<ExceptionDate>
A collection of dates that contains days when the location may have different hours or is closed












OnlineOrderingDestination Type
Data Name
Data Type
Data Description
DestinationId
int
Maps to the Id of the Destination of this NewOrder
Instructions
string
Instructions for this OnlineOrderingDestination
IsDefault
bool
True if this OnlineOrderingDestination is the default destination for online ordering, False if not


Permission Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Permission
IsActive
bool
True if this Permisson is active, False if not
Name
string
Name of this Permission
PermissionUniqueId
Guid


PrepTimeThreshold Type
Data Name
Data Type
Data Description
PrepMinutes
int
Minutes for a prep time threshold


PriceChange Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this PriceChange
IsActive
bool
True if this PriceChange is active, False if not
ItemPriceChanges
Array of ItemPriceChange
Item price changes in this PriceChange
Name
string
Name of this PriceChange


PriceChangeDestination Type
Data Name
Data Type
Data Description
DestinationId
int
Maps to the Id of the Destination of this PriceChangeDestination
DestinationName
string
Name of this PriceChangeDestination
Id
int
Unique Id of this PriceChangeDestination


Printer Type
Data Name
Data Type
Data Description
Name
string
Name of the Printer
Id
int
Id of the Printer
Model
PrinterModel?
Enter the printer model
Path
string
Set the path of the Printer


SaveBusinessHoursResult Type
Data Name
Data Type
Data Description
Id
Int
The new generated Id of a specific entity in the SaveBusinessHours request
OriginalId
Int
The original Id of a specific entity passed into the SaveBusinessHours request
ValidationMessages
List<string>
Details if the request was unsuccessful


SaveDestinationsResult Type
Data Name
Data Type
Data Description
Id
Int
The new generated Id of a specific entity in the SaveDestination request
OriginalId
Int
The original Id of a specific entity passed into the SaveDestination request
ValidationMessages
List<string>
Details if the request was unsuccessful


SaveExceptionDatesResult Type
Data Name
Data Type
Data Description
Id
Int
The new generated Id of a specific entity in the Saveexceptiondates request
OriginalId
Int
The original Id of a specific entity passed into the Saveexceptiondates request
ValidationMessages
List<string>
Details if the request was unsuccessful


SaveItemsResult Type
Data Name
Data Type
Data Description
Id
Int
The new generated Id of a specific entity in the SaveItems request
OriginalId
Int
The original Id of a specific entity passed into the SaveItems request
ValidationMessages
List<string>
Details if the request was unsuccessful


SavePriceChangesResult Type
Data Name
Data Type
Data Description
Id
Int
The new generated Id of a specific entity in the SavePriceChange request
OriginalId
Int
The original Id of a specific entity passed into the SavePriceChange request
ValidationMessages
List<string>
Details if the request was unsuccessful


SaveTaxesResult Type
Data Name
Data Type
Data Description
Id
Int
The new generated Id of a specific entity in the SaveTaxes request
OriginalId
Int
The original Id of a specific entity passed into the SaveTaxes request
ValidationMessages
List<string>
Details if the request was unsuccessful


SecurityLevel Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this SecurityLevel
Name
string
Name of this SecurityLevel
Permissions
Permissions for this Securitylevel


SecurityLevelPermission Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this SecurityLevelPermission
PermissionId
int
Maps to the Id of the Permission of this SecurityLevelPermission
PermissionUniqueId
Guid


Table Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Table
Name
string
Name of this Table
Capacity
int
Allowed number of seats for this Table
IsActive
bool
True if this Table is active, False if not


TaxBracket Type
Data Name
Data Type
Data Description
From
decimal
The lowest order total for which the Tax Amount is charged.
TaxAmount
decimal
The amount of tax charge
To
decimal
The highest order total for which the Tax Amount is charged
Id
int
Unique Id against the tax entity


TaxDestination Type
Data Name
Data Type
Data Description
DestinationId
int
Unique ID of the destination to which the tax is being applied
Id
int
Unique mapping ID


Taxes Type
Data Name
Data Type
Data Description
Amount
decimal
Amount of this tax
Destinations
Array of TaxDestination
Destinations to which the tax must be applied
Id
int
Unique ID of this tax
Name
string
Name of this tax


                
                    
                    
DeleteBusinessHours Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_DeleteBusinessHours.ServiceReference1; namespace API_Settings2_DeleteBusinessHours { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var deleteBusinessHoursRequest = new DeleteBusinessHoursRequest() { BusinessDate = new DateTime(2023, 1,1), ChangesetName = "DeleteBusinessHours", IsImmediatePublish = false, BusinessHourIds = new[] { 1,2,3 } }; var deleteBusinessHoursResponse = clientSettingsWebService2Client.DeleteBusinessHours(deleteBusinessHoursRequest); if (deleteBusinessHoursResponse.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteBusinessHoursResponse.ResultCode}"); Console.WriteLine($"Message: {deleteBusinessHoursResponse.Message}"); foreach (var saveResult in deleteBusinessHoursResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
DeleteBusinessHours Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; using System.Xml.Linq; namespace Settings2_DeleteBusinessHours { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var deleteBusinessHoursRequest = new DeleteBusinessHoursRequest() { BusinessDate = new DateTime(2024, 3, 30), ChangesetName = "DeleteBusinessHours", IsImmediatePublish = false, BusinessHourIds = new[] { 676652170 } }; var deleteBusinessHoursResponse = client.DeleteBusinessHoursAsync(deleteBusinessHoursRequest); Console.WriteLine("DeleteBusinessHours"); Console.WriteLine("--------------------"); if (deleteBusinessHoursResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteBusinessHoursResponse.Result.ResultCode}"); Console.WriteLine($"Message: {deleteBusinessHoursResponse.Result.Message}"); foreach (var saveResult in deleteBusinessHoursResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling DeleteBusinessHours operation: " + ex.Message); } finally { } } } }
DeleteBusinessHours Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:DeleteBusinessHours> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>DeleteBusinessHours</v2:ChangesetName> <v2:IsImmediatePublish>1</v2:IsImmediatePublish> <v2:BusinessHourIds> <!--Zero or more repetitions:--> <arr:int>1</arr:int> <arr:int>2</arr:int> <arr:int>3</arr:int> </v2:BusinessHourIds> </v2:request> </v2:DeleteBusinessHours> </soapenv:Body> </soapenv:Envelope>
DeleteBusinessHours Sample Code
from zeep import Client from zeep.transports import Transport from datetime import datetime import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the parameter in request body businessdate = datetime.today() changesetname = "DeleteBusinessHours" isimmediatepublish = 0 BusinessHourIds = [1,2,3] reqType = client.get_type('ns1:DeleteBusinessHoursRequest') req = reqType(BusinessDate = businessdate, IsImmediatePublish = isimmediatepublish, BusinessHourIds=BusinessHourIds) count=1 try: #Make DeleteBusinessHours call res = service.DeleteBusinessHours(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
DeleteDestinations Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_DeleteDestinations.ServiceReference1; namespace API_Settings2_DeleteDestinations { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var deleteDestinationsRequest = new DeleteDestinationsRequest() { BusinessDate = new DateTime(2023, 1,1), ChangesetName = "DeleteDestinations", IsImmediatePublish = false, DestinationsIds = new[] { 1,2,3 } }; var deleteDestinationsResponse = clientSettingsWebService2Client.DeleteDestinations(deleteDestinationsRequest); if (deleteDestinationsResponse.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteDestinationsResponse.ResultCode}"); Console.WriteLine($"Message: {deleteDestinationsResponse.Message}"); foreach (var saveResult in deleteDestinationsResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
DeleteDestinations Sample Code
using ServiceReference1; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_DeleteDestinations { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var deleteDestinationsRequest = new DeleteDestinationsRequest() { BusinessDate = new DateTime(2023, 1, 1), ChangesetName = "DeleteDestinations", IsImmediatePublish = false, DestinationsIds = new[] { 1, 2, 3 } }; var deleteDestinationsResponse = client.DeleteDestinationsAsync(deleteDestinationsRequest); if (deleteDestinationsResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteDestinationsResponse.Result.ResultCode}"); Console.WriteLine($"Message: {deleteDestinationsResponse.Result.Message}"); foreach (var saveResult in deleteDestinationsResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling DeleteDestinations operation: " + ex.Message); } finally { } } } }
DeleteDestinations Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:DeleteDestinations> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>DeleteDestinations</v2:ChangesetName> <v2:IsImmediatePublish>1</v2:IsImmediatePublish> <v2:DestinationsIds> <!--Zero or more repetitions:--> <arr:int>1</arr:int> <arr:int>2</arr:int> <arr:int>3</arr:int> </v2:DestinationsIds> </v2:request> </v2:DeleteDestinations> </soapenv:Body> </soapenv:Envelope>
DeleteDestinations Sample Code
from zeep import Client from zeep.transports import Transport from datetime import datetime import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the parameter in request body businessdate = datetime.today() changesetname = "DeleteDestinations" isimmediatepublish = 0 destinationsids = [1,2,3] reqType = client.get_type('ns1:DeleteDestinationsRequest') req = reqType(BusinessDate = businessdate, IsImmediatePublish = isimmediatepublish, DestinationsIds=destinationsids) count=1 try: #Make DeleteDestinations call res = service.DeleteDestinations(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
DeleteExceptionDates Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_DeleteExceptionDates.ServiceReference1; namespace API_Settings2_DeleteExceptionDates { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var deleteExceptionDatesRequest = new DeleteExceptionDatesRequest() { BusinessDate = new DateTime(2023, 1,1), ChangesetName = "DeleteExceptionDates", IsImmediatePublish = false, ExceptionDateIds = new[] { 1,2,3 } }; var deleteExceptionDatesResponse = clientSettingsWebService2Client.DeleteExceptionDates(deleteExceptionDatesRequest); if (deleteExceptionDatesResponse.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteExceptionDatesResponse.ResultCode}"); Console.WriteLine($"Message: {deleteExceptionDatesResponse.Message}"); foreach (var saveResult in deleteExceptionDatesResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
DeleteExceptionDates Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_DeleteExceptionDates { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var deleteExceptionDatesRequest = new DeleteExceptionDatesRequest() { BusinessDate = new DateTime(2024, 3, 30), ChangesetName = "DeleteExceptionDates", IsImmediatePublish = false, ExceptionDateIds = new[] { 676652047 } }; var deleteExceptionDatesResponse = client.DeleteExceptionDatesAsync(deleteExceptionDatesRequest); Console.WriteLine("DeleteExceptionDates"); Console.WriteLine("---------------------------"); if (deleteExceptionDatesResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteExceptionDatesResponse.Result.ResultCode}"); Console.WriteLine($"Message: {deleteExceptionDatesResponse.Result.Message}"); foreach (var saveResult in deleteExceptionDatesResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling DeleteExceptionDates operation: " + ex.Message); } finally { } } } }
DeleteExceptionDates Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:DeleteExceptionDates> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>DeleteExceptionDates</v2:ChangesetName> <v2:IsImmediatePublish>1</v2:IsImmediatePublish> <v2:ExceptionDateIds> <!--Zero or more repetitions:--> <arr:int>1</arr:int> <arr:int>2</arr:int> <arr:int>3</arr:int> </v2:ExceptionDateIds> </v2:request> </v2:DeleteExceptionDates> </soapenv:Body> </soapenv:Envelope>
DeleteExceptionDates Sample Code
from zeep import Client from zeep.transports import Transport from datetime import datetime import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the parameter in request body businessdate = datetime.today() changesetname = "DeleteExceptionDates" isimmediatepublish = 0 ExceptionDateIds = [1,2,3] reqType = client.get_type('ns1:DeleteExceptionDatesRequest') req = reqType(BusinessDate = businessdate, IsImmediatePublish = isimmediatepublish, ExceptionDateIds=ExceptionDateIds) count=1 try: #Make DeleteExceptionDates call res = service.DeleteExceptionDates(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
DeleteItems Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_DeleteItems.ServiceReference1; namespace API_Settings2_DeleteItems { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @"AccessToken"; var locationToken = @"LocationToken"; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var deleteItemsRequest = new DeleteItemsRequest() { BusinessDate = new DateTime(2023, 07, 28), ChangesetName = "DeleteItems", IsImmediatePublish = false, ItemIds = new[] { 1,2,3 } }; DeleteItemsRequest1 request1 = new DeleteItemsRequest1(); request1.request = deleteItemsRequest; var deleteItemsResponse = clientSettingsWebService2Client.DeleteItems(request1); if (deleteItemsResponse.DeleteItemsResult.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteItemsResponse.DeleteItemsResult.ResultCode}"); Console.WriteLine($"Message: {deleteItemsResponse.DeleteItemsResult.Message}"); foreach (var error in deleteItemsResponse.DeleteItemsResult.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } } }
DeleteItems Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_DeleteItems { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var deleteItemsRequest = new DeleteItemsRequest() { BusinessDate = new DateTime(2024, 03, 30), ChangesetName = "DeleteItems", IsImmediatePublish = false, ItemIds = new[] { 676652110 } }; var deleteItemsResponse = client.DeleteItemsAsync(deleteItemsRequest); Console.WriteLine("Deleteitems"); Console.WriteLine("-------------"); if (deleteItemsResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteItemsResponse.Result.ResultCode}"); Console.WriteLine($"Message: {deleteItemsResponse.Result.Message}"); foreach (var error in deleteItemsResponse.Result.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling DeleteItems operation: " + ex.Message); } finally { } } } }
DeleteItems Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:DeleteItems> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>DeleteItems</v2:ChangesetName> <v2:IsImmediatePublish>1</v2:IsImmediatePublish> <v2:ItemsIds> <!--Zero or more repetitions:--> <arr:int>676651720</arr:int> </v2:ItemsIds> </v2:request> </v2:DeleteItems> </soapenv:Body> </soapenv:Envelope>
DeleteItems Sample Code
from zeep import Client from zeep.transports import Transport from datetime import datetime import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the parameter in request body businessdate = datetime.today() changesetname = "DeleteItems" isimmediatepublish = 0 itemids = [1,2,3] reqType = client.get_type('ns1:DeleteItemsRequest') req = reqType(BusinessDate = businessdate, IsImmediatePublish = isimmediatepublish, ItemIds=itemids) try: #Make DeleteItems call res = service.DeleteItems(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
DeletePriceChanges Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_DeletePriceChanges.ServiceReference1; namespace API_Settings2_DeletePriceChanges { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var deletePriceChangesRequest = new DeletePriceChangesRequest() { BusinessDate = new DateTime(2023, 01, 01), ChangesetName = "DeletePriceChanges", IsImmediatePublish = false, PriceChangeIds = new[] {1, 2, 3} }; var deletePriceChangesResponse = clientSettingsWebService2Client.DeletePriceChanges(deletePriceChangesRequest); if (deletePriceChangesResponse.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deletePriceChangesResponse.ResultCode}"); Console.WriteLine($"Message: {deletePriceChangesResponse.Message}"); foreach (var error in deletePriceChangesResponse.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } } }
DeletePriceChanges Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_DeletePriceChanges { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var deletePriceChangesRequest = new DeletePriceChangesRequest() { BusinessDate = new DateTime(2024, 03, 30), ChangesetName = "DeletePriceChanges", IsImmediatePublish = false, PriceChangeIds = new[] { 676652166 } }; var deletePriceChangesResponse = client.DeletePriceChangesAsync(deletePriceChangesRequest); Console.WriteLine("DeletePriceChanges"); Console.WriteLine("------------------"); if (deletePriceChangesResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deletePriceChangesResponse.Result.ResultCode}"); Console.WriteLine($"Message: {deletePriceChangesResponse.Result.Message}"); foreach (var error in deletePriceChangesResponse.Result.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling DeletePriceChanges operation: " + ex.Message); } finally { } } } }
DeletePriceChanges Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:DeletePriceChanges> <v2:request> <v2:BusinessDate>2023-01-01</v2:BusinessDate> <v2:ChangesetName>DeletePriceChanges</v2:ChangesetName> <v2:IsImmediatePublish>false</v2:IsImmediatePublish> <v2:PriceChangeIds> <!--Zero or more repetitions:--> <arr:int>1</arr:int> <arr:int>2</arr:int> </v2:PriceChangeIds> </v2:request> </v2:DeletePriceChanges> </soapenv:Body> </soapenv:Envelope>
DeletePriceChanges Sample Code
from zeep import Client from zeep.transports import Transport from datetime import datetime import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the parameter in request body businessdate = datetime.today() changesetname = "DeletePriceChanges" isimmediatepublish = 0 pricechangeids = [1,2,3] reqType = client.get_type('ns1:DeletePriceChangesRequest') req = reqType(BusinessDate = businessdate,IsImmediatePublish = isimmediatepublish,PriceChangeIds=pricechangeids) count = 1 try: #Make DeletePriceChanges call res = service.DeletePriceChanges(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
DeleteTaxes Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_DeleteTaxes.ServiceReference1; namespace API_Settings2_DeleteTaxes { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var deleteTaxesRequest = new DeleteTaxesRequest() { BusinessDate = new DateTime(2023, 1, 1), ChangesetName = "DeleteTaxes", IsImmediatePublish = false, TaxIds = new[] { 1,2,3 } }; var deleteTaxesResponse = clientSettingsWebService2Client.DeleteTaxes(deleteTaxesRequest); if (deleteTaxesResponse.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteTaxesResponse.ResultCode}"); Console.WriteLine($"Message: {deleteTaxesResponse.Message}"); foreach (var saveResult in deleteTaxesResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
DeleteTaxes Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_DeleteTaxes { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var deleteTaxesRequest = new DeleteTaxesRequest() { BusinessDate = new DateTime(2024, 3, 30), ChangesetName = "DeleteTaxes", IsImmediatePublish = false, TaxIds = new[] { 676652178 } }; var deleteTaxesResponse = client.DeleteTaxesAsync(deleteTaxesRequest); Console.WriteLine("DeleteTaxes"); Console.WriteLine("------------"); if (deleteTaxesResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); } else { Console.WriteLine($"Error Code: {deleteTaxesResponse.Result.ResultCode}"); Console.WriteLine($"Message: {deleteTaxesResponse.Result.Message}"); foreach (var saveResult in deleteTaxesResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling DeleteTaxes operation: " + ex.Message); } finally { } } } }
DeleteTaxes Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:DeleteTaxes> <v2:request> <v2:BusinessDate>${=def now = new Date();now.plus(3).format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>DeleteTaxes</v2:ChangesetName> <v2:IsImmediatePublish>0</v2:IsImmediatePublish> <v2:TaxIds> <!--Zero or more repetitions:--> <arr:int>1</arr:int> <arr:int>2</arr:int> <arr:int>3</arr:int> </v2:TaxIds> </v2:request> </v2:DeleteTaxes> </soapenv:Body> </soapenv:Envelope>
DeleteTaxes Sample Code
from zeep import Client from zeep.transports import Transport from datetime import datetime import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the parameter in request body businessdate = datetime.today() changesetname = "DeleteTaxes" isimmediatepublish = 0 taxids = [1,2,3] reqType = client.get_type('ns1:DeleteTaxesRequest') req = reqType(BusinessDate = businessdate, IsImmediatePublish = isimmediatepublish, TaxIds=taxids) try: #Make DeleteTaxes call res = service.DeleteTaxes(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetBrands Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetBrands.Settings2ServiceReference; namespace Settings2_GetBrands { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetBrands call var response = client.GetBrands(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Brand objects returned if (response.Collection != null) { foreach (var item in response.Collection) { Console.WriteLine("Brand #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + response.ResultCode); Console.WriteLine("Message: " + response.Message); Console.ReadKey(); } } } } }
GetBrands Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetBrands { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetBrandsAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Brand objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("Brand #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } catch (Exception ex) { Console.WriteLine("Error calling GetBrands operation: " + ex.Message); } finally { } } } }
GetBrands Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetBrands/> </soapenv:Body> </soapenv:Envelope>
GetBrands Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetBrands call res = service.GetBrands() #If call is successful if(res.ResultCode == 0): if(res.Collection != None): #Loop through collection of Brand objects returned for item in res.Collection.Brand: print('Brand #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetBusinessHours Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetBusinessHours.Settings2ServiceReference; namespace Settings2_GetBusinessHours { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); var request = new GetBusinessHoursRequest() { StartDate="2020-11-11", EndDate="2020-12-12" }; //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetBusinessHours call var response = client.GetGetBusinessHours(request); //If call is successful if (response.GetBusinessHoursResult.ResultCode == 0) { //Loop through collection of LocationOptions objects returned if (response.GetBusinessHoursResult.LocationOptions != null) { foreach (var item in response.GetBusinessHoursResult.LocationOptions) { foreach (var businessHour in response.GetBusinessHoursResult.LocationOptions.BusinessHours) { Console.WriteLine("---------------------------"); Console.WriteLine("CloseTime: " + businessHour.CloseTime); Console.WriteLine("DayOfWeek: " + businessHour.DayOfWeek); Console.WriteLine("OpenTime: " + businessHour.OpenTime); } foreach (var excDate in response.GetBusinessHoursResult.LocationOptions.ExceptionDates) { Console.WriteLine("---------------------------"); Console.WriteLine("CloseTime: " + excDate.CloseTime); Console.WriteLine("Date: " + excDate.Date); Console.WriteLine("IsOpen: " + excDate.IsOpen); Console.WriteLine("OpenTime: " + excDate.OpenTime); } } } Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + response.GetBusinessHoursResult.ResultCode); Console.WriteLine("Message: " + response.GetBusinessHoursResult.Message); Console.ReadKey(); } } } } }
GetBusinessHours Sample Code
using ServiceReference1; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetBusinessHours { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { var request = new GetBusinessHoursRequest() { StartDate = new DateTime(2022, 12, 20), EndDate = new DateTime(2027, 12, 22) }; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetBusinessHoursAsync(request); if (response.Result.ResultCode == 0) { //Loop through collection of LocationOptions objects returned if (response.Result.LocationOptions != null) { Console.WriteLine("---------------------------"); Console.WriteLine("BusinessHours"); foreach (var businessHour in response.Result.LocationOptions.BusinessHours) { Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + businessHour.Id); Console.WriteLine("CloseTime: " + businessHour.CloseTime); Console.WriteLine("DayOfWeek: " + businessHour.DayOfWeek); Console.WriteLine("OpenTime: " + businessHour.OpenTime); } Console.WriteLine("---------------------------"); Console.WriteLine("ExceptionDates"); foreach (var excDate in response.Result.LocationOptions.ExceptionDates) { Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + excDate.Id); Console.WriteLine("Name: " + excDate.Name); Console.WriteLine("CloseTime: " + excDate.CloseTime); Console.WriteLine("Date: " + excDate.Date); Console.WriteLine("IsOpen: " + excDate.IsOpen); Console.WriteLine("OpenTime: " + excDate.OpenTime); } } Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetBusinessHours operation: " + ex.Message); } finally { } } } }
GetBusinessHours Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetBusinessHours> <v2:request> <v2:EndDate>2023-01-01</v2:EndDate> <v2:StartDate>2022-01-01</v2:StartDate> </v2:request> </v2:GetBusinessHours> </soapenv:Body> </soapenv:Envelope>
GetBusinessHours Sample Code
from zeep import Client from zeep.transports import Transport from datetime import datetime import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the MenuId parameter in request body startDate = datetime.today() endDate = datetime.today() reqType = client.get_type('ns1:GetBusinessHoursRequest') req = reqType(StartDate = startDate,EndDate = endDate) count = 1 try: #Make GetBusinessHours call res = service.GetBusinessHours(req) #If call is successful if(res.ResultCode == 0): item = res.LocationOptions print('BusinessHours: ' + str(item.BusinessHours)) print('ExceptionDate: ' + str(item.ExceptionDate)) print('\t-----------------------') count += 1 else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetDestinations Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetDestinations.Settings2ServiceReference; namespace Settings2_GetDestinations { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetDestinations call var response = client.GetDestinations(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Destination objects returned if (response.Collection != null) { foreach (var item in response.Collection) { Console.WriteLine("Destination #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Description: " + item.Description); Console.WriteLine("ValidDeliveryZones:"); //Loop through collection of DestinationDeliveryZone objects returned if (item.ValidDeliveryZones != null) { foreach (var change in item.ValidDeliveryZones) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tSurchargeId: " + change.SurchargeId); Console.WriteLine("\tCoordinates:"); //Loop through collection of DestinationDeliveryZoneCoordinates objects returned if (change.Coordinates != null) { foreach (var compChange in change.Coordinates) { Console.WriteLine("\t\tId: " + compChange.Id); Console.WriteLine("\t\tLatitude: " + compChange.Latitude); Console.WriteLine("\t\tLongitude: " + compChange.Longitude); Console.WriteLine("\t\t------------"); } } Console.WriteLine("\t-----------------------"); } } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetDestinations Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetDestinations { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetDestinationsAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Destination objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("Destination #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Description: " + item.Description); Console.WriteLine("ValidDeliveryZones:"); //Loop through collection of DestinationDeliveryZone objects returned if (item.ValidDeliveryZones != null) { foreach (var change in item.ValidDeliveryZones) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tSurchargeId: " + change.SurchargeId); Console.WriteLine("\tCoordinates:"); //Loop through collection of DestinationDeliveryZoneCoordinates objects returned if (change.Coordinates != null) { foreach (var compChange in change.Coordinates) { Console.WriteLine("\t\tId: " + compChange.Id); Console.WriteLine("\t\tLatitude: " + compChange.Latitude); Console.WriteLine("\t\tLongitude: " + compChange.Longitude); Console.WriteLine("\t\t------------"); } } Console.WriteLine("\t-----------------------"); } Console.WriteLine("ValidPostalCodes:" + item.ValidPostalCodes); Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } } catch (Exception ex) { Console.WriteLine("Error calling GetDestinations operation: " + ex.Message); } finally { } } } }
GetDestinations Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetDestinations/> </soapenv:Body> </soapenv:Envelope>
GetDestinations Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetDestinations call res = service.GetDestinations() #If call is successful if(res.ResultCode == 0): if(res.Collection != None): #Loop through collection of Destination objects returned for item in res.Collection.Destination: print('Destination #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('Description: ' + str(item.Description)) print('AllItems: ' + str(item.AllItems)) print('AutoCloseFutureOrders: ' + str(item.AutoCloseFutureOrders)) print('AutoPrintType: ' + str(item.AutoPrintType)) print('AutoPrintCreditVouchers: ' + str(item.AutoPrintCreditVouchers)) print('AutoPrintPrinterId: ' + str(item.AutoPrintPrinterId)) print('DeliveryMinutes: ' + str(item.DeliveryMinutes)) print('Indicator: ' + str(item.Indicator)) print('IsActive: ' + str(item.IsActive)) print('IsDelivery: ' + str(item.IsDelivery)) print('SuppressBarcode: ' + str(item.SuppressBarcode)) print('TipAndSignatureDialogEnabled: ' + str(item.TipAndSignatureDialogEnabled)) print('ValidPostalCodes: ' + str(item.ValidPostalCodes)) print('ValidDeliveryZone:') if(item.ValidDeliveryZones != None): #Loop through collection of DestinationDeliveryZone objects returned for change in item.ValidDeliveryZones: print('\tId: ' + str(change.Id)) print('\tName: ' + str(change.Name)) print('\tSurchargeId: ' + str(change.SurchargeId)) print('\tCoordinates:') if(change.Coordinates != None): #Loop through collection of DestinationDeliveryZoneCoordinates objects returned for compChange in change.Coordinates: print('\tId: ' + str(compChange.Id)) print('\tLatitude: ' + str(compChange.Latitude)) print('\tLongitude: ' + str(compChange.Longitude)) print('\t-----------------------') print('\t-----------------------') print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetEmployees Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetEmployees.Settings2ServiceReference; namespace Settings2_GetEmployees { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetEmployees call var response= client.GetEmployees(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Employee objects returned foreach (var item in response.Collection) { Console.WriteLine("Employee #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("DisplayName: " + item.DisplayName); Console.WriteLine("Jobs:"); //Loop through collection of EmployeeJob objects returned if (item.Jobs.Length > 0) { foreach (var job in item.Jobs) { Console.WriteLine("\tId: " + job.Id); Console.WriteLine("\tJobId: " + job.JobId); Console.WriteLine("\t------------"); } } Console.WriteLine("PayrollId: " + item.PayrollId); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetEmployees Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetEmployees { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetEmployeesAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Employee objects returned foreach (var item in response.Result.Collection) { Console.WriteLine("Employee #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("DisplayName: " + item.DisplayName); Console.WriteLine("Jobs:"); //Loop through collection of EmployeeJob objects returned if (item.Jobs.Length > 0) { foreach (var job in item.Jobs) { Console.WriteLine("\tId: " + job.Id); Console.WriteLine("\tJobId: " + job.JobId); Console.WriteLine("\t------------"); } } Console.WriteLine("PayrollId: " + item.PayrollId); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); } } } catch (Exception ex) { Console.WriteLine("Error calling GetEmployees operation: " + ex.Message); } finally { } } } }
GetEmployees Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetEmployees/> </soapenv:Body> </soapenv:Envelope>
GetEmployees Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetEmployees call res = service.GetEmployees() #If call is successful if (res.ResultCode == 0): #Loop through collection of Employee objects returned for item in res.Collection.Employee: print('Employee # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('DisplayName: ' + item.DisplayName) if(item.Jobs != None): print('Jobs:') #Loop through collection of EmployeeJob objects returned for job in item.Jobs.EmployeeJob: print('\tId: ' + str(job.Id)) print('\tJobId: ' + str(job.JobId)) print('\t------------') else: print('Jobs: None') print('PayrollId: ' + str(item.PayrollId)) print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetFutureOrderingOptions Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetFutureOrderingOptions.Settings2ServiceReference; namespace Settings2_GetFutureOrderingOptions { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetFutureOrderingOptions call var response = client.GetFutureOrderingOptions(); //If call is successful if (response.ResultCode == 0) { var item = response.FutureOrderingOptions; Console.WriteLine("AllowFutureDateOrdering: " + item.AllowFutureDateOrdering); Console.WriteLine("MinimumLeadMinutes: " + item.MinimumLeadMinutes); Console.WriteLine("MinimumPrepMinutes: " + item.MinimumPrepMinutes); Console.WriteLine("---------------------------"); Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetFutureOrderingOptions Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetFutureOrderingOptions { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetFutureOrderingOptionsAsync(); //If call is successful if (response.Result.ResultCode == 0) { var item = response.Result.FutureOrderingOptions; Console.WriteLine("AllowFutureDateOrdering: " + item.AllowFutureDateOrdering); Console.WriteLine("MinimumLeadMinutes: " + item.MinimumLeadMinutes); Console.WriteLine("MinimumPrepMinutes: " + item.MinimumPrepMinutes); Console.WriteLine("---------------------------"); Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetFutureOrderingOptions operation: " + ex.Message); } finally { } } } }
GetFutureOrderingOptions Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetFutureOrderingOptions/> </soapenv:Body> </soapenv:Envelope>
GetFutureOrderingOptions Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) try: #Make GetFutureOrderingOptions call res = service.GetFutureOrderingOptions() if(res.ResultCode == 0): item = res.FutureOrderingOptions print('AllowFutureDateOrdering: ' + str(item.AllowFutureDateOrdering)) print('MinimumLeadMinutes: ' + str(item.MinimumLeadMinutes)) print('MinimumPrepMinutes: ' + str(item.MinimumPrepMinutes)) print('---------------------------') print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetItems Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetItems.Settings2ServiceReference; namespace Settings2_GetItems { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); var request = new GetItemsRequest1(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetItems call var response = client.GetItems(request); //If call is successful if (response.GetItemsResult.ResultCode == 0) { //Loop through collection of Item objects returned if (response.GetItemsResult.Collection != null) { foreach (var item in response.GetItemsResult.Collection) { Console.WriteLine("Item #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("AllowAutoCombo: " + item.AllowAutoCombo); Console.WriteLine("AlternateId: " + item.AlternateId); Console.WriteLine("AlternateKitchenName: " + item.AlternateKitchenName); Console.WriteLine("AskName: " + item.AskName); Console.WriteLine("AskPrice: " + item.AskPrice); Console.WriteLine("BlinkInKitchen: " + item.BlinkInKitchen); Console.WriteLine("ClearsAllOtherModifiers: " + item.ClearsAllOtherModifiers); Console.WriteLine("Cost: " + item.Cost); Console.WriteLine("DaysAvailable: " + item.DaysAvailable); Console.WriteLine("ItemGroups: " + item.ItemGroups); Console.WriteLine("ModifierTierId: " + item.ModifierTierId); Console.WriteLine("Price: " + item.Price); Console.WriteLine("PricePer: " + item.PricePer); Console.WriteLine("PrinterGroupId: " + item.PrinterGroupId); Console.WriteLine("RevenueCenterId: " + item.RevenueCenterId); Console.WriteLine("Skus: " + item.Skus); Console.WriteLine("SortPriority: " + item.SortPriority); Console.WriteLine("TareId: " + item.TareId); Console.WriteLine("Taxes: " + item.Taxes); Console.WriteLine("Type: " + item.Type); Console.WriteLine("UnitName: " + item.UnitName); Console.WriteLine("UnitPrecision: " + item.UnitPrecision); Console.WriteLine("VideoGroupId: " + item.VideoGroupId); Console.WriteLine("Components:"); //Loop through collection of ItemCompositeComponent objects returned if (item.Components != null) { foreach (var change in item.Components) { Console.WriteLine("ItemCompositeComponent: "); Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tItemGroupId: " + change.ItemGroupId); Console.WriteLine("\tOverridePrice: " + change.OverridePrice); Console.WriteLine("\tPrice: " + change.Price); Console.WriteLine("\tRollupPrice: " + change.RollupPrice); Console.WriteLine("\tItems:"); //Loop through collection of ItemCompositeComponentItem objects returned if (change.Items != null) { foreach (var compChange in change.Items) { Console.WriteLine("ItemCompositeComponentItem: "); Console.WriteLine("\t\tId: " + compChange.Id); Console.WriteLine("\t\tIsDefault: " + compChange.IsDefault); Console.WriteLine("\t\tItemId: " + compChange.ItemId); Console.WriteLine("\t\tOverridePrice: " + compChange.OverridePrice); Console.WriteLine("\t\tPrice: " + compChange.Price); Console.WriteLine("\t\t------------"); } } Console.WriteLine("\t-----------------------"); } } count++; } } Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + response.GetItemsResult.ResultCode); Console.WriteLine("Message: " + response.GetItemsResult.Message); Console.ReadKey(); } } } } }
GetItems Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetItems { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var request = new GetItemsRequest(); var response = client.GetItemsAsync(request); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Item objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("Item #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("AllowAutoCombo: " + item.AllowAutoCombo); Console.WriteLine("AlternateId: " + item.AlternateId); Console.WriteLine("AlternateKitchenName: " + item.AlternateKitchenName); Console.WriteLine("AskName: " + item.AskName); Console.WriteLine("AskPrice: " + item.AskPrice); Console.WriteLine("BlinkInKitchen: " + item.BlinkInKitchen); Console.WriteLine("ClearsAllOtherModifiers: " + item.ClearsAllOtherModifiers); Console.WriteLine("Cost: " + item.Cost); Console.WriteLine("DaysAvailable: " + item.DaysAvailable); Console.WriteLine("ItemGroups: " + item.ItemGroups); Console.WriteLine("ModifierTierId: " + item.ModifierTierId); Console.WriteLine("Price: " + item.Price); Console.WriteLine("PricePer: " + item.PricePer); Console.WriteLine("PrinterGroupId: " + item.PrinterGroupId); Console.WriteLine("RevenueCenterId: " + item.RevenueCenterId); Console.WriteLine("Skus: " + item.Skus); Console.WriteLine("SortPriority: " + item.SortPriority); Console.WriteLine("TareId: " + item.TareId); Console.WriteLine("Taxes: " + item.Taxes); Console.WriteLine("Type: " + item.Type); Console.WriteLine("UnitName: " + item.UnitName); Console.WriteLine("UnitPrecision: " + item.UnitPrecision); Console.WriteLine("VideoGroupId: " + item.VideoGroupId); Console.WriteLine("Components:"); //Loop through collection of ItemCompositeComponent objects returned if (item.Components != null) { foreach (var change in item.Components) { Console.WriteLine("ItemCompositeComponent: "); Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tItemGroupId: " + change.ItemGroupId); Console.WriteLine("\tOverridePrice: " + change.OverridePrice); Console.WriteLine("\tPrice: " + change.Price); Console.WriteLine("\tRollupPrice: " + change.RollupPrice); Console.WriteLine("\tItems:"); //Loop through collection of ItemCompositeComponentItem objects returned if (change.Items != null) { foreach (var compChange in change.Items) { Console.WriteLine("ItemCompositeComponentItem: "); Console.WriteLine("\t\tId: " + compChange.Id); Console.WriteLine("\t\tIsDefault: " + compChange.IsDefault); Console.WriteLine("\t\tItemId: " + compChange.ItemId); Console.WriteLine("\t\tOverridePrice: " + compChange.OverridePrice); Console.WriteLine("\t\tPrice: " + compChange.Price); Console.WriteLine("\t\t------------"); } } Console.WriteLine("\t-----------------------"); } } count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } catch (Exception ex) { Console.WriteLine("Error calling GetItems operation: " + ex.Message); } finally { } } } }
GetItems Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:GetItems><!--Optional:--> <v2:request> <!--Optional:--> <v2:ItemIds> <!--Zero or more repetitions:--> <arr:int>101</arr:int> </v2:ItemIds> </v2:request> </v2:GetItems> </soapenv:Body> </soapenv:Envelope>
GetItems Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetItems call res = service.GetItems() #If call is successful if(res.ResultCode == 0): if(res.Collection != None): #Loop through collection of Item objects returned for item in res.Collection.Item: print('Item #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('AllowAutoCombo: ' + str(item.AllowAutoCombo)) print('AlternateId: ' + str(item.AlternateId)) print('AlternateKitchenName: ' + str(item.AlternateKitchenName)) print('AskName: ' + str(item.AskName)) print('AskPrice: ' + str(item.AskPrice)) print('Description: ' + str(item.Description)) print('DiscountId: ' + str(item.DiscountId)) print('IsActive: ' + str(item.IsActive)) print('IsQuantityCounted: ' + str(item.IsQuantityCounted)) print('ItemGroups: ' + str(item.ItemGroups)) print('ModifierTierId: ' + str(item.ModifierTierId)) print('ModifierWeight: ' + str(item.ModifierWeight)) print('Plu: ' + str(item.Plu)) print('Price: ' + str(item.Price)) print('VideoGroupId: ' + str(item.VideoGroupId)) print('Components:') if(item.Components != None): #Loop through collection of ItemCompositeComponent objects returned for change in item.Components: print('\tId: ' + str(change.Id)) print('\tName: ' + str(change.Name)) print('\tItemGroupId: ' + str(change.ItemGroupId)) print('\tOverridePrice: ' + str(change.OverridePrice)) print('\tPrice: ' + str(change.Price)) print('\tRollupPrice: ' + str(change.RollupPrice)) print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetJobs Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetJobs.Settings2ServiceReference; namespace Settings2_GetJobs { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"AccessToken"; //Make GetJobs call var response = client.GetJobs(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Job objects returned foreach (var item in response.Collection) { Console.WriteLine("Job #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetJobs Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetJobs { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetJobsAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Job objects returned foreach (var item in response.Result.Collection) { Console.WriteLine("Job #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetJobs operation: " + ex.Message); } finally { } } } }
GetJobs Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetJobs/> </soapenv:Body> </soapenv:Envelope>
GetJobs Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetJobs call res = service.GetJobs() #If call is successful if(res.ResultCode == 0): #Loop through collection of Job objects returned for item in res.Collection.Job: print('Job # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetKitchenQueues Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetKitchenQueues.Settings2ServiceReference; namespace Settings2_GetKitchenQueues { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetKitchenQueues call var response = client.GetKitchenQueues(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of KitchenQueue objects returned foreach (var item in response.Collection) { Console.WriteLine("KitchenQueue #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + reply.ResultCode); Console.WriteLine("Message: " + reply.Message); Console.ReadKey(); } } } } }
GetKitchenQueues Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetKitchenQueues { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetKitchenQueuesAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of KitchenQueue objects returned foreach (var item in response.Result.Collection) { Console.WriteLine("KitchenQueue #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetKitchenQueues operation: " + ex.Message); } finally { } } } }
GetKitchenQueues Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetKitchenQueues/> </soapenv:Body> </soapenv:Envelope>
GetKitchenQueues Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetKitchenQueues call res = service.GetKitchenQueues() #If call is successful if (res.ResultCode == 0): #Loop through collection of KitchenQueue objects returned for item in res.Collection.KitchenQueue: print('KitchenQueue # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetLastModifiedTime Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetLastModifiedTime.Settings2ServiceReference; namespace Settings2_GetLastModifiedTime { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetLastModifiedTime call var response = client.GetLastModifiedTime(); //If call is successful if (response.ResultCode == 0) { Console.WriteLine("EmployeesOnlyLastModifiedTime: " + response.EmployeesOnlyLastModifiedTime); Console.WriteLine("SettingsLastModified: " + response.SettingsLastModified); Console.WriteLine("SettingsOnlyLastModifiedTime: " + response.SettingsOnlyLastModifiedTime); Console.WriteLine("---------------------------"); Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + response.ResultCode); Console.WriteLine("Message: " + response.Message); Console.ReadKey(); } } } } }
GetLastModifiedTime Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetLastModifiedTime { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetLastModifiedTimeAsync(); //If call is successful if (response.Result.ResultCode == 0) { Console.WriteLine("EmployeesOnlyLastModifiedTime: " + response.Result.EmployeesOnlyLastModifiedTime); Console.WriteLine("SettingsLastModified: " + response.Result.SettingsLastModified); Console.WriteLine("SettingsOnlyLastModifiedTime: " + response.Result.SettingsOnlyLastModifiedTime); Console.WriteLine("---------------------------"); Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetLastModifiedTime operation: " + ex.Message); } finally { } } } }
GetLastModifiedTime Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetLastModifiedTime/> </soapenv:Body> </soapenv:Envelope>
GetLastModifiedTime Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) try: #Make GetLastModifiedTime call res = service.GetLastModifiedTime() #If call is successful if (res.ResultCode == 0): print('EmployeesOnlyLastModifiedTime:') print('\tDateTime: ' + str(res.EmployeesOnlyLastModifiedTime.DateTime)) print('\tOffsetMinutes: ' + str(res.EmployeesOnlyLastModifiedTime.OffsetMinutes)) print('\nSettingsLastModified:') print('\tDateTime: ' + str(res.SettingsLastModified.DateTime)) print('\tOffsetMinutes: ' + str(res.SettingsLastModified.OffsetMinutes)) print('\nSettingsOnlyLastModifiedTime:') print('\tDateTime: ' + str(res.SettingsOnlyLastModifiedTime.DateTime)) print('\tOffsetMinutes: ' + str(res.SettingsOnlyLastModifiedTime.OffsetMinutes)) print('---------------------------') print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetMenu Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetMenu.Settings2ServiceReference; namespace Settings2_GetMenu { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; int menuId = 1; //Include the MenuId parameter in request body var request = new GetMenuRequest() { MenuId = menuId, }; //Make GetMenu call var response = client.GetMenu(request); //If call is successful if (response.ResultCode == 0) { var item = response.Menu; Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Categories:"); //Loop through collection of MenuCategory objects returned if (item.Categories != null) { foreach (var category in item.Categories) { Console.WriteLine("\tCategory #" + count); Console.WriteLine("\t-----------------------"); Console.WriteLine("\tId: " + category.Id); Console.WriteLine("\tItems:"); //Loop through collection of MenuItem objects returned if (category.Items != null) { foreach (var menuItem in category.Items) { Console.WriteLine("\t\tId: " + menuItem.Id); Console.WriteLine("\t\t------------"); } } Console.WriteLine("\t-----------------------"); count++; } } Console.WriteLine("---------------------------"); Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetMenu Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetMenu { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var request = new GetMenuRequest() { MenuId = 1, }; //Make GetMenu call var response = client.GetMenuAsync(request); //If call is successful if (response.Result.ResultCode == 0) { var item = response.Result.Menu; Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Categories:"); //Loop through collection of MenuCategory objects returned if (item.Categories != null) { foreach (var category in item.Categories) { Console.WriteLine("\tCategory #" + count); Console.WriteLine("\t-----------------------"); Console.WriteLine("\tId: " + category.Id); Console.WriteLine("\tItems:"); //Loop through collection of MenuItem objects returned if (category.Items != null) { foreach (var menuItem in category.Items) { Console.WriteLine("\t\tId: " + menuItem.Id); Console.WriteLine("\t\t------------"); } } Console.WriteLine("\t-----------------------"); count++; } } Console.WriteLine("---------------------------"); Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetMenu operation: " + ex.Message); } finally { } } } }
GetMenu Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetMenu> <v2:request> <v2:MenuId>1</v2:MenuId> </v2:request> </v2:GetMenu> </soapenv:Body> </soapenv:Envelope>
GetMenu Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the MenuId parameter in request body menuId = 1 reqType = client.get_type('ns1:GetMenuRequest') req = reqType(MenuId = menuId) count = 1 try: #Make GetMenu call res = service.GetMenu(req) #If call is successful if(res.ResultCode == 0): item = res.Menu print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) if(item.Categories != None): print('Categories:') #Loop through collection of MenuCategory objects returned for category in item.Categories.MenuCategory: print('\tCategory #' + str(count)) print('\t-----------------------') print('\tId: ' + str(category.Id)) if(category.Items != None): print('\tItems:') #Loop through collection of MenuItem objects returned for menuItem in category.Items.MenuItem: print('\t\tId: ' + str(menuItem.Id)) print('\t\t------------') else: print('Items: None') print('\t-----------------------') count += 1 else: print('Categories: None') print('---------------------------') print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetOnlineOrderingMenuOptions Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetOnlineOrderingMenuOptions.Settings2ServiceReference; namespace Settings2_GetOnlineOrderingMenuOptions { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetOnlineOrderingMenuOptions call var response = client.GetOnlineOrderingMenuOptions(); //If call is successful if (response.ResultCode == 0) { Console.WriteLine("OnlineOrderingMenuId: " + response.OnlineOrderingMenuId); Console.WriteLine("---------------------------"); Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetOnlineOrderingMenuOptions Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetOnlineOrderingMenuOptions { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetOnlineOrderingMenuOptionsAsync(); //If call is successful if (response.Result.ResultCode == 0) { Console.WriteLine("OnlineOrderingMenuId: " + response.Result.OnlineOrderingMenuId); Console.WriteLine("---------------------------"); Console.WriteLine("AlternateMenus:"); //Loop through collection of AlternateMenu objects returned if (response.Result.AlternateMenus != null) { foreach (var menu in response.Result.AlternateMenus) { Console.WriteLine("\tAlternateMenu #" + count); Console.WriteLine("\t------------"); Console.WriteLine("\tId: " + menu.Id); Console.WriteLine("\tDays: " + menu.Days); Console.WriteLine("\tEndTime: " + menu.EndTime); Console.WriteLine("\tMenuId: " + menu.MenuId); Console.WriteLine("\tStartTime: " + menu.StartTime); Console.WriteLine("\tTimeType: " + menu.TimeType); Console.WriteLine("\t------------"); count++; } } Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetOnlineOrderingMenuOptions operation: " + ex.Message); } finally { } } } }
GetOnlineOrderingMenuOptions Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetOnlineOrderingMenuOptions/> </soapenv:Body> </soapenv:Envelope>
GetOnlineOrderingMenuOptions Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) try: #Make GetOnlineOrderingMenuOptions call res = service.GetOnlineOrderingMenuOptions() #If call is successful if(res.ResultCode == 0): print('OnlineOrderingMenuId: ' + str(res.OnlineOrderingMenuId)) print('---------------------------') print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetPermissions Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetPermissions.Settings2ServiceReference; namespace Settings2_GetPermissions { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetPermissions call var response = client.GetPermissions(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Permission objects returned if (response.Collection != null) { foreach (var item in response.Collection) { Console.WriteLine("Permission #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + response.ResultCode); Console.WriteLine("Message: " + response.Message); Console.ReadKey(); } } } } }
GetPermissions Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetPermissions { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetPermissionsAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Permission objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("Permission #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetPermissions operation: " + ex.Message); } finally { } } } }
GetPermissions Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetPermissions/> </soapenv:Body> </soapenv:Envelope>
GetPermissions Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetPermissions call res = service.GetPermissions() #If call is successful if (res.ResultCode == 0): #Loop through collection of Permission objects returned for item in res.Collection.Permission: print('Permission # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('IsActive: ' + str(item.IsActive)) print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetPriceChanges Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetPriceChanges.Settings2ServiceReference; namespace Settings2_GetPriceChanges { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetPriceChanges call var response = client.GetPriceChanges(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of PriceChange objects returned if (response.Collection != null) { foreach (var item in response.Collection) { Console.WriteLine("PriceChange #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("ItemPriceChanges:"); //Loop through collection of ItemPriceChange objects returned if (item.ItemPriceChanges != null) { foreach (var change in item.ItemPriceChanges) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tItemId: " + change.ItemId); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tOriginalPrice: " + change.OriginalPrice); Console.WriteLine("\tPrice: " + change.Price); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetPriceChanges Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetPriceChanges { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetPriceChangesAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of PriceChange objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("PriceChange #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("ItemPriceChanges:"); //Loop through collection of ItemPriceChange objects returned if (item.ItemPriceChanges != null) { foreach (var change in item.ItemPriceChanges) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tItemId: " + change.ItemId); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tOriginalPrice: " + change.OriginalPrice); Console.WriteLine("\tPrice: " + change.Price); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } catch (Exception ex) { Console.WriteLine("Error calling GetPriceChanges operation: " + ex.Message); } finally { } } } }
GetPriceChanges Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetPriceChanges/> </soapenv:Body> </soapenv:Envelope>
GetPriceChanges Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetPriceChanges call res = service.GetPriceChanges() #If call is successful if(res.ResultCode == 0): if(res.Collection != None): #Loop through collection of PriceChange objects returned for item in res.Collection.PriceChange: print('PriceChange #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) if(item.ItemPriceChanges != None): print('ItemPriceChanges:') #Loop through collection of ItemPriceChange objects returned for change in item.ItemPriceChanges.ItemPriceChange: print('\tId: ' + str(change.Id)) print('\tItemId: ' + str(change.ItemId)) print('\tName: ' + str(change.Name)) print('\tOriginalPrice: ' + str(change.OriginalPrice)) print('\tPrice: ' + str(change.Price)) print('\t-----------------------') else: print('ItemPriceChanges: None') print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetSecurityLevels Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetSecurityLevels.Settings2ServiceReference; namespace Settings2_GetSecurityLevels { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetSecurityLevels call var response = client.GetSecurityLevels(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of SecurityLevel objects returned if (response.Collection != null) { foreach (var item in response.Collection) { Console.WriteLine("SecurityLevel #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Permissions:"); //Loop through collection of Permission objects returned if (item.Permissions != null) { foreach (var permission in item.Permissions) { Console.WriteLine("\tId: " + permission.Id); Console.WriteLine("\tPermissionId: " + permission.PermissionId); Console.WriteLine("\t------------"); } } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetSecurityLevels Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetSecurityLevels { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetSecurityLevelsAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of SecurityLevel objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("SecurityLevel #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Permissions:"); //Loop through collection of Permission objects returned if (item.Permissions != null) { foreach (var permission in item.Permissions) { Console.WriteLine("\tId: " + permission.Id); Console.WriteLine("\tPermissionId: " + permission.PermissionId); Console.WriteLine("\t------------"); } } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetSecurityLevels operation: " + ex.Message); } finally { } } } }
GetSecurityLevels Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetSecurityLevels/> </soapenv:Body> </soapenv:Envelope>
GetSecurityLevels Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetSecurityLevels call res = service.GetSecurityLevels() #If call is successful if (res.ResultCode == 0): if(res.Collection != None): #Loop through collection of SecurityLevel objects returned for item in res.Collection.SecurityLevel: print('SecurityLevel #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) if(item.Permissions != None): print('Permissions:') #Loop through collection of SecurityLevelPermission objects returned for permission in item.Permissions.SecurityLevelPermission: print('\tId: ' + str(permission.Id)) print('\tPermissionId: ' + str(permission.PermissionId)) print('\t------------') else: print('Permissions: None') print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetSettings Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Settings2_GetSettings.Settings2ServiceReference; using System.ServiceModel.Web; using System.ServiceModel; namespace Settings2_GetSettings { class Program { static void PrintEmployees(Employee[] employees) { int count = 1; //Loop through collection of Employee objects returned foreach (var item in employees) { Console.WriteLine("Employee #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("DisplayName: " + item.DisplayName); Console.WriteLine("Jobs:"); //Loop through collection of EmployeeJob objects returned if (item.Jobs.Length > 0) { foreach (var job in item.Jobs) { Console.WriteLine("\tId: " + job.Id); Console.WriteLine("\tJobId: " + job.JobId); Console.WriteLine("\t------------"); } } Console.WriteLine("PayrollId: " + item.PayrollId); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Employees End"); } static void PrintJobs(Job[] jobs) { int count = 1; //Loop through collection of Job objects returned foreach (var item in jobs) { Console.WriteLine("Job #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Jobs End"); } static void PrintPermissions(Permission[] permissions) { int count = 1; //Loop through collection of Permission objects returned foreach (var item in permissions) { Console.WriteLine("Permission #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Permissions End"); } static void PrintSecurityLevels(SecurityLevel[] securityLevels) { int count = 1; //Loop through collection of SecurityLevel objects returned foreach (var item in securityLevels) { Console.WriteLine("SecurityLevel #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Permissions:"); //Loop through collection of Permission objects returned if (item.Permissions != null) { foreach (var permission in item.Permissions) { Console.WriteLine("\tId: " + permission.Id); Console.WriteLine("\tPermissionId: " + permission.PermissionId); Console.WriteLine("\t------------"); } } Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Security Levels End"); } static void PrintKitchenQueues(KitchenQueue[] kitchenQueues) { int count = 1; //Loop through collection of KitchenQueue objects returned foreach (var item in kitchenQueues) { Console.WriteLine("KitchenQueue #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); } static void PrintFutureOrderingOptions(FutureOrderingOptions futureOrderingOptions) { Console.WriteLine("AllowFutureDateOrdering: " + futureOrderingOptions.AllowFutureDateOrdering); Console.WriteLine("MinimumLeadMinutes: " + futureOrderingOptions.MinimumLeadMinutes); Console.WriteLine("MinimumPrepMinutes: " + futureOrderingOptions.MinimumPrepMinutes); Console.WriteLine("---------------------------"); Console.WriteLine("Future Ordering Options End"); } static void PrintMenu(Menu item) { int count = 1; Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Categories:"); //Loop through collection of MenuCategory objects returned if (item.Categories != null) { foreach (var category in item.Categories) { Console.WriteLine("\tCategory #" + count); Console.WriteLine("\t-----------------------"); Console.WriteLine("\tId: " + category.Id); //Loop through collection of MenuItem objects returned if (category.Items != null) { Console.WriteLine("\tItems:"); foreach (var menuItem in category.Items) { Console.WriteLine("\t\tId: " + menuItem.Id); if (menuItem.ModifierGroups != null) { Console.WriteLine("\t\tModifierGroups:"); //Loop through collection of MenuItemModifierGroup objects returned foreach (var menuItemModifierGroup in menuItem.ModifierGroups) { Console.WriteLine("\t\t\tId: " + menuItemModifierGroup.Id); Console.WriteLine("\t\t\tModifierGroupId: " + menuItemModifierGroup.ModifierGroupId); } } else { Console.WriteLine("\t\tModifierGroups: None"); } Console.WriteLine("\t\t------------"); } } else { Console.WriteLine("\tItems: None"); } Console.WriteLine("\t-----------------------"); count++; } } else { Console.WriteLine("Category: None"); } Console.WriteLine("---------------------------"); Console.WriteLine($"Menu {item.Name} End"); } static void PrintOnlineOrderingMenuOptions(OnlineOrderingMenuOptions onlineOrderingMenuOptions) { Console.WriteLine("OnlineOrderingMenuId: " + onlineOrderingMenuOptions.OnlineOrderingMenuId); Console.WriteLine("---------------------------"); Console.WriteLine("Online Ordering Menu Options End"); } static void PrintPriceChanges(PriceChange[] priceChanges) { int count = 1; //Loop through collection of PriceChange objects returned foreach (var item in priceChanges) { Console.WriteLine("PriceChange #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("ItemPriceChanges:"); //Loop through collection of ItemPriceChange objects returned if (item.ItemPriceChanges != null) { foreach (var change in item.ItemPriceChanges) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tItemId: " + change.ItemId); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tOriginalPrice: " + change.OriginalPrice); Console.WriteLine("\tPrice: " + change.Price); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Price Changes End"); } static void PrintPromotions(Promotion[] promotions) { int count = 1; //Loop through collection of Promotion objects returned foreach (var item in promotions) { Console.WriteLine("Promotion #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("BarCode: " + item.BarCode); Console.WriteLine("Code: " + item.Code); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("IsCodeRequired: " + item.IsCodeRequired); Console.WriteLine("RequireSingleUseCode: " + item.RequireSingleUseCode); Console.WriteLine("Type: " + item.Type); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Promotions End"); } static void PrintTables(Table[] tables) { int count = 1; //Loop through collection of Table objects returned foreach (var item in tables) { Console.WriteLine("Table #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Capacity: " + item.Capacity); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Tables End"); } static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; var request = new GetSettingsRequest() { DataTypes = new DataType[] { DataType.Employee, DataType.Job, DataType.Permission, DataType.SecurityLevel, DataType.KitchenQueue, DataType.FutureOrderingOptions, DataType.Menu, DataType.OnlineOrderingMenuOptions, DataType.PriceChange, DataType.Promotion, DataType.Table } }; //Make GetSettings call var response = client.GetSettings(request); //If call is successful if (response.ResultCode == 0) { var employees = response.Settings.Employees; var jobs = response.Settings.Jobs; var permissions = response.Settings.Permissions; var securityLevels = response.Settings.SecurityLevels; var kitchenQueues = response.Settings.KitchenQueues; var futureOrderingOptions = response.Settings.FutureOrderingOptions; var menus = response.Settings.Menus; var onlineOrderingMenuOptions = response.Settings.OnlineOrderingMenuOptions; var priceChanges = response.Settings.PriceChanges; var promotions = response.Settings.Promotions; var tables = response.Settings.Tables; if (employees != null) { Console.WriteLine("Employees:"); PrintEmployees(employees); } else { Console.WriteLine("Employees: None"); } if (jobs != null) { Console.WriteLine("Jobs:"); PrintJobs(jobs); } else { Console.WriteLine("Jobs: None"); } if (permissions != null) { Console.WriteLine("Permissions:"); PrintPermissions(permissions); } else { Console.WriteLine("Permissions: None"); } if (securityLevels != null) { Console.WriteLine("Security Levels:"); PrintSecurityLevels(securityLevels); } else { Console.WriteLine("Security Levels: None"); } if (kitchenQueues != null) { Console.WriteLine("Kitchen Queues:"); PrintKitchenQueues(kitchenQueues); } else { Console.WriteLine("Kitchen Queues: None"); } if (futureOrderingOptions != null) { Console.WriteLine("Future Ordering Options:"); PrintFutureOrderingOptions(futureOrderingOptions); } else { Console.WriteLine("Future Ordering Options: None"); } if (menus != null) { Console.WriteLine("Menus:"); foreach (var menu in menus) { Console.WriteLine($"Menu {menu.Name}: "); PrintMenu(menu); } Console.WriteLine("Menus End"); } else { Console.WriteLine("Menus: None"); } if (onlineOrderingMenuOptions != null) { Console.WriteLine("Online Ordering Menu Options:"); PrintOnlineOrderingMenuOptions(onlineOrderingMenuOptions); } else { Console.WriteLine("Online Ordering Menu Options: None"); } if(priceChanges != null) { Console.WriteLine("Price Changes:"); PrintPriceChanges(priceChanges); } else { Console.WriteLine("Price Changes: None"); } if (promotions != null) { Console.WriteLine("Promotions:"); PrintPromotions(promotions); } else { Console.WriteLine("Promotions: None"); } if (tables != null) { Console.WriteLine("Tables:"); PrintTables(tables); } else { Console.WriteLine("Tables: None"); } } } Console.ReadKey(); } } }
GetSettings Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetSettings { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void PrintEmployees(Employee[] employees) { int count = 1; //Loop through collection of Employee objects returned foreach (var item in employees) { Console.WriteLine("Employee #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("DisplayName: " + item.DisplayName); Console.WriteLine("Jobs:"); //Loop through collection of EmployeeJob objects returned if (item.Jobs.Length > 0) { foreach (var job in item.Jobs) { Console.WriteLine("\tId: " + job.Id); Console.WriteLine("\tJobId: " + job.JobId); Console.WriteLine("\t------------"); } } Console.WriteLine("PayrollId: " + item.PayrollId); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Employees End"); } static void PrintJobs(Job[] jobs) { int count = 1; //Loop through collection of Job objects returned foreach (var item in jobs) { Console.WriteLine("Job #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Jobs End"); } static void PrintPermissions(Permission[] permissions) { int count = 1; //Loop through collection of Permission objects returned foreach (var item in permissions) { Console.WriteLine("Permission #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Permissions End"); } static void PrintSecurityLevels(SecurityLevel[] securityLevels) { int count = 1; //Loop through collection of SecurityLevel objects returned foreach (var item in securityLevels) { Console.WriteLine("SecurityLevel #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Permissions:"); //Loop through collection of Permission objects returned if (item.Permissions != null) { foreach (var permission in item.Permissions) { Console.WriteLine("\tId: " + permission.Id); Console.WriteLine("\tPermissionId: " + permission.PermissionId); Console.WriteLine("\t------------"); } } Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Security Levels End"); } static void PrintKitchenQueues(KitchenQueue[] kitchenQueues) { int count = 1; //Loop through collection of KitchenQueue objects returned foreach (var item in kitchenQueues) { Console.WriteLine("KitchenQueue #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); } static void PrintFutureOrderingOptions(FutureOrderingOptions futureOrderingOptions) { Console.WriteLine("AllowFutureDateOrdering: " + futureOrderingOptions.AllowFutureDateOrdering); Console.WriteLine("MinimumLeadMinutes: " + futureOrderingOptions.MinimumLeadMinutes); Console.WriteLine("MinimumPrepMinutes: " + futureOrderingOptions.MinimumPrepMinutes); Console.WriteLine("---------------------------"); Console.WriteLine("Future Ordering Options End"); } static void PrintMenu(Menu item) { int count = 1; Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Categories:"); //Loop through collection of MenuCategory objects returned if (item.Categories != null) { foreach (var category in item.Categories) { Console.WriteLine("\tCategory #" + count); Console.WriteLine("\t-----------------------"); Console.WriteLine("\tId: " + category.Id); //Loop through collection of MenuItem objects returned if (category.Items != null) { Console.WriteLine("\tItems:"); foreach (var menuItem in category.Items) { Console.WriteLine("\t\tId: " + menuItem.Id); if (menuItem.ModifierGroups != null) { Console.WriteLine("\t\tModifierGroups:"); //Loop through collection of MenuItemModifierGroup objects returned foreach (var menuItemModifierGroup in menuItem.ModifierGroups) { Console.WriteLine("\t\t\tId: " + menuItemModifierGroup.Id); Console.WriteLine("\t\t\tModifierGroupId: " + menuItemModifierGroup.ModifierGroupId); } } else { Console.WriteLine("\t\tModifierGroups: None"); } Console.WriteLine("\t\t------------"); } } else { Console.WriteLine("\tItems: None"); } Console.WriteLine("\t-----------------------"); count++; } } else { Console.WriteLine("Category: None"); } Console.WriteLine("---------------------------"); Console.WriteLine($"Menu {item.Name} End"); } static void PrintOnlineOrderingMenuOptions(OnlineOrderingMenuOptions onlineOrderingMenuOptions) { Console.WriteLine("OnlineOrderingMenuId: " + onlineOrderingMenuOptions.OnlineOrderingMenuId); Console.WriteLine("---------------------------"); Console.WriteLine("Online Ordering Menu Options End"); } static void PrintPriceChanges(PriceChange[] priceChanges) { int count = 1; //Loop through collection of PriceChange objects returned foreach (var item in priceChanges) { Console.WriteLine("PriceChange #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("ItemPriceChanges:"); //Loop through collection of ItemPriceChange objects returned if (item.ItemPriceChanges != null) { foreach (var change in item.ItemPriceChanges) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tItemId: " + change.ItemId); Console.WriteLine("\tName: " + change.Name); Console.WriteLine("\tOriginalPrice: " + change.OriginalPrice); Console.WriteLine("\tPrice: " + change.Price); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Price Changes End"); } static void PrintPromotions(Promotion[] promotions) { int count = 1; //Loop through collection of Promotion objects returned foreach (var item in promotions) { Console.WriteLine("Promotion #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("BarCode: " + item.BarCode); Console.WriteLine("Code: " + item.Code); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("IsCodeRequired: " + item.IsCodeRequired); Console.WriteLine("RequireSingleUseCode: " + item.RequireSingleUseCode); Console.WriteLine("Type: " + item.Type); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Promotions End"); } static void PrintTables(Table[] tables) { int count = 1; //Loop through collection of Table objects returned foreach (var item in tables) { Console.WriteLine("Table #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Capacity: " + item.Capacity); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("Tables End"); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var request = new GetSettingsRequest() { DataTypes = new DataType[] { DataType.Employee, DataType.Job, DataType.Permission, DataType.SecurityLevel, DataType.KitchenQueue, DataType.FutureOrderingOptions, DataType.Menu, DataType.OnlineOrderingMenuOptions, DataType.PriceChange, DataType.Promotion, DataType.Table } }; //Make GetSettings call var response = client.GetSettingsAsync(request); //If call is successful if (response.Result.ResultCode == 0) { var employees = response.Result.Settings.Employees; var jobs = response.Result.Settings.Jobs; var permissions = response.Result.Settings.Permissions; var securityLevels = response.Result.Settings.SecurityLevels; var kitchenQueues = response.Result.Settings.KitchenQueues; var futureOrderingOptions = response.Result.Settings.FutureOrderingOptions; var menus = response.Result.Settings.Menus; var onlineOrderingMenuOptions = response.Result.Settings.OnlineOrderingMenuOptions; var priceChanges = response.Result.Settings.PriceChanges; var promotions = response.Result.Settings.Promotions; var tables = response.Result.Settings.Tables; if (employees != null) { Console.WriteLine("Employees:"); PrintEmployees(employees); } else { Console.WriteLine("Employees: None"); } if (jobs != null) { Console.WriteLine("Jobs:"); PrintJobs(jobs); } else { Console.WriteLine("Jobs: None"); } if (permissions != null) { Console.WriteLine("Permissions:"); PrintPermissions(permissions); } else { Console.WriteLine("Permissions: None"); } if (securityLevels != null) { Console.WriteLine("Security Levels:"); PrintSecurityLevels(securityLevels); } else { Console.WriteLine("Security Levels: None"); } if (kitchenQueues != null) { Console.WriteLine("Kitchen Queues:"); PrintKitchenQueues(kitchenQueues); } else { Console.WriteLine("Kitchen Queues: None"); } if (futureOrderingOptions != null) { Console.WriteLine("Future Ordering Options:"); PrintFutureOrderingOptions(futureOrderingOptions); } else { Console.WriteLine("Future Ordering Options: None"); } if (menus != null) { Console.WriteLine("Menus:"); foreach (var menu in menus) { Console.WriteLine($"Menu {menu.Name}: "); PrintMenu(menu); } Console.WriteLine("Menus End"); } else { Console.WriteLine("Menus: None"); } if (onlineOrderingMenuOptions != null) { Console.WriteLine("Online Ordering Menu Options:"); PrintOnlineOrderingMenuOptions(onlineOrderingMenuOptions); } else { Console.WriteLine("Online Ordering Menu Options: None"); } if (priceChanges != null) { Console.WriteLine("Price Changes:"); PrintPriceChanges(priceChanges); } else { Console.WriteLine("Price Changes: None"); } if (promotions != null) { Console.WriteLine("Promotions:"); PrintPromotions(promotions); } else { Console.WriteLine("Promotions: None"); } if (tables != null) { Console.WriteLine("Tables:"); PrintTables(tables); } else { Console.WriteLine("Tables: None"); } } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetSettings operation: " + ex.Message); } finally { } } } }
GetSettings Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header/> <soapenv:Body> <v2:GetSettings> <v2:request> <v2:DataTypes> <v2:DataType>Employee</v2:DataType> <v2:DataType>Job</v2:DataType> <v2:DataType>Permission</v2:DataType> <v2:DataType>SecurityLevel</v2:DataType> <v2:DataType>KitchenQueue</v2:DataType> <v2:DataType>FutureOrderingOptions</v2:DataType> <v2:DataType>Menu</v2:DataType> <v2:DataType>OnlineOrderingMenuOptions</v2:DataType> <v2:DataType>PriceChange</v2:DataType> <v2:DataType>Promotion</v2:DataType> <v2:DataType>Table</v2:DataType> </v2:DataTypes> </v2:request> </v2:GetSettings> </soapenv:Body> </soapenv:Envelope>
GetSettings Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests def PrintEmployees(employees): count = 1 #Loop through collection of Employee objects returned for item in employees: print('Employee # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('DisplayName: ' + item.DisplayName) if(item.Jobs != None): print('Jobs:') #Loop through collection of EmployeeJob objects returned for job in item.Jobs.EmployeeJob: print('\tId: ' + str(job.Id)) print('\tJobId: ' + str(job.JobId)) print('\t------------') else: print('Jobs: None') print('PayrollId: ' + str(item.PayrollId)) print('---------------------------') count += 1 print('Employees End') def PrintJobs(jobs): count = 1 #Loop through collection of Job objects returned for item in jobs: print('Job # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('---------------------------') count += 1 print('Jobs End') def PrintPermissions(permissions): count = 1 #Loop through collection of Permission objects returned for item in permissions: print('Permission # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('IsActive: ' + str(item.IsActive)) print('---------------------------') count += 1 print('Permissions End') def PrintSecurityLevels(securityLevels): count = 1 #Loop through collection of SecurityLevel objects returned for item in securityLevels: print('SecurityLevel #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) if(item.Permissions != None): print('Permissions:') #Loop through collection of SecurityLevelPermission objects returned for permission in item.Permissions.SecurityLevelPermission: print('\tId: ' + str(permission.Id)) print('\tPermissionId: ' + str(permission.PermissionId)) print('\t------------') else: print('Permissions: None') print('---------------------------') count += 1 print('Security Levels End') def PrintKitchenQueues(kitchenQueues): count = 1 #Loop through collection of KitchenQueue objects returned for item in kitchenQueues: print('KitchenQueue # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('---------------------------') count += 1 print('Kitchen Queue End') def PrintFutureOrderingOptions(item): print('AllowFutureDateOrdering: ' + str(item.AllowFutureDateOrdering)) print('MinimumLeadMinutes: ' + str(item.MinimumLeadMinutes)) print('MinimumPrepMinutes: ' + str(item.MinimumPrepMinutes)) print('---------------------------') print('Future Ordering Options End') def PrintMenu(item): count = 1 print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) if(item.Categories != None): print('Categories:') #Loop through collection of MenuCategory objects returned for category in item.Categories.MenuCategory: print('\tCategory #' + str(count)) print('\t-----------------------') print('\tId: ' + str(category.Id)) if(category.Items != None): print('\tItems:') #Loop through collection of MenuItem objects returned for menuItem in category.Items.MenuItem: print('\t\tId: ' + str(menuItem.Id)) if(menuItem.ModifierGroups != None): print('\t\tModifierGroups:') #Loop through collection of MenuItemModifierGroup objects returned for menuItemModifierGroup in menuItem.ModifierGroups.MenuItemModifierGroup: print('\t\t\tId: ' + str(menuItemModifierGroup.Id)) print('\t\t\tModifierGroupId: ' + str(menuItemModifierGroup.ModifierGroupId)) else: print('\t\tModifierGroups: None') print('\t\t------------') else: print('Items: None') print('\t-----------------------') count += 1 else: print('Categories: None') print('---------------------------') print('Menu ' + str(item.Name) + ' End') def PrintOnlineOrderingMenuOptions(item): count = 1 print('OnlineOrderingMenuId: ' + str(item.OnlineOrderingMenuId)) print('---------------------------') print('Online Ordering Menu Options End') def PrintPriceChanges(priceChanges): count = 1 #Loop through collection of PriceChange objects returned for item in priceChanges: print('PriceChange #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) if(item.ItemPriceChanges != None): print('ItemPriceChanges:') #Loop through collection of ItemPriceChange objects returned for change in item.ItemPriceChanges.ItemPriceChange: print('\tId: ' + str(change.Id)) print('\tItemId: ' + str(change.ItemId)) print('\tName: ' + str(change.Name)) print('\tOriginalPrice: ' + str(change.OriginalPrice)) print('\tPrice: ' + str(change.Price)) print('\t-----------------------') else: print('ItemPriceChanges: None') print('---------------------------') count += 1 print('End') def PrintPromotions(promotions): count = 1 for item in promotions: print('Promotion #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('BarCode: ' + str(item.BarCode)) print('Code: ' + str(item.Code)) print('IsActive: ' + str(item.IsActive)) print('IsCodeRequired: ' + str(item.IsCodeRequired)) print('RequireSingleUseCode: ' + str(item.RequireSingleUseCode)) print('Type: ' + str(item.Type)) print('---------------------------') count += 1 print('Promotions End') def PrintTables(tables): count = 1 for item in tables: print('Table #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('Capacity: ' + str(item.Capacity)) print('IsActive: ' + str(item.IsActive)) print('---------------------------') count += 1 print('Tables End') accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': access_token, 'LocationToken': location_token}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/Settings2.svc' ) factory = client.type_factory('ns1') dataTypes = [] #Specify the data type of the settings you want to retrieve employeeDataType = factory.DataType(value='Employee') jobDataType = factory.DataType(value='Job') permissionDataType = factory.DataType(value='Permission') securityLevelDataType = factory.DataType(value='SecurityLevel') kitchenQueueDataType = factory.DataType(value='KitchenQueue') futureOrderingOptionsDataType = factory.DataType(value='FutureOrderingOptions') menuDataType = factory.DataType(value='Menu') onlineOrderingMenuOptionsDataType = factory.DataType(value='OnlineOrderingMenuOptions') priceChangeDataType = factory.DataType(value='PriceChange') promotionDataType = factory.DataType(value='Promotion') tableDataType = factory.DataType(value='Table') # Add data types into request body dataTypes.append(employeeDataType) dataTypes.append(jobDataType) dataTypes.append(permissionDataType) dataTypes.append(securityLevelDataType) dataTypes.append(kitchenQueueDataType) dataTypes.append(futureOrderingOptionsDataType) dataTypes.append(menuDataType) dataTypes.append(onlineOrderingMenuOptionsDataType) dataTypes.append(priceChangeDataType) dataTypes.append(promotionDataType) dataTypes.append(tableDataType) dataTypeArray = factory.ArrayOfDataType(DataType=dataTypes) req = factory.GetSettingsRequest(DataTypes=dataTypeArray) try: #Make GetSettings call res = service.GetSettings(req) #If call is successful if (res.ResultCode == 0): if(res.Settings.Employees != None): print('Employees:') PrintEmployees(res.Settings.Employees.Employee) else: print('Employees: None') if(res.Settings.Jobs != None): print('Jobs:') PrintJobs(res.Settings.Jobs.Job) else: print('Jobs: None') if(res.Settings.Permissions != None): print('Permissions:') PrintPermissions(res.Settings.Permissions.Permission) else: print('Permissions: None') if(res.Settings.SecurityLevels != None): print('Security Levels:') PrintSecurityLevels(res.Settings.SecurityLevels.SecurityLevel) else: print('Security Levels: None') if(res.Settings.KitchenQueues != None): print('Kitchen Queues:') PrintKitchenQueues(res.Settings.KitchenQueues.KitchenQueue) else: print('Kitchen Queues: None') if(res.Settings.FutureOrderingOptions != None): print('Future Ordering Options:') PrintFutureOrderingOptions(res.Settings.FutureOrderingOptions) else: print('Future Ordering Options: None') if(res.Settings.Menus != None): print('Menus:') for menu in res.Settings.Menus.Menu: print('Menu ' + str(menu.Name) + ' :') PrintMenu(menu) print('Menus End') else: print('Menus: None') if(res.Settings.OnlineOrderingMenuOptions != None): print('Online Ordering Menu Options:') PrintOnlineOrderingMenuOptions(res.Settings.OnlineOrderingMenuOptions) else: print('Online Ordering Menu Options: None') if(res.Settings.PriceChanges != None): print('Price Changes:') PrintPriceChanges(res.Settings.PriceChanges.PriceChange) else: print('Price Changes: None') if(res.Settings.Promotions != None): print('Promotions:') PrintPromotions(res.Settings.Promotions.Promotion) else: print('Promotions: None') if(res.Settings.Tables != None): print('Tables:') PrintTables(res.Settings.Tables.Table) else: print('Tables: None') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetTables Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetTables.Settings2ServiceReference; namespace Settings2_GetTables { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetTables call var response = client.GetTables(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Table objects returned if (response.Collection != null) { foreach (var item in response.Collection) { Console.WriteLine("Table #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Capacity: " + item.Capacity); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); } } else { Console.WriteLine("Error Code: " + response.ResultCode); Console.WriteLine("Message: " + response.Message); } } Console.ReadKey(); } } }
GetTables Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetTables { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetTablesAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Table objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("Table #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Capacity: " + item.Capacity); Console.WriteLine("IsActive: " + item.IsActive); Console.WriteLine("---------------------------"); count++; } Console.WriteLine("End"); } } } } catch (Exception ex) { Console.WriteLine("Error calling GetTables operation: " + ex.Message); } finally { } } } }
GetTables Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetTables/> </soapenv:Body> </soapenv:Envelope>
GetTables Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetTables call res = service.GetTables() #If call is successful if(res.ResultCode == 0): #Loop through collection of Table objects returned for item in res.Collection.Table: print('Table # ' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('Capacity: ' + str(item.Capacity)) print('IsActive: ' + str(item.IsActive)) print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
GetTaxes Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_GetTaxes.Settings2ServiceReference; namespace Settings2_GetTaxes { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; int count = 1; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Make GetTaxes call var response = client.GetTaxes(); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Tax objects returned if (response.Collection != null) { foreach (var item in response.Collection) { Console.WriteLine("Tax #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Amount: " + item.Amount); Console.WriteLine("Destinations:"); //Loop through collection of TaxDestination objects returned if (item.TaxDestination != null) { foreach (var change in item.TaxDestination) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tDestinationId: " + change.DestinationId); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } } }
GetTaxes Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetTaxes { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var response = client.GetTaxesAsync(); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Tax objects returned if (response.Result.Collection != null) { foreach (var item in response.Result.Collection) { Console.WriteLine("Tax #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + item.Id); Console.WriteLine("Name: " + item.Name); Console.WriteLine("Amount: " + item.Amount); Console.WriteLine("Destinations:"); //Loop through collection of TaxDestination objects returned if (item.Destinations != null) { foreach (var change in item.Destinations) { Console.WriteLine("\tId: " + change.Id); Console.WriteLine("\tDestinationId: " + change.DestinationId); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } } } catch (Exception ex) { Console.WriteLine("Error calling GetTaxes operation: " + ex.Message); } finally { } } } }
GetTaxes Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:GetTaxes/> </soapenv:Body> </soapenv:Envelope>
GetTaxes Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) count = 1 try: #Make GetTaxes call res = service.GetTaxes() #If call is successful if(res.ResultCode == 0): if(res.Collection != None): #Loop through collection of Tax objects returned for item in res.Collection.Tax: print('Tax #' + str(count)) print('---------------------------') print('Id: ' + str(item.Id)) print('Name: ' + str(item.Name)) print('Type: ' + str(item.Type)) print('Amount: ' + str(item.Amount)) print('Destinations:') if(item.TaxDestination != None): #Loop through collection of TaxDestination objects returned for change in item.TaxDestination: print('\tId: ' + str(change.Id)) print('\tDestinationId: ' + str(change.DestinationId)) print('\t-----------------------') print('---------------------------') count += 1 print('End') else: print("Error Code: " + str(res.ResultCode)) print("Message: " + res.Message) except Exception as e: print(e)

                
                    
                    
SaveBusinessHours Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_SaveBusinessHours.ServiceReference1; using K = ExternalApi.SettingsServiceClient.Contracts; using SettingsApi.V2.Data.LocationOptions; using ExternalApi.Common.Utilities; namespace API_Settings2_SaveBusinessHours { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; List<K.BusinessHourRange> businesshour=new List<K.BusinessHourRange>() { new K.BusinessHourRange(){Id = 1, OpenTime = new TimeSpan(7,00,00), CloseTime = new TimeSpan(22, 00, 00),DayOfWeek = DayOfWeek.Wednesday}, new K.BusinessHourRange(){Id = 2, OpenTime = new TimeSpan(7,00,00), CloseTime = new TimeSpan(22, 00, 00),DayOfWeek = DayOfWeek.Thursday}, new K.BusinessHourRange(){Id = 3, OpenTime = new TimeSpan(22,00,00), CloseTime = new TimeSpan(04, 00, 00),DayOfWeek = DayOfWeek.Thursday} }; var saveBusinessHoursRequest = new SaveBusinessHoursRequest() { BusinessDate = new DateTime(2023, 1, 1), ChangesetName = "SaveBusinessHours", IsImmediatePublish = false, BusinessHours = businesshour }; var saveBusinessHoursResponse = clientSettingsWebService2Client.SaveBusinessHours(saveBusinessHoursRequest); if (saveBusinessHoursResponse.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveBusinessHoursResponse.SaveResult) { Console.WriteLine($"\tId: {saveResult.Id}"); Console.WriteLine($"\tOriginalBusinessHourId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveBusinessHoursResponse.ResultCode}"); Console.WriteLine($"Message: {saveBusinessHoursResponse.Message}"); foreach (var saveResult in saveBusinessHoursResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
SaveBusinessHours Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; using System.Xml.Linq; namespace Settings2_SaveBusinessHours { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var businesshour = new [] { new BusinessHour(){Id = -1, OpenTime = new TimeSpan(23,00,00), CloseTime = new TimeSpan(00, 00, 00),DayOfWeek = DayOfWeek.Wednesday} }; var saveBusinessHoursRequest = new SaveBusinessHoursRequest() { BusinessDate = new DateTime(2024, 3, 30), ChangesetName = "SaveBusinessHours", IsImmediatePublish = false, BusinessHours = businesshour }; var saveBusinessHoursResponse = client.SaveBusinessHoursAsync(saveBusinessHoursRequest); Console.WriteLine("SaveBusinessHours"); Console.WriteLine("---------------------------"); if (saveBusinessHoursResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveBusinessHoursResponse.Result.SaveResult) { Console.WriteLine($"\tId: {saveResult.Id}"); Console.WriteLine($"\tOriginalBusinessHourId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveBusinessHoursResponse.Result.ResultCode}"); Console.WriteLine($"Message: {saveBusinessHoursResponse.Result.Message}"); foreach (var saveResult in saveBusinessHoursResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling SaveBusinessHours operation: " + ex.Message); } finally { } } } }
SaveBusinessHours Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:SaveBusinessHours> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>SaveBusinessHours</v2:ChangesetName> <v2:IsImmediatePublish>0</v2:IsImmediatePublish> <v2:BusinessHours> <!--Zero or more repetitions:--> <v2:BusinessHour> <v2:Id>-1</v2:Id> <v2:CloseTime>PT22H</v2:CloseTime> <v2:DayOfWeek>Friday</v2:DayOfWeek> <v2:OpenTime>PT7H</v2:OpenTime> </v2:BusinessHour> </v2:BusinessHours> </v2:request> </v2:SaveBusinessHours> </soapenv:Body> </soapenv:Envelope>
SaveBusinessHours Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime from datetime import time #Helper function for negative index generator num = 0 def NextNegativeId(): global num num = num - 1 return num #Helper function for creating a new BusinessHours def CreateNewBusinessHours(factory): BusinessHours = [] newBusinessHour = factory.BusinessHourRange( Id = 1, OpenTime = time(7,00,00), CloseTime = time(22, 00, 00), DayOfWeek = DayOfWeek.Wednesday ) BusinessHours.append(newBusinessHour) newBusinessHours = factory.ArrayOfBusinessHours(BusinessHours=BusinessHours) return newBusinessHours accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one BusinessHour in the BusinessHours parameter in request body factory = client.type_factory('ns1') businessdate = datetime.today() changesetname = "SaveBusinessHours" isimmediatepublish = 0 req = factory.SaveBusinessHoursRequest(BusinessDate=businessdate, IsImmediatePublish=isimmediatepublish, BusinessHours=CreateNewBusinessHours(factory)) try: #Make SaveBusinessHours call res = service.SaveBusinessHours(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + str(res.Message)) except Exception as e: print(e)

                
                    
                    
SaveDestinations Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_SaveDestinations.ServiceReference1; namespace API_Settings2_SaveDestinations { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var saveDestinationsRequest = new SaveDestinationsRequest() { BusinessDate = new DateTime(2023, 02, 22), ChangesetName = "SaveDestinations", IsImmediatePublish = false, Destinations = new Destination[] { new Destination() { Id = -1, Name = "abc", AllItems = true, AutoCloseFutureOrders = true, AutoPrintType = AutoPrintType.Never, AutoPrintCreditVouchers = true, Description = "Destination description", Indicator = "Indicator", IsActive = true, IsDelivery = true, KitchenChitHeader = "kitchen", KitchenDescription = "kitchen description", //KitchenVideoColor = R, LimitByDeliveryZone = false, LimitByPostalCode = true, PartyLabelOverride = "party", SeatLabelOverride = "seat", SuppressBarcode = true, TipAndSignatureDialogEnabled = false, ValidDeliveryZones = new DestinationDeliveryZone[] { new DestinationDeliveryZone() { Id = -2, Coordinates = new DestinationDeliveryZoneCoordinate [] { new DestinationDeliveryZoneCoordinate() { Id = 123, Latitude = 26.922070, Longitude = 75.778885 } }, Name = "DeliveryZone Description", SurchargeId = 321 } }, ValidPostalCodes = new []{"000000","111111" } } } }; var saveDestinationsResponse = clientSettingsWebService2Client.SaveDestinations(saveDestinationsRequest); if (saveDestinationsResponse.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveDestinationsResponse.SaveResult) { Console.WriteLine($"\tNewDestinationId: {saveResult.Id}"); Console.WriteLine($"\tOriginalDestinationId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveDestinationsResponse.ResultCode}"); Console.WriteLine($"Message: {saveDestinationsResponse.Message}"); foreach (var saveResult in saveDestinationsResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
SaveDestinations Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_SaveDestinations { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var saveDestinationsRequest = new SaveDestinationsRequest() { BusinessDate = new DateTime(2024, 03, 30), ChangesetName = "SaveDestinations", IsImmediatePublish = false, Destinations = new Destination[] { new Destination() { Id = -1, Name = "abc", AllItems = true, AutoCloseFutureOrders = true, AutoPrintType = AutoPrintType.Never, AutoPrintCreditVouchers = true, Description = "Destination description", Indicator = "Indicator", IsActive = true, IsDelivery = true, KitchenChitHeader = "kitchen", KitchenDescription = "kitchen description", LimitByDeliveryZone = false, LimitByPostalCode = true, PartyLabelOverride = "party", SeatLabelOverride = "seat", SuppressBarcode = true, TipAndSignatureDialogEnabled = false, ValidDeliveryZones = new DestinationDeliveryZone[] { new DestinationDeliveryZone() { Id = -2, Coordinates = new DestinationDeliveryZoneCoordinate [] { new DestinationDeliveryZoneCoordinate() { Id = 123, Latitude = 26.922070, Longitude = 75.778885 } }, Name = "DeliveryZone Description", SurchargeId = 321 } }, ValidPostalCodes = new []{"000000","111111" } } } }; var saveDestinationsResponse = client.SaveDestinationsAsync(saveDestinationsRequest); Console.WriteLine("SaveDestinations"); Console.WriteLine("------------------"); if (saveDestinationsResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveDestinationsResponse.Result.SaveResult) { Console.WriteLine($"\tNewDestinationId: {saveResult.Id}"); Console.WriteLine($"\tOriginalDestinationId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveDestinationsResponse.Result.ResultCode}"); Console.WriteLine($"Message: {saveDestinationsResponse.Result.Message}"); foreach (var saveResult in saveDestinationsResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling SaveDestinations operation: " + ex.Message); } finally { } } } }
SaveDestinations Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:SaveDestinations> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>SaveDestinations</v2:ChangesetName> <v2:IsImmediatePublish>1</v2:IsImmediatePublish> <v2:Destinations> <!--Zero or more repetitions:--> <v2:Destination> <v2:Id>-1</v2:Id> <v2:Name>New Destination </v2:Name> <v2:AllItems>false</v2:AllItems> <v2:AutoCloseFutureOrders>true</v2:AutoCloseFutureOrders> <v2:AutoPrintCreditVouchers>true</v2:AutoPrintCreditVouchers> <v2:AutoPrintPrinterId>4</v2:AutoPrintPrinterId> <v2:AutoPrintType>Immediate</v2:AutoPrintType> <v2:DeliveryMinutes>2</v2:DeliveryMinutes> <v2:Description>Description</v2:Description> <v2:Indicator>Indicator</v2:Indicator> <v2:IsActive>true</v2:IsActive> <v2:IsDelivery>true</v2:IsDelivery> <v2:KitchenChitHeader>KitchenChitHeader</v2:KitchenChitHeader> <v2:KitchenDescription>KitchenDescription</v2:KitchenDescription> <v2:KitchenVideoColor> <v2:A>255</v2:A> <v2:B>255</v2:B> <v2:G>255</v2:G> <v2:R>255</v2:R> </v2:KitchenVideoColor> <v2:LimitByDeliveryZone>true</v2:LimitByDeliveryZone> <v2:LimitByPostalCode>true</v2:LimitByPostalCode> <v2:OrderMinimum>1</v2:OrderMinimum> <v2:PartyLabelOverride>PartyLabel</v2:PartyLabelOverride> <v2:SeatLabelOverride>SeatLabel</v2:SeatLabelOverride> <v2:SuppressBarcode>true</v2:SuppressBarcode> <v2:ValidDeliveryZones> <!--Zero or more repetitions:--> <v2:DestinationDeliveryZone> <v2:Id>-1</v2:Id> <v2:Name>New Destination Delivery one</v2:Name> <v2:Coordinates> <!--Zero or more repetitions:--> <v2:DestinationDeliveryZoneCoordinate> <v2:Id>-1</v2:Id> <v2:Latitude>32.900585597015</v2:Latitude> <v2:Longitude>-117.060989379883</v2:Longitude> </v2:DestinationDeliveryZoneCoordinate> </v2:Coordinates> <v2:SurchargeId>4003613</v2:SurchargeId> </v2:DestinationDeliveryZone> </v2:ValidDeliveryZones> <v2:ValidPostalCodes> <!--Zero or more repetitions:--> <v2:DestinationPostalCode> <v2:PostalCode>10001</v2:PostalCode> </v2:DestinationPostalCode> </v2:ValidPostalCodes> </v2:Destination> </v2:Destinations> </v2:request> </v2:SaveDestinations> </soapenv:Body> </soapenv:Envelope>
SaveDestinations Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime from decimal import Decimal #Helper function for negative index generator num = 0 def NextNegativeId(): global num num = num - 1 return num #Helper function for creating a new destinations def CreateNewDestinations(factory): destinations = [] newDestination = factory.Destination( Id=NextNegativeId(), Name='New Destination', IsActive=True, IsDelivery=True ) destinations.append(newDestination) newDestinations = factory.ArrayOfDestination(Destination=destinations) return newDestinations accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one Destination in the Destinations parameter in request body factory = client.type_factory('ns1') businessdate = datetime.today() changesetname = "SaveDestinations" isimmediatepublish=0 req = factory.SaveDestinationsRequest(BusinessDate=businessdate, IsImmediatePublish=isimmediatepublish, Destinations=CreateNewDestinations(factory)) try: #Make SaveDestinations call res = service.SaveDestinations(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + str(res.Message)) except Exception as e: print(e)

                
                    
                    
SaveEmployees Minified Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using Settings2_SaveEmployees.Settings2ServiceReference; namespace Settings2_SaveEmployees { class Program { public static Employee[] CreateEmployee() { int negativeId = -1; var employee = new Employee() { Id = negativeId, DisplayName = "John Doe", FirstName = "John", LastName = "Doe", }; Employee[] employees = new Employee[] { employee }; return employees; } static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Include the at least one Employee in the Employees parameter in request body var request = new SaveEmployeesRequest() { Employees = CreateEmployee(), }; //Make SaveEmployees call var response = client.SaveEmployees(request); //If call is successful if (response.ResultCode == 0) { Console.WriteLine("Success! Result Code: " + response.ResultCode); } else { Console.WriteLine("Error Code: " + response.ResultCode); } Console.ReadKey(); } } } }
SaveEmployees Minified Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_SaveEmployees { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } public static Employee[] CreateEmployee() { int negativeId = -1; var employee = new Employee() { Id = negativeId, DisplayName = "John Doe", FirstName = "John", LastName = "Doe", }; Employee[] employees = new Employee[] { employee }; return employees; } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var request = new SaveEmployeesRequest() { Employees = CreateEmployee(), }; //Make SaveEmployees call var response = client.SaveEmployeesAsync(request); //If call is successful if (response.Result.ResultCode == 0) { Console.WriteLine("Success! Result Code: " + response.Result.ResultCode); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); } } } catch (Exception ex) { Console.WriteLine("Error calling SaveEmployees operation: " + ex.Message); } finally { } } } }
SaveEmployees Minified Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:SaveEmployees> <v2:request> <v2:Employees> <!--Zero or more repetitions:--> <v2:Employee> <v2:Id>-1</v2:Id> <v2:DisplayName>John Doe</v2:DisplayName> <v2:FirstName>John</v2:FirstName> <v2:LastName>Name</v2:LastName> </v2:Employee> </v2:Employees> </v2:request> </v2:SaveEmployees> </soapenv:Body> </soapenv:Envelope>
SaveEmployees Minified Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime from decimal import Decimal #Helper function for negative index generator num = 0 def NextNegativeId(): global num num = num - 1 return num #Helper function for creating a new employee def CreateNewEmployees(factory): employees = [] newEmployee = factory.Employee( Id=NextNegativeId(), DisplayName='John Doe', FirstName='John', LastName='Doe', ) employees.append(newEmployee) newEmployees = factory.ArrayOfEmployee(Employee=employees) return newEmployees accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one Employee in the Employees parameter in request body factory = client.type_factory('ns1') req = factory.SaveEmployeesRequest(Employees=CreateNewEmployees(factory)) try: #Make SaveEmployees call res = service.SaveEmployees(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print('Error Code: ' + str(res.ResultCode) except Exception as e: print(e)

                
                    
                    
SaveExceptionDates Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_SaveExceptionDates.ServiceReference1; namespace API_Settings2_SaveExceptionDates { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var saveExceptionDatesRequest = new SaveExceptionDatesRequest() { BusinessDate = new DateTime(2023, 1, 1), ChangesetName = "SaveExceptionDates", IsImmediatePublish = false, ExceptionDates = new List<ExceptionDate>() { new ExceptionDate() { Id = -1, Name = "ExceptionDateName", IsOpen = true, OpenTime = new TimeSpan(0,1,0), CloseTime = new TimeSpan(0,3,0) }, } }; var saveExceptionDatesResponse = clientSettingsWebService2Client.SaveExceptionDates(saveExceptionDatesRequest); if (saveExceptionDatesResponse.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveExceptionDatesResponse.SaveResult) { Console.WriteLine($"\Id: {saveResult.Id}"); Console.WriteLine($"\tOriginalExceptionDateId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveExceptionDatesResponse.ResultCode}"); Console.WriteLine($"Message: {saveExceptionDatesResponse.Message}"); foreach (var saveResult in saveExceptionDatesResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
SaveExceptionDates Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_SaveExceptionDates { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var saveExceptionDatesRequest = new SaveExceptionDatesRequest() { BusinessDate = new DateTime(2024, 3, 30), ChangesetName = "SaveExceptionDates", IsImmediatePublish = false, ExceptionDates = new [] { new ExceptionDate() { Id = -1, Name = "ExceptionDateName", IsOpen = true, OpenTime = new TimeSpan(0,1,0), CloseTime = new TimeSpan(0,3,0) }, } }; var saveExceptionDatesResponse = client.SaveExceptionDatesAsync(saveExceptionDatesRequest); Console.WriteLine("SaveExceptionDates"); Console.WriteLine("---------------------------"); if (saveExceptionDatesResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveExceptionDatesResponse.Result.SaveResult) { Console.WriteLine($"\tId: {saveResult.Id}"); Console.WriteLine($"\tOriginalExceptionDateId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveExceptionDatesResponse.Result.ResultCode}"); Console.WriteLine($"Message: {saveExceptionDatesResponse.Result.Message}"); foreach (var saveResult in saveExceptionDatesResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling SaveExceptionDates operation: " + ex.Message); } finally { } } } }
SaveExceptionDates Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:SaveExceptionDates> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>SaveExceptionDates</v2:ChangesetName> <v2:IsImmediatePublish>0</v2:IsImmediatePublish> <v2:ExceptionDates> <!--Zero or more repetitions:--> <v2:ExceptionDate> <v2:Id>-1</v2:Id> <v2:Name>ExceptionDateName</v2:Name> <v2:CloseTime>PT3H</v2:CloseTime> <v2:Date>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:Date> <v2:IsOpen>true</v2:IsOpen> <v2:OpenTime>PT1H</v2:OpenTime> </v2:ExceptionDate> </v2:ExceptionDates> </v2:request> </v2:SaveExceptionDates> </soapenv:Body> </soapenv:Envelope>
SaveExceptionDates Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime from datetime import time #Helper function for negative index generator num = 0 def NextNegativeId(): global num num = num - 1 return num #Helper function for creating a new ExceptionDates def CreateNewExceptionDates(factory): ExceptionDates = [] newExceptionDate = factory.ExceptionDate( Id=NextNegativeId(), Name='ExceptionDateName', IsOpen = true, OpenTime = time(0,1,0), CloseTime = time(0,3,0), ) ExceptionDates.append(newExceptionDate) newExceptionDates = factory.ArrayOfExceptionDates(ExceptionDates=ExceptionDates) return newExceptionDates accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one ExceptionDate in the ExceptionDates parameter in request body factory = client.type_factory('ns1') businessdate = datetime.today() changesetname = "SaveExceptionDates" isimmediatepublish = 0 req = factory.SaveExceptionDatesRequest(BusinessDate=businessdate, IsImmediatePublish=isimmediatepublish, ExceptionDates=CreateNewExceptionDates(factory)) try: #Make SaveExceptionDates call res = service.SaveExceptionDates(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + str(res.Message)) except Exception as e: print(e)

                
                    
                    
SaveItems Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_SaveItems.ServiceReference1; namespace API_Settings2_SaveItems { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var saveItemsRequest = new SaveItemsRequest() { BusinessDate = new DateTime(2023, 07, 28), ChangesetName = "SaveItems", IsImmediatePublish = false, Items = new Item[] { new Item() { Id = -1, Name = "New Item9999", AllowAutoCombo = true, AlternateId = "alternateid", AlternateKitchenName = "AlternateKitchenName", AskName = false, AskPrice = false, AvailableSelectDates = false, AvailableSelectDays = false, Cost = 25.34M, Description = "Description", IsActive = true, RevenueCenterId=4001281, BrandAllocations = new ItemBrandAllocation[] { new ItemBrandAllocation() { Id = -2, BrandId = 1, Weight = 5.00M } }, Ingredients = new ItemIngredient[] { new ItemIngredient() { Id = -3, ItemId = 1, Position = 5 } }, ModifyPanels = new ItemModifyPanel[] { new ItemModifyPanel() { Id = -4, PanelId = 1, ScreenId = 5 } } } } }; SaveItemsRequest1 request1 = new SaveItemsRequest1(); request1.request = saveItemsRequest; var saveItemsResponse = clientSettingsWebService2Client.SaveItems(request1); if (saveItemsResponse.SaveItemsResult.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveItemsResponse.SaveItemsResult.SaveResult) { Console.WriteLine($"\tNewItemId: {saveResult.Id}"); Console.WriteLine($"\tOriginalItemId: {saveResult.OriginalId}"); foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } else { Console.WriteLine($"Error Code:{saveItemsResponse.SaveItemsResult.ResultCode}"); Console.WriteLine($"Message: {saveItemsResponse.SaveItemsResult.Message}"); foreach (var error in saveItemsResponse.SaveItemsResult.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } } }
SaveItems Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_SaveItems { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var saveItemsRequest = new SaveItemsRequest() { BusinessDate = new DateTime(2024, 03, 30), ChangesetName = "SaveItems", IsImmediatePublish = false, Items = new Item[] { new Item() { Id = -1, Name = "New Item9999", AllowAutoCombo = true, AlternateId = "alternateid", AlternateKitchenName = "AlternateKitchenName", AskName = false, AskPrice = false, AvailableSelectDates = false, AvailableSelectDays = false, Cost = 25.34M, Description = "Description", IsActive = true, RevenueCenterId=4001281, BrandAllocations = new ItemBrandAllocation[] { new ItemBrandAllocation() { Id = -2, BrandId = 4003425, Weight = 100.00M } }, Ingredients = new ItemIngredient[] { new ItemIngredient() { Id = -3, ItemId = 640223867, Position = 5 } }, ModifyPanels = new ItemModifyPanel[] { new ItemModifyPanel() { Id = -4, PanelId = 4005375, ScreenId = 4006043 } } } } }; var saveItemsResponse = client.SaveItemsAsync(saveItemsRequest); Console.WriteLine("SaveItems"); Console.WriteLine("-------------"); if (saveItemsResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveItemsResponse.Result.SaveResult) { Console.WriteLine($"\tNewItemId: {saveResult.Id}"); Console.WriteLine($"\tOriginalItemId: {saveResult.OriginalId}"); foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } else { Console.WriteLine($"Error Code:{saveItemsResponse.Result.ResultCode}"); Console.WriteLine($"Message: {saveItemsResponse.Result.Message}"); foreach (var error in saveItemsResponse.Result.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling SaveItems operation: " + ex.Message); } finally { } } } }
SaveItems Minified Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:SaveItems> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>SaveItems</v2:ChangesetName> <v2:IsImmediatePublish>0</v2:IsImmediatePublish> <v2:Items> <!--Zero or more repetitions:--> <v2:Item> <v2:Id>-1</v2:Id> <v2:Name>New Item ${=System.currentTimeMillis()}</v2:Name> <v2:AllowAutoCombo>true</v2:AllowAutoCombo> <v2:AlternateId>alternateid</v2:AlternateId> <v2:AlternateKitchenName>Test</v2:AlternateKitchenName> <v2:AskName>true</v2:AskName> <v2:AskPrice>true</v2:AskPrice> <v2:BlinkInKitchen>0</v2:BlinkInKitchen> <v2:ClearsAllOtherModifiers>0</v2:ClearsAllOtherModifiers> <v2:Cost>1</v2:Cost> <v2:DaysAvailable>40</v2:DaysAvailable> <v2:Description>test</v2:Description> <v2:IsActive>1</v2:IsActive> <v2:IsExceptionMod>1</v2:IsExceptionMod> <v2:IsQuantityCounted>1</v2:IsQuantityCounted> <v2:ItemGroups> <!--Zero or more repetitions:--> </v2:ItemGroups> <v2:ModifierGroups> <!--Zero or more repetitions:--> <v2:ItemModifierGroup> <!--Optional:--> <v2:Id>-1</v2:Id> <!--Optional:--> <v2:ModifierGroupId>4003860</v2:ModifierGroupId> <!--Optional:--> <v2:Position>1</v2:Position> </v2:ItemModifierGroup> </v2:ModifierGroups> <!--Optional:--> <v2:ModifierRouting>FollowParentItem</v2:ModifierRouting> <!--Optional:--> <v2:ModifierTierId>4006466</v2:ModifierTierId> <!--Optional:--> <v2:ModifierWeight>1</v2:ModifierWeight> <!--Optional:--> <v2:NonRevenueItem>0</v2:NonRevenueItem> <!--Optional:--> <v2:Plu>ABC</v2:Plu> <!--Optional:--> <v2:PrepaidItemType>Code</v2:PrepaidItemType> <!--Optional:--> <v2:Price>10</v2:Price> <!--Optional:--> <v2:PriceLevelId>4006514</v2:PriceLevelId> <!--Optional:--> <v2:PricePer>Ounce</v2:PricePer> <!--Optional:--> <v2:PrinterGroupId>640223785</v2:PrinterGroupId> <!--Optional:--> <v2:RestrictComboBreak>1</v2:RestrictComboBreak> <!--Optional:--> <v2:RevenueCenterId>4001281</v2:RevenueCenterId> <!--Optional:--> <!--Optional:--> <v2:SortPriority>1</v2:SortPriority> <!--Optional:--> <v2:TareId>4004845</v2:TareId> <!--Optional:--> <v2:Taxes> <!--Zero or more repetitions:--> <arr:int>4007408</arr:int> </v2:Taxes> <!--Optional:--> <v2:Type>Normal</v2:Type> <!--Optional:--> </v2:Item> </v2:Items> </v2:request> </v2:SaveItems> </soapenv:Body> </soapenv:Envelope>
SaveItems Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime from decimal import Decimal #Helper function for negative index generator num = 0 def NextNegativeId(): global num num = num - 1 return num #Helper function for creating a new items def CreateNewItems(factory): items = [] newItem = factory.Item( Id=NextNegativeId(), Name='New Item99', IsActive=True, RevenueCenterId=1 ) items.append(newItem) newItems = factory.ArrayOfItem(Item=items) return newItems accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one Item in the Items parameter in request body factory = client.type_factory('ns1') businessdate = datetime.today() changesetname = "SaveItems" isimmediatepublish=0 req = factory.SaveItemsRequest(BusinessDate=businessdate, IsImmediatePublish=isimmediatepublish, Items=CreateNewItems(factory)) try: #Make SaveItems call res = service.SaveItems(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + str(res.Message)) except Exception as e: print(e)

                
                    
                    
SavePriceChanges Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_SavePriceChanges.ServiceReference1; namespace API_Settings2_SavePriceChanges { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var savePriceChangesRequest = new SavePriceChangesRequest() { BusinessDate = new DateTime(2023, 01, 01), ChangesetName = "SavePriceChanges", IsImmediatePublish = false, PriceChanges = new PriceChange[] { new PriceChange() { Id = -1, Days = 63, EndDate = new DateTime(2023, 12, 21), EndTime = new TimeSpan(11, 59, 59), EnforceDateRanges = true, EnforceDays = true, EnforceTimeRanges = true, IsActive = true, ItemPriceChanges = new ItemPriceChange[] { new ItemPriceChange() { Id = -2, ComponentPriceChanges = new ComponentPriceChange[] { new ComponentPriceChange() { ComponentId = 1, ComponentItemPriceChanges = new ComponentItemPriceChange[] { new ComponentItemPriceChange() { Id = -3, ItemId = 12345, Price = 5.0M } } } }, ItemId = 123, Name = "Item Description", OriginalPrice = 2.0M, Price = 10.0M } }, PriceChangeDestinations = new PriceChangeDestination[] { new PriceChangeDestination() { DestinationId = 2222, DestinationName = "Destination Name", Id = -4 } } } } }; var savePriceChangesResponse = clientSettingsWebService2Client.SavePriceChanges(savePriceChangesRequest); if (savePriceChangesResponse.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in savePriceChangesResponse.SaveResult) { Console.WriteLine($"\tNewPriceChangeId: {saveResult.Id}"); Console.WriteLine($"\tOriginalPriceChangeId: {saveResult.OriginalId}"); foreach (var error in saveResult.Errors) { Console.WriteLine($"\t\tError: {error}"); } } } else { Console.WriteLine($"Error Code:{savePriceChangesResponse.ResultCode}"); Console.WriteLine($"Message: {savePriceChangesResponse.Message}"); foreach (var error in saveResult.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } } }
SavePriceChanges Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_SavePriceChanges { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var savePriceChangesRequest = new SavePriceChangesRequest() { BusinessDate = new DateTime(2024, 03, 30), ChangesetName = "SavePriceChanges", IsImmediatePublish = false, PriceChanges = new PriceChange[] { new PriceChange() { Id = -1, Name = "New Price Change", Days = 63, EnforceDateRanges = false, EnforceDays = true, EnforceTimeRanges = false, IsActive = true, ItemPriceChanges = new ItemPriceChange[] { new ItemPriceChange() { Id = -1, ItemId = 4003511, Name = "Alcohol - Margarita", OriginalPrice = 16.0M, Price = 14.4M } }, PriceChangeDestinations = new PriceChangeDestination[] { new PriceChangeDestination() { DestinationId = 4, DestinationName = "Destination Name", Id = -4 } } } } }; var savePriceChangesResponse = client.SavePriceChangesAsync(savePriceChangesRequest); Console.WriteLine("SavePriceChanges"); Console.WriteLine("-------------"); if (savePriceChangesResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in savePriceChangesResponse.Result.SaveResult) { Console.WriteLine($"\tNewPriceChangeId: {saveResult.Id}"); Console.WriteLine($"\tOriginalPriceChangeId: {saveResult.OriginalId}"); foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } else { Console.WriteLine($"Error Code:{savePriceChangesResponse.Result.ResultCode}"); Console.WriteLine($"Message: {savePriceChangesResponse.Result.Message}"); foreach (var error in savePriceChangesResponse.Result.Errors) { Console.WriteLine($"\tError: {error}"); } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling SavePriceChanges operation: " + ex.Message); } finally { } } } }
SavePriceChanges Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:SavePriceChanges> <v2:request> <v2:BusinessDate>1995-12-21</v2:BusinessDate> <v2:ChangesetName>SavePriceChanges</v2:ChangesetName> <v2:IsImmediatePublish>false</v2:IsImmediatePublish> <v2:PriceChanges> <!--Zero or more repetitions:--> <v2:PriceChange> <v2:Id>-1</v2:Id> <v2:Name>MyPriceChange</v2:Name> <v2:Days>1</v2:Days> <v2:EndDate>2023-01-01</v2:EndDate> <v2:EndTime>P23T59</v2:EndTime> <v2:EnforceDateRanges>true</v2:EnforceDateRanges> <v2:EnforceDays>true</v2:EnforceDays> <v2:EnforceTimeRanges>true</v2:EnforceTimeRanges> <v2:IsActive>true</v2:IsActive> <v2:ItemPriceChanges> <!--Zero or more repetitions:--> <v2:ItemPriceChange> <v2:Id>-2</v2:Id> <v2:ComponentPriceChanges> <!--Zero or more repetitions:--> <v2:ComponentPriceChange> <v2:Id>-3</v2:Id> <v2:ComponentId>1</v2:ComponentId> <v2:ComponentItemPriceChanges> <!--Zero or more repetitions:--> <v2:ComponentItemPriceChange> <v2:Id>-4</v2:Id> <v2:ItemId>123</v2:ItemId> <v2:Price>1</v2:Price> </v2:ComponentItemPriceChange> </v2:ComponentItemPriceChanges> <v2:Price>20</v2:Price> </v2:ComponentPriceChange> </v2:ComponentPriceChanges> <v2:ItemId>456</v2:ItemId> <v2:Name>ItemDescription</v2:Name> <v2:OriginalPrice>19</v2:OriginalPrice> <v2:Price>50</v2:Price> </v2:ItemPriceChange> </v2:ItemPriceChanges> <v2:PriceChangeDestinations> <!--Zero or more repetitions:--> <v2:PriceChangeDestination> <v2:Id>-5</v2:Id> <v2:DestinationId>222</v2:DestinationId> <v2:DestinationName>DestinationName</v2:DestinationName> </v2:PriceChangeDestination> </v2:PriceChangeDestinations> <v2:StartDate>2022-01-01</v2:StartDate> <v2:StartTime>P08T00</v2:StartTime> </v2:PriceChange> </v2:PriceChanges> </v2:request> </v2:SavePriceChanges> </soapenv:Body> </soapenv:Envelope>
SavePriceChanges Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime #Helper function for negative index generator num = 0 def NextNegativeId(): global num num = num - 1 return num #Helper function for creating a new pricechange def CreateNewPriceChanges(factory): pricechanges = [] newPriceChange = factory.PriceChange( Id=NextNegativeId(), Name='New Price Change', EnforceDateRanges=False, EnforceDays=False, EnforceTimeRanges=False, IsActive=True, ) pricechanges.append(newPriceChange) newPriceChanges = factory.ArrayOfPriceChange(PriceChange=pricechanges) return newPriceChanges accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one PriceChange in the PriceChanges parameter in request body factory = client.type_factory('ns1') businessdate = datetime.today() changesetname = "SavePriceChanges" isimmediatepublish = 0 req = factory.SavePriceChangesRequest(BusinessDate=businessdate, IsImmediatePublish = isimmediatepublish, PriceChanges=CreateNewPriceChanges(factory)) try: #Make SavePriceChanges call res = service.SavePriceChanges(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) except Exception as e: print(e)

                
                    
                    
SaveTaxes Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Web; using System.Text; using System.Threading.Tasks; using API_Settings2_SaveTaxes.ServiceReference1; namespace API_Settings2_SaveTaxes { class Program { static void Main(string[] args) { var clientSettingsWebService2Client = new SettingsWebService2Client(); var accessToken = @""; var locationToken = @""; using (var scope = new OperationContextScope(clientSettingsWebService2Client.InnerChannel)) { var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = accessToken; headers["LocationToken"] = locationToken; var saveTaxesRequest = new SaveTaxesRequest() { BusinessDate = new DateTime(2023, 1, 1), ChangesetName = "SaveTaxes", IsImmediatePublish = false, Taxes = new Tax[] { new Tax() { Id = -1, Name = "abc", Type = TaxType.None, Amount = 10.0M, MinimumAmount = 5.0M, DisplayName = "New Tax", IsInclusive = true, UseLocationRules = true, CompoundTax = true, CompoundTaxPriority = 2, ExemptionEnabled = false, RoundingMethod = RoundingMethod.Nearest, OrderTotalType = OrderTotalType.OrderTotal, ExemptionOrderAmount = 5000.0M, ExemptionItemGroupId = 123, LimitDestinations = true, Destinations = new TaxDestination[] { new TaxDestination() { Id = -2, DestinationId = 1 } }, ModifierItems = new []{12345}, NonRepeatingTaxBrackets = new TaxBracket[] { new TaxBracket() { Id = -2, To = 5.0M, From = 1.0M, TaxAmount = 10.0M } }, RepeatingTaxBrackets = new TaxBracket[] { new TaxBracket() { Id = -2, To = 5.0M, From = 1.0M, TaxAmount = 10.0M } }, AppliesTo = new []{123,456 } } } }; var saveTaxesResponse = clientSettingsWebService2Client.SaveTaxes(saveTaxesRequest); if (saveTaxesResponse.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveTaxesResponse.SaveResult) { Console.WriteLine($"\tNewTaxId: {saveResult.Id}"); Console.WriteLine($"\tOriginalTaxId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveTaxesResponse.ResultCode}"); Console.WriteLine($"Message: {saveTaxesResponse.Message}"); foreach (var saveResult in saveTaxesResponse.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } } }
SaveTaxes Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_SaveTaxes { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var saveTaxesRequest = new SaveTaxesRequest() { BusinessDate = new DateTime(2024, 3, 30), ChangesetName = "SaveTaxes", IsImmediatePublish = false, Taxes = new Tax[] { new Tax() { Id = -1, Name = "abc", Type = TaxType.None, Amount = 10.0M, MinimumAmount = 5.0M, DisplayName = "New Tax", IsInclusive = true, UseLocationRules = true, CompoundTax = true, CompoundTaxPriority = 2, ExemptionEnabled = false, RoundingMethod = RoundingMethod.Nearest, OrderTotalType = OrderTotalType.OrderTotal, ExemptionOrderAmount = 5000.0M, ExemptionItemGroupId = 123, LimitDestinations = true, Destinations = new TaxDestination[] { new TaxDestination() { Id = -2, DestinationId = 1 } }, ModifierItems = new []{4007467}, NonRepeatingTaxBrackets = new TaxBracket[] { new TaxBracket() { Id = -2, To = 5.0M, From = 1.0M, TaxAmount = 10.0M } }, RepeatingTaxBrackets = new TaxBracket[] { new TaxBracket() { Id = -2, To = 5.0M, From = 1.0M, TaxAmount = 10.0M } }, AppliesTo = new []{ 4007426, 4007468} } } }; var saveTaxesResponse = client.SaveTaxesAsync(saveTaxesRequest); Console.WriteLine("SaveTaxes"); Console.WriteLine("-----------"); if (saveTaxesResponse.Result.ResultCode == 0) { Console.WriteLine("Success!"); foreach (var saveResult in saveTaxesResponse.Result.SaveResult) { Console.WriteLine($"\tNewTaxId: {saveResult.Id}"); Console.WriteLine($"\tOriginalTaxId: {saveResult.OriginalId}"); } } else { Console.WriteLine($"Error Code: {saveTaxesResponse.Result.ResultCode}"); Console.WriteLine($"Message: {saveTaxesResponse.Result.Message}"); foreach (var saveResult in saveTaxesResponse.Result.SaveResult) { foreach (var error in saveResult.ValidationMessages) { Console.WriteLine($"\t\tError: {error}"); } } } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling SaveTaxes operation: " + ex.Message); } finally { } } } }
SaveTaxes Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:SaveTaxes> <v2:request> <v2:BusinessDate>${=def now = new Date();now.format("yyyy-MM-dd")}</v2:BusinessDate> <v2:ChangesetName>SaveTaxes</v2:ChangesetName> <v2:IsImmediatePublish>1</v2:IsImmediatePublish> <v2:Taxes> <!--Zero or more repetitions:--> <v2:Tax> <v2:Id>-1</v2:Id> <v2:Name>Test Tax </v2:Name> <v2:Amount>10</v2:Amount> <v2:AppliesTo> <!--Zero or more repetitions:--> <arr:int>1</arr:int> </v2:AppliesTo> <v2:CompoundTax>0</v2:CompoundTax> <v2:CompoundTaxPriority>0</v2:CompoundTaxPriority> <v2:Destinations> <!--Zero or more repetitions:--> <v2:TaxDestination> <v2:Id>-1</v2:Id> <v2:DestinationId>1</v2:DestinationId> </v2:TaxDestination> </v2:Destinations> <v2:DisplayName>Test Tax ${=System.currentTimeMillis()}</v2:DisplayName> <v2:ExemptionEnabled>0</v2:ExemptionEnabled> <v2:ExemptionItemGroupId>0</v2:ExemptionItemGroupId> <v2:ExemptionOrderAmount>0</v2:ExemptionOrderAmount> <v2:IsInclusive>0</v2:IsInclusive> <v2:LimitDestinations>0</v2:LimitDestinations> <v2:MinimumAmount>10</v2:MinimumAmount> <v2:ModifierItems> <!--Zero or more repetitions:--> <arr:int>2</arr:int> </v2:ModifierItems> <v2:NonRepeatingTaxBrackets> <!--Zero or more repetitions:--> <v2:TaxBracket> <v2:Id>-3</v2:Id> <v2:From>.00</v2:From> <v2:TaxAmount>0</v2:TaxAmount> <v2:To>.001</v2:To> </v2:TaxBracket> </v2:NonRepeatingTaxBrackets> <v2:OrderTotalType>None</v2:OrderTotalType> <v2:RepeatingTaxBrackets> <!--Zero or more repetitions:--> <v2:TaxBracket> <v2:Id>-4</v2:Id> <v2:From>.00</v2:From> <v2:TaxAmount>0</v2:TaxAmount> <v2:To>.001</v2:To> </v2:TaxBracket> </v2:RepeatingTaxBrackets> <v2:RoundingMethod>TowardZero</v2:RoundingMethod> <v2:Type>Percentage</v2:Type> <v2:UseLocationRules>0</v2:UseLocationRules> </v2:Tax> </v2:Taxes> </v2:request> </v2:SaveTaxes> </soapenv:Body> </soapenv:Envelope>
SaveTaxes Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime #Helper function for negative index generator num = 0 def NextNegativeId(): global num num = num - 1 return num #Helper function for creating a new taxes def CreateNewTaxes(factory): taxes = [] newTax = factory.Tax( Id=NextNegativeId(), Name='New Tax', Amount=10, Type='Percentage', AppliesTo=( 1 ), ModifierItems=( 2 ), ) taxes.append(newTax) newTaxes = factory.ArrayOfTax(Tax=taxes) return newTaxes accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one Tax in the Taxes parameter in request body factory = client.type_factory('ns1') businessdate = datetime.today() changesetname = "SaveTaxes" isimmediatepublish = 0 req = factory.SaveTaxesRequest(BusinessDate=businessdate, IsImmediatePublish=isimmediatepublish, Taxes=CreateNewTaxes(factory)) try: #Make SaveTaxes call res = service.SaveTaxes(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print("Error Code: " + str(res.ResultCode)) print("Message: " + str(res.Message)) except Exception as e: print(e)

                
                    
                    
UpdateItemPrice Sample Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; using System.ServiceModel.Web; using UpdateItemPriceSample.Settings2ServiceReference; namespace UpdateItemPriceSample { class Program { public static ItemPriceUpdate[] CreateUpdates() { var priceUpdate = new ItemPriceUpdate() { ComponentId = 4004919, ComponentItemId = 4004898, ItemId = 4004912, Price = 10 }; ItemPriceUpdate[] updates = new ItemPriceUpdate[] { priceUpdate }; return updates; } static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); //Set security protocol to TLS 1.2 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; using (var scope = new OperationContextScope(client.InnerChannel)) { //Include tokens in HTTP Web Request Headers var headers = WebOperationContext.Current.OutgoingRequest.Headers; headers["AccessToken"] = @"AccessToken"; headers["LocationToken"] = @"LocationToken"; //Include at least one ItemPriceUpdate parameter in request body var request = new UpdateItemPriceRequest() { BusinessDate = DateTime.Today, ChangesetName = "UpdateItemPrices", ItemPriceUpdates = CreateUpdates() }; //Make UpdateItemPrice call var response = client.UpdateItemPrice(request); //If call is successful if (response.ResultCode == 0) { Console.WriteLine("Success! Result Code: " + response.ResultCode); } else { Console.WriteLine("Error Code: " + response.ResultCode); foreach (var error in response.Errors) { Console.WriteLine("Error: " + error.ErrorCode); } } Console.ReadKey(); } } } }
UpdateItemPrice Sample Code
using ServiceReference1; using System.Diagnostics.Contracts; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_UpdateItemPrice { class Program { public static ServiceCollection services = new ServiceCollection(); public static void AddSettingServiceClient() { services.AddTransient<ISettingsWebService2>((provider) => { BasicHttpBinding binding = new BasicHttpBinding(); binding.MaxReceivedMessageSize = 2147483647; EndpointAddress endpointAddress = new EndpointAddress(" {YOUR_WSDL_URL_GOES_HERE}"); ChannelFactory<ISettingsWebService2> factory = new ChannelFactory<ISettingsWebService2>(binding, endpointAddress); return factory.CreateChannel(); }); } public static ItemPriceUpdate[] CreateUpdates() { var priceUpdate = new ItemPriceUpdate() { ComponentId = 4004919, ComponentItemId = 4004898, ItemId = 4004912, Price = 10 }; ItemPriceUpdate[] updates = new ItemPriceUpdate[] { priceUpdate }; return updates; } static void Main(string[] args) { AddSettingServiceClient(); ISettingsWebService2 client = services.BuildServiceProvider().GetRequiredService<ISettingsWebService2>(); try { int count = 1; using (OperationContextScope scope = new OperationContextScope((IContextChannel)client)) { OperationContext context = OperationContext.Current; HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers["AccessToken"] = 'AccessToken'; httpRequestProperty.Headers["LocationToken"] = 'LocationToken'; context.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; var request = new UpdateItemPriceRequest() { BusinessDate = DateTime.Today, ChangesetName = "UpdateItemPrices", ItemPriceUpdates = CreateUpdates() }; //Make UpdateItemPrice call var response = client.UpdateItemPriceAsync(request); //If call is successful Console.WriteLine("UpdateItemPrices"); Console.WriteLine("----------------"); if (response.Result.ResultCode == 0) { Console.WriteLine("Success! Result Code: " + response.Result.ResultCode); } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); foreach (var error in response.Result.Errors) { Console.WriteLine("Error: " + error.ErrorCode); } } } } catch (Exception ex) { Console.WriteLine("Error calling UpdateItemPrice operation: " + ex.Message); } finally { } } } }
UpdateItemPrice Sample Code
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2"> <soapenv:Header/> <soapenv:Body> <v2:UpdateItemPrice> <v2:request> <!--Optional:--> <v2:BusinessDate>2022-02-07T00:00:00Z</v2:BusinessDate> <v2:ChangesetName>UpdateItemPrices</v2:ChangesetName> <v2:ItemPriceUpdates> <!--Zero or more repetitions:--> <v2:ItemPriceUpdate> <!--Optional:--> <v2:ComponentId>4004919</v2:ComponentId> <!--Optional:--> <v2:ComponentItemId>4004898</v2:ComponentItemId> <v2:ItemId>4004912</v2:ItemId> <v2:Price>10</v2:Price> </v2:ItemPriceUpdate> </v2:ItemPriceUpdates> </v2:request> </v2:UpdateItemPrice> </soapenv:Body> </soapenv:Envelope>
UpdateItemPrice Sample Code
from zeep import Client from zeep.transports import Transport import requests from datetime import datetime from decimal import Decimal #Helper function for creating a new ItemPriceUpdates def CreateNewItemPriceUpdates(factory): updates = [] priceUpdate = factory.ItemPriceUpdate( ComponentId = 4004919, ComponentItemId = 4004898, ItemId = 4004912, Price = 10.00 ) updates.append(priceUpdate) newUpdates= factory.ArrayOfItemPriceUpdate(ItemPriceUpdate=updates) return newUpdates accessToken = 'AccessToken' locationToken = 'LocationToken' #Include tokens in HTTP Web Request Headers session = requests.Session() session.headers.update({'AccessToken': accessToken, 'LocationToken': locationToken}) transport = Transport(session=session) #Connect to Settings2 service client client = Client(wsdl='{YOUR_WSDL_URL_GOES_HERE}', transport=transport) service = client.create_service( '{http://www.brinksoftware.com/webservices/settings/v2}BasicHttpBinding_ISettingsWebService2', 'https://{YourStack}.brinkpos.net/settings2.svc' ) #Include the at least one Employee in the Employees parameter in request body factory = client.type_factory('ns1') businessdate = datetime.today() changesetname = "UpdateItemPrices" req = factory.UpdateItemPriceRequest(BusinessDate=businessdate, ItemPriceUpdates=CreateNewItemPriceUpdates(factory)) try: #Make UpdateItemPrice call res = service.UpdateItemPrice(req) #If call is successful if(res.ResultCode == 0): print('Success! Result Code: ' + str(res.ResultCode)) else: print('Error Code: ' + str(res.ResultCode)) for error in res.Errors: print('Error: ' + error) except Exception as e: print(e)