New Chargeflow docs. Everything for merchants, platforms, and the API in one place.
For PlatformsEvidence-as-a-Service

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.

Terminal
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.

Terminal
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.

See Get evidence by ID and Generate and regenerate.

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

SurfaceWhat it gives you
Evidence activityThe full lifecycle of every evidence request as a table
System healthAPI usage and webhook delivery, so a silent integration is visible
Evidence languageA default language for the account, overridable per merchant and per request

Next step

Was this page helpful?

On this page