Short Answer
A fully automated financial workflow where every A2X settlement triggers a balanced, categorized Journal Entry in NetSuite, mapped to the correct Subsidiaries, Departments, and Classes for instant reconciliation.
The Problem
Ecommerce payouts from marketplaces like Amazon or Shopify are complex aggregates of sales, refunds, and fees. Manually reconciling these into NetSuite's General Ledger is time-consuming and prone to human error, specially when dealing with multi-subsidiary environments.
The Outcome
A fully automated financial workflow where every A2X settlement triggers a balanced, categorized Journal Entry in NetSuite, mapped to the correct Subsidiaries, Departments, and Classes for instant reconciliation.
Step-by-Step Guide
1. **Authenticate A2X**: In Zapier, create a new Zap and select A2X as the Trigger app. Choose 'Settlement Finalized' as the event. Connect your A2X account using your API key.
2. **Setup Trigger Filter**: Use 'Filter by Zapier' to ensure the Zap only continues if the 'Status' from A2X equals 'Posted'. This prevents draft or pending settlements from hitting your books.
3. **Map NetSuite Account Codes**: Add a 'Formatter by Zapier' step (Utilities -> Lookup Table). Map the A2X Transaction Types (e.g., 'Amazon Commission') to your internal NetSuite Account Internal IDs (e.g., '405').
4. **Authenticate NetSuite (TBA)**: Choose NetSuite as the Action app and 'Create Journal Entry' as the event. You must use Token-Based Authentication (TBA). Input your Account ID, Consumer Key, Consumer Secret, Token ID, and Token Secret.
5. **Configure Journal Header**: Map the 'Settlement Date' to the 'Tran Date' field. Select the correct 'Subsidiary' using its Internal ID. Set 'Posted' as the status.
6. **Build Journal Lines**: Under 'Line Items', use the data from the A2X payout. Map the NetSuite Account ID (from your Lookup Table step), Amount (Debit/Credit logic), and Memo (Settlement ID).
7. **Assign Segments**: Map A2X 'Marketplace' or 'Region' fields to NetSuite 'Class' or 'Department' fields to maintain granular reporting.
8. **Enable Error Handling**: Click the '+' after the NetSuite step and add a 'Path' or 'Filter' to catch 'false' success triggers. Alternatively, use 'Zapier Manager' to monitor for task failures.
9. **Close the Loop**: Add a final A2X action 'Update Settlement' to write the NetSuite Journal Internal ID back to the A2X notes for easy cross-referencing.
10. **Test & Publish**: Run a test with a recent settlement. Verify the Journal Entry balance (Debits = Credits) in NetSuite before turning the Zap on.
Data Mapping
| A2X Source Field | NetSuite Destination Field | Transformation/Logic | Required |
| :--- | :--- | :--- | :--- |
| Settlement Date | Tran Date | Date/Time Formatter (YYYY-MM-DD) | Yes |
| Settlement ID | Memo / External ID | Direct Mapping (Duplicate Prevention) | Yes |
| Amount (Gross) | Journal Line: Amount | Formatter: Number (Ensure 2 decimals) | Yes |
| Account Type | Journal Line: Account | Lookup Table (A2X String -> NS Internal ID) | Yes |
| Subsidiary ID | Subsidiary | Static Value or Lookup | Yes |
| Marketplace Name | Class / Department | Lookup Table | No |
| Currency | Currency | Direct Mapping (ISO Code) | Yes |
Gotchas & Failure Modes
* **NetSuite Concurrency Limits**: If you process hundreds of settlements at once, Zapier might hit NetSuite's concurrency limit (usually 1nd-5 concurrent requests). Use 'Delay by Zapier' if batching.
* **Account ID Mismatch**: A2X uses account names, but NetSuite requires **Internal IDs**. Always use a Formatter lookup table to translate these.
* **Decimal Precision**: NetSuite expects exactly 2 decimal places. Use Formatter > Numbers > Format (Spreadsheet-style) to round values before sending.
* **Balanced Journals**: NetSuite will reject any Journal Entry where Total Debits ≠ Total Credits. Ensure your A2X mapping accounts for every transaction line in the settlement.
Verification Checklist
- [ ] Trigger test pulls a 'Posted' settlement from A2X.
- [ ] Formatter step correctly converts A2X account strings to NetSuite Internal IDs.
- [ ] NetSuite Journal Entry is created in 'Pending Approval' or 'Approved' status as intended.
- [ ] The Total Debits exactly match Total Credits in the NetSuite UI.
- [ ] The External ID in NetSuite matches the A2X Settlement ID (to prevent duplicates).
- [ ] Zapier Task History confirms no 403 (Auth) or 400 (Validation) errors from NetSuite API.
Ready to Automate?
Build this automation with Zapier in minutes.