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 Charity objects for the location.

GetCharities Request
Data Name
Data Type
Data Description
CharityIds
Array of int
Depending on the CharityId(-s) passed in request the response will return the details of that(those) charity(-s)


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
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 Promotions objects for the location.

GetPromotions Request
Data Name
Data Type
Data Description
PromotionIds
Array of int
Depending on the PromotionId(-s) passed in request the response will return the details of that(those) promotion(-s)


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
FutureOrderingOptions
FutureOrderingOptions for the location if specified
Jobs
Array of Job
Jobs for the location if specified
KitchenQueues
Array of KitchenQueue
KitchenQueues for the location if specified
KitchenVideoGroup
KitchenVideoGroups for the location if specified
Menus
Array of Menu
Menus for the location if specified
MenuItems
Array of MenuItems
MenuItems for the location if specified
ModifierTier
Array of ModifierTier
ModifierTiers for the location if specified
OnlineOrderingMenu Options
OnlineOrderingMenuOptions for the location if specified
Panels
Array of Panels
Panels for the location if specified
PaymentOptions
PaymentOptions for the location if specified
Permissions
Array of Permission
Permissions for the location if specified
PriceChanges
Array of PriceChange
PriceChanges for the location if specified
PriceLevel
Array of PriceLevel
PriceLevels for the location if specified
Printer
Array of Printer
Printers for the location if specified
PrinterGroup
Array of PrinterGroup
PrinterGroups for the location if specified
Promotions
Array of Promotion
Promotions for the location if specified
Screens
Array of Screens
Screens for the location if specified
SecurityLevels
Array of SecurityLevel
SecurityLevels for the location if specified
Tables
Array of Table
Tables for the location if specified
Tares
Array of Tares
Tares 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 BusinessHours
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


BogoPromotion Type
Data Name
Data Type
Data Description
Amount
decimal?
Amount of this Promotion
AutomaticallyApply
bool
True if automatically apply the Promotion when qualifying items are ordered, False if not
CanSpanMultipleSeats
bool
True if an automatically-applied Promotion should look at all items in an order, False if only for items for a specific seat before being applied
DiscountedItemGroupId
int
Id of the Item group containing the items that qualify for the Promotion
DiscountedItemIds
Eligible Items in this Promotion
FreeItemType
FreeItemType?
Returns one of the following:
  • GreatestPrice
  • LowestPrice
PricingMethod
BogoPricingMethod
Returns one of the following:
  • Free
  • DiscountedPrice
  • PercentDiscount
  • DollarDiscount


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)


Charity Type
Data Name
Data Type
Data Description
AutomaticallyApply
bool
True if automatically apply the charity to all orders that qualify, False if not
Days
byte?
Limits the day(s) of the week on which the charity can be assigned:
  • 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.
EndDate
DateTime?
Limits the end date on which the charity can be applied
EndTime
TimeSpan?
Limits the end time of day during which the charity can be assigned
EnforceDateRange
bool
True if limits the date(s) on which the charity can be applied, False if not
EnforceDays
bool
True if limits the day(s) of the week on which the charity can be assigned, False if not
EnforceMaximumPerOrder
bool
True if limits the number of times the charity can be assigned to an order, False if not
EnforceTimeRange
bool
True if limits the time of day during which the charity can be assigned, False if not
Id
int
Unique Id of this Charity
IsActive
bool
True if charity can be assigned to orders, False if not
Items
Array of CharityItem
These items will have their sales counted towards the charity
MaximumPerOrder
int?
Number of times the charity can be assigned to an order
Name
string
Name of the charity
NonRevenueItemId
int
ItemId selected for the roundup charity
Percent
decimal
Charity amount to be applied as a percent of the order sub-total
RoundUp
bool
True if activated the 'round up for charity' feature, False if not
StartDate
DateTime?
Limits the start date on which the charity can be applied
StartTime
TimeSpan?
Limits the start time of day during which the charity can be assigned


CharityItem Type
Data Name
Data Type
Data Description
ItemId
int
ItemId of this CharityItem


ComboComponent Type
Data Name
Data Type
Data Description
Id
int
Id of this ComboComponent
IsPrimary
bool
True if this combo component is primary, False if not
Items
Array of ComboItem
ComboItems in this ComboComponent
Name
string
Name of this ComboComponent


ComboItem Type
Data Name
Data Type
Data Description
Id
int
Id of this ComboItem
ItemId
int
ItemId of this ComboItem


ComboPromotion Type (NO LONGER USED)
Data Name
Data Type
Data Description
AutomaticallyApply
bool
True if automatically apply the Promotion when qualifying items are ordered, False if not
CanSpanMultipleSeats
bool
True if an automatically-applied Promotion should look at all items in an order, False if only for items for a specific seat before being applied
Components
Array of ComboComponent
Combo Components in this Promotion
Price
decimal
Price of this Promotion


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


CouponPromotion Type
Data Name
Data Type
Data Description
Amount
decimal
Amount of this Promotion
Application
CouponApplication
Returns one of the following:
  • UserSelects
  • SystemSelects
AppliesToModifiers
bool
True if Promotion applies to modifiers as well as base items, False if not
CouponType
CouponType
Returns one of the following:
  • Percentage
  • DollarAmount
DiscountedItemGroupId
int
Id of the Item group containing the items that qualify for the Promotion
DiscountedItemGroups
Eligible ItemGroups in this Promotion
DiscountedItemIds
Eligible Items in this Promotion
DiscountedItemLimit
int
Maximum number of items that can be reduced by the promotion
Distribution
CouponDistribution
Returns one of the following:
  • AcrossItems
  • EachItem


CreditCardOptions Type
Data Name
Data Type
Data Description
AllowUnsolicitedSwipes
bool
True if credit cards can be swiped at any time,False if not
CardSwipePostProcessScript
string
Script to be executed after processing an unsolicited card swipe
CardSwipePreProcessScript
string
Script to execute after an unsolicited card swipe, but prior to displaying the credit card dialog or processing the card
EnableStoredCreditCards
bool
True if credit cards can be stored on customer accounts,False if not
FailTransactionsOnCvvMismatch
bool
True if the CVV entered does not match the credit card's CVV,False if not
FailTransactionsOnZipMismatch
bool
True if the zip code entered does not match the credit card's zip code,False if not
ProcessorOptions
CreditProcessor Options
Configuration settings for the selected CreditProcessor
Processor
CreditProcessor
Returns one of the following:
  • None
  • FirstData
  • GlobalPayments
  • Heartland
  • Hypercom
  • Mercury
  • Vantiv
  • WorldPay
  • Tsys
RequireCvvForManualEntry TerminalTypes
ValidTerminal Types
CVV is required for manually entered cards on the checked terminal types
RequireZipForManualEntry TerminalTypes
ValidTerminal Types
Billing zip code is required for manually entered cards on the checked terminal types
ShowCardWindowOnUnsolicitedSwipe
bool
Display the credit card dialog, allowing the employee to change the amount prior to processing


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
Primary Key for Job
PayRate
decimal
Pay rate for this EmployeeJob
SecurityLevelId
int
Maps to the Id of the SecurityLevel of this EmployeeJob
SecurityLevelUniqueId
Guid
Primary Key for SecurityLevel


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


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


ExternalPaymentOptions Type
Data Name
Data Type
Data Description
Processor
ExternalPaymentProcessor
Returns one of the following:
  • None
  • LevelUp
  • Punchh
ProcessorOptions
ExternalPaymentProcessorOptions
Configuration of non-integrated payment processors


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


GiftCardOptions Type
Data Name
Data Type
Data Description
DisplayCvvForManualEntry
bool
True if display the CVV field on the gift card dialog,False if not
DisplaySecurityCodeFor ManualEntry
bool
True if display the security code field on the gift card dialog,False if not
EnforceIssueReloadManual GiftCardMaximum
bool
True if value can be assigned to IssueReloadManualGiftCard Maximum,False if not
EnforceIssueReloadSwiped GiftCardMaximum
bool
True if value can be assigned to IssueReloadSwipedGiftCard Maximum,False if not
EnforceTenderManual GiftCardMaximum
bool
True if value can be assigned to TenderManualGiftCardMaximum,False if not
EnforceTenderSwiped GiftCardMaximum
bool
True if value can be assigned to TenderSwipedGiftCardMaximum,False if not
IssueReloadManual GiftCardMaximum
decimal
Maximum amount that can be added to a new or reloaded gift card in one transaction
IssueReloadSwiped GiftCardMaximum
decimal
Maximum amount that can be added to a new or reloaded gift card in one transaction
PromptForCashoutAmount
bool
True if cashout amount is prompted, False if not
ProcessorOptions
GiftProcessor Options
Payment processor configuration for integrated stored value processing
Processor
GiftProcessor
Returns one of the following:
  • None
  • Heartland
  • Mercury
  • Svs
  • WorldPay
  • Vantiv
  • Givex
  • Valutec
  • Paytronix
  • Firstdata
  • Tcc
RequireCvvForManualEntry
bool
True if CVV value must be entered prior to processing manually entered gift cards,False if not
RequireSecurityCodeFor ManualEntry
bool
True if security code value must be entered prior to processing manually entered gift cards,False if not
TenderManualGiftCard Maximum
decimal
Maximum amount that can be charged to a gift card in one transaction
TenderSwipedGiftCard Maximum
decimal
Maximum amount that can be charged to a gift card in one transaction
AllowGiftCardMaximum Cashout
bool
True if value can be assigned to GiftCardMaximumCashoutAmount,False if not
GiftCardMaximumCashout Amount
decimal
Value of a gift card that can be cashed out


GiftCardPromotion Type
Data Name
Data Type
Data Description
Amount
decimal
Amount of this Promotion
AutomaticallyApply
bool
True if automatically apply the Promotion when qualifying items are ordered, False if not
CanSpanMultipleSeats
bool
True if an automatically-applied Promotion should look at all items in an order, False if only for items for a specific seat before being applied
DiscountedItemGroupId
int
Id of the Item group containing the items that qualify for the Promotion
DiscountedItemIds
Eligible Items in this Promotion
ReductionType
GiftCardPromotionReduction Type
Returns one of the following:
  • Percentage
  • Amount
  • NewPrice


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
bool
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


KitchenVideoGroup Type
Data Name
Data Type
Data Description
Id
int
Id of the KitchenVideoGroup
Name
string
Name of the KitchenVideoGroup
KitchenBackgroundColor
Color
Background color for all items and modifiers in the video group
RoutingOverrides
Alternate set of kitchen queues to route to when the order meets certain criteria
KitchenQueues
Contains the kitchen displays that are to display order items for this group


KitchenVideoGroupQueue Type
Data Name
Data Type
Data Description
Id
int
Id of the KitchenVideoGroupQueue
Name
string
Name of the KitchenVideoGroupQueue
KitchenQueueId
int
Id of KitchenQueue


KitchenVideoGroupRoutingOverride Type
Data Name
Data Type
Data Description
Id
int
Id of the KitchenVideoGroupRoutingOverride
Name
string
Name of the KitchenVideoGroupRoutingOverride
Type
KitchenVideoGroupRouting OverrideType
Type of the KitchenVideoGroupRoutingOverride
KitchenQueue
Contains available KitchenQueues


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












ModifierTier Type
Data Name
Data Type
Data Description
Id
int
Id of the modifier tier
Name
string
Name of the modifier tier
Level
short
Level of the modifier tier, relative to other tiers.


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


OrderReductionPromotion Type
Data Name
Data Type
Data Description
Amount
decimal
Amount of this Promotion
AppliesTo ComboComponents
bool
True if Promotion applies to combo components, False if not
AppliesToModifiers
bool
True if Promotion applies to modifiers as well as base items, False if not
AutomaticallyApply
bool
True if automatically apply the Promotion when qualifying items are ordered, False if not
CanSpanMultipleSeats
bool
True if an automatically-applied Promotion should look at all items in an order, False if only for items for a specific seat before being applied
DiscountedItemCount
int?
Maximum number of items that can be reduced by the promotion if LimitDiscountedItems is set to true
DiscountedItemGroupId
int
Id of the Item group containing the items that qualify for the Promotion
DiscountedItemGroups
Eligible ItemGroups in this Promotion
DiscountedItemIds
Eligible Items in this Promotion
DiscountedItemType
FreeItemType?
Returns one of the following:
  • GreatestPrice
  • LowestPrice
LimitDiscountedItems
bool
True if want to limit the number of items that can be reduced by the Promotion, False if not
OrderMinimum
decimal?
Minimum order subtotal required before any items qualify
OrderPromotions RequiredItems
bool
True if order items needs to be selected first for applying Promotion, False if not
ReductionType
OrderReductionType
Returns one of the following:
  • Percentage
  • Amount
  • NewPrice
  • NewIndividualPrice
  • NewTotalPrice


PanelControl Type
Data Name
Data Type
Data Description
Id
int
Id of the PanelControl
Name
string
Name of the PanelControl
BackgroundColor
Color
BackgroundColor of the PanelControl
BackgroundOpacity
double?
Level of transparency applied to the background of an PanelControl
BorderColor
Color
BorderColor of the PanelControl
ButtonTemplate
ButtonTemplate
Template for creating styled, reusable buttons
CornerRadius
byte
Radius of the PanelControl's corners
Font
FontInfo
Font of the text to be displayed on PanelControl
Height
short
Height of the PanelControl
IsShadowEnabled
bool
True if shadow of the PanelControl is visible, False if not
Left
short
Distance of PanelControl from left side of the screen
Style
byte
Style of the PanelControl
TextColor
Color
Color of the text to be displayed on PanelControl
Top
short
Distance of PanelControl from upper side of the screen
Type
PanelControlType
Type of the PanelControl to be added
Width
short
Width of the PanelControl
ZOrder
short
Used to determine which element appear on top of other when they overlap


Panels Type
Data Name
Data Type
Data Description
Id
int
Id of the Panel
Name
string
Name of the Panel
BackgroundColor
Color
BackgroundColor of the Panel
BackgroundImageDisplay Mode
BackgroundImageDisplay Mode?
Way that the Background image should display
BorderColor
Color
Color of border
BorderType
BorderType?
Type of Border
Controls
Array of PanelControl
Control for the PanelControl to be added
Font
FontInfo
Type of font
Height
short
Height of Panel
InheritBackgroundFromScreen
bool
Inherits the Panel color from parent screen
Left
short
Where on the screen the panel appears, relative to the left of the screen
Title
string
Title of Panel
TitleColor
Color
Color of title
Top
short
Where on the screen the panel appears, relative to the top of the screen
Type
PanelType
Type of panel: User or System
Width
short
Width of Panel


PayAtTableOptions Type
Data Name
Data Type
Data Description
PayAtTableType
PayAtTableType
Returns one of the payment providers:
  • None
  • ParPay
PortNumber
int?
Port the payment device is connected to
PromptForTip
bool
True if guest should be prompted by the payment device for a tip, False if not


PaymentOptions Type
Data Name
Data Type
Data Description
CreditCard
Configuration settings related to integrated credit card processing
ExternalPayment
Configuration of non-integrated payment processors
GiftCard
Configuration settings related to integrated gift card processing
Rounding
Settings pertaining to how payments are rounded
TipAndSignature
Settings to control the tip and signature prompt on the register main screen or customer display
PayAtTable
These settings allow guests to pay their check at the table for more efficient transactions


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
Primary Key for Permission


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


PriceLevel Type
Data Name
Data Type
Data Description
Id
int
Id of the PriceLevel
Name
string
Name of the PriceLevel
Price
decimal
Price assigned to items of this price level.


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


PrinterGroup Type
Data Name
Data Type
Data Description
Id
int
Id of the PrinterGroup
Name
string
Name of the PrinterGroup
Printers
Printers that are to print kitchen chits for this group
RoutingOverrides
Defines an alternate set of printers to print to when the order meets certain criteria


PrinterGroupPrinter Type
Data Name
Data Type
Data Description
Id
int
Id of the PrinterGroupPrinter
PrinterId
int
Id of the Printer


PrinterGroupRoutingOverride Type
Data Name
Data Type
Data Description
Type
PrinterGroupRoutingOverrideType
Type of the PrinterGroupRoutingOverride
Printers
Printers that are to print kitchen chits for this group.


PromotionDestination Type
Data Name
Data Type
Data Description
Id
int
Id of this Promotion Destination
DestinationId
int
DestinationId of this Promotion Destination


PromotionEligibleItem Type
Data Name
Data Type
Data Description
Id
int
Id of this Promotion Eligible Item
ItemId
int
ItemId of this Promotion Eligible Item


PromotionEligibleItemGroup Type
Data Name
Data Type
Data Description
Id
int
Id of this Promotion Eligible ItemGroup
ItemGroupId
int
ItemGroupId of this Promotion Eligible ItemGroup
Limit
byte
Limit of Eligible ItemGroup
EligibleItems
Eligible Items in this Promotion


PromotionQualification Type
Data Name
Data Type
Data Description
Amount
decimal?
Amount of this Promotion Qualification
Id
int
Id of this Promotion
ItemGroupId
int
Id of the Item group containing the items that qualify for the Promotion
Items
Qualification Items in this Promotion
Type
QualificationType
Returns one of the following:
  • ItemQuantity
  • ItemAmount


PromotionQualificationItem Type
Data Name
Data Type
Data Description
Id
int
Id of this Promotion Qualification Item
ItemId
int
ItemId of this Promotion Qualification Item


PromotionSection Type
Data Name
Data Type
Data Description
Id
int
Id of this Promotion Section
SectionId
int
SectionId of this Promotion SectionId


Promotions Type
Data Name
Data Type
Data Description
Id
int
Unique Id of this Promotion
Name
string
Name of this Promotion
Type
PromotionType
Returns one of the following:
ValidTerminalTypes
ValidTerminalTypes
Returns one of the following:
  • None
  • Register
  • CustomerPortal
  • Kiosk
  • CustomerPortalMobile
  • WebService
  • MobileApp


RoundingOptions Type
Data Name
Data Type
Data Description
IsEnabled
bool
Automatically rounds the order balance due when a cash payment is applied
RoundingMethod
RoundingMethod?
Select how order balance will be rounded when a calculation results in fractional cents:
  • Up: Rounds up to the next higher cent.
  • Down : Rounds down to the next lower cent.
  • Nearest: Rounds to the nearest cent.
  • RoundToValue
    decimal?
    Value to which the order balance will be rounded


    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


    ScreenPanel Type
    Data Name
    Data Type
    Data Description
    Id
    int
    Id of the screen panel
    PanelId
    int
    Id of the selected panel


    Screens Type
    Data Name
    Data Type
    Data Description
    Id
    int
    Id of the screen
    Name
    string
    Name of the screen
    BackgroundColor
    Color
    Background color of the screen
    DefaultPanelColor
    Color
    Default background color for panels displayed within the screen
    Height
    short
    Height of the screen
    Width
    short
    Width of the screen
    Panels
    Array of ScreenPanel
    Panels to be displayed when the screen is shown


    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
    Primary Key for SecurityLevelPermission


    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


    Tares Type
    Data Name
    Data Type
    Data Description
    Id
    int
    Id of the tare
    Name
    string
    Name of the tare
    Weight
    decimal
    Weight of the tare


    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


    TipAndSignatureOptions Type
    Data Name
    Data Type
    Data Description
    LimitByDestination
    bool
    True if limits the display of the tip and signature prompt to orders for particular destinations, False if not
    RequireTipSelection
    bool
    True if enables the ability to require tip selection to increase the likelihood of adding a tip to the order, False if not
    TipAmount1
    decimal
    Returns one of the following:
    • Percent = Displays tip amounts that are percentages of the order price
    • Fixed Amount = Displays fixed tip amounts
    TipAmount2
    decimal
    The first amount to display on the tip prompt
    TipAmount3
    decimal
    The second amount to display on the tip prompt
    TipType
    TipType
    The third amount to display on the tip prompt


                    
                        
                        
    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)

                    
                        
                        
    GetCharities 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 ServiceReference1; namespace Settings2_GetCharities { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); var request = new GetCharitiesRequest(); //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 GetCharities call var response = client.GetCharities(request); //If call is successful if (response.GetCharitiesResult.ResultCode == 0) { //Loop through collection of Charity objects returned if (response.GetCharitiesResult.Collection != null) { foreach (var charity in response.GetCharitiesResult.Collection) { Console.WriteLine("Charity #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + charity.Id); Console.WriteLine("Name: " + charity.Name); Console.WriteLine("AutomaticallyApply: " + charity.AutomaticallyApply); Console.WriteLine("Days: " + charity.Days); Console.WriteLine("EndDate: " + charity.EndDate); Console.WriteLine("EndTime: " + charity.EndTime); Console.WriteLine("EnforceDateRange: " + charity.EnforceDateRange); Console.WriteLine("EnforceDays: " + charity.EnforceDays); Console.WriteLine("EnforceMaximumPerOrder: " + charity.EnforceMaximumPerOrder); Console.WriteLine("EnforceTimeRange: " + charity.EnforceTimeRange); Console.WriteLine("IsActive: " + charity.IsActive); Console.WriteLine("Items: "); if (charity.Items != null) { foreach (var item in charity.Items) { Console.WriteLine("\tItemId: " + item.ItemId); } } Console.WriteLine("MaximumPerOrder: " + charity.MaximumPerOrder); Console.WriteLine("Percent: " + charity.Percent); Console.WriteLine("RoundUp: " + charity.RoundUp); Console.WriteLine("StartDate: " + charity.StartDate); Console.WriteLine("StartTime: " + charity.StartTime); count++; } } Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + response.GetCharitiesResult.ResultCode); Console.WriteLine("Message: " + response.GetCharitiesResult.Message); Console.ReadKey(); } } } } }
    GetCharities Sample Code
    using Microsoft.Extensions.DependencyInjection; using ServiceReference1; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetCharities { 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 GetCharitiesRequest(); var response = client.GetCharitiesAsync(request); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Charity objects returned if (response.Result.Collection != null) { foreach (var charity in response.Result.Collection) { Console.WriteLine("Charity #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + charity.Id); Console.WriteLine("Name: " + charity.Name); Console.WriteLine("AutomaticallyApply: " + charity.AutomaticallyApply); Console.WriteLine("Days: " + charity.Days); Console.WriteLine("EndDate: " + charity.EndDate); Console.WriteLine("EndTime: " + charity.EndTime); Console.WriteLine("EnforceDateRange: " + charity.EnforceDateRange); Console.WriteLine("EnforceDays: " + charity.EnforceDays); Console.WriteLine("EnforceMaximumPerOrder: " + charity.EnforceMaximumPerOrder); Console.WriteLine("EnforceTimeRange: " + charity.EnforceTimeRange); Console.WriteLine("IsActive: " + charity.IsActive); Console.WriteLine("Items: "); if (charity.Items != null) { foreach (var item in charity.Items) { Console.WriteLine("\tItemId: " + item.ItemId); } } Console.WriteLine("MaximumPerOrder: " + charity.MaximumPerOrder); Console.WriteLine("Percent: " + charity.Percent); Console.WriteLine("RoundUp: " + charity.RoundUp); Console.WriteLine("StartDate: " + charity.StartDate); Console.WriteLine("StartTime: " + charity.StartTime); } } } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetCharity operation: " + ex.Message); } } } }
    GetCharities Sample Code
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v2="http://www.brinksoftware.com/webservices/settings/v2" xmlns:set="http://schemas.datacontract.org/2004/07/SettingsApi.V2.Operations.GetCharities" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <soapenv:Header/> <soapenv:Body> <v2:GetCharities> <!--Optional:--> <v2:request> <!--Optional:--> <set:CharityIds> <!--Zero or more repetitions:--> <arr:int>101</arr:int> </set:CharityIds> </v2:request> </v2:GetCharities> </soapenv:Body> </soapenv:Envelope>
    GetCharities 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 GetCharities call res = service.GetCharities() #If call is successful if(res.ResultCode == 0): if(res.Collection != None): #Loop through collection of Charity objects returned for charity in res.Collection.Charity: print('Charity #' + str(count)) print('---------------------------') print('Id: ' + str(charity.Id)) print('Name: ' + str(charity.Name)) print('AutomaticallyApply: ' + str(charity.AutomaticallyApply)) print('Days: ' + str(charity.Days)) print('EndDate: ' + str(charity.EndDate)) print('EndTime: ' + str(charity.EndTime)) print('EnforceDateRange: ' + str(charity.EnforceDateRange)) print('EnforceDays: ' + str(charity.EnforceDays)) print('EnforceMaximumPerOrder: ' + str(charity.EnforceMaximumPerOrder)) print('EnforceTimeRange: ' + str(charity.EnforceTimeRange)) print('IsActive: ' + str(charity.IsActive)) print('MaximumPerOrder: ' + str(charity.MaximumPerOrder)) print('Percent: ' + str(charity.Percent)) print('RoundUp: ' + str(charity.RoundUp)) print('StartDate: ' + str(charity.StartDate)) print('StartTime: ' + str(charity.StartTime)) print('Items:') if(charity.Items != None): #Loop through collection of CharityItem objects returned for change in charity.Items: print('\tItemId: ' + str(change.ItemId)) print('---------------------------') print('---------------------------') count += 1 print('End') 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)

                    
                        
                        
    GetPromotions Minified Sample Code
    using ServiceReference; using System; using System.ServiceModel; using System.ServiceModel.Web; namespace Settings2_GetPromotions { class Program { static void Main(string[] args) { //Connect to Settings2 service client var client = new SettingsWebService2Client(); var request = new GetPromotionsRequest(); //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 GetPromotions call var response = client.GetPromotions(request); //If call is successful if (response.ResultCode == 0) { //Loop through collection of Promotion objects returned if (response.Collection != null) { foreach (var promotion in response.Collection) { Console.WriteLine("Promotion #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + promotion.Id); Console.WriteLine("Name: " + promotion.Name); Console.WriteLine("AllowLaterOrderReductions: " + promotion.AllowLaterOrderReductions); Console.WriteLine("AllowPriorItemPromotions: " + promotion.AllowPriorItemPromotions); Console.WriteLine("AllowPriorModifierPromotions: " + promotion.AllowPriorModifierPromotions); Console.WriteLine("AllowPriorOrderReductions: " + promotion.AllowPriorOrderReductions); Console.WriteLine("AlternateId: " + promotion.AlternateId); Console.WriteLine("BarCode: " + promotion.BarCode); Console.WriteLine("Code: " + promotion.Code); Console.WriteLine("Days: " + promotion.Days); Console.WriteLine("EndDate: " + promotion.EndDate); Console.WriteLine("EndTime: " + promotion.EndTime); Console.WriteLine("EnforceDateRange: " + promotion.EnforceDateRange); Console.WriteLine("EnforceDays: " + promotion.EnforceDays); Console.WriteLine("EnforceMaximumAmount: " + promotion.EnforceMaximumAmount); Console.WriteLine("EnforceMaximumPerOrder: " + promotion.EnforceMaximumPerOrder); Console.WriteLine("EnforceTimeRange: " + promotion.EnforceTimeRange); Console.WriteLine("IsActive: " + promotion.IsActive); Console.WriteLine("Type: " + promotion.Type); if (promotion.ValidDestinations != null) { //Loop through collection of PromotionDestinations objects returned foreach (var promotionDestination in promotion.ValidDestinations) { Console.WriteLine("PromotionDestination: "); Console.WriteLine("\tId: " + promotionDestination.Id); Console.WriteLine("\tDestinationId: " + promotionDestination.DestinationId); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("ValidTerminalTypes: " + promotion.ValidTerminalTypes); //If Returned Promotion is BogoPromotion if (promotion.Type == PromotionType.Bogo) { var bogoPromotion = (BogoPromotion)promotion; Console.WriteLine("Amount: " + bogoPromotion.Amount); Console.WriteLine("AutomaticallyApply: " + bogoPromotion.AutomaticallyApply); Console.WriteLine("CanSpanMultipleSeats: " + bogoPromotion.CanSpanMultipleSeats); Console.WriteLine("DiscountedItemGroupId: " + bogoPromotion.DiscountedItemGroupId); if (bogoPromotion.DiscountedItemIds != null) { //Loop through collection of PromotionEligibleItems objects returned foreach (var promotionEligibleItem in bogoPromotion.DiscountedItemIds) { Console.WriteLine("PromotionEligibleItem: "); Console.WriteLine("\tId: " + promotionEligibleItem.Id); Console.WriteLine("\tItemId: " + promotionEligibleItem.ItemId); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("FreeItemType: " + bogoPromotion.FreeItemType); Console.WriteLine("PricingMethod: " + bogoPromotion.PricingMethod); } Console.WriteLine("---------------------------"); count++; } } Console.WriteLine("End"); Console.ReadKey(); } else { Console.WriteLine("Error Code: " + response.ResultCode); Console.WriteLine("Message: " + response.Message); Console.ReadKey(); } } } } }
    GetPromotions Minified Sample Code
    using Microsoft.Extensions.DependencyInjection; using ServiceReference; using System.ServiceModel; using System.ServiceModel.Channels; namespace Settings2_GetPromotions { 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 GetPromotionsRequest(); var response = client.GetPromotionsAsync(request); //If call is successful if (response.Result.ResultCode == 0) { //Loop through collection of Promotion objects returned if (response.Result.Collection != null) { foreach (var promotion in response.Result.Collection) { Console.WriteLine("Promotion #" + count); Console.WriteLine("---------------------------"); Console.WriteLine("Id: " + promotion.Id); Console.WriteLine("Name: " + promotion.Name); Console.WriteLine("AllowLaterOrderReductions: " + promotion.AllowLaterOrderReductions); Console.WriteLine("AllowPriorItemPromotions: " + promotion.AllowPriorItemPromotions); Console.WriteLine("AllowPriorModifierPromotions: " + promotion.AllowPriorModifierPromotions); Console.WriteLine("AllowPriorOrderReductions: " + promotion.AllowPriorOrderReductions); Console.WriteLine("AlternateId: " + promotion.AlternateId); Console.WriteLine("BarCode: " + promotion.BarCode); Console.WriteLine("Code: " + promotion.Code); Console.WriteLine("Type: " + promotion.Type); if (promotion.ValidDestinations != null) { //Loop through collection of PromotionDestinations objects returned foreach (var promotionDestination in promotion.ValidDestinations) { Console.WriteLine("PromotionDestination: "); Console.WriteLine("\tId: " + promotionDestination.Id); Console.WriteLine("\tDestinationId: " + promotionDestination.DestinationId); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("ValidTerminalTypes: " + promotion.ValidTerminalTypes); //If Returned Promotion is BogoPromotion if(promotion.Type == PromotionType.Bogo) { var bogoPromotion = (BogoPromotion) promotion; Console.WriteLine("Amount: " + bogoPromotion.Amount); Console.WriteLine("AutomaticallyApply: " + bogoPromotion.AutomaticallyApply); Console.WriteLine("CanSpanMultipleSeats: " + bogoPromotion.CanSpanMultipleSeats); Console.WriteLine("DiscountedItemGroupId: " + bogoPromotion.DiscountedItemGroupId); if (bogoPromotion.DiscountedItemIds != null) { //Loop through collection of PromotionEligibleItems objects returned foreach (var promotionEligibleItem in bogoPromotion.DiscountedItemIds) { Console.WriteLine("PromotionEligibleItem: "); Console.WriteLine("\tId: " + promotionEligibleItem.Id); Console.WriteLine("\tItemId: " + promotionEligibleItem.ItemId); Console.WriteLine("\t-----------------------"); } } Console.WriteLine("FreeItemType: " + bogoPromotion.FreeItemType); Console.WriteLine("PricingMethod: " + bogoPromotion.PricingMethod); } Console.WriteLine("---------------------------"); count++; } } } else { Console.WriteLine("Error Code: " + response.Result.ResultCode); Console.WriteLine("Message: " + response.Result.Message); } Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("Error calling GetPromotions operation: " + ex.Message); } } } }
    GetPromotions 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:GetPromotions> <!--Optional:--> <v2:request> <!--Optional:--> <v2:PromotionIds> <!--Zero or more repetitions:--> <arr:int>1</arr:int> </v2:PromotionIds> </v2:request> </v2:GetPromotions> </soapenv:Body> </soapenv:Envelope>
    GetPromotions 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 GetPromotions call res = service.GetPromotions() #If call is successful if(res.ResultCode == 0): if(res.Collection != None): #Loop through collection of Promotion objects returned for promotion in res.Collection.Promotions: print('Promotion #' + str(count)) print('---------------------------') print('Id: ' + str(promotion.Id)) print('Name: ' + str(promotion.Name)) print("AllowLaterOrderReductions: " + str(promotion.AllowLaterOrderReductions)) print("AllowPriorItemPromotions: " + str(promotion.AllowPriorItemPromotions)) print("AllowPriorModifierPromotions: " + str(promotion.AllowPriorModifierPromotions)) print("AllowPriorOrderReductions: " + str(promotion.AllowPriorOrderReductions)) print("AlternateId: " + str(promotion.AlternateId)) print("BarCode: " + str(promotion.BarCode)) print("Code: " + str(promotion.Code)) print("Days: " + str(promotion.Days)) print("EndDate: " + str(promotion.EndDate)) print("EndTime: " + str(promotion.EndTime)) print("EnforceDateRange: " + str(promotion.EnforceDateRange)) print("EnforceDays: " + str(promotion.EnforceDays)) print("EnforceMaximumAmount: " + str(promotion.EnforceMaximumAmount)) print("EnforceMaximumPerOrder: " + str(promotion.EnforceMaximumPerOrder)) print("EnforceTimeRange: " + str(promotion.EnforceTimeRange)) print("IsActive: " + str(promotion.IsActive)) print("Type: " + str(promotion.Type)) if (promotion.ValidDestinations != None): #Loop through collection of PromotionDestinations objects returned print("PromotionDestination: " + str(promotion.ValidDestinations)) if (promotion.ValidSections != None): #Loop through collection of PromotionValidSections objects returned print("PromotionValidSection: " + str(promotion.ValidSections)) #If Returned Promotion is BogoPromotion promotionType = promotion.Type if (promotionType == 'Bogo'): bogoPromotion = promotion print("Amount: " + str(bogoPromotion.Amount)) print("AutomaticallyApply: " + str(bogoPromotion.AutomaticallyApply)) print("CanSpanMultipleSeats: " + str(bogoPromotion.CanSpanMultipleSeats)) print("DiscountedItemGroupId: " + str(bogoPromotion.DiscountedItemGroupId)) if (bogoPromotion.DiscountedItemIds != None): print("PromotionEligibleItem: " + str(bogoPromotion.DiscountedItemIds)) print("FreeItemType: " + str(bogoPromotion.FreeItemType)) print("PricingMethod: " + str(bogoPromotion.PricingMethod)) 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)