Deposit Model

Defines the model for submitting deposits to the EPOS system

Required
DepositID : string (GUID)

The globally unique identifier for the overall Transaction

Required
Active_RevisionID : number (int)

This represents the revision of the configuration data that was being used when this transaction was generated. This is primarily for use by the PowerEPOS software, however 3rd party integrators can set this too if they
are using our configuration data as a basis for sale information, otherwise just set this to 0.

Required
ScopedNodeType : SiteHierarchyNodeTypes

The type of node which has top level access to this record (record is available for use at the scoped node level and below)

Required
ScopedNodeID : string (GUID)

The ID of node which has top level access to this record (record is available for use at the scoped node level and below)

Required
OutletID : string (GUID)

The unique OutletID for the outlet the deposit belongs to based on the POS_Outlets (configuration) table.
3rd party integrations can use an existing configuration based outlet ID, or can allocate their own outlet ID for deposits if the deposit does not belong to a standard POS outlet.

Required MaxLength(64) Truncates
OutletGroupCommonName : string

The name of the Outlet group (at the time of sale) that this deposit belongs to.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Australian Outlets

Required MaxLength(64) Truncates
OutletGroupLocalizedName : string

The localised name of the Outlet group (at the time of sale) that this deposit belongs to.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: Australian Outlets

Required MaxLength(64) Truncates
OutletCommonName : string

The name of the Outlet that this deposit belongs to.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Little Johns Pizza

Required MaxLength(64) Truncates
OutletLocalizedName : string

The localised name of the Outlet that this deposit belongs to.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: Little Johns Pizza

Required MaxLength(32) Truncates
CreatedBy_UserName : string

The name of the POS User / person who created the deposit.
3rd Party integrations should specify a user name (where applicable), or use the integration name as a fallback.
Example: John

Required MaxLength(256)
Created_DeviceIdentifier : string

This is an identifier for the device which created the deposit. PowerEPOS uses a combination of MAC Address, Hostname and OS.
3rd Party integrators can leave this blank, or set this to something meaningful if a need arises to track deposits created by a certain device.

Required MaxLength(64) Truncates
Created_TerminalCommonName : string

The name of the terminal (typically the POS terminal) that created the deposit.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the deposits, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS"

Required MaxLength(64) Truncates
Created_TerminalLocalizedName : string

The localised name of the terminal (typically the POS terminal) that created the deposit.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the deposits, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS"

Required MaxLength(4)
Created_TerminalDisplayID : string

A short ID for the terminal that created the deposit, typically matching the ID from the POS_Terminals (configuration) record.
3rd Party integrations can leave this blank or come up with their own short name for the terminal.
Example: P1 or TRM1 or INTG

Required MaxLength(128) Truncates
Created_ClientName : string

The name of the software application that has created the deposit.
3rd Party integrations should enter their application or integration name here.
Example: "My POS App" or "My Website App"

Required MaxLength(128) Truncates
Created_ClientVersion : string

The version of the software application that has created the deposit.
3rd Party integrations should enter their application version name here.
Example: "1.0.0.0" or "1" or "2.5a" etc

Required MaxLength(4)
CurrencyCode : string

An ISO 4217 currency code indicating the currency that all values in this deposit represent. This MUST be a valid currency code.
Example: "GBP" or "AUD" or "USD" or "EUR"

Required MaxLength(8)
CurrencySymbol : string

The currency symbol displayed for values in this currency
Example: "$" or "£" or "€"

Required MaxLength(64) Truncates
CurrencyCommonName : string

The name of the currency that all values in this deposit represent.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Euro" or "Pound Stirling" or "Australian Dollar" or "US Dollar"

Required MaxLength(64) Truncates
CurrencyLocalizedName : string

The localised name of the currency that all values in this deposit represent.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: "Euro" or "Pound Stirling" or "Australian Dollar" or "US Dollar"

Required MaxLength(36)
DepositCode : string

This is a user friendly visual reference number for the deposit, used for deposit lookups
This is not required to be sequential and is not required to be unique (although it is recommended that it is), although it should be unique for a reasonable period of time.

Required MaxLength(512) Truncates
Notes : string

This is the notes to record against the deposit.
This field may be an empty string, but cannot be NULL

Nullable
DBGen : number (int)

This represents an identifier for a unique database operation that last updated/created this entity. The value is not unique as it can be shared across multiple entities if they were all inserted/updated
from within a single operation. These values are always incrementing so all entities with DBGen > X can be assumed that they were edited/inserted since the operation X occured.

Expect a 64 bit integer.

This is a readonly property. Setting it will have no effect. It will be assigned internally and made visible when querying for this model

Nullable
Created_SalesTransactionPaymentID : string (GUID)

The Sales Transaction Payment record ID of the deposit payment line item that represents the deposit creation

Nullable
Created_ZReportID : string (GUID)

This is the unique ID of the Z Report that this depost's payment figures have been included in.
Related Fields: Created_ZReportCounter, Created_TradingDate

Nullable
Created_ZReportCounter : number (int)

This is the Z Counter from the Z Report that this deposit's payment figures have been included in.
Related Fields: Created_ZReportID, Created_TradingDate

Nullable
Created_TradingDate : string (ISO 8601 DateTime)

This is the Trading Date of the Z Report that this deposit's payment figures have been included in.
This should be just the trading date itself, with no time component. eg 2020-01-01 00:00:00
Related Fields: Created_ZReportID, Created_ZReportCounter

Nullable
CreatedBy_EmployeeID : string (GUID)

The unique employee record ID of the employee / staff member who created the deposit.
This may be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
CreatedBy_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS user that created the deposit.
This may be NULL for 3rd party integrations

Nullable
Created_TerminalID : string (GUID)

This is the unique TerminalID of a record from the POS_Terminals (configuration) table representing the Terminal which created the deposit.
3rd Party integrations would normally set this to be NULL

Nullable
Created_EventID : string (GUID)

This is the unique EventID of a record from the POS_Events (configuration) table representing the Event this deposit is considered part of.
3rd Party integrations would normally set this to be NULL

Nullable MaxLength(64) Truncates
Created_EventCommonName : string

The name of the event that this deposit is considered part of, or blank if no Event is related to this deposit.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations will usually set this to blank
Example: "" (ie blank) or "Xmas Day" or "Wedding" or "Grand Final"

Nullable MaxLength(64) Truncates
Created_EventLocalizedName : string

The localised name of the event that this deposit is considered part of, or blank if no Event is related to this deposit.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the deposits, as Terminal is main filter that can be used by the Reporting system.
Example: "" (ie blank) or "Xmas Day" or "Wedding" or "Grand Final"

Nullable
Created_ServiceModeID : string (GUID)

The unique ID of the POS_ServiceModes (configuration) record matching the Service Mode the deposit it is intended to be redeemed in
This may be NULL for 3rd party integrations or where no configuration based service mode was used

Nullable MaxLength(32) Truncates
Created_ServiceModeCommonName : string

(OPTIONAL) The name of the Service Mode the deposit will be redeemed in
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Table

Nullable MaxLength(32) Truncates
Created_ServiceModeLocalizedName : string

(OPTIONAL) The localised name of the Service Mode the deposit will be redeemed in.
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: Table

Nullable MaxLength(8) Truncates
Created_ServiceModeCommonShortPrefix : string

(OPTIONAL) The short prefix of the Service Mode the deposit will be redeemed in.
3rd Party integrations can make up their own short names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: TBL

Nullable MaxLength(8) Truncates
Created_ServiceModeLocalizedShortPrefix : string

(OPTIONAL) The localised short prefix of the Service Mode the deposit will be redeemed in.
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: TBL

Nullable MaxLength(8)
Created_ServiceModeEntityID : string

(OPTIONAL) This is the reference ID relating to the optional Service Mode assigned to this deposit. If you had a service mode called "Table", a ServiceModeEntityID might be "10", indicating table number 10.
Example: 10

Nullable
Paid_SalesTransactionID : string (GUID)

The Sales Transaction record ID of the transaction that contains the payment(s) that paid for the deposit creation

Nullable
DateTimeCreated : string (ISO 8601 DateTime)

This is the Date and Time that the deposit was created in the outlet's local time.

Nullable
Consumed_SalesTransactionPaymentID : string (GUID)

The Sales Transaction Payment record ID of the deposit payment line item that represents the deposit redemption

Nullable
Consumed_ZReportID : string (GUID)

This is the unique ID of the Z Report that this deposit's redeemption occured in. This should be set for redeemed deposits.
NULL means the deposit is paid, but not yet redeemed.
Related Fields: Consumed_ZReportCounter, Consumed_TradingDate

Nullable
Consumed_ZReportCounter : number (int)

This is the Z Counter from the Z Report that this deposit's redeemption occured in. This should be set for redeemed deposits.
NULL means the deposit is paid, but not yet redeemed.
Related Fields: Consumed_ZReportID, Consumed_TradingDate

Nullable
Consumed_TradingDate : string (ISO 8601 DateTime)

This is the Trading Date of the Z Report that this deposit's redeemption occured in. This should be set for redeemed deposits.
NULL means the deposit is paid, but not yet redeemed.
When populated, this should be just the trading date itself, with no time component. eg 2020-01-01 00:00:00
Related Fields: Consumed_ZReportID, Consumed_ZReportCounter

Nullable
ConsumedBy_EmployeeID : string (GUID)

The unique employee record ID of the employee / staff member who redeemed the deposit.
This may be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
ConsumedBy_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS user that redeemed the deposit.
This may be NULL for 3rd party integrations

Nullable MaxLength(32) Truncates
ConsumedBy_UserName : string

The name of the POS User / person who redeemed the deposit.
3rd Party integrations should specify a user name (where applicable), or use the integration name as a fallback.
Example: John

Nullable MaxLength(256)
Consumed_DeviceIdentifier : string

This is an identifier for the device which redeemed the deposit. PowerEPOS uses a combination of MAC Address, Hostname and OS.
3rd Party integrators can leave this blank, or set this to something meaningful if a need arises to track deposits redeemed by a certain device.

Nullable
Consumed_TerminalID : string (GUID)

This is the unique TerminalID of a record from the POS_Terminals (configuration) table representing the Terminal which redeemed the deposit.
3rd Party integrations would normally set this to be NULL

Nullable MaxLength(64) Truncates
Consumed_TerminalCommonName : string

The name of the terminal (typically the POS terminal) that redeemed the deposit.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the deposits, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS"

Nullable MaxLength(64) Truncates
Consumed_TerminalLocalizedName : string

The localised name of the terminal (typically the POS terminal) that redeemed the deposit.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the deposits, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS"

Nullable MaxLength(4)
Consumed_TerminalDisplayID : string

A short ID for the terminal that redeemed the deposit, typically matching the ID from the POS_Terminals (configuration) record.
3rd Party integrations can leave this blank or come up with their own short name for the terminal.
Example: P1 or TRM1 or INTG

Nullable MaxLength(128) Truncates
Consumed_ClientName : string

The name of the software application that has consumed the deposit.
3rd Party integrations should enter their application or integration name here.
Example: "My POS App" or "My Website App"

Nullable MaxLength(128) Truncates
Consumed_ClientVersion : string

The version of the software application that has consumed the deposit.
3rd Party integrations should enter their application version name here.
Example: "1.0.0.0" or "1" or "2.5a" etc

Nullable
Consumed_EventID : string (GUID)

This is the unique EventID of a record from the POS_Events (configuration) table representing the Event this deposit was redeemed in.
3rd Party integrations would normally set this to be NULL

Nullable MaxLength(64) Truncates
Consumed_EventCommonName : string

The name of the event that this deposit was redeemed in, or blank if no Event is related to this deposit.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations will usually set this to blank
Example: "" (ie blank) or "Xmas Day" or "Wedding" or "Grand Final"

Nullable MaxLength(64) Truncates
Consumed_EventLocalizedName : string

The localised name of the event that this deposit was redeemed in, or blank if no Event is related to this deposit.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
3rd Party integrations should specify a meaningful name (possibly the integration name) to group the source of the deposits, as Terminal is main filter that can be used by the Reporting system.
Example: "" (ie blank) or "Xmas Day" or "Wedding" or "Grand Final"

Nullable
Consumed_ServiceModeID : string (GUID)

The unique ID of the POS_ServiceModes (configuration) record matching the Service Mode the deposit was redeemed in.
This may be NULL for 3rd party integrations or where no configuration based service mode was used

Nullable MaxLength(32) Truncates
Consumed_ServiceModeCommonName : string

(OPTIONAL) The name of the Service Mode the deposit will be redeemed in
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Table

Nullable MaxLength(32) Truncates
Consumed_ServiceModeLocalizedName : string

(OPTIONAL) The localised name of the Service Mode the deposit was redeemed in.
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: Table

Nullable MaxLength(8) Truncates
Consumed_ServiceModeCommonShortPrefix : string

(OPTIONAL) The short prefix of the Service Mode the deposit was redeemed in.
3rd Party integrations can make up their own short names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: TBL

Nullable MaxLength(8) Truncates
Consumed_ServiceModeLocalizedShortPrefix : string

(OPTIONAL) The localised short prefix of the Service Mode the deposit was redeemed in.
3rd Party integrations can make up their own names, or they can base them on the existing Service Mode configuration if available.
Note: This should be in the outlets "Local Language", ie the language used by the POS system on site. This may or may not be the same as the common language.
Example: TBL

Nullable MaxLength(8)
Consumed_ServiceModeEntityID : string

(OPTIONAL) This is the reference ID relating to the optional Service Mode assigned to this deposit. If you had a service mode called "Table", a ServiceModeEntityID might be "10", indicating table number 10.
Example: 10

Nullable
DateTimeConsumed : string (ISO 8601 DateTime)

This is the Date and Time that the deposit was redeemed in the outlet's local time.
Set this to NULL if the deposit is not yet redeemed.

IsTraining : bool

Is this a training mode deposit (ie not part of official sales figures)

IsRedeemed : bool

Is this the deposit redeemed?

IsCancelled : bool

Is the deposit cancelled?

IsExpired : bool

Is the deposit expired?

Nullable decimal(18, 2)
Amount : number (decimal)

This is the total value of the deposit

Nullable
DepositType : DepositTypes

This is the type of deposit, eg Manual or Event Based. Will be an enum value from POSCorePublic.Enums.POS.DepositTypes

Nullable
DateTimeRedeemExpected : string (ISO 8601 DateTime)

This is the Date and Time that the redemption is expected to occur in the outlet's local time.
This field is optional and may be NULL

Nullable
Covers : number (int)

This represents the number of Covers/Guests associated with the deposit. For example a table with 4 people sitting at it should have a Covers count of 4.
Some deposit types may use a default of 1 covers, or possibly even 0. This often depends on how the customer using the software would like to report average spend and guest counts for different types of deposits.

Nullable
StatusFlags : DepositStatusFlags

This is the status flags applicable to the deposit from the POSCorePublic.Enums.Sales.DepositStatusFlags enum.

Nullable MaxLength(32) Truncates
PrimaryContactFirstName : string

This is the first name of the Primary Contact and should be considered a read-only property. It will be set automatically by the deposit queryables.
Setting or overriding this value yourself will have no effect on the deposit record, it is purely informational for the simple purpose of easily being
able to display an associated contact name
May be NULL or blank if no first name available

Nullable MaxLength(32) Truncates
PrimaryContactLastName : string

This is the last name of the Primary Contact and should be considered a read-only property. It will be set automatically by the deposit queryables.
Setting or overriding this value yourself will have no effect on the deposit record, it is purely informational for the simple purpose of easily being
able to display an associated contact name
May be NULL or blank if no last name available

Nullable
ContactAssignments : ContactAssignment_Deposit []

A list of Contact Assignments for this deposit.

Example
{
  "DepositID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Active_RevisionID": 321,
  "ScopedNodeType": 1,
  "ScopedNodeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "OutletID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "OutletGroupCommonName": "string value",
  "OutletGroupLocalizedName": "string value",
  "OutletCommonName": "string value",
  "OutletLocalizedName": "string value",
  "CreatedBy_UserName": "string value",
  "Created_DeviceIdentifier": "string value",
  "Created_TerminalCommonName": "string value",
  "Created_TerminalLocalizedName": "string value",
  "Created_TerminalDisplayID": "string value",
  "Created_ClientName": "string value",
  "Created_ClientVersion": "string value",
  "CurrencyCode": "string value",
  "CurrencySymbol": "string value",
  "CurrencyCommonName": "string value",
  "CurrencyLocalizedName": "string value",
  "DepositCode": "string value",
  "Notes": "string value",
  "DBGen": 321,
  "Created_SalesTransactionPaymentID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Created_ZReportID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Created_ZReportCounter": 321,
  "Created_TradingDate": "2012-04-03T09:40:59.736Z",
  "CreatedBy_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "CreatedBy_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Created_TerminalID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Created_EventID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Created_EventCommonName": "string value",
  "Created_EventLocalizedName": "string value",
  "Created_ServiceModeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Created_ServiceModeCommonName": "string value",
  "Created_ServiceModeLocalizedName": "string value",
  "Created_ServiceModeCommonShortPrefix": "string value",
  "Created_ServiceModeLocalizedShortPrefix": "string value",
  "Created_ServiceModeEntityID": "string value",
  "Paid_SalesTransactionID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "DateTimeCreated": "2012-04-03T09:40:59.736Z",
  "Consumed_SalesTransactionPaymentID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Consumed_ZReportID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Consumed_ZReportCounter": 321,
  "Consumed_TradingDate": "2012-04-03T09:40:59.736Z",
  "ConsumedBy_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ConsumedBy_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ConsumedBy_UserName": "string value",
  "Consumed_DeviceIdentifier": "string value",
  "Consumed_TerminalID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Consumed_TerminalCommonName": "string value",
  "Consumed_TerminalLocalizedName": "string value",
  "Consumed_TerminalDisplayID": "string value",
  "Consumed_ClientName": "string value",
  "Consumed_ClientVersion": "string value",
  "Consumed_EventID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Consumed_EventCommonName": "string value",
  "Consumed_EventLocalizedName": "string value",
  "Consumed_ServiceModeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Consumed_ServiceModeCommonName": "string value",
  "Consumed_ServiceModeLocalizedName": "string value",
  "Consumed_ServiceModeCommonShortPrefix": "string value",
  "Consumed_ServiceModeLocalizedShortPrefix": "string value",
  "Consumed_ServiceModeEntityID": "string value",
  "DateTimeConsumed": "2012-04-03T09:40:59.736Z",
  "IsTraining": true,
  "IsRedeemed": true,
  "IsCancelled": true,
  "IsExpired": true,
  "Amount": 1.23,
  "DepositType": 1,
  "DateTimeRedeemExpected": "2012-04-03T09:40:59.736Z",
  "Covers": 321,
  "StatusFlags": 1,
  "PrimaryContactFirstName": "string value",
  "PrimaryContactLastName": "string value",
  "ContactAssignments": []
}