Overview
Airwallex provides seamless direct integrations with Xero, NetSuite, QuickBooks, and other leading accounting platforms — accounting data is imported automatically, and expenses and bills sync back to your software.
If your accounting platform is not directly supported, use the Custom Accounting Data Importer to upload your own Chart of Accounts, Tax Rates, and Custom Fields via an .xlsx file. This lets your employees code expenses and bills against your own accounting categories.
There are two ways to manage this data:
Manually via file upload (this guide), or
Continuously via the Accounting APIs for Spend if you want to keep a proprietary or custom ERP in sync automatically.
Note: Custom accounting data — whether managed by file upload or by API — is only available if you are not already connected to a supported native integration (Xero, NetSuite, QuickBooks, etc.). If a supported connection is active, custom accounting data will not appear and will not be used, even if it was uploaded or created previously. Additionally, once you make your first change via the Accounting APIs, your connection becomes API-managed and bulk file upload is disabled for that data set, so the two methods can't overwrite each other's changes.
This guide covers:
How do I import my accounting data?
Step 1: Navigate to the importer
Log in to your Airwallex account.
Go to Settings → Connections and select Using another accounting software?
Step 2: Download the import template
Download the provided .xlsx template. It contains the following tabs, using these exact names:
Chart of accountsCustom field 1Custom field 2Tax rates
If you need more than 2 custom fields, duplicate one of the Custom Field tabs and rename it Custom field 3, Custom field 4, or Custom field 5. Up to 5 custom fields total are supported.
Step 3: Format your data
Export your data from your accounting software and populate each tab using the exact column headers and rules below. A record is rejected if a required column is empty.
Chart of accounts tab
|
Column (exact header) |
Required |
Description |
If left blank |
Format / example |
|---|---|---|---|---|
|
GL Code |
No |
The account code for this entry in your accounting software. |
Stays blank |
|
|
Account Name |
Yes |
The unique name of this entry in your accounting software. Used to identify the record and prevent duplicates — keep this aligned with your source system. |
Row is rejected |
|
|
Airwallex Display Name |
No |
What your employees see when coding expenses or bills in Airwallex. |
Falls back to Account Name |
|
|
Airwallex Entities (multi-entity organisations only) |
No |
Which legal entities this entry applies to. See "Assigning entities" below. |
Applies to All entities |
|
Example row: 5000 | Cost of Goods Sold | COGS | All
Custom field tabs (Custom field 1–Custom field 5)
|
Column (exact header) |
Required |
Description |
If left blank |
Format / example |
|---|---|---|---|---|
|
Custom Field Name |
Yes |
The unique name of this value in your accounting software. |
Row is rejected |
|
|
Airwallex Display Name |
No |
What your employees see in Airwallex. |
Falls back to Custom Field Name |
|
|
Airwallex Entities (multi-entity organisations only) |
No |
Which legal entities this entry applies to. See "Assigning entities" below. |
Applies to All entities |
|
Example row: DPT_ENG | Engineering | All
Tax rates tab
|
Column (exact header) |
Required |
Description |
If left blank |
Format / example |
|---|---|---|---|---|
|
Tax Rate |
Yes |
The unique name of the tax rate in your accounting software. |
Row is rejected |
|
|
Tax Rate Value (%) |
Yes |
The percentage rate, entered as a plain number with no
|
Row is rejected |
|
|
Airwallex Display Name |
No |
What your employees see in Airwallex. |
Falls back to |
|
|
Airwallex Entities (multi-entity organisations only) |
No |
Which legal entities this entry applies to. See "Assigning entities" below. |
Applies to All entities |
|
Example row: GST_10 | 10 | GST (10%) | All
Assigning entities (multi-entity organisations only)
This rule applies identically to the Airwallex Entities column on every tab above.
Single-entity organisations: your template does not include this column — every record automatically applies to your one entity.
All entities: enter
All.Specific entities: list the exact Legal Entity Name(s), separated by
|with no surrounding spaces, e.g.Entity A|Entity B, or put each entity on its own row instead.Duplicate entity names: if two entities share the same name, use the Legal Entity ID instead of the name, with the same
|separator. You can find your Legal Entity IDs in Settings > Accounts, or via the Retrieve account details API.Left blank: the record defaults to
Allentities.
Step 4: Upload and review
Click "Get Started" → "Upload" and upload your completed
.xlsxtemplate. You can upload a single file containing all entities on one sheet, or multiple.xlsxfiles in the same session.-
Airwallex displays a summary of the changes before anything is saved:
New records added — new rows found in your file(s).
Edited display names — existing records where the Airwallex Display Name changed.
Not matched records — data currently in Airwallex that is missing from your latest file(s).
Compare changes (checked by default): Airwallex automatically matches your existing data against the uploaded file, and "Not matched" records are marked for deletion as part of the standard overwrite. Uncheck Compare changes if you want to review each "Not matched" record individually and manually choose to delete or keep it.
Edit as needed, then click "Save" to finish.
Once saved, the accounting data is live and available for your employees to use when coding expenses and bills.
How do I update existing accounting data?
There are two ways to update your accounting data, depending on the scale of the change.
Method 1: Minor changes in-app
Use this for quick, one-off changes to individual records.
Navigate to Settings → Connections and select Custom Accounting Data
Click "Edit accounting data."
Add, rename, or delete data manually.
Click "Save changes." Updates are immediately visible to employees coding expenses or bills.
Method 2: Bulk updates via file upload
Use this for major changes, bulk additions, or a full data replacement. This method uses the same overwrite logic described in Step 4 above: your uploaded file is compared against your existing data, and records missing from the file are treated as candidates for deletion.
Navigate to Settings → Connections and select Custom Accounting Data
Click "Upload"
Download your existing template (pre-filled with your current data).
-
Edit the downloaded file. You can:
Add records by inserting new rows.
Rename Airwallex Display Names for existing records.
Update Airwallex Entities assignments.
Delete records by removing their rows.
Upload the updated file.
Review the proposed changes for each field (same review screen as Step 4 above), then click "Save" to apply your updates immediately.
How do I delete all my accounting data and start over?
Navigate to Settings → Connections and select Custom Accounting Data
Scroll to the bottom of the page and click "Remove uploaded data."
In the confirmation pop-up, select "Delete data" to proceed.
Airwallex deletes all existing custom accounting data, so you can import a new data set from scratch.
Troubleshooting
Failed to import file(s)
If formatting errors are found in your uploaded file(s), the import fails and a "Failed to import file(s)" notification appears on the upload screen.
Click "Download unimported record" to get a new
.xlsxfile. It includes your original data plus an additional "Parsing Errors" tab pinpointing the exact location of each error.Correct the flagged records in your file, save, and re-upload to complete the import.
Common causes of import errors:
A required column is empty —
Account Name,Custom Field Name, orTax Rate/Tax Rate Value (%)must be filled in on every row.Tax Rate Value (%)contains a%sign or non-numeric text instead of a plain number (e.g.10instead of10%).An entity name in
Airwallex Entitiesdoesn't exactly match a Legal Entity Name on your account, or two entities share the same name and a Legal Entity ID wasn't used instead.Duplicate
Account Name/Custom Field Name/Tax Ratevalues within the same tab.