Automated PayPal Sales & Fee Reconciliation (Zapier)

Eliminate manual bookkeeping by syncing PayPal transactions and merchant fees to Xero in real-time.

Tools: PayPalXero

Platform: Zapier

Short Answer

Every PayPal sale automatically creates or updates a contact in Xero, generates an authorized invoice, and applies the payment. Critically, it also records the PayPal fee as a separate expense, ensuring your Xero ledger matches your PayPal balance to the penny.

The Problem

Manual entry of PayPal sales often leads to accounting discrepancies, especially regarding 'Gross' vs 'Net' amounts. Businesses struggle to reconcile the merchant fees PayPal deducts, leading to a mismatch between Xero bank balances and actual PayPal statements.

The Outcome

Every PayPal sale automatically creates or updates a contact in Xero, generates an authorized invoice, and applies the payment. Critically, it also records the PayPal fee as a separate expense, ensuring your Xero ledger matches your PayPal balance to the penny.

Step-by-Step Guide

1. **Create the Zap**: Log into Zapier and click 'Create Zap'. Name it 'PayPal Sales to Xero Ledger'. 2. **Set Trigger**: Select **PayPal** as the App and **Successful Sale** as the Event. Connect your PayPal account using your IPN (Instant Payment Notification) URL if prompted. 3. **Test Trigger**: Pull in a recent transaction. Note the `Gross Amount` and the `Transaction Fee` fields. 4. **Calculate Net Amount (Formatter)**: Add a 'Formatter by Zapier' step. Choose **Numbers** and the **Math** transform. Subtract the `Transaction Fee` from the `Gross Amount` to ensure you have the clean revenue figure if needed, or simply pass the gross to the invoice. 5. **Find or Create Contact (Xero)**: Add a **Xero** step. Choose **Find Contact**. Search by `Payer Email`. Check the box 'Create Xero Contact if it doesn't exist yet' and map `Payer Name` and `Email`. 6. **Create/Find Invoice**: Add a **Xero** step for **Create Sales Invoice**. Map the `Item Name` to the line item, `Gross Amount` to the unit price, and set 'Status' to **Draft** or **Authorized**. Use the PayPal `Transaction ID` in the Reference field to prevent duplicates. 7. **Record PayPal Fee (The Reconciliation Step)**: Add a **Xero** step for **Create Bank Transaction**. Set the Type to 'Spend Money'. Map the `Transaction Fee` amount here, coding it to a 'Bank Fees' or 'Merchant Fees' account in your Chart of Accounts. This ensures the net deposit matches your bank statement. 8. **Map Payment**: Use the **Add Payment to Invoice** action in Xero. Map the `Invoice ID` from Step 6 and the `Gross Amount` from Step 2. 9. **Setup Error Handling**: Click the '+' between steps to add a **Filter by Zapier** if you only want to process specific currencies (e.g., 'Only continue if Currency Code exactly matches USD'). 10. **Publish**: Turn on the Zap and monitor the 'Task History' for the first three live transactions.