A move from Xero to NetSuite in Singapore works best when the cutover is planned around your GST periods. Cut over at the end of a GST quarter, map every Xero tax rate to a NetSuite tax code before the first load, decide which system sends any InvoiceNow documents in flight, and reconcile the first GST return from NetSuite against the last one from Xero. The data load is the easy part.
Most Singapore companies make this move when Xero starts to strain under multiple entities, stock or approvals. The generic migration steps are well known. What catches Singapore teams out is the tax boundary: a GST return split across two systems, credit notes raised in NetSuite against Xero invoices, and InvoiceNow traffic that has to keep flowing through the switch.
Write down why you are moving. Common reasons are a second or third entity that needs consolidation, inventory that has outgrown add-ons, approval controls the auditors keep raising, and a growing stack of apps around Xero that nobody fully owns. If you are still weighing the decision itself, our post on when moving from Xero to NetSuite makes business sense covers it.
The reasons shape the scope. A move driven by consolidation puts the weight on entity design and intercompany. A move driven by stock puts it on item data and warehouse processes. Don't let the migration plan treat them the same.
Cutting over at the end of a GST accounting period keeps each return in one system. The last return before the switch is prepared in Xero. The first return after it comes entirely from NetSuite. Mid-period cutovers are possible, but they force a manual combination of two systems' GST reports and make the first NetSuite return much harder to review.
Align the date with the financial year if you can, and avoid the weeks your team is busiest. Then work backwards: at least two rehearsal loads, user acceptance testing on migrated data and a frozen period for master data changes.
Export every tax rate used in Xero over the last year, with the transaction count for each. Map each one to a NetSuite tax code with the GST return box it feeds. Standard-rated, zero-rated, exempt and out-of-scope supplies all need explicit treatment, and so do imports and reverse charge if they apply to you.
Xero tracking categories usually become NetSuite departments, classes, locations or custom segments. Decide this deliberately. Tracking categories in Xero are often used loosely, and NetSuite reporting depends on consistent segment values. Clean the values before mapping them.
NetSuite needs opening balances, open receivables and payables, and stock on hand at cutover. It doesn't need every closed Xero transaction. Many Singapore companies bring monthly summary balances for comparatives and keep Xero in read-only mode, or archive reports, for history.
Check your record-keeping obligations before deciding how long to keep access to Xero, and make sure someone can still answer an IRAS query about a pre-migration invoice. Test that retrieval before you cancel the subscription.
If you already send or receive invoices through InvoiceNow, decide which system handles documents that are in flight on cutover day. An invoice sent from Xero and rejected by the customer after go-live still needs a corrected document, and your team needs to know where to raise it.
The cleanest rule is usually that Xero completes anything it started, and NetSuite handles everything dated after cutover. Credit notes against Xero invoices are the awkward case. Many teams migrate open invoices as opening AR in NetSuite and issue credit notes there, with a reference to the original invoice number. Agree the rule with your tax adviser and test it. Our post on handing over pending InvoiceNow invoices when NetSuite goes live goes deeper.
Set up the NetSuite InvoiceNow route early, including the access point. IRAS has announced that existing GST-registered businesses will join the GST InvoiceNow Requirement in phases from April 2028, and new voluntary registrants are already in scope, so build it into the project if it applies before your next ERP change.
A hypothetical Singapore distributor files GST quarterly and chooses 1 July as its NetSuite go-live. All figures are illustrative.
| Item | Xero at 30 June | Loaded to NetSuite 1 July | Difference |
|---|---|---|---|
| Open AR | S$842,300 | S$842,300 | 0 |
| Open AP | S$516,750 | S$516,750 | 0 |
| GST output tax control | S$61,420 | S$61,420 | 0 |
| Inventory at cost | S$1,204,880 | S$1,203,940 | S$940 |
The April to June return is filed from Xero as usual. The S$940 inventory difference comes from two items whose average cost was rounded differently, and the finance lead approves a documented adjustment before sign-off. In October, the July to September return is prepared entirely from NetSuite, and the team reconciles it to the GL and to a sample of 30 invoices, including three credit notes against Xero-era invoices.
Treat the first NetSuite GST return as an acceptance test. Agree each box to the tax codes and the GL, investigate any transaction posted without a tax code, and check how migrated opening AR appears. Opening balances shouldn't create output tax a second time.
Then compare the return with the same quarter last year from Xero. A large swing in zero-rated supplies or input tax claims usually points to a mapping error, and it is better found by your team than by IRAS.
Before you set the go-live date, confirm each of these:
CuriousRubik data migration services can plan the cutover, run the rehearsals and agree the reconciliation evidence with your finance team. Our NetSuite work for Singapore businesses covers the regional entity design that often follows. For the GST design itself, read Planning a NetSuite Implementation for Singapore GST and InvoiceNow, and for sign-off evidence see NetSuite Opening Balance Reconciliation from Source Books to Sign Off.
If you trade in several currencies, plan the revaluation design alongside the migration using NetSuite multi-currency for Singapore trading companies. For what happens once documents start flowing, see NetSuite Peppol in Singapore: rejections and exceptions. Australian sister companies leaving MYOB face a similar boundary, set out in moving from MYOB to NetSuite without losing control.
Related reading: When Moving from Xero to NetSuite Makes Business Sense
Yes, but it complicates the GST return for that period, because it has to be combined from both systems. A cutover on a GST period boundary is easier to review.
Usually not. Opening balances, open transactions and stock are required. Closed history can often stay in Xero or in archived reports, provided you can retrieve it for a query.
Agree a rule before go-live. Many teams migrate open invoices as opening AR in NetSuite and raise credit notes there with a reference to the original invoice.
NetSuite can exchange InvoiceNow documents through an access point route. Confirm the specific route, its cost and who supports it for your account.
It depends on entities, stock and integrations. Plan for at least two rehearsal loads and a cutover on a GST period boundary, then build the timeline back from that date.