# Set up EaaS (https://docs.chargeflow.io/docs/platforms/eaas/setup)



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.

<Callout title="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?](https://docs.chargeflow.io/docs/platforms/eaas/introduction).
</Callout>

<Steps>
  <Step>
    ## API keys and webhooks [#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](https://docs.chargeflow.io/docs/platforms/connect/developers).
  </Step>

  <Step>
    ## Add merchants [#add-merchants]

    Add merchant accounts. No PSP connection is required for an EaaS merchant.

    ```bash title="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](https://docs.chargeflow.io/docs/api/2025-04-01/platforms/accounts).
  </Step>

  <Step>
    ## Load dispute data [#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](https://docs.chargeflow.io/docs/api/2025-04-01/platforms/merchants-disputes) and [Submit platform disputes](https://docs.chargeflow.io/docs/platforms/eaas/submit-platform-disputes).
  </Step>

  <Step>
    ## Auto-enrich with integrations [#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](https://docs.chargeflow.io/docs/platforms/connect/integrations).
  </Step>

  <Step>
    ## Generate evidence [#generate-evidence]

    The engine produces the evidence package for the dispute.

    ```bash title="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](https://docs.chargeflow.io/docs/platforms/eaas/generate-evidence-in-10s).
  </Step>

  <Step>
    ## Retrieve the evidence [#retrieve-the-evidence]

    Pull the generated package, including the PDF, once the webhook says it is ready.

    See [Get evidence by ID](https://docs.chargeflow.io/docs/api/2025-04-01/platforms/evidence) and [Generate and regenerate](https://docs.chargeflow.io/docs/platforms/eaas/generate-and-regenerate).
  </Step>

  <Step>
    ## Submit and mark it submitted [#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](https://docs.chargeflow.io/docs/platforms/connect/disputes).
  </Step>

  <Step>
    ## Report the outcome [#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.
  </Step>
</Steps>

## Also available [#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 |

## Next step [#next-step]

<Cards>
  <Card className="cf-card-outline" iconName="card-chip-1" title="Platforms quickstart" href="/docs/platforms/quickstart">
    Run steps 1, 5, and 6 end to end against a real dispute.
  </Card>
</Cards>
