You reconcile affiliate commissions every month. You pull a payout file from Stripe or your partner network, cross-reference it against your general ledger, flag the mismatches, and chase down explanations. By the time you're done, it's the 15th. And you've lost roughly 8–12% to uncaught drift: late payments that posted in month two instead of month one, chargebacks that reversed a commission but didn't reverse the payout, refunds that should have clawed back a commission but didn't, currency fluctuations that create rounding gaps, and affiliate disputes that sit unresolved for 60 days. This workflow is salvageable. You don't need to hire an operations person. You need to move reconciliation from spreadsheet to automation—pulling payout files daily, syncing them to your GL in real time, reversing chargebacks automatically, revaluing currency variance on schedule, and escalating discrepancies above a threshold. The result: a monthly discrepancy report that's accurate, auditable, and closed by the 10th. Where the 8–12% actually leaks Before you automate, you need to see where the drift happens: Late payment settlement: Stripe or your affiliate network batches payouts weekly or monthly. A commission earned in January often settles in February. Your GL records it in January. The discrepancy sits for 60 days until you manually match them. By then, the affiliate has asked about the status twice. Chargebacks without reversal: A customer disputes a charge in week two. The merchant bank pulls the commission payout back—but your payout file still shows the commission as earned. You don't know to reverse it manually until you spot the payout shortfall, often two months later. Refunds with stranded commissions: You refund a customer. The refund reverses the sale in your GL. But the affiliate commission for that sale already paid out and sits in the affiliate's bank account. You owe a clawback, but the clawback never executes because it's a manual step. Currency rounding variance: You have affiliates in five countries. Their earnings are paid in EUR, GBP, SGD, and MYR. Each currency pair rounds differently. Over 200 affiliate records, those micro-rounding differences compound to ₹2,000–₹3,000 in unexplained variance per month. Batch vs. accrual timing: You accrue commissions daily (as sales occur). Payouts arrive weekly or monthly, often with 5–10 days of lag. Your reconciliation assumes they landed the moment you accrued them. When they don't, your daily payout file and your accrual ledger are out of sync by design. Each of these is preventable with the right automation sequence. The automated reconciliation workflow: Four stages The goal is to move from exception reporting ("Find the discrepancies") to exception resolution ("Close all discrepancies within SLA"). Here's how: Stage 1: Daily payout file ingestion and syncing Every morning, pull the payout file from Stripe, your affiliate platform, or your payment processor. Most offer an API or SFTP export. Parse it into a standardized schema: affiliate ID, commission amount, currency, payout date, settlement date, status (pending, settled, failed, reversed). Load that directly into your GL without manual entry. Tools for this stage: Orin + Make/n8n: Create a scheduled workflow that fetches the payout file via API, maps fields to your GL schema, and posts to your GL daily. Orin's accounting module can be the destination GL. Stripe native (if Stripe is your processor): Use Stripe's Billing API and webhooks to push payout records directly. Stripe's payout object includes chargeback status, so reversals are visible immediately. Custom ETL: Write a Python or Node script to fetch, normalize, and post. Commit to running this daily. SLA rule: Payout file must be in GL within 4 hours of processor settlement. If it's missing, alert finance. Stage 2: Chargeback detection and reversal Chargebacks reverse the original payout. Most processors flag them in the payout file or expose them via a separate disputes API. You need to catch them and auto-reverse the corresponding commission. The logic: Daily payout file includes a "chargeback" or "dispute" status flag. Workflow reads the status. If chargeback, look up the original commission record by transaction ID. Post a reversal entry to the GL for that commission amount, dated the day the chargeback was reported. Flag the affiliate record for review (they may dispute the clawback). Example: Affiliate Alice earned a $500 commission on Jan 15. It settled Jan 20. On Feb 3, the customer disputes the charge. Stripe reverses the payout on Feb 3. Your daily payout file on Feb 4 shows "chargeback: $500". The workflow automatically posts a $500 GL reversal dated Feb 3, crediting the affiliate's commission liability and debiting the chargeback expense account. SLA rule: Chargebacks must be reversed in GL within 24 hours of processor notification. Any chargeback older than 10 days without reversal gets escalated to finance. Stage 3: Refund clawback