Automated Expensify Reimbursement Pipeline to Xero (Zapier)

Eliminate manual bookkeeping by syncing approved Expensify reports to Xero as Bills using Zapier.

Tools: ExpensifyXero

Platform: Zapier

Short Answer

Every time an expense report is approved in Expensify, a corresponding Bill is automatically created in Xero with the correct contact, line items, and receipt attachments. This ensures real-time visibility into liabilities and a touchless audit trail for tax compliance.

The Problem

Manual entry of employee expense reports into accounting software is prone to human error and delays financial closing. Finance teams often struggle with missing receipts and incorrect account code mapping between Expensify categories and the Xero Chart of Accounts.

The Outcome

Every time an expense report is approved in Expensify, a corresponding Bill is automatically created in Xero with the correct contact, line items, and receipt attachments. This ensures real-time visibility into liabilities and a touchless audit trail for tax compliance.

Step-by-Step Guide

1. **Authenticate Expensify**: Sign in to Zapier and create a new Zap. Choose Expensify as the Trigger and select 'New Report Status Change'. Connect your account using your Partner User ID and Secret. 2. **Configure Trigger**: Set the 'Status' filter to 'Approved' or 'Reimbursed' depending on when you want the bill to hit your ledger. 3. **Add Filter by Zapier**: Add a 'Filter' step to ensure the Zap only continues if the 'Status' exactly matches your desired workflow state (e.g., 'Approved'). 4. **Map Categories via Formatter**: Add a 'Formatter by Zapier' step. Choose 'Utilities' > 'Lookup Table'. Map your Expensify Categories (e.g., 'Office Supplies') to your Xero Account Codes (e.g., '429'). This prevents sync errors caused by text-to-ID mismatches. 5. **Find/Create Contact in Xero**: Add a Xero action 'Find Contact'. Map the 'Employee Name' or 'Merchant' from Expensify. Enable the 'Create Xero Contact if it doesn't exist yet' checkbox to prevent 'Contact Not Found' errors. 6. **Create Purchase Invoice (Bill)**: Add the 'Create Purchase Invoice' action for Xero. - Set 'Status' to 'Awaiting Approval' or 'Awaiting Payment'. - Map 'Report Title' to 'Reference'. - Map the Formatter output to the 'Account Code' field. - Map 'Total Amount' to 'Unit Amount'. 7. **Handle Multi-Line Items**: If using a report with many expenses, ensure you are mapping the 'Line Items' array correctly to the Xero 'Line Amount' fields using Zapier’s line-item support. 8. **Attach Receipt**: Add the 'Xero: Upload File' action. Pass the 'Receipt URL' from Expensify into the 'File' field and associate it with the Invoice ID generated in Step 6. 9. **Setup Error Handling**: Click the '...' on the Xero step and select 'Add Extra Step (Path)' to handle failed tasks, sending a Slack or Email notification if a mapping fails.