SalesTransactionPayment Model

This record defines payment information for a SalesTransaction.

Required
SalesTransactionPaymentID : string (GUID)

The Unique identifier for this record

Required
Active_RevisionID : number (int)

This represents the revision of the configuration data that was being used when this record 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
ZReportID : string (GUID)

This is the unique ID of the Z Report that this payment has been included in. This is required for all payments.
Related Fields: ZReportCounter, TradingDate

Required
ZReportCounter : number (int)

This is the Z Counter from the Z Report that this payment has been included in. This is required for all payments.
Related Fields: ZReportID, TradingDate

Required MaxLength(32) Truncates
Cashier_UserName : string

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

Required MaxLength(32) Truncates
PaymentTypeCommonName : string

The name of the Payment Type that was used to create this payment
3rd Party integrations can make up their own names, or they can base them on the existing PaymentType configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: CASH or Visa or Mastercard

Required MaxLength(32) Truncates
PaymentTypeLocalizedName : string

The localised name of the Payment Type that was used to create this payment
3rd Party integrations can make up their own names, or they can base them on the existing PaymentType 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: CASH or Visa or Mastercard

Required MaxLength(256)
Created_DeviceIdentifier : string

This is an identifier for the device which created the record. 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 records created by a certain device.

Required MaxLength(64) Truncates
Created_TerminalCommonName : string

The name of the terminal (typically the POS terminal) that created the record.
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 records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(64) Truncates
Created_TerminalLocalizedName : string

The localised name of the terminal (typically the POS terminal) that created the record.
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 records, as Terminal is main filter that can be used by the Reporting system.
Example: "POS 1" or "Bar POS" or "Online Orders"

Required MaxLength(4)
Created_TerminalDisplayID : string

A short ID for the terminal that created the record, 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(64) Truncates
Revenue_CostCenterCommonName : string

The name of the cost center allocated to this payment for revenue tracking purposes (if applicable), otherwise blank (ie empty string)
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
3rd Party integrations can make up their own revenue center names if required, or they can base them on the existing configuration records if available.
Example: "Restaurant" or "Outlet" or "Front Bar"

Required MaxLength(64) Truncates
Revenue_CostCenterLocalizedName : string

The localised name of the cost center allocated to this payment for revenue tracking purposes (if applicable), otherwise blank (ie empty string)
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 can make up their own revenue center names if required, or they can base them on the existing configuration records if available.
Example: "Restaurant" or "Outlet" or "Front Bar"

Required MaxLength(32) Truncates
ServiceModeCommonName : string

The name of the Service Mode the payment was added 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

Required MaxLength(32) Truncates
ServiceModeLocalizedName : string

The localised name of the Service Mode the payment was added 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

Required MaxLength(8) Truncates
ServiceModeCommonShortPrefix : string

The short prefix of the Service Mode the payment was added 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

Required MaxLength(8) Truncates
ServiceModeLocalizedShortPrefix : string

The localised short prefix of the Service Mode the payment was added 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

Required MaxLength(8)
ServiceModeEntityID : string

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

Nullable
TradingDate : string (ISO 8601 DateTime)

This is the Trading Date of the Z Report that this payment has been included in. This is required for all payments.
This should be just the trading date itself, with no time component. eg 2020-01-01 00:00:00
Related Fields: ZReportID, ZReportCounter

Nullable
DateTimePaid : string (ISO 8601 DateTime)

The date and time the payment was created in outlet local time

Nullable
SplitBillID : number (int)

When split billing is used, this indicates which bill number the payment was applied to, otherwise this value will always be 0.
3rd Party integrations should set this to 0.

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

This is the total purchase amount for the payment, ie the value of all items that are being paid. It does not include tips or cashout.
This value is in the outlet's local currency
Example: 30.00

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

This is the amount of change that was returned as part of the payment when the tendered amount exceeds the required amount.
AmountChange = AmountTendered - (AmountPaid + AmountCashOut + AmountTip + AmountServiceCharge + AmountSurcharge)
This value is in the outlet's local currency
Example: 3.00

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

This is the amount of cash out supplied with this payment. Typically this only applies to credit card / eftpos transactions that support the cash out facility. This is in addition to the purchase amount (ie AmountPaid)
This value is in the outlet's local currency
Example: 10.00

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

This is the tip amount that was included as part of the payment. This is in addition to the purchase amount (ie Amount Paid)
This value is in the outlet's local currency
Example: 7.00

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

This is the service charge amount that was included as part of the payment. This is in addition to the purchase amount (ie Amount Paid)
This value is in the outlet's local currency
Example: 2.50

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

This is the surcharge amount that was included as part of the payment (eg a Credit Card payment surcharge). This is in addition to the purchase amount (ie Amount Paid)
This value is in the outlet's local currency
Example: 2.50

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

This is the amount that was required to round the purchase amount (AmountPaid) to complete the payment. This is only applicable in countries like Australia which round cash payments to the nearest 5 cents as 5 cents in the smallest cash denomination.
This value is in the outlet's local currency
Example: 0.01 (eg if transaction amount was 29.99, if paid in cash in Australia, the purchase amount is rounded to 30.00)

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

This is the raw payment amount that was given to the cashier at the time of payment by the customer. This will usually only be more than the required amount when cash is used and the customer pays using a denomination that exceeds the required amount.
This value is in the outlet's local currency
Example: 50.00

Nullable
StatusFlags : number (int)

The status flags applicable to this payment as per the POSCorePublic.Enums.Sales.PaymentStatusFlags enum.

AffectsCID : bool

Does this payment affect the CID (cash in draw). Typically this is only ever true for the CASH payment type.

IsPaymentReversal : bool

Is this payment a reversal of another payment?

IsPaymentCancelled : bool

Is this a cancelled payment?

IsPaymentCashOut : bool

Is this payment the CASH OUT component of another payment?

IsPaymentChanged : bool

Has the payment been changed since it was originally created?

WasReversed : bool

Has this payment been reversed (ie is there another payment which IsPaymentReversal of this payment)

Nullable decimal(18, 7)
ForeignCurrencyRate : number (decimal)

Defines the exchange rate for the foreign currency used at the time of this payment (if applicable)
3rd Party integrations should set this to 0

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

The amount tendered in the foreign currency (if applicable)
3rd Party integrations should set this to 0

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

The change amount given in the foreign currency (if applicable)
3rd Party integrations should set this to 0

Nullable MaxLength(4)
Foreign_CurrencyCode : string

An ISO 4217 currency code indicating the currency that the "ForeignCurrency" values in this record represent. This MUST be a valid currency code or blank (empty string) if no foreign currency is used.
3rd Party integrations should set this to blank (empty string)
Example: "GBP" or "AUD" or "USD" or "EUR"

Nullable MaxLength(8)
Foreign_CurrencySymbol : string

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

Nullable MaxLength(64) Truncates
Foreign_CurrencyCommonName : string

The name of the currency that all "ForeignCurrency" values in this record 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"

Nullable MaxLength(64) Truncates
Foreign_CurrencyLocalizedName : string

The localised name of the currency that all "ForeignCurrency" values in this record 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"

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

The number of loyalty (membership) points accumulated due to this payment
Set this to 0 if no loyalty integration exists.

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

The number of loyalty (membership) points that were redeemed to create this payment
Set this to 0 if no loyalty integration exists.

Nullable
Cashier_EmployeeID : string (GUID)

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

Nullable
Cashier_UserID : string (GUID)

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

Nullable
Manager_EmployeeID : string (GUID)

The unique employee record ID of the employee / manager who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations or where no Employee (Time Clocking / HR) integration exists.

Nullable
Manager_UserID : string (GUID)

This unique UserID from the POS_Users (configuration) table representing the POS User who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations

Nullable MaxLength(32) Truncates
Manager_UserName : string

The name of the POS User / person who approved the action that created this record (if applicable).
Typically this value will be NULL as manager authorisation is usually only required occasionally.
This will typically be NULL for 3rd party integrations
Example: Mary

Nullable
PaymentTypeID : string (GUID)

This unique PaymentTypeID from the POS_PaymentTypes (configuration) table representing the Payment Type this record was created from.
This will typically be NULL for 3rd party integrations

Nullable MaxLength(40) Truncates
CreditCardMerchantID : string

The MerchantID being used by the Credit Card integration that processed this payment (if applicable)

Null values will be converted to an empty string internally

Nullable MaxLength(40) Truncates
CreditCardTerminalID : string

The TerminalID being used by the Credit Card integration that processed this payment (if applicable).
This is the Terminal ID of the physical credit card machine.

Null values will be converted to an empty string internally

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

This is the service chargable sales amount that the service charge amount chosen was paid against.
This value is in the outlet's local currency
Example: 2.50

Nullable MaxLength(32) Truncates
ServiceChargeCommonName : string

The name of the Service Charge that was included with this payment
3rd Party integrations can make up their own names, or they can base them on the existing ServiceChargeScheme configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: Optional Service Charge

Nullable MaxLength(32) Truncates
ServiceChargeLocalizedName : string

The localised name of the Service Charge that was included with this payment
3rd Party integrations can make up their own names, or they can base them on the existing ServiceChargeScheme 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: Optional Service Charge

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 record.
3rd Party integrations would normally set this to be NULL

Nullable
Revenue_CostCenterID : string (GUID)

This is the unique ID of a record from the POS_CostCenters (configuration) table representing the cost center allocated to this payment for revenue tracking purposes
3rd Party integrations would normally set this to be NULL

Nullable
ServiceModeID : string (GUID)

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

Nullable
RemarkGroupID : string (GUID)

The unique ID of the POS_RemarkGroups (configuration) record matching the Remark Group the remark was added from (if applicable)
This may be NULL for 3rd party integrations or where no remark was applied.

Nullable MaxLength(64) Truncates
RemarkGroupCommonName : string

The name of the Remark Group the remark (if applicable) belongs to. Leave blank (empty string) if no remark is associated with this payment.
3rd Party integrations can make up their own names, or they can base them on the existing Remark Group configuration if available. Typically this value is blank (empty string).
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Payment Remarks"

Nullable MaxLength(64) Truncates
RemarkGroupLocalizedName : string

The localised name of the Remark Group the remark (if applicable) belongs to. Leave blank (empty string) if no remark is associated with this payment.
3rd Party integrations can make up their own names, or they can base them on the existing Remark Group configuration if available. Typically this value is blank (empty string).
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: "Payment Remarks"

Nullable
RemarkID : string (GUID)

The unique ID of the POS_Remarks (configuration) record matching the Remark configuration record that the remark was added from (if applicable)
This may be NULL for 3rd party integrations or where no remark was applied.

Nullable MaxLength(256) Truncates
RemarkCommonName : string

The name of the Remark (if applicable) that was applied. Leave blank (empty string) if no remark is associated with this payment.
3rd Party integrations can make up their own names, or they can base them on the existing Remark configuration if available.
Note: This should be in the organisations "Common Language", ie their overall default neutral language (typically English).
Example: "Personal Cheque"

Nullable MaxLength(256) Truncates
RemarkLocalizedName : string

The localised name of the Remark (if applicable) that was applied. Leave blank (empty string) if no remark is associated with this payment.
3rd Party integrations can make up their own names, or they can base them on the existing Remark 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: "Personal Cheque"

Example
{
  "SalesTransactionPaymentID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Active_RevisionID": 321,
  "ZReportID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ZReportCounter": 321,
  "Cashier_UserName": "string value",
  "PaymentTypeCommonName": "string value",
  "PaymentTypeLocalizedName": "string value",
  "Created_DeviceIdentifier": "string value",
  "Created_TerminalCommonName": "string value",
  "Created_TerminalLocalizedName": "string value",
  "Created_TerminalDisplayID": "string value",
  "Revenue_CostCenterCommonName": "string value",
  "Revenue_CostCenterLocalizedName": "string value",
  "ServiceModeCommonName": "string value",
  "ServiceModeLocalizedName": "string value",
  "ServiceModeCommonShortPrefix": "string value",
  "ServiceModeLocalizedShortPrefix": "string value",
  "ServiceModeEntityID": "string value",
  "TradingDate": "2012-04-03T09:40:59.736Z",
  "DateTimePaid": "2012-04-03T09:40:59.736Z",
  "SplitBillID": 321,
  "AmountPaid": 1.23,
  "AmountChange": 1.23,
  "AmountCashOut": 1.23,
  "AmountTip": 1.23,
  "AmountServiceCharge": 1.23,
  "AmountSurcharge": 1.23,
  "AmountRounded": 1.23,
  "AmountTendered": 1.23,
  "StatusFlags": 321,
  "AffectsCID": true,
  "IsPaymentReversal": true,
  "IsPaymentCancelled": true,
  "IsPaymentCashOut": true,
  "IsPaymentChanged": true,
  "WasReversed": true,
  "ForeignCurrencyRate": 1.23,
  "ForeignCurrencyTendered": 1.23,
  "ForeignCurrencyChange": 1.23,
  "Foreign_CurrencyCode": "string value",
  "Foreign_CurrencySymbol": "string value",
  "Foreign_CurrencyCommonName": "string value",
  "Foreign_CurrencyLocalizedName": "string value",
  "LoyaltyPointsAccrued": 1.23,
  "LoyaltyPointsRedeemed": 1.23,
  "Cashier_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Cashier_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_EmployeeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Manager_UserName": "string value",
  "PaymentTypeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "CreditCardMerchantID": "string value",
  "CreditCardTerminalID": "string value",
  "ServiceChargableSales": 1.23,
  "ServiceChargeCommonName": "string value",
  "ServiceChargeLocalizedName": "string value",
  "Created_TerminalID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "Revenue_CostCenterID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "ServiceModeID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "RemarkGroupID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "RemarkGroupCommonName": "string value",
  "RemarkGroupLocalizedName": "string value",
  "RemarkID": "3f49efe7-ea42-4f21-8718-7e6ce9a33512",
  "RemarkCommonName": "string value",
  "RemarkLocalizedName": "string value"
}