TLog FAQ

Find answers to frequently-asked questions about the Point of Sale TLog.

Scenario Solution
What data can be exported from Point of Sale? We can export order data, inventory events, and EJ events. Analytics data can be downloaded via CSV.
How can order data be exported? Orders can be exported from PS via TLog files that are in XML form. Orders can also be exported as CSV, TSV however, XML TLog is the recommended format. We have OOTB connectors to SF OMS and Netsuite to push order data directly via API calls.
What is the format of TLog? It is a NRF POSLog spec. Sample and details are available in Transaction Log (TLog) Export.
What inventory events are supported? As store performs inventory operations i.e., cycle count, receiving, and transfers files can be exported out reflecting what happened in store.
Can we get end of day inventory summary? Yes, an end of day inventory snapshot can be scheduled to send out all inventory positions from PS cloud.
What about EJ data? EJ data can be scheduled for export once a day. This will generate a CSV file tha can be ingested on the customer's side.
What about Recon data and order reports? All analytics data can be manually downloaded from respective screens on CMS.
How long do we keep logs for debugging in production? Production logs are available for 28 days. These are server logs that should not to be confused with TLogs. TLogs are exported to FTP and merchants can either keep them there or delete them.
What payment methods are displayed in the <tender> tag? Tenders allowed in Store Settings will display: Cash, CreditCard, Check, GiftCard, RewardCard, External, and Miscellaneous (***regardless of name specified, will export as Miscellaneous).
How is <transactionId> defined? At the highest level, the "transactionId" serves as the unique identifier for the most recent activity associated with a specific order(s). This identifier is structured as "storeId-registerId-timestamp-transactionNumber-eventNumber". Example transactionID: 0111-001-20250228115758-9-5.
What is <eventId>? A unique ID to identify events per transaction. For example, sales transactions can have a number of events, including adding items, removing items, adding customers, introducing tender types, removing tender types, applying discounts, and submitting transaction. To ensure precise event execution, all requests from the POS app to the Backend must include a unique ID associated with the sale transaction.
What is the relationship between <retailpricemodifier> and <lineitem>? This is one to many; line item can have multiple discounts.
What does <retailpricemodifier> identify?

It identifies discounts as follows:

Promotion = Promotion/coupon code

PriceOverride = Item level discount

General Discount = Prorated transaction-level discount for this item

What is <cartid>? This can be ignored. This isn't typically used for any processing.
What transaction statuses are available?

Retail_Auth: Sale

Retail_Partially_Refunded: Partial return of order, updated order exchange with amount due to customer

Retail_Returned: Full Return of order

Retail_Exchanged: Updated order even exchange, updated order exchange with amount due from customer

Are Tax and VAT in TLog? Yes, all TLog files have full breakdown of Taxes and VAT at the item / order level.
How do I find the order number? The order number can be found within the filename, specifically after the double underscores. For example, in this file, SHOPNOW_US_20220729T055610__OPS-022-1-072920220003_1659074169659.xml. The order number would be OPS-022-1-072920220003_1659074169659.
In the JSON file, how are subtotal, item total, and item price after discounts calculated?
  • The subtotal is calculated by multiplying the price by quantity (Subtotal = Price * Quantity).
  • The item total is calculated by subtracting discounts from the subtotal and adding any taxes (Item Total = Subtotal - Discounts + Tax).
  • The item price after the discount is calculated by subtracting discounts from the subtotal (Subtotal - Discounts).
Which transaction scenarios will require more than one export file?

The following transaction scenarios will require more than one export file (New Sale and Return of Old Transaction):

  • Even Exchange
  • Exchange (customer pays)
  • Exchange (customer gets refund)
When we link a customer during the transaction we add their email ID in the TLogs. Is there a way to hide or remove customer details from TLogs as the customer details would be PII? As we store the TLogs on the Point of Sale and some of those TLogs have customer details, is Point of Sale still GDPR/CCPA compliant? If using an export, you can set field mappings and drop the fields with the customer data. Generally, consumer data that is part of a transaction is treated differently than general PII, since there is a reporting/regulatory need to maintain this data.

The XML format includes the following fields. What are their equivalents in JSON?

  • BusinessDayDate
  • BeginDateTime
  • EndDateTime

All dates listed below are in the GMT timezone.

  • BeginDateTime (XML): This maps to the orderDate in the JSON order payload, indicating the exact date and time the sale order was created.
  • BusinessDayDate (XML): This is the orderDate from the JSON order payload, but without the time component, specifying the exact date the order was placed.
  • EndDateTime (XML): Initially, this is the same as orderDate. However, if there are any updates to the order (such as returns or exchanges), EndDateTime represents the last update time of the order.

These XML dates are derived from the orderDate and updateDate fields in the JSON order payload. The fields and their values in the POS Log XML are generated based on the JSON order payload, ensuring all necessary data for XML export is included in the JSON.