Chargeback Alert Management · Automation Architecture
1. Requirements (credentials & access)
Everything we need handed over before development can start.
API credentials
| System | What we need | Notes |
|---|---|---|
| Kount | Merchant ID + API key (or OAuth client_id / secret); webhook configuration access to point at our endpoint | Confirm which Kount product (360 / Central / Command). Separate creds per brand if multi-merchant. |
| Authorize.net | API Login ID + Transaction Key | Per brand: NeuroQ, MyBestHart, plus any other brands in scope. |
| Lera (WooCommerce) | REST API consumer key + secret, with scopes for: refund order, cancel subscription, blacklist customer, add notes | Confirm the exact scope names available; we need write access to customer + order + subscription. |
| Payment Tech | Portal credentials (read access to chargeback report; write access for dispute submission) | Confirm if there is an API or if we automate the manual report export + portal submission. |
| Verifi portal | Portal login (one-time RDR auto-config) | One-time setup, not an ongoing integration. |
| Call recordings | Read access to whichever table the recordings land in, and which fields tie a recording back to a customer / order (phone? email? order ID? timestamp?) | Needed for dispute evidence bundles. No API needed - direct table access is fine. |
Decisions / sign-offs needed
| Item | Why we need it |
|---|---|
| List of brands to cover | NeuroQ + MBH confirmed; need full list of any other brands processed through Authorize.net. |
| MBH Kount setup confirmed live | ~half of recent chargebacks bypass Kount today because MBH was not wired in. |
| High-$ approval threshold | Above this $ amount, refunds always require human approval (proposed: $500). |
| Dispute scope sign-off | Conditional branch of Workflow C does not start until dispute strategy is approved. |
| Refreshed dispute math | Reconstruct the win-rate × double-count model with current data to set the Phase 4 transition gate. |
| Channel coverage scope | Confirm whether Shopify, Stripe, Employee Store, Threep are Phase 1 or deferred. |
| Serial disputer threshold + policy | Proposed: 3+ chargebacks on file = pause auto-refund, finance decides per case. |
Infrastructure on our side
| Item | Status |
|---|---|
| Public webhook endpoint (Render or equivalent) to receive Kount events | To spin up |
| Postgres database for alerts / orders / refund_events / dispute_submissions / audit_log | To provision |
| Object storage for evidence PDFs and call recording links | To provision |
| Secret Manager (vault all credentials, one container per brand) | To configure |
| OpenAI / Anthropic API key for any AI-assisted evidence summarization | Already have |
2. Three separate workflows
What looks like one chargeback process is actually three distinct workflows happening on different surfaces, on different timelines, with different stakeholders. Each has to be automated separately.
| Workflow | Trigger | Surface | Window | Owner | Outcome |
|---|---|---|---|---|---|
| A. Pre-chargeback | Kount / RDR alert fires before the bank pulls funds | Kount dashboard | 12-72 hr | Alfredo | Refund proactively → chargeback never happens |
| B. Post-chargeback | Chargeback already debited (slipped past Kount, ~3/day) | Payment Tech portal | Already done | Tiffany → Alfredo | Blacklist; money is gone unless we dispute |
| C. Dispute | Mandatory if we already refunded and it still came back as a chargeback; conditional otherwise | Payment Tech portal | 90-day bank window | Tiffany | Recover funds when the bank made the wrong call |
3. Workflow A - Pre-chargeback (alert)
Alert lands in Kount with 12-72 hours to refund before the bank converts it to a chargeback. ~10 alerts/day. This is where Alfredo spends most of his time today.
Workflow A - step by step
High-level boxes. Each box is one step Alfredo runs today.
4. Workflow B - Post-chargeback
The chargeback already happened. The bank already pulled the money. Now it shows up in Payment Tech. Tiffany pulls a weekly report, sends Alfredo a list, Alfredo blacklists in Lera to prevent future orders from the same customer. Refunding here is pointless - the money is already gone.
Workflow B - step by step
No refund here. The bank already debited. The goal is preventing the next chargeback from the same customer.
5. Workflow C - Dispute
Two branches off the same decision. Mandatory branch: if we already issued the refund and the chargeback still hit (the bank made the wrong call) we dispute every single one of these - we’re asking for our money back. Conditional branch (dashed): we did not refund, but we have strong evidence (call recording, IP, AVS/CVV match) that the customer willfully bought. Depends on Cody; we package the evidence and send it to the bank.
Workflow C - mandatory vs conditional
Solid lines = always do this. Dashed lines = conditional, depends on Cody and strong evidence.
6. Phased rollout
Four phases, each with explicit exit criteria. Phase 1 is read-only and unblocks the moment Dallin hands over Kount creds + webhook URL. Phase 3 (auto-dispute) does not start until Cody signs off on the dispute strategy. Phase 4 (closed loop) does not start until the chargeback rate is below 0.7% for 30 consecutive days.