Chargeback Alert Management · Automation Architecture


1. Requirements (credentials & access)

Everything we need handed over before development can start.

API credentials

SystemWhat we needNotes
KountMerchant ID + API key (or OAuth client_id / secret); webhook configuration access to point at our endpointConfirm which Kount product (360 / Central / Command). Separate creds per brand if multi-merchant.
Authorize.netAPI Login ID + Transaction KeyPer 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 notesConfirm the exact scope names available; we need write access to customer + order + subscription.
Payment TechPortal 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 portalPortal login (one-time RDR auto-config)One-time setup, not an ongoing integration.
Call recordingsRead 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

ItemWhy we need it
List of brands to coverNeuroQ + 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 thresholdAbove this $ amount, refunds always require human approval (proposed: $500).
Dispute scope sign-offConditional branch of Workflow C does not start until dispute strategy is approved.
Refreshed dispute mathReconstruct the win-rate × double-count model with current data to set the Phase 4 transition gate.
Channel coverage scopeConfirm whether Shopify, Stripe, Employee Store, Threep are Phase 1 or deferred.
Serial disputer threshold + policyProposed: 3+ chargebacks on file = pause auto-refund, finance decides per case.

Infrastructure on our side

ItemStatus
Public webhook endpoint (Render or equivalent) to receive Kount eventsTo spin up
Postgres database for alerts / orders / refund_events / dispute_submissions / audit_logTo provision
Object storage for evidence PDFs and call recording linksTo provision
Secret Manager (vault all credentials, one container per brand)To configure
OpenAI / Anthropic API key for any AI-assisted evidence summarizationAlready 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.

WorkflowTriggerSurfaceWindowOwnerOutcome
A. Pre-chargebackKount / RDR alert fires before the bank pulls fundsKount dashboard12-72 hrAlfredoRefund proactively → chargeback never happens
B. Post-chargebackChargeback already debited (slipped past Kount, ~3/day)Payment Tech portalAlready doneTiffany → AlfredoBlacklist; money is gone unless we dispute
C. DisputeMandatory if we already refunded and it still came back as a chargeback; conditional otherwisePayment Tech portal90-day bank windowTiffanyRecover 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.

Rendering…

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.

Rendering…

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.

Rendering…

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.

Phase progression with exit criteria

Rendering…