Set up EaaS
The eight-step Evidence-as-a-Service setup, in the same order as the in-app guide - keys, merchants, dispute data, enrichment, generation, retrieval, submission, and outcome reporting.
Evidence-as-a-Service generates dispute evidence over the API for platforms that want to load dispute data programmatically instead of connecting a PSP. This page is the setup, step for step, in the same order as the in-app guide in Connect.
EaaS merchants do not need a processor connection. Your platform loads the dispute data; optionally connect merchant tools to enrich it.
Before you start
EaaS must be enabled on your Connect account by your Chargeflow account
manager. Without it, every EaaS call returns 403_eaas_not_enabled. See
What is EaaS?.
API keys and webhooks
Generate production and sandbox keys in Settings → Developers, and optionally enforce HMAC signature validation. Register a webhook endpoint for evidence.ready and evidence.error while you are there.
See Developers.
Add merchants
Add merchant accounts. No PSP connection is required for an EaaS merchant.
curl -X POST https://api.chargeflow.io/public/2025-04-01/accounts \
-H "x-api-key: YOUR_PLATFORM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Merchant name", "email": "ops@merchant.example"}'Keep the returned account_id: every dispute you load references it. See the Accounts API.
Load dispute data
Push disputes in over the API. This replaces the processor connection: whatever your platform knows about the dispute is what the engine works from.
See Create dispute and Submit platform disputes.
Auto-enrich with integrations
Optionally connect merchant tools such as Chargebee or Gorgias so evidence is enriched automatically with subscription history and customer conversations. This is the single highest-leverage optional step: the data it adds is what wins item-not-received and not-as-described cases.
See Integrations.
Generate evidence
The engine produces the evidence package for the dispute.
curl -X POST https://api.chargeflow.io/public/2025-04-01/evidence \
-H "x-api-key: YOUR_PLATFORM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "ACCOUNT_ID",
"dispute": { "dispute_id": "DISPUTE_ID" }
}'Generation is asynchronous. Wait for evidence.ready rather than polling. See Generate evidence in seconds.
Retrieve the evidence
Pull the generated package, including the PDF, once the webhook says it is ready.
Submit and mark it submitted
Submit to the issuing bank through your own process, then tell Chargeflow you have done so. That is what puts the dispute on the deadline tracking you see in Disputes.
Report the outcome
Report won or lost. This is not bookkeeping: outcome data trains the engine for the next dispute of that type, and it powers win-rate and money-recovered reporting for the merchant.
Also available
| Surface | What it gives you |
|---|---|
| Evidence activity | The full lifecycle of every evidence request as a table |
| System health | API usage and webhook delivery, so a silent integration is visible |
| Evidence language | A default language for the account, overridable per merchant and per request |