For stores operating in Thailand, NewStore provides following functionalities to help retailers comply with local receipt requirements. The retailer is responsible for ensuring fiscal compliance for their stores in Thailand.
Consecutive receipt numbers via e-journal transaction sequencing
Splitting of an exchange into separate e-journal transactions for sale and return
Capture of the customer name and billing address on returns in NewStore Associate app
Capture of the POS Device number for inclusion on the receipt.
Fiscal activation
In stores operating in Thailand, a store must be fiscally activated before orders can be created via NewStore Associate app. Fiscal activation is done by activating a fiscal cashbox for the store location.
Returns/ Credit note receipts
In Thailand, every B2C return transaction must produce a receipt labeled "Credit Note". Along with the seller information and the original invoice reference, the credit note must show the customer name and billing address.
The customer name and billing address are captured only on returns, not on sales. For a B2C return, the address can differ from the address used on the original sale.
Exchanges are not supported directly - as the NewStore POS processes exchanges under a separate transactions. In Thailand, a separate sale and corresponding return must be processed.
Paper receipts and PDF receipts
The printed paper receipt is the primary audit mechanism in Thailand. It is required for retailers to produce two physical copies of each receipt type - both sales and return/credit notes: One for the customer and one for the store audit file.
A PDF version of the receipt, including the customer name and billing address, is available through the NewStore order lookup. The PDF is supplemental to the physical copy and is not legally required.
Offline mode
Offline mode is allowed in Thailand for sales processing ONLY. Returns require cloud connectivity, and as such returns cannot be processed using the NewStore POS offline mode.
Retailer responsibilities
NewStore Associate app does not block a return when the customer name or billing address is missing. Capturing this information on every return is enforced through operations, not by the system. The retailer is responsible for training associates.
Important
NewStore platform provides fiscal transaction information that is required to be printed in fiscal receipts. It is responsibility of the retailer to ensure compliance of the receipt templates with the local fiscal regulations.
How-to guides
Fiscally activate a store
Important
A store must be previously created within the NewStore POS to fiscally activate a store, a fiscal cashbox must be activated within the NewStore platform via Omnichannel Manager. For more details, see Activating fiscal cashboxes.
The receipt number prefix must be configured during the fiscal activation. See Receipt number prefix rules in the Reference section.
Capture customer details on a return
When processing a B2C return in NewStore Associate app, capture:
The customer name
The customer billing address
Capture these details on every return, including blind returns. The app does not block the return if the fields are left empty.
<table class="general-data top-border">
<tr>
<td>Customer:</td>
<td class="right-text">{{ customer_name or '---'}}</td>
</tr>
{% if (return_billing_address) %}
<tr>
<td>Customer Billing Adress:</td>
<td class="right-text">{{ return_billing_address.address_line_1}}</td>
</tr>
{% if (return_billing_address.address_line_2) %}
<tr>
<td colspan="2" class="right-text">{{ return_billing_address.address_line_2 }}</td>
</tr>
{% endif %}
{% if (return_billing_address.state) %}
<tr>
<td colspan="2" class="right-text">{{ return_billing_address.state }}</td>
</tr>
{% endif %}
<tr>
<td colspan="2" class="right-text">{{ return_billing_address.zip_code }}, {{ return_billing_address.city }}</td>
</tr>
<tr>
<td colspan="2" class="right-text">{{ return_billing_address.country_name }}</td>
</tr>
{% endif %}
<tr>
<td>Original Store:</td>
<td class="right-text">{{ store_name }}</td>
</tr>
<tr>
<td>Order No:</td>
<td class="right-text">{{ order_id }}</td>
</tr>
<tr>
<td>Docket No:</td>
<td class="right-text">{{ showFiscalSignature(f11n) }}</td>
</tr>
<tr>
<td>Reference Order Receipt Number:</td>
<td class="right-text">
{{ showReferenceOrderReceiptNumber(f11n) }}</td>
</tr>
<tr>
<td>Served By:</td>
<td class="right-text">{% if associate_name %}{{ associate_name.split(' ')[0] }}{% endif %}</td>
</tr>
<tr>
<td>Date/Time</td>
<td class="right-text">{{ format_date(created_at, timezone, 'dd/MM/YYYY') }} {{ format_time(created_at,
timezone) }}</td>
</tr>
</table>Train associates
Train associates to:
Capture the customer name and billing address on every return.
Print duplicate receipt copies - sales and credit notes
Two physical copies of each receipt type are required. Duplicate copies can be printed automatically through receipt template configuration. To modify the receipt templates for Thailand, see Customizing a template. In all cases the shopper must get the original receipt and not the version marked COPY.
Display the POS ID (device ID) on receipts
Before you start:
Make sure your stores are using NewStore Associate app 1.75.0 or later.
Make sure each iPhone device in the store has the cartExtendedAttribute string assigned.
To print the POS ID on receipts:
In Omnichannel Manager, open the Templates Editor and select the receipt template to change. For more details, see Customizing a template.
Add the following where the POS ID should appear: tenant_details.showDeviceId(extended_attributes)
Save the template.
Reference Information
Receipt requirements
Based on regulations that apply to stores operating in Thailand, these additional features must be included in the receipts:
All receipts must have a consecutive receipt number, in one or multiple series.
The organization's name and address must be displayed in the header of the receipt.
For items exchanged by the customer, separate sales and return receipts with unique receipt numbers must be generated.
All receipts must have a breakdown of taxes, payment method(s), date/time of the transaction.
Consecutive receipt number format
According to the fiscal regulations in Thailand, each receipt must contain a consecutive receipt number. NewStore platform generates consecutive receipt numbers for each transaction based on the transaction type and the configured receipt number prefix.
The consecutive receipt number is made of 4 parts:
The type of the transaction, where S and R stand for Sale and Return respectively.
The year in which the transaction was created, in YY format.
A configurable unique receipt number prefix that will be used within the receipt series. This is often the store_id.
A consecutive transaction number.
The consecutive transaction number is incremented per type of transaction.
Receipt number prefix rules
The receipt number prefix must be configured during the fiscal activation.
A unique value per store is recommended for the receipt number prefix. This allows stores to have unique numbers specific to store locations.
The maximum length of the receipt number prefix is 5 characters.
Receipt sequencing and limits
Important
The receipt series follows the calendar year and starts on January 1st.
For example, all transactions created in the calendar year 2026 use the year 26.
At the beginning of each year, on January 1st, the consecutive transaction number will be reset.
The maximum length of the consecutive receipt number is 16 characters.
As a result, the number of transactions that can be created in a year depends on the length of the configured receipt number prefix. This means that the longer the receipt number prefix is, the fewer digits there are for the consecutive receipt number.
For example:
For a receipt number prefix that consist of 3 characters, the receipt series will accommodate up to 99,999,999 transactions in a given year.
For a receipt number prefix that consist of 5 characters, the receipt series will accommodate up to 999,999 transactions in a given year.
Sample receipt numbers
S26-12331-000099
S: Refers to a sale transaction.
26: Year of the transaction, 2026.
12331: The configurable unique prefix. This may be the store_id.
000099: The consecutive transaction number.
R22-A01-00000120
R: Refers to a return transaction.
26: Year of the transaction, 2022.
A01: The configurable unique prefix.
00000120: The consecutive transaction number.