Short Answer
Every A2X settlement automatically triggers the creation of a Xero Manual Journal, archives a detailed CSV/PDF report to cloud storage, and runs a logic check to alert your team via Slack if the net payout doesn't match the expected bank deposit.
The Problem
E-commerce sellers often struggle to reconcile bulk marketplace payouts in Xero, leading to 'blind' posting without verifying that bank deposits match A2X summaries. Manual backup of settlement reports for audit compliance is time-consuming and prone to human error.
The Outcome
Every A2X settlement automatically triggers the creation of a Xero Manual Journal, archives a detailed CSV/PDF report to cloud storage, and runs a logic check to alert your team via Slack if the net payout doesn't match the expected bank deposit.
Step-by-Step Guide
1. **Log in to Zapier** and click 'Create Zap'. Name it 'A2X to Xero: High-Integrity Financial Sync'.
2. **Trigger Step**: Search for the **A2X** app. Select the trigger event 'Settlement Posted to Accounting'. Connect your A2X account via API Key (found in A2X Settings > History).
3. **Test Trigger**: Fetch a recent A2X settlement to use as sample data. Ensure fields like 'Total Net Payout' and 'Gross Sales' are visible.
4. **Action Step (Formatter)**: Add 'Formatter by Zapier'. Choose 'Numbers' and the 'Perform Math Operation' transform. This will calculate 1% of the 'Total Net Payout' to set your discrepancy threshold for later logic.
5. **Action Step (Xero Connection)**: Search for the **Xero** app. Choose 'Create Manual Journal'. Connect your Xero Organization using OAuth 2.0 (ensure you have Standard or Adviser permissions).
6. **Data Mapping (Journal)**: Map the 'Total Sales' from A2X to your Xero Sales Account and 'Fees' to your Expense Account. Set 'Status' to 'Draft' to allow for final human review before posting.
7. **Add a Path (Path by Zapier)**: Add a logic split.
- **Path A (Matches):** If 'A2X Net Payout' matches the Xero bank statement line within your threshold.
- **Path B (Manual Review):** If the data shows a variance larger than 1%.
8. **Path A Action**: Use the 'Xero: Upload File' action. Take the Public URL of the A2X settlement report and send it directly to the Xero Inbox associated with the journal.
9. **Path B Action**: Search for **Slack**. Select 'Send Channel Message'. Tag your bookkeeper and include the A2X Settlement ID and the variance amount for urgent investigation.
10. **Duplicate Prevention**: In the Xero step, use the A2X 'Settlement ID' as the 'Journal Reference'. Zapier/Xero will flag this if you attempt to post the same ID twice.
Data Mapping
| A2X Field | Xero Destination Field | Transformation/Logic | Required? |
| :--- | :--- | :--- | :--- |
| `Settlement ID` | Reference | None (Identifier) | Yes |
| `Total Net Payout` | Journal Line (Credit) | Formatter: Convert to Absolute Number | Yes |
| `Gross Sales` | Journal Line (Debit) | Map to Account [200] Sales | Yes |
| `Marketplace Fees` | Journal Line (Debit) | Map to Account [400] Fees | Yes |
| `Tax Collected` | Journal Line | Map to Sales Tax Liability | Optional |
| `A2X Report URL` | File Upload URL | Pass-through to Xero Inbox | Optional |
Gotchas & Failure Modes
* **Task Usage:** Each line item in an A2X settlement can consume a task if not handled as a single summarized object. Use A2X's 'Summary' trigger to minimize Zapier task costs.
* **Xero Rate Limits:** Xero limits API calls to 60 requests per minute. If you are syncing 100+ daily settlements across multiple stores, add a 'Delay by Zapier' step (2-3 seconds) to avoid 429 error codes.
* **Currency Mismatch:** If your A2X account is in USD but your Xero bank account is in GBP, the Zap will fail. Use 'Formatter by Zapier' to apply a currency conversion rate before the Xero step.
* **Draft vs. Posted:** Always set Xero actions to 'Draft'. If a Zap maps data incorrectly to 'Posted', it is much harder to delete/reverse in Xero.
Verification Checklist
- [ ] **Run a Test Event:** Use the 'Test Step' in Zapier and verify a 'Draft' journal appears in Xero under Advising > Manual Journals.
- [ ] **Check Reference Mapping:** Ensure the A2X Settlement ID is in the Reference field to prevent duplicates.
- [ ] **Verify Discrepancy Path:** Temporarily change the 'Filter' logic to 'Always True' to ensure your Slack alert formatting looks correct.
- [ ] **Review Zap History:** After the first live settlement, check Zapier History to ensure no '403 Forbidden' errors occurred due to Xero session expiry.
Ready to Automate?
Build this automation with Zapier in minutes.