A2X Payout Reconciliation and Automated Audit Documentation (Make.com)

Automatically sync A2X settlement data to QuickBooks Online with dynamic ledger creation and PDF audit trails using Make.com.

Tools: A2XQuickBooks

Platform: Make.com

Short Answer

A fully autonomous financial workflow where Make.com detects new A2X settlements, verifies the Chart of Accounts in QuickBooks, creates a detailed Journal Entry, and attaches the source PDF summary for 100% audit compliance without manual intervention.

The Problem

Manual reconciliation of e-commerce payouts is prone to human error, specially when marketplaces introduce new fee types that break standard mapping. Furthermore, maintaining a clean audit trail usually requires manually downloading and uploading PDF settlement summaries from A2X into QuickBooks journal entries.

The Outcome

A fully autonomous financial workflow where Make.com detects new A2X settlements, verifies the Chart of Accounts in QuickBooks, creates a detailed Journal Entry, and attaches the source PDF summary for 100% audit compliance without manual intervention.

Step-by-Step Guide

1. **Establish Webhook Connection**: Create a new Scenario in Make.com. Add a 'Custom Webhook' module. Copy the URL and paste it into A2X under Settings > Notifications/Webhooks to trigger when a settlement is 'Posted'. 2. **Initialize Variables**: Use a 'Set Multiple Variables' module to parse the A2X payload, specifically extracting the `SettlementID`, `Total_Sales`, and an array of `Fee_Lines`. 3. **Validate Chart of Accounts**: Add a QuickBooks Online 'Search for Objects' module. Map the incoming transaction category from A2X to the 'Name' field in QBO to ensure the ledger exists. 4. **Handle Missing Accounts**: Add a 'Router' after the search. If the search returns 0 results, route to a QuickBooks 'Create an Account' module to dynamically generate the missing ledger (e.g., a new Shopify App fee). 5. **Aggregate Line Items**: Use an 'Iterator' to loop through the A2X transaction lines (Sales, Fees, Tax). Then, use an 'Array Aggregator' to format these into the specific nested JSON structure required by the QBO 'Create a Journal Entry' module (Debit/Credit lines). 6. **Create Journal Entry**: Add the QuickBooks Online 'Create a Journal Entry' module. Map the aggregated array to the 'Line' field. Use the A2X `SettlementID` as the 'DocNumber' to prevent duplicates. 7. **Fetch Source Documentation**: Add an A2X 'Get an Export File' module (or use 'HTTP: Get a file' with the settlement PDF URL provided in the webhook payload). 8. **Attach to Entry**: Add a QuickBooks Online 'Create an Attachment' module. Map the `JournalEntry ID` from Step 6 to the 'Attachable' reference and upload the file buffer from Step 7. 9. **Configure Error Handling**: Right-click the QuickBooks modules and select 'Add Error Handler' (Break or Rollback). Configure a notification via Slack or Email to alert the accounting team if a mapping fails.

Data Mapping

| A2X Source Field | QBO Destination Field | Transformation / Logic | Required | | :--- | :--- | :--- | :--- | | `Settlement_ID` | `DocNumber` | `toString(Settlement_ID)` | Yes | | `Total_Sales_Amount` | `Line: Amount` (Credit) | `abs(Total_Sales_Amount)` | Yes | | `A2X_Account_Name` | `Line: AccountRef` | Use QBO Map Function to find ID | Yes | | `Settlement_Date` | `TxnDate` | `formatDate(Date; YYYY-MM-DD)` | Yes | | `Currency_Code` | `CurrencyRef` | Use `ifempty` to set default base currency | No | | `Payout_Reference` | `PrivateNote` | `{{Settlement_ID}} - {{Marketplace}}` | No |

Gotchas & Failure Modes

• **Data Matching**: QBO 'Journal Entry' lines must balance (Total Debits = Total Credits). Use the Make.com `sum()` function in the Aggregator to validate the balance is zero before sending the request to avoid 400 errors. • **Rate Limits**: QuickBooks API limits are per-company. If processing 100s of settlements at once, add a 'Sleep' module set to 1 second between cycles to avoid 429 errors. • **Mapping IDs**: Don't map the *Name* of an account to the Journal Entry; use the internal *ID* retrieved during the 'Search' step. Use the `map()` function in Make to extract the ID from the search array. • **MinorVersion**: If you are using advanced features like 'Discount Lines' in QBO, ensure you manually set the `minorversion` query parameter in the 'Make an API Call' module if the standard module lacks a specific field.

Verification Checklist

- [ ] **Run Once Test**: Trigger the scenario with a single A2X settlement ID to ensure the Router correctly identifies existing vs. new accounts. - [ ] **Data Integrity Check**: Verify in QBO that the Journal Entry 'DocNumber' matches the A2X Settlement ID. - [ ] **Attachment Validation**: Open the Journal Entry in QBO and ensure the A2X PDF summary is attached and readable. - [ ] **Balanced Entry Check**: Check the 'Execution History' in Make.com to confirm the aggregated array for the Journal Entry has equal debit and credit totals. - [ ] **Connection Refresh**: Ensure the QuickBooks OAuth connection is verified. Note: Make.com QBO connections usually require re-authorization every 100 days if not active.

Ready to Automate?

Build this automation with Make.com in minutes.