Migrating from other tax providers to Taxwire
If you are planning to switch from any tax provider to TaxWire, you can use these steps to export historical transaction date from MonetizeNow and import them into Taxwire
The MonetizeNow - Taxwire integration, by default, only syncs ongoing transactions. You can load historical transactions into Taxwire with a few simple steps.
-
First, navigate to the Reporting tab of MonetizeNow.
-
Click "+New".
-
Click “SQL query”.
-
Copy-paste this SQL query. Run it, and export the results as a CSV.
WITH currency_minor_units AS ( SELECT * FROM (VALUES -- code, minor_unit ('BIF', 0), ('CLP', 0), ('DJF', 0), ('GNF', 0), ('JPY', 0), ('KMF', 0), ('KRW', 0), ('MGA', 0), ('PYG', 0), ('RWF', 0), ('UGX', 0), ('VND', 0), ('VUV', 0), ('XAF', 0), ('XOF', 0), ('XPF', 0), -- 3-decimal currencies ('BHD', 3), ('IQD', 3), ('JOD', 3), ('KWD', 3), ('LYD', 3), ('OMR', 3), ('TND', 3) -- everything else will default to 2 ) AS t(code, minor_unit) ) SELECT -- ===================== -- Transaction (Invoice) -- ===================== invoice.id AS reference_id, NULL AS parent_reference_id, 'finalized' AS transaction_status, 'sale' AS transaction_type, invoice.currency AS currency, invoice.invoicing_date AS transaction_date, NULL AS discount_amount, NULL AS tax_amount, -- ===================== -- Line item monies converted to smallest unit (e.g: cents for USD) -- ===================== invoice_items.id AS "line_item.id", ROUND( (invoice_items.amount_without_tax * power(10, COALESCE(cmu.minor_unit, 2))) / GREATEST(invoice_items.quantity, 1) )::numeric(18, 6) AS "line_item.unit_price", invoice_items.quantity AS "line_item.quantity", ROUND( invoice_items.tax * power(10, COALESCE(cmu.minor_unit, 2)) )::numeric(18, 6) AS "line_item.tax_amount", ROUND( invoice_items.discount * power(10, COALESCE(cmu.minor_unit, 2)) )::numeric(18, 6) AS "line_item.discount_amount", -- ===================== -- Product -- ===================== invoice_items.product_id AS "line_item.product.external_id", 'MONETIZENOW' AS "line_item.product.external_source", CASE WHEN product.tax_exempt IS TRUE THEN 'NONTAXABLE' ELSE NULL END AS "line_item.product.tax_attributes", -- ===================== -- Customer address -- ===================== invoice.shipping_address_line_1 AS "line_item.customer.address.line1", invoice.shipping_address_line_2 AS "line_item.customer.address.line2", invoice.shipping_address_city AS "line_item.customer.address.city", invoice.shipping_address_postal_code AS "line_item.customer.address.postal_code", invoice.shipping_address_state AS "line_item.customer.address.state", invoice.shipping_address_country AS "line_item.customer.address.country", NULL AS "line_item.customer.address.latitude", NULL AS "line_item.customer.address.longitude", -- ===================== -- Customer tax -- ===================== NULL AS "line_item.customer.tax_ids" FROM invoice LEFT JOIN invoice_items ON invoice.id = invoice_items.invoice_id LEFT JOIN product ON invoice_items.product_id = product.id LEFT JOIN currency_minor_units cmu ON cmu.code = invoice.currency WHERE ("invoice"."id" IS NOT NULL) AND (("invoice"."id" <> '') OR ("invoice"."id" IS NULL)) -- Optional date filter AND "invoice"."invoicing_date" >= '2025-10-02' -
Then, import the CSV into Taxwire Transactions page. If asked for a data source format, enter “Taxwire CSV”. Your historical transactions should populate in a matter of seconds to minutes, depending on the transaction count.
Updated about 4 hours ago