Implementation Guide POS Back Office: June 4, 2018
Implementation Guide POS Back Office: June 4, 2018
June 4, 2018
Version 3.6
Document Summary
This guide provides implementers with the information and knowledge required to
implement the POS/Back Office Interface Specification.
Configuration and reporting for site, merchandise, fuel, taxes, tender, and workforce, as
well as reporting for the POS Journal, are covered.
POSBO_ImplementationGuide Page 1 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Contributors
Allie Russell, Conexxus
Bill Wade, PDI
Chris Tauchnitz, Verifone
David Ezell, VeriFone, Inc.
David Godwin, VeriFone, Inc.
Gregg Peele, CMI Solutions, Inc.
Jeff Shein, NCR
Jim Koch, NCR
Keith Hess, ALON Brands
Kim Seufer, Conexxus
Linda Toth, Conexxus
Lisa Hester, Gilbarco Veeder-Root
Sam Pfanstiel, Coalfire
Scott Wood, PCATS
Raymond Lugo, SSCS
Tony Ross, PDI
POSBO_ImplementationGuide Page 2 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Revision History
Revision Date Revision Revision Editor(s) Revision Changes
Number
June 4, 2018 Version 3.6 Linda Toth, Conexxus Release Version
March 12, 2018 Draft 1.13 Kim Seufer, Conexxus Changes incorporated from
Committee vote
February 12, Draft 1.12 Kim Seufer, Conexxus Changes from review of
2018 Committee meeting on
February 12, 2018. Added
watermark.
February 9, Draft 1.11 David Ezell, Verifone Cleaned up examples
2018
January 17, Draft 1.10 Linda Toth, Conexxus Changes from reviews
2018
January 9, Draft 1.9 Bill Wade, PDI Added language to sections
2018 David Ezell, Conexxus 8.2.1 and 8.3.1
December 1, Draft 1.8 Kim Seufer, Conexxus Formatting changes
2017
October 6, 2017 Draft 1.7 David Ezell, Verifone Preliminary updates for v3.6
October 16, 1.6 Linda Toth, Conexxus - Release Version
2014
September 23, Draft 1.6 Linda Toth, Conexxus - Updated with feedback from
Public Comment Period
2014
- Updated copyright
May 28, 2014 Draft 1.5 Linda Toth, Conexxus Changes for Conexxus
March 29, 2014 Draft 1.4 Linda Toth, PCATS - Updated with feedback from
SQA and Counsel reviews
February 21, Draft 1.3 Linda Toth ,PCATS - Updated with feedback from
committee member reviews
2014
February 1, Draft 1.2 Linda Toth, PCATS - Updated Axis Reporting
- Incorporated committee
2014 review and comments
January 26, Draft 1.1 Linda Toth, PCATS - Updated copyright and
disclaimer
2014 - Reorganized Document
- Improved readability and
clarity
- Adjusted formatting
- Extensive rewrites and
additions to provide improved
content
POSBO_ImplementationGuide Page 3 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
May 17, 2014 1.0.1 Linda Toth, Conexxus Changes for Conexxus
Nov 5, 2012 1.0 Linda Toth, PCATS Approved for Release
April 23, 2012 Draft 0.2 Linda Toth, PCATS - Updated data models for site
and taxes
- Replaced TaxLevelID in
TSTDetail examples with
preferred element
TaxStrategyTaxLevelID
- Minor wording changes in the
introduction
March 28, 2012 Draft 0.1 Linda Toth, PCATS Initial version in new format
POSBO_ImplementationGuide Page 4 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Copyright Statement
Copyright © CONEXXUS, INC. 2014-2018, All Rights Reserved.
Conexxus members may use this document for purposes consistent with the adoption
of the Conexxus Standard; however, Conexxus must pre-approve any inconsistent uses in
writing.
Conexxus recognizes that a Member may wish to create a derivative work that
comments on, or otherwise explains or assists in implementation, including citing or
referring to the standard, specification, protocol, schema, or guideline, in whole or in part.
The member may do so, but may share such derivative work ONLY with another Conexxus
Member who possesses appropriate document rights (i.e., Gold or Silver Members) or with
a direct contractor who is responsible for implementing the standard for the Member. In so
doing, a Conexxus Member should require its development partners to download Conexxus
documents and schemas directly from the Conexxus website. A Conexxus Member may
not furnish this document in any form, along with any derivative works, to non-
members of Conexxus or to Conexxus Members who do not possess document rights
(i.e., Bronze Members) or who are not direct contractors of the Member. A Member
may demonstrate its Conexxus membership at a level that includes document rights by
presenting an unexpired digitally signed Conexxus membership certificate.
This document may not be modified in any way, including removal of the copyright
notice or references to Conexxus. However, a Member has the right to make draft
changes to schema for trial use, before submission to Conexxus for consideration to be
included in the existing standard. Translations of this document into languages other
than English shall continue to reflect the Conexxus copyright notice.
The limited permissions granted above are perpetual and will not be revoked by
Conexxus, Inc. or its successors or assigns, except in the circumstance where an entity,
who is no longer a member in good standing but who rightfully obtained Conexxus
Standards as a former member, is acquired by a non-member entity. In such
circumstances, Conexxus may revoke the grant of limited permissions or require the
acquiring entity to establish rightful access to Conexxus Standards through
membership.
POSBO_ImplementationGuide Page 5 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Disclaimers
Conexxus makes no warranty, express or implied, about, nor does it assume any legal
liability or responsibility for, the accuracy, completeness, or usefulness of any
information, product, or process described in these materials. Although Conexxus uses
reasonable best efforts to ensure this work product is free of any encumbrances
resulting from third party intellectual property rights (IPR), it cannot guarantee that
such IPR does not exist now or in the future. Conexxus further notifies all users of this
standard that their individual method of implementation may result in infringement of
the IPR of others. Accordingly, each user is encouraged to carefully review its
implementation of this standard and obtain appropriate licenses where needed.
POSBO_ImplementationGuide Page 6 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Table of Contents
POSBO_ImplementationGuide Page 7 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
7 Internationalization ................................................................................................... 29
8 Implementation Details ............................................................................................. 29
8.1 Working Samples................................................................................................ 29
8.2 Configuration ...................................................................................................... 30
8.2.1 QUAID ......................................................................................................... 30
8.2.2 Site ............................................................................................................... 33
8.2.3 Merchandise ................................................................................................ 34
8.2.4 Fuel .............................................................................................................. 37
8.2.5 Taxes ............................................................................................................ 37
8.2.6 Workforce .................................................................................................... 44
8.3 Reporting ............................................................................................................ 44
8.3.1 Reporting Conventions ............................................................................... 44
8.3.2 Reporting Process and Periods ................................................................... 45
8.3.3 Movement Report Request ......................................................................... 46
8.3.4 Axis Reporting ............................................................................................. 47
8.3.5 Site ............................................................................................................... 49
8.3.6 Merchandise ................................................................................................ 49
8.3.7 Fuel .............................................................................................................. 51
8.3.8 Taxes ............................................................................................................ 51
8.3.9 Tender ......................................................................................................... 52
8.4 Journal ................................................................................................................ 53
8.4.1 Journal Conventions ................................................................................... 53
8.4.2 Promotions, Discounts and other Reductions in Price .............................. 57
8.4.3 Taxes ............................................................................................................ 58
8.4.4 Fuel .............................................................................................................. 59
8.4.5 Linked Items and Fees ................................................................................ 60
8.4.6 Pay In and Pay Out ...................................................................................... 60
8.4.7 Coupons ....................................................................................................... 60
8.4.8 Foreign Currency ........................................................................................ 61
POSBO_ImplementationGuide Page 8 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.4.9 Entry Methods............................................................................................. 61
8.4.10 Sale Events .................................................................................................. 61
8.4.11 Refund Events ............................................................................................. 62
8.4.12 Void Events ................................................................................................. 63
8.4.13 Financial Events .......................................................................................... 63
8.4.14 Other Events................................................................................................ 63
8.5 Extensions .......................................................................................................... 64
POSBO_ImplementationGuide Page 9 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Project
POS Back Office
• Site: Site data includes fundamental information regarding a specific retail site
(store). A retail site is a physical location in which products and services are
offered for sale to the public. A site has certain fundamental characteristics (e.g.,
ID, name, address, phone number) that should be consistent across all
components of the retailer’s business information systems. Site documents
describe those fundamental characteristics by which that information may be
shared between system components;
• Merchandise: Merchandise codes are used to categorize products and services
for sale by retail businesses. Hierarchical categories are supported;
• Fuel: Fuel and fueling equipment configuration and reporting provides the
means to track inventory and sales of grades and products at the site;
• Taxes: POS systems must collect sales, use, and other taxes based on state, local
and regional laws. A Back Office System can configure the POS so proper taxes
are collected. Reporting allows retrieval of paid taxes from the POS once
transactions occur;
• Workforce: Configuration and reporting related to employees, tasks, and
schedules;
• Tender: (Reporting only) Tender reports describe activities with respect to
methods of payment; and
• POS Journal: Transaction-level detailed report regarding activities conducted on
or routed to or through the POS system.
POSBO_ImplementationGuide Page 10 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
2 Architecture
A key component of the software architecture is the POS-to-Back Office System
topology, which focuses on the interface between the two systems. In general, the
interface consists of defining various kinds of sales data (both real-time and summary),
as well as necessary configuration data that can keep the systems coordinated.
Configuration – Pricebook,
scheduling, etc.
Back Office
POS System
System
The software architecture defines the documents in the exchange, as well as the
relationships implicit in the data contained in those documents. The Specification takes
into account that implementation of these documents, as used by various combinations
of POS and Back Office systems, will vary and must be flexible.
This structure addresses some of the key elements normally found in well-defined
software architectures:
POSBO_ImplementationGuide Page 11 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
3 Security Considerations
Depending on the implementation, several elements within the POS Journal’s
SaleEvent complex element should be evaluated to determine if they contain sensitive
data. In particular, AccountInfo and Authorization complex elements each
include sub elements that could contain sensitive data, and thus present security risks if
not secured properly. The contents of AccountInfo include AccountID as well as
other fields that may pose security risks. Of special concern is the CardInfo element
included in Authorization, which may contain PCI cardholder data (CHD).
Starting with version 3.6 of the schemas, some of these fields are now optional. It is also
worth noting that CardInfo may be marked as deprecated in future versions of this
Specification, which should help to reduce security risks associated with its misuse.
Similarly, the CustomerID element contains fields that could contain personally
identifiable information (PII), some of which may be required by certain
implementations (e.g., PersonalID, BirthDate). While BirthDate may or may not
be considered PII when viewed alone, when it is associated with other PII there is a risk
that disclosure could impact consumer privacy.
It is incumbent upon the implementer to take due care in transmission of sensitive data
(e.g., PII, CHD). It is recommended that data encryption, transformation, and/or
truncation be used to reduce the risks associated with disclosure of sensitive data that
may be present in these fields.
Implementations should support the transmission and storage of sensitive data only if
absolutely required.
4 Protocol
The protocol for the NAXML POS/Back Office interface is "document exchange." The
Specification supports the following usage scenarios:
POSBO_ImplementationGuide Page 12 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Up through this version of the Specification there is no explicit design or specific
recommendation for:
• Communication format;
• Transmission security (i.e., authentication or encryption);
• Acknowledgements; or
• Response documents (i.e., indicating success or failure).
Partners collaborating to implement the Specification must resolve these issues in a way
that works in their respective environments.
5 Data Model
The following Data Models shows the relationships between various entities in the
Specification. The data details for these entities (i.e., what they contain) is best found
either in the XML Schema documents for the Specification or in the following sections.
The Maintenance Entities and Movement Entities data model consists of several data
sets: Site, Merchandise, Fuel, Taxes, Tender, and Workforce. The Journal Entities data
model is a self-contained model.
POSBO_ImplementationGuide Page 13 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
FuelPosition
PK FuelPositionID
TaxIncludes
FuelGradeAxis Movement
PK TaxLevelID
PK,FK1 FuelGradeID
FuelGrade FK1 PriceTierCode
PK FuelGradeID FK1 ServiceLevelCode
TaxLevel Movement PK PriceTierCode FK1 TimeTierCode
TaxLevel TaxStrategy MerchandiseCode
PK ServiceLevelCode
PK,FK1 TaxLevelID PK TaxLevelID PK MerchandiseCode PK TimeTierCode
PK TaxStrategyID
FuelProduct FuelProduct Movement
FK1,FK2 TaxLevelID FK1 TaxStrategyID FK1 FuelProductID
FuelProductIDHigh PK FuelProductID PK,FK1 FuelProductID
FK2 MerchandiseCode
FK3 TaxStrategyID
ItemSales Movement Item
PK,FK1 ItemCode PK ItemCode FuelGrade Movement
PK ItemID
FK1 MerchandiseCode FuelPriceChange PK,FK1 FuelGradeID
FK2 TaxStrategyID MixMatch
PK,FK1 PriceTierCode FK1 PriceTierCode
PK PromotionID PK,FK1 ServiceLevelCode FK1 ServiceLevelCode
PK,FK1 TimeTierCode FK1 TimeTierCode
FK1 ItemListID PK,FK1 FuelGradeID
PK Tender
TenderSummary Movement
BatchSummaryAxis Movement
PK BatchID
BatchSummary Movementl
PK BatchID
POSBO_ImplementationGuide Page 14 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
5.1 Site
The Site and ReasonCode data sets are two of a group of standalone tables designed to configure operations on a POS.
MiscellaneousSummary Movement is used for reporting various key performance indicators from the POS.
PK SiteID PK MiscellaneousSummaryCode
PK,FK1 Tender
SiteTrait[]
ReasonCode
PK ReasonCode Tender
PK Tender
POSBO_ImplementationGuide Page 15 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
5.2 Merchandise
The merchandise data model represents the organizing structure for grouping products for sale, pricing those products,
and then reporting the results of individual transactions or a group of transactions.
TaxStrategy MerchandiseCode
PK TaxStrategyID PK MerchandiseCode
FK1 TaxStrategyID
PK PromotionID
FK1 ItemListID
POSBO_ImplementationGuide Page 16 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
5.3 Fuel
The fuel data model defines fuel grades, the composition of those grades from inventoried products delivered to the site,
and the location of products in tanks. It also allows for reporting by grade, product, and tank.
FuelPosition
PK FuelPositionID
FuelGradeAxis Movement
PK,FK1 FuelGradeID
FuelGrade FK1 PriceTierCode
PK FuelGradeID FK1 ServiceLevelCode
PK PriceTierCode FK1 TimeTierCode
TaxStrategy MerchandiseCode
PK ServiceLevelCode
PK TaxStrategyID PK MerchandiseCode PK TimeTierCode
FuelProduct FuelProduct Movement
FK1 TaxStrategyID FK1 FuelProductID
FuelProductIDHigh PK FuelProductID PK,FK1 FuelProductID
FK2 MerchandiseCode
FK3 TaxStrategyID
FuelGrade Movement
POSBO_ImplementationGuide Page 17 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
5.4 Taxes
The tax data model has TaxIncludes and TaxLevel items that define individual tax categories for computing taxes and
reporting taxes collected, as well as sales in taxable categories. Tax Strategy provides a way to associate multiple TaxLevel
and TaxIncludes elements to a single item or merchandise code.
TaxIncludes
PK TaxLevelID
FK1,FK2 TaxLevelID
POSBO_ImplementationGuide Page 18 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
5.5 Tender
The current version of the Specification does not allow for tender configuration, but it does support reporting sales by
tender, as well as tender related batch reports.
BatchSummaryAxis Movement
PK BatchID
BatchSummary Movementl
PK BatchID
POSBO_ImplementationGuide Page 19 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
5.6 Workforce
The workforce data model allows the Back Office System to configure information about employees and to assign tasks
and schedules. This version of the Specification does not currently support any reporting for workforce.
PK EmployeeID
POSBO_ImplementationGuide Page 20 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
5.7 POS Journal
The POS Journal records events from the POS on a periodic basis (e.g., shift, day, other). Sales, refunds, voids are primary
events, with financial and other events completing the available data.
JournalReport
TransactionLine TransactionSummary
POSBO_ImplementationGuide Page 21 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
FinancialEventDetail
BatchDetail CheckCashDetail DrawerLoanDetail DriveOffDetail PayInDetail PayOutDetail PriceOverrideDetail SafeDropDetail SafeLoanDetail PumpTestDetail
OtherEvent
6.1 Configuration
Information on configuration is exchanged using the NAXML-PBIMaintenance schema
or using the PBIConfiguration wrapper around the maintenance schema. Top-level
elements found in the schemas are described in the following sections.
6.1.1 QUAID
Using the PBIConfiguration schema, a sending system or device (e.g., Back Office) can
query and update the receiving system (e.g., Point-of-Sale) via one of the following
methods, known as "QUAID": Query, Update, Add, Initialize, and Delete. Additional
information on how QUAID is used can be found in section 8.2.1 QUAID.
6.1.2 Site
The site configuration data sets are used to exchange fundamental information
regarding a specific retail site, which has certain fundamental characteristics (e.g., ID,
name, address, phone number) that should be consistent across all components of the
retailer’s business information system. The site configuration data sets include:
6.1.3 Merchandise
The merchandise data sets are used to identify and categorize products for sale by a
retail site, as well as to configure mix/match and combo deals. The merchandise data
sets include:
6.1.4 Fuel
The fuel data sets are used to identify and map fuel grades, fuel positions, and tank
products, as well as to establish tank parameters and tier pricing. The fuel data sets
include:
POSBO_ImplementationGuide Page 24 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
capacity and other tank vital statistics. The elements contained in this table would
generally be sent to the POS as part of an initial configuration.
6.1.5 Taxes
The taxes data sets are used to configure taxes that must be collected by the POS. The
taxes data sets include:
6.1.6 Workforce
The workforce data sets are used to configure and manage information about
employees. The workforce data sets include:
POSBO_ImplementationGuide Page 25 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
6.2 Reporting
The following sections document the top-level elements found in the NAXML-
PBIMovement schema.
6.2.1 Site
The miscellaneous summary report provides summary information from the site not
found in other movement reports. The miscellaneous summary data sets include:
6.2.2 Merchandise
The merchandise reports provide information about sales of specific merchandise, as
well as combos and mix/match specific sales data. The merchandise reporting data sets
include:
ItemSalesMovement: Item Sales Movement (ISM) reports sales, refunds, and voids
grouped by each individual unique item sold within the reporting period. ISM reports
list the number sold and sales amount for each unique item and sums the discounts
applied for each item.
6.2.3 Fuel
The fuel reports provide information about sales of specific fuel grades or inventoried
products, as well as tank inventory information. The fuel reporting data sets include:
6.2.4 Taxes
The tax report provides information about taxes collected. The taxes reporting data sets
include:
TaxLevelMovement: Tax Level Movement (TLM) contains data elements the POS
system needs to send to the Back Office to report tax collection information by tax level,
including taxable, tax exempt, and tax forgiven (e.g., food stamp program purchases)
amounts.
POSBO_ImplementationGuide Page 27 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
6.2.5 Tender
Legal tender is a medium of payment allowed by law or recognized by a legal system to
be valid for meeting a financial obligation. 1 In the United States, legal tender for retail
site payments are those payment types defined in ANSI X9.104-Part 2. The term “legal
tender” is often shortened to “tender” in retail environments. Tender reports provide
information categorized by types of financial transactions. The tender reporting data
sets include:
NAXML-AutoSafeReport: The Auto Safe Report feature is separate from the rest of
the POS/BackOffice interface. The schema document for this feature is aligned with the
Movement Reports (e.g., headers). The Auto Safe Report allows for reporting of
deposits, cash or checks collected, current change funds, and other cash movement
functions. Some of these are reportable by day or by shift, or as a “snapshot” at a point
in time.
7 Internationalization
The Point of Sale/Back Office Specification supports internationalization through the
use of currency codes and site language preference. The SiteDetails complex
element under SiteMaintenance has two attributes, DefaultCurrencyCode and
SecondaryCurrencyCode, to specify currency. See section 8.4.8 Foreign Currency
for further discussion of foreign currency. Two attributes, DefaultLanguageCode
and SecondaryLanguageCode, are used to specify site language preference.
Internationalized support using SiteDetails is implementation dependent.
8 Implementation Details
In an effort to promote the best possible interoperability, starting with V3.6, the
POS/BO Committee has generated actual working examples for various types of
reporting and journal events. The xml examples are prescriptive in the use of elements
and attributes for the example, but they are not so prescriptive to limit other elements
and attributes as long as they have not been deprecated.
POSBO_ImplementationGuide Page 29 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Where appropriate, references to these examples are provided in the following sections.
The example xml files and style sheets can be downloaded from the Conexxus website as
part of the current version of the Specification. The example zip file is packed
8.2 Configuration
Configuration data contains the necessary parameters to setup the POS system. The
Back Office System typically maintains a copy of the configuration data.
8.2.1 QUAID
A sending system or device (e.g., Back Office) can query and update the receiving system
(e.g., POS) via one of the following methods, known as "QUAID": Query, Update, Add,
Initialize, or Delete. Previously supported maintenance patterns (e.g., non-QUAID) are
still supported, but may be deprecated in a future release of this Specification.
The QUAID methods allow a sending system to interact with data sets using:
• Query: Request transmission of specified data set(s) from the receiving system;
• Update: Request the update of one or more existing members of specified data
set(s);
• Add: Request insertion or update of one or more existing members of specified
data set(s);
• Initialize: Replace existing contents of specified data set(s) with a new collection
of zero or more members; and
• Delete: Request the removal of one or more existing members of specified data
set(s).
8.2.1.1 Nillability
Nillability in the context of a W3C XML Schema 1.0 indicates that the value of the
element is not set (e.g., there is no value for this element). Per the Conexxus Design
Rules for XML, two cases in which nillability may be useful are:
• When the sending system cannot provide a value for a required element, the use
of nil for that element may be appropriate, as determined by the schema
designers; or
• When the sending system must indicate that the value of an optional element has
changed from a non-null value to null, the use of nil is appropriate.
POSBO_ImplementationGuide Page 30 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
For QUAID, this translates into the following table:
To query configuration data from the POS, a query document using the NAXML-
ConfigurationRequest element from the NAXML-PBIConfiguration schema should
be created. The Query element should be used, choosing the desired query content
element and populating sub-elements and attributes as appropriate. The guid attribute
should be populated by creating a Globally Unique Identifier (GUID) for each new
request.
POSBO_ImplementationGuide Page 31 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
For example, to query the configuration information for all merchandise codes, see
example XML file Configuration/01-Query-MCTDetail.xml.
For example, to query the configuration information for merchandise code 9999, see
example XML file Configuration/01-Query-MCTDetail-specific.xml.
To update configuration data to the POS, an update document using the NAXML-
ConfigurationRequest element from the NAXML-PBIConfiguration schema should
be created. The Update element under ConfigurationGroup should be used,
choosing the desired update content element and populating sub-elements and
attributes as appropriate. The guid attribute should be populated by creating a GUID
for each new request.
For example, to update merchandise code 9999, see example XML file
Configuration/02-Update-MCTDetail.xml.
To add configuration data to the POS, an add document using the NAXML-
ConfigurationRequest element from the NAXML-PBIConfiguration schema should
be created. The Add element under ConfigurationGroup should be used, choosing
the desired add content element and populating sub-elements and attributes as
appropriate. The guid attribute should be populated by creating a GUID for each new
request.
For example, to add merchandise code 9999, see example XML file
Configuration/03-Add-MCTDetail.xml.
To send initialization configuration data to the POS, an initialize document using the
NAXML-ConfigurationRequest element from the NAXML-PBIConfiguration
schema should be created. The Initialize element should be used, choosing the
POSBO_ImplementationGuide Page 32 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
desired initialize content element and populating sub-elements and attributes for any
records desired. Sending an initialize data set document that contains no records
removes any existing such records at the POS. The guid attribute should be populated
by creating a GUID for each new request.
For example, to initialize (clear) the merchandise code records and add merchandise
code 9999, see example XML file Configuration/04-Initialize-
MCTDetail.xml.
To delete configuration data from the POS, a delete document using the NAXML-
ConfigurationRequest element from the NAXML-PBIConfiguration schema should
be created. The Delete element under ConfigurationGroup should be used,
choosing the desired delete content element and populating sub-elements and attributes
as appropriate. When deleting a record, the only parameter necessary is the record key
information. The guid attribute should be populated by creating a GUID for each new
request.
For example, to delete merchandise code 9999, see example XML file
Configuration/05-Delete-MCTDetail.xml.
8.2.2 Site
Data defined in the site configuration set is used across the system.
8.2.3 Merchandise
Merchandise describes the goods and services available for sale at a site. The
Specification does not define a list of merchandise or category codes; it only provides a
way to load the codes into the POS.
By definition, a Global Trade Identification Number (GTIN) must include the check
digit. When using barcode numbers formatted as a GTIN, the POSCodeFormat
format attribute must contain a value of gtin, and the checkDigit attribute must
contain a value of present.
For other barcode number formats, the checkDigit attribute SHOULD be provided,
with the appropriate value to indicate whether a barcode check digit is provided. The
inclusion of barcode check digits is strongly recommended to ensure the integrity of the
data, as well as provide consistency with other formats.
The MerchandiseCode field (i.e., the id for the data set) is composite in order to
support the hierarchical nature of the data set. The level field, if present, indicates
that the id is composite, and, a “1” represents the top level. By convention, if no
hierarchy is used, level should not be indicated for any MerchandiseCode. The
delimiter is a period (“.”) between the subfields of the ID, and the level number must
match the number of delimited fields. Each subfield of the MerchandiseCode must be
at least one and up to 16 numeric digits.
Example 1
Example 2
POSBO_ImplementationGuide Page 35 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
For example, to set up a hierarchical Merchandise Code for Maintenance, see example
XML file Maintenance/01-MerchandiseCodeMaint.xml.
Prior to revision 3.5, the Specification allowed any payment system product code to be
passed between the Back Office and the POS. Starting in version 3.5, the schema will
enforce defined three-digit product codes. The payment system product codes
specification and corresponding schema
(NAXMLCore-PaymentSystemProductCodes.xsd) can be found on the Conexxus web
site (http://www.conexxus.org) in the standards area. These Payment System Product
Codes are also maintained by Conexxus as part of ANSI X9.104-Part 2, the US national
standard for transaction messaging between a POS and an acquiring host.
To support systems that do not conform to the defined three-digit codes, the POS/Back
Office schema will allow any two, four, or five-digit code. For example:
• 22 IS allowed, it is 2 digits;
• 434 IS allowed, it is defined in the Payment System Product Codes schema
explicitly;
• 435 is NOT allowed, it is not defined as a three-digit code in the Payment System
Product Codes schema;
• 1111 IS allowed, it is 4 digits; and
• 56789 IS allowed, it is 5 digits.
POSBO_ImplementationGuide Page 36 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.2.4 Fuel
Fuel grade configuration can be sent from a Back Office to a POS using the fuel grade
maintenance data set (FGT). FGT contains the necessary configuration data to setup a
sellable grade of fuel, including whether or not the grade is derived from the blending of
two inventoried products, the blend percentage, tank assignments, the network or
payment system product code, taxes, price, etc. If a grade is changed from a blended
grade back to a single inventoried product, the optional FuelProductIDHigh element
should be set to nil.
Fuel Price Maintenance (FPM) may be used when only grade prices are sent (without
the corresponding complete grade configuration data.)
8.2.5 Taxes
Tax Strategies are described in the TSTDetail complex element under
TaxStrategyMaintenance. Tax Levels are described in the TLTDetail complex
element under TaxLevelMaintenance. In addition to the xml examples shown inline
below, there are two example XML file available in the downloads: Maintenance/02-
TaxLevelMaint.xml and Maintenance/03-TaxStrategyMaint.xml.
A Tax Strategy defines a set of taxes, wherein each tax is identified by a unique tax level
ID, that are to be combined together under a unique tax strategy ID. The tax strategy ID
is then assigned to the items, merchandise codes, and fuel grades to which the set of
taxes defined in the strategy must be applied at the time of sale. By assigning a tax
strategy to a merchandise code, all the items that are associated with that merchandise
code are taxed by all the tax levels associated with that tax strategy. When an item is
associated directly with a tax strategy code and indirectly through a merchandise code,
the direct item-to-tax strategy association takes precedence over the indirect association
though a merchandise code. Since tax strategies are linked to tax levels (e.g., state, local,
city taxes), this link is also used to influence how the calculation of one tax might affect
the calculation of subsequent taxes. An example of this latter situation occurs when a
tax is calculated based on the results of a previously calculated tax (tax on tax).
POSBO_ImplementationGuide Page 37 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
While Tax Strategy determines which taxes apply for a merchandise code, fuel grade, or
item, a tax level defines exactly how a specific tax is to be calculated.
A “TaxSpecialRule” can be defined at the POS to calculate taxes in cases where the other
methods are not adequate to handle the calculation.
• The Tax Simple Breakpoint Table - This table contains a list of sales values and
their respective tax amounts. No repeating pattern is assumed and there is an
option to set the tax to be charged as a percentage of the transaction total once
the sales amount increases beyond the range of the specified table; and
• The Tax Repeating Breakpoint Table - This table is designed to handle a list of
sales values with respective taxes when a repeating pattern exists. This data
structure is capable of modeling the repeating nature of these tax tables and will
remove the need for tedious data entry.
POSBO_ImplementationGuide Page 38 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.2.5.2.1 Tax Simple Breakpoint Table
A typical tax table might resemble the following:
<TaxSimpleBreakpointTable>
<TaxCurrency type="USD"/>
<FlatRateBeyondTable percentage = “10”/>
<TaxSimpleBreakpointEntry rangeEnd=”.12” taxAmount=”0.0”/>
<TaxSimpleBreakpointEntry rangeEnd=”.22” taxAmount=”.01”/>
<TaxSimpleBreakpointEntry rangeEnd=”.29” taxAmount=”.02”/>
<TaxSimpleBreakpointEntry rangeEnd=”.38” taxAmount=”.03”/>
<TaxSimpleBreakpointEntry rangeEnd=”.40” taxAmount=”.04”/>
<TaxSimpleBreakpointEntry
</TaxSimpleBreakpointTable>
Note that the rangeEnd defines the upper limit where the taxAmount applies.
Beyond the scope of the table, the tax is calculated at 10 percent of the sale amount.
There is an assumption that the sales amount and respective taxes are in ascending
order. The rangeEnd defines the top range for a tax. An amount between the
preceding entry and this one is taxed by this entry.
POSBO_ImplementationGuide Page 39 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.2.5.2.2 Tax Repeating Breakpoint Table
If a tax table is large and follows a repeating pattern, then the
TaxRepeatingBreakpointTable may be more appropriate. For example, this is a
tax table from the Florida sales tax.
• 6 cents is added to the starting sales amount to calculate the ending range of the
sales amount with a corresponding 1-cent addition to the tax;
• 16 cents is added with a 1-cent addition to the tax;
• 16 cents is added with a 1-cent addition to the tax;
• 15 cents is added with a 1-cent addition to the tax;
• 16 cents is added with a 1-cent addition to the tax; and
• 25 cents is added with a 1-cent addition to the tax.
POSBO_ImplementationGuide Page 40 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
The following XML sample demonstrates how to use the TaxRepeatingBreakpointTable
feature to model the above tax table:
<TaxRepeatingBreakpointTable>
<TaxCurrency type="USD"/>
<TaxIncrement value=".01"/>
<MinTaxAmount value=".10"/>
<Repeat>
<TaxRepeatingBreakpointEntry taxableIncrement="0.06"/>
<TaxRepeatingBreakpointEntry taxableIncrement="0.16"/>
<TaxRepeatingBreakpointEntry taxableIncrement="0.16"/>
<TaxRepeatingBreakpointEntry taxableIncrement="0.15"/>
<TaxRepeatingBreakpointEntry taxableIncrement="0.15"/>
<TaxRepeatingBreakpointEntry taxableIncrement="0.25"/>
</nax:Repeat>
</TaxRepeatingBreakpointTable>
The amount added for each range of sales is specified via taxableIncrement attribute
on the TaxRepeatingBreakpointEntry element. In this example, the incremental
tax is consistent throughout the table (1 cent) and is specified via the TaxIncrement
element. If instead the tax increases by a variable rate, then an additional
taxIncrement attribute can be included on any TaxRepeatingBreakpointEntry
to specify the new tax increment. For example:
The repeating pattern is specified within Repeat. If the first entries in a tax table are
not part of a repeating pattern, it is necessary to specify additional
TaxRepeatingBreakpointEntry elements outside of Repeat.
<TaxRepeatingBreakpointEntry taxableIncrement="0.02"/>
<TaxRepeatingBreakpointEntry taxableIncrement="0.03"/>
<Repeat>
<TaxRepeatingBreakpointEntry taxableIncrement="0.05"/>
<TaxRepeatingBreakpointEntry taxableIncrement="0.07"/>
</Repeat>
POSBO_ImplementationGuide Page 41 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.2.5.3 Special Rule Tax
Sometimes, there is no way for the Back Office to determine the tax ahead of the
transaction. For example, taxes on a donut may vary depending on the other items in
the transaction. To handle these situations, the Back Office can designate a rule by
name that the POS executes to calculate tax based on these “special situations.”
<TaxSpecialRule>name=”DonutRule”</TaxSpecialRule>
A tax strategy indicates all the taxes to be applied for a particular item or merchandise
sale. The taxOnTaxGroup creates a sequence of tax calculations. Tax levels with the
same taxOnTaxGroup are calculated from the same base amount and the combined
result becomes the new base amount for subsequent calculations.
<TSTDetail>
<TaxStrategyID>1</TaxStrategyID>
<TaxStrategyTaxLevelID taxOnTaxGroup=”1”>7</TaxStrategyTaxLevelID>
<TaxStrategyTaxLevelID taxOnTaxGroup=”2”>8</TaxStrategyTaxLevelID>
</TSTDetail>
This indicates that tax level 7 should be applied first. The resulting amount becomes the
new base amount on which tax level 8 should be applied. If tax level 7 is 9% and tax
level 8 is 12%, tax calculation for a $1 item sold is as follows:
Calculation 1: $1.00 * .09 = $0.09 tax, for a new base amount of $1.09; and
Calculation 2: $1.09 * .12 = $0.13 tax, for a total due of $1.22.
POSBO_ImplementationGuide Page 42 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
If two entries with exist within the same taxOnTaxGroup, then both of those
calculations become the basis for the subsequent calculation. For example, a second tax
strategy may be as follows:
<TSTDetail>
<TaxStrategyID>2</TaxStrategyID>
<TaxStrategyTaxLevelID taxOnTaxGroup=”1”>6</TaxStrategyTaxLevelID>
<TaxStrategyTaxLevelID taxOnTaxGroup=”1”>7</TaxStrategyTaxLevelID>
<TaxStrategyTaxLevelID taxOnTaxGroup=”2”>8</TaxStrategyTaxLevelID>
</TSTDetail>
This indicates that tax levels 6 and 7 should be applied first. The combined resulting
amount becomes the new base amount on which tax level 8 should be applied. If tax
level 6 is 5%, tax level 7 is 9%, and tax level 8 is 12%, tax calculation for a $1 item sold is
as follows:
(Warning: Save the existing setup so you can revert back to the normal tax situation
after the tax-free period is over.)
1. Review the tax strategies for the items that are designated as tax-free;
2. Set up alternate tax detail records with a zero tax rate for those taxes that are zero
during the period in question;
3. Create a new set of tax strategies that replace the existing taxes with references to
the zero tax rate taxes for each tax that is to be tax-free;
4. Upload the new tax strategies and the tax detail records to the POS; and
5. To revert back to the normal taxable situation, send the POS the original tax
strategies that point back to the regular tax rates.
POSBO_ImplementationGuide Page 43 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.2.5.7 Tax Exempt Sales
If tax regulations require keeping track of non-taxable sales as well as taxable sales,
designating a tax strategy that refers to a tax level with a zero rate allows tracking of a
tax-exempt situation.
8.2.6 Workforce
Workforce encompasses:
• The Employee data set (used to identify employees working at a given retail site);
• The Task data set (required work to be done in the retail site); and
• The Schedule data set (used to assign Employees to Tasks at a specific time).
The purpose of Workforce is to enable simple but effective sharing of data from the Back
Office to the POS, so that, for example, the POS can communicate with employees about
work required.
8.3 Reporting
When a reporting period is “closed” on the POS, a group of summary reports is
produced. The following sections define how these reports are produced and requested
and the information they may contain.
POSBO_ImplementationGuide Page 44 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.3.2 Reporting Process and Periods
The Specification utilizes the following definitions for reporting purposes.
Shift Period – A shift period is an accounting period that is a proper subset of the day
period, for which the POS provides a close report encompassing all POS transaction
conducted within the retail site.
Daypart – A daypart is a reporting period (not necessarily a proper subset of the Day
Period) defined as a fixed timespan (e.g., 06:00 to 06:30) for which the retailer gathers
summary reporting for operational, rather than accounting purposes. Daypart reports
are typically taken at fixed intervals throughout the day, and are commonly used within
the quick service restaurant industry to assist in production planning and labor
scheduling. A daypart may fall across the boundary between day, shift, or cashier
reports and therefore are not typically reconciled to accounting reports. A daypart
POSBO_ImplementationGuide Page 45 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
report may encompass all activity within the retail site, or it may reflect only activity for
a specific sales area (e.g., the front counter, drive-thru window).
Week Period, Month Period, Year Period – these accounting periods are normally
equivalent to a week, month or year for which the POS shall produce a close report. Like
a day period and for the same reasons listed for a day period, a close can occur earlier or
later either on purpose or by accident or neglect.
At the point in time when a reporting period is closed (e.g., end of day), all POS activity
(e.g., transactions, sales, tenders, income/expense, other metrics) and physical
measurements (e.g., manually entered merchandise counts, fuel tank readings, pump
totalizers) that are related to a business day are recorded and summarized to provide
reporting for:
The granularity of the available report data is dependent on the POS implementation.
Populated elements and attributes in the request act as a filter on the requested data. If
there is nothing populated in the query type, the POS should return all available data of
the requested query type.
POSBO_ImplementationGuide Page 46 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
For example, to query the configuration information for a primary report period of
"2014-01-01", see example XML file Reports/01-MovementQuery-
PrimaryReportPeriod-Day.xml. Note that additional selector elements such as
nax:BusinessDate might be necessary.
Axes are orthogonal to each other. Each axis is optional. One or more attributes, one
for each axis, on each “totals” element combine to provide different views of the same
data. There is no requirement that the sending system provide these views.
The POS may choose to provide totals elements (payload records) using varying degrees
of reporting granularity. This would be useful in those cases where the Back Office
might desire to "sum up" such elements.
The sum of totals elements identified by a specific axis value should be equal to the total
contained in a totals element that does not identify a specific such axis value. In other
words, when a given axis attribute is omitted (i.e., not provided) by the POS, the sum of
the totals elements is assumed to equal to the amount across all possible values of the
omitted axis.
POSBO_ImplementationGuide Page 47 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
For a minimum level of functionality, POS systems should provide "summary" totals
elements (where no axis attribute is used). To provide more detail (better granularity),
additional totals elements should be provided using as many axes (axis attributes) as is
feasible.
Consumers of totals data should expect to encounter multiple unique sets of axis
attributes (axes) underneath a given report element. To avoid overstating results, the
Back Office should group records from each unique set of axes together for separate
processing.
• by fuelPositionID alone;
• by priceTierCode and fuelPositionID; or
• by priceTierCode, serviceLevelCode, fuelPositionID, and
promotionID.
Starting in V3.6, this report has been improved by adding the following fields to the
body of the report:
• PromotionTotal;
• RefundPromotionTotal;
• DispenserPromotionTotal; and
• RefundDispenserPromotionTotal.
POSBO_ImplementationGuide Page 48 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.3.5 Site
“Site” refers to data that applies to an entire retail site that may need to be configured
from the Back Office (e.g., address, phone number, default and secondary currency, and
other properties which can be exchanged as “name/value” pairs.)
8.3.6 Merchandise
The ItemSalesMovement (ISM) and MerchandiseCodeMovement (MCM) reports
provide a way to present sales activity of merchandise during a given reporting period.
Items may be sold at a discounted price as a result of one or more discounts or
promotions (e.g., combo/mix-match or an employee or loyalty discount). The ISM and
MSM list the different combinations of applied adjustments, while still reporting the
sales information only once.
Additionally, the ISMDetail element also provides sales, discount, and promotions
information within its ISMSellPriceSummary, ISMReasonSummary, and
ISMSalesTotal sub-elements.
For each merchandise code, the data returned in MCMSalesTotals will be the sum of
the aggregate values for all sales items having that merchandise code value.
POSBO_ImplementationGuide Page 50 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.3.7 Fuel
• priceTierCode;
• serviceLevelCode;
• timeTierCode;
• fuelPositionID;
• outside;
• reason;
• actualSellPrice;
• tenderCode;
• tenderSubCode; and
• discountID.
The FGM report provides the following elements to report discounts, which allows
determination of whether they are included or excluded from dispenser meter totals.
8.3.8 Taxes
A Tax Level Movement (TLM) report includes one or more TLMDetail records, which
hold information about the tax collected and other tax related information required by
POSBO_ImplementationGuide Page 51 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
tax authorities (e.g., tax exempt sales amounts). Each record contains tax totals by tax
level.
The TLM report may be optionally grouped by a “context axis” that may report totals by
any supported combination of the following:
Note: None of the above groupings are required and one, two, three, or any or all
groupings can be specified.
The report produced includes a Movement header that defines the period, a
SalesMovementHeader that defines the level of detail (see context axis above) for the
report and the subsequent Tax Level (TLM) buckets for the period specified.
8.3.9 Tender
A Batch Summary Movement (BSM) report includes one or more BSMDetail records,
which identify the batch number and status and provide other information about the
batch (count, amount, etc.)
The Batch Summary Axis Movement report is a more comprehensive way to report on
credit host batch closes. Because of security changes by some payment hosts, processing
vendors, or retailers, as well as using more terminal IDs at the sites, the existing Batch
Summary Movement report is insufficient for accurate reporting. The existing
BSMSalesTotals only uses the batch number as an identifier. A site may connect to
multiple hosts and may have multiple network terminal IDs at the site. Therefore, the
unique identifier is actually a concatenation of host Id, terminal Id and batch number.
The axis report allows the receiving system to query the Batch Summary Axis Movement
report by payment card type or loyalty program. The typical report will contain multiple
BSMAxisTotals elements. If the card type identifier or loyalty program identifier are
POSBO_ImplementationGuide Page 52 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
omitted, the total is for ALL batches in this reporting period. If either the card type or
loyalty program is specified, the total is for the specified card type or loyalty program.
Typically, the card type and loyalty program would not both be specified for one
BSMAxisTotals element. A BSMAxisTotals record refers to a report period and is
one of two kinds: either it identifies a specific card type, or it does not identify a specific
card type (in which case it is a summary). In other words, the sum of the
BSMAxisTotals records that identify a specific card type should be equal to the total
contained in the BSMAxisTotals record, which does not identify a specific card type
(i.e., the summary). . The same is true for the loyalty program. The attributes of
BSMAxisTotals provide different views of the same data. There is no requirement
that the sending system provide these views.
For an example Batch Summary Movement Report, see example XML file
Movement/06-BSMAxis.xml.
8.4 Journal
The POS Journal is the transaction journal from a retail site for a period of time. It
reports POS activity on a transaction-by-transaction and event-by-event basis. It
includes all financial and non-financial transactions created by the POS, including the
OPT. The Journal presents, in chronological order, the series of actions performed by
the POS, including but not limited to, sales transactions, refunds, voids, price changes,
shift closes, and cashier logins. For a typical journal document format, see example
XML file POS-Journal/99-JournalHeaderExample.xml.
Individual journal schema elements do not present card security concerns. However,
when combined with other sensitive data (e.g. PAN data, track data, ICC data), journal
schema elements may become sensitive data. Therefore, implementers must be careful
to conform to all applicable card security requirements (e.g. PCI).
POSBO_ImplementationGuide Page 53 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
• ItemLine;
• FuelPrepayLine;
• FuelLine;
• MerchandiseCodeLine;
• MoneyOrderLine; and
• TransactionTax.
Any other elements may appear in the same TransactionLine to further describe the
TransactionLine.
Where Discount and Promotion are used within journal elements (e.g., ItemLine,
MerchandiseCodeLine) they should be considered to be informative, indicating how
much of a separately provided DiscountLine was allocated to the parent element (e.g.,
ItemLine, MerchandiseCodeLine) WITHOUT altering the value of SalesAmount.
Starting with Version 3.6 of the schemas, the correct signing of various fields in the
POS-Journal are defined. The sign of these fields must be correct in order for the
balancing rules for POS-Journal transactions to be accurate. For instance, in a
RefundEvent, SalesAmount(s) must be negative, and the
TransactionTotalGrossAmount (which includes those items) should also be
negative. The examples show proper use of these various fields.
The rules for balancing the transaction require that certain arithmetic operations on one
set of fields in the transaction result in equivalence with other fields. In POS-Journal
parlance, fields included in these relationships are “normative” and all other fields are
“informative.” For instance, SalesAmount is normative, whereas
ActualSalesPrice is informative.
The complete rules are set forth below. Any transaction document can be tested with a
stylesheet constructed to test the validity of the values in terms of balancing. That
stylesheet is “sumissue440.xslt” and is named for the Mantis Issue that the committee
used to determine the summing rules. Starting with Version 3.6, the stylesheet can be
downloaded from the Conexxus website as part of the current version of the
Specification.
POSBO_ImplementationGuide Page 54 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Balancing Rules:
TransactionSummary/TransactionTotalGrossAmount =
sum(TransactionDetailGroup/TransactionLine/ItemLine/SalesAmount) +
sum(TransactionDetailGroup/TransactionLine/FeeLine/FeeAmount) +
sum(TransactionDetailGroup/TransactionLine/MerchandiseCodeLine/SalesAmount) +
sum(TransactionDetailGroup/TransactionLine/FuelPrepayLine/SalesAmount) +
sum(TransactionDetailGroup/TransactionLine/FuelLine/SalesAmount) +
sum(TransactionDetailGroup/TransactionLine/MoneyOrderLine/MoneyOrderFaceAmount) +
sum(TransactionDetailGroup/TransactionLine/MoneyOrderLine/MoneyOrderFeeCollected)
Add promos/discounts (these will be negative in the normal case) back for TransactionTotalNetAmount:
TransactionSummary/TransactionTotalNetAmount =
TransactionSummary/TransactionTotalGrossAmount +
sum(TransactionDetailGroup/TransactionLine/PromotionReward/PromotionRewardGroup/DiscountAmo
unt) + sum(TransactionDetailGroup/TransactionLine/DiscountLine/Discount/DiscountAmount) +
sum(TransactionDetailGroup/TransactionLine/Loyalty/DiscountAmount)
TransactionSummary/TransactionTotalTaxExemptAmount =
sum(TransactionDetailGroup/TransactionLine/TransactionTax)/TaxExemptAmount
TransactionSummary/TransactionTotalTaxNetAmount =
sum(TransactionDetailGroup/TransactionLine/TransactionTax/TaxCollectedAmount) +
sum(TransactionDetailGroup/TransactionLine/TransactionTax/TaxRefundedAmount)
POSBO_ImplementationGuide Page 55 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
TransactionSummary/TransactionTotalGrandAmount = TransactionTotalNetAmount +
TransactionTotalTaxNetAmount
TransactionSummary/TransactionTotalGrandAmount =
sum(TransactionDetailGroup/TransactionLine/TenderInfo/TenderAmount) +
sum(TransactionDetailGroup/TransactionLine/RoundingAmount) // RoundingAmount should correct for
currency amount rounding errors
POSBO_ImplementationGuide Page 56 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
8.4.2 Promotions, Discounts and other Reductions in Price
8.4.2.1 Promotion
A promotion is defined as a time-based reduction in price that may be based on
purchase of specific items, use of specific payment, etc. (e.g., Combo, mix match).
8.4.2.2 Discount
A discount is defined as a reduction of price that is discretionary based at time of
purchase (e.g., senior discount)
8.4.2.3 DiscountLine
This is the recommended method of representing a “discount”. This is an adjustment to
the first sibling of the TransactionLine or if in a separate TransactionLine the
“event” itself. As opposed to Promotion and Discount, which have their effects
already factored into the item amount, the DiscountLine has an effect on transaction
totals. Use discount structures to describe the actual discount caused by promotions in
POSBO_ImplementationGuide Page 57 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
the transaction and in the discount structure, use DiscountReason to indicate the
promotion that caused this discount.
8.4.2.4 Loyalty
Loyalty is defined as a reduction in price authorized by the presence of a card, token,
barcode, chip, etc. that is connected to a loyalty program authorized by the
store/site/unit.
8.4.3 Taxes
The TaxableSalesAmount reflects the amount on which tax should be collected for
the TransactionLine in which it appears. The TaxableSalesAmount could be
greater than the SalesAmount when taxable price reductions take place (i.e., tax needs
to be collected on the original amount before any reductions). For example: the
POSBO_ImplementationGuide Page 58 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
RegularSellPrice is 13.49, SellPrice is 12.99 (0.50 taxable manufacturer rebate
reduction) SalesAmount is 12.99 TaxableSalesAmount is 13.49. Whether tax
should be collected on the original or reduced amounts is determined by the local
jurisdiction.
Tax exempt sales amount and taxable sales amount should follow the same sign as sales
amount.
8.4.4 Fuel
1. Use the CustomerID element to identify the source or target of the transaction;
and
2. Create an 'Extension' type defined as substitutable for the
TransactionLineExtension to contain "PayInDetail" and/or
"PayOutDetail”.
8.4.7 Coupons
POS systems may be able to accept the following types of coupons:
Manufacturer coupons can be validated by parsing the bar code of the coupon to extract
the family code and the manufacturer id and verifying against the familyCode in
ITTData and the manufacturer id within the scanned barcode of the item purchased.
After coupon acceptance, the POS should record, for journal reporting, data in
CouponReedemed as follows:
POSBO_ImplementationGuide Page 60 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
• bar code of the coupon in RedeemedCouponID;
• manufacturer id in PrimaryCompanyPrefix;
• offer code in OfferCode; and
• expiration date in CouponExpirationDate.
The EntryMethod element can be used to describe the entry method for many types of
information, like purchased merchandise, card payments, and customer birthdate. As
such, EntryMethod can be a child element of the CardInfo, CustomerID,
FuelLine, ItemLine, ComponentItem, and TimeClockDetail elements.
A fuel prepay transaction typically generates a sale event for the initial fuel prepay,
followed by a subsequent sale event for the fuel prepay completion. To facilitate the
POSBO_ImplementationGuide Page 61 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
linking of the two events, the LinkedTransactionInfo should be populated with
appropriate data including the OriginalTransactionID.
Stored value cards (e.g., gift cards) may be sold by and activated by the POS. During the
activation process, the card is authorized by the card issuer host. To properly report this
authorization in the sale event, the POS may supply an Authorization sub element as
part of the transaction line. For a complete example, see example XML file POS-
Journal/01.01.023_SaleEvent_GiftCard.xml.
Suspended sales transactions should have the SuspendFlag value set to “yes.” For
journal analysis with respect to totals of tenders or merchandise, if there is a
FuelPrepay line in the SaleEvent, the transaction should be included in the analysis.
Otherwise, the transaction should be excluded from the analysis.
Note: a suspended food service transaction presents unique challenges. Inventory may
be affected if the food was prepared (inventory was used) but the transaction was
suspended before the customer paid. This situation may require a void.
SaleEvent elements and RefundEvent elements can use SuspendFlag, whereas for
VoidEvent the use is deprecated. Suspended sales should contain applicable taxes
computed, even though complete tender information may not be available. For a
suspended item example, see example XML file POS-
Journal/01.01.015_SaleEvent_MdseSale_ByItem-Suspended.xml.
Some POS devices allow returns to occur in a SaleEvent and sales to occur in a
RefundEvent. To facilitate these activities, sale and return enumerations have been
added to the status attribute on the TransactionLine element. If a POS allows for
a mix of sales and returns in a SaleEvent or RefundEvent, each TransactionLine
status attribute must have an explicit value of sale or refund. The default status of
normal for a TransactionLine status attribute may only be used if all the
TransactionLine entries match the parent element for context. For a mixed sale
return example, see example XML file POS-
Journal/01.01.024_SaleEvent_MixedSaleReturn_MdseSale_ByItem-
NonTaxable.xml.
<VoidEvent originalTransactionType=”sale”>
POSBO_ImplementationGuide Page 63 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
Making change (within the same currency) is typically handled via a NoSale event,
which optionally enumerates:
• open: reports the manually entered amounts for cash and food stamps in the
drawer when the register or cashier period is opened.
• close: reports the ECR (electronic cash register, also called POS) calculated
amounts for all methods of payment collected by the cashier or at the register.
• closeAudit: reports the manually entered amounts for all methods of payment
in the drawer. A closeAudit should precede a close, and is associated with
that close.
• audit: reports the manually entered amounts for all methods of payment in the
drawer at a given point in time and does not have a corresponding close
associated with it.
For an example report showing these details, see XML example file POS-
Journal/05.01.01.002_OtherEvent-CashInDrawer.xml.
8.5 Extensions
Extension points are provided in the schema so that vendors can include additional
proprietary data in their documents, and those documents can then be validated and
also used with other XML tools.
POSBO_ImplementationGuide Page 64 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
For further information on how to properly create and use extensions, consult the
Conexxus XML Guidelines as described in the reference section.
POSBO_ImplementationGuide Page 65 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
A.References
A.1 Normative References
ANSI X9.104:2-2004 (R2011)
ISO 3166 is the International Standard for country codes (part 1) and codes for
their subdivisions (part 2). Available at http://www.iso.org or
http://www.webstore.ansi.org/
ISO 4217:2008
ISO 4217 is the International Standard that provides codes for representation of
currencies and funds. Available at http://www.iso.org or
http://www.webstore.ansi.org/
POSBO_ImplementationGuide Page 66 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018
B.Glossary
Term Definition
Axis or A method of processing report totals grouped together in various
Axis predetermined ways. The allowed axes for a given report will vary
Reporting by the report type. Any individual axis is optional.
POS Point-of-Sale
Retail Site A retail site or store is a physical location where products and
services are offered for sale to the public.
POSBO_ImplementationGuide Page 67 of 67
Copyright © 2014-2018 CONEXXUS, INC, All rights reserved. June 4, 2018