canonical: https://jentic.com/apis/adyen.com/adyen-report-webhooks

# Adyen Report webhooks

Adyen Balance Platform Report Webhooks notify your server when a new report has been generated and is ready for download from your Adyen for Platforms balance platform. The OpenAPI document defines a single webhook event - balancePlatform.report.created - with a typed ReportNotificationRequest payload that includes the report identifier, type, and download URL. Pair the event with a download client to fetch the report file once the notification arrives.

## For AI agents

Receive a webhook when a new Adyen Balance Platform report is generated, with a typed payload pointing at the downloadable report file.

## Scope

Does not handle report generation, report download, configuration events, or transfer events - use for inbound report-ready notification schemas only.

## Capabilities

- Parse balancePlatform.report.created events to detect when a new report is available
- Extract the report download URL and identifier from the ReportNotificationData payload
- Trigger an automated download of the generated report file as soon as the webhook arrives
- Validate webhook delivery using HTTP basic auth credentials configured in the Adyen Customer Area
- Acknowledge events with a typed BalancePlatformNotificationResponse payload

## Use cases

### Automated Report Download Pipeline

Finance teams running Adyen for Platforms need every generated report - settlement, transactions, fees - pulled into a data warehouse without manual download. A balancePlatform.report.created webhook fires as soon as the report is ready, and the receiver can trigger a download against the URL in the payload, dropping the file into S3 or a local store within seconds of the report being available.

Example prompt: On a balancePlatform.report.created event, fetch the report URL from ReportNotificationData and write the response body to s3://reports/{reportId}.csv

### Operational Alerting on Missing Reports

Reports that should arrive on a schedule are themselves a system signal - when the expected webhook does not arrive within its window, something is wrong. A monitoring receiver subscribes to Report webhooks and raises an alert if the daily settlement report event is late, so the operations team can investigate before downstream finance jobs miss their SLA.

Example prompt: If no balancePlatform.report.created event with type=settlement has been received by 09:00 UTC, raise a PagerDuty alert tagged 'adyen-report-missing'

### Routing Reports by Type to Different Consumers

An Adyen account may emit several report types - settlement, fee, transaction - each going to a different downstream system. The Report webhook delivers the report type in the payload, so the receiver can route the download URL to the right consumer automatically rather than fanning every report out to every consumer.

Example prompt: On a balancePlatform.report.created event, inspect ReportNotificationData.type and post a download job to the matching SQS queue for that report type

### Agent-Driven Report Ingestion via Jentic

A finance agent can use Jentic to load the ReportNotificationRequest schema, validate inbound webhooks, and chain a download step using credentials Jentic stores in its vault. The agent never needs the basic auth username or report download bearer in its prompt context.

Example prompt: Use Jentic to load the ReportNotificationRequest schema, validate the inbound webhook, then execute the report download with the URL from the payload and store the result

## Key resources

- **Report event** — balancePlatform.report.created with report id, type, and download URL

## Why Jentic

- **Setup:** Wiring Adyen Report webhooks by hand means validating inbound calls with basic auth and then using a separate key to download the report. Through Jentic you install once, import the Report webhooks from the API Directory, store both credentials once, and your agent validates payloads and chains the download.
- **Permission scoping:** These are inbound event schemas rather than outbound calls with a resource id in the URL, so you limit the agent to the operations it needs, such as validating a report-ready event and triggering the download. Because you pick the operations, the agent only handles the event and download steps you include.
- **Credential handling:** The basic auth credential that validates the webhook and the API key used to download the report are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'adyen report ready webhook', and Jentic returns the ReportNotificationRequest schema so the agent validates the payload and chains the download against the right surface without browsing the reference docs.

## Related APIs

- **Adyen Configuration webhooks** — Sister webhook spec for account holder, balance account, and instrument changes
- **Adyen Transfer webhooks** — Accounting webhook spec for fund movements that often correlate with reports
- **Stripe** — Stripe issues equivalent report-ready notifications via reporting.report_run.succeeded events

## FAQ

### What authentication does the Report webhooks use?

Adyen authenticates outbound webhook calls to your server using HTTP basic auth credentials configured in the Adyen Customer Area. Your receiving endpoint must validate the username/password before trusting the payload. Through Jentic, those credentials are kept in your Jentic One instance.

### Which events does the Report webhooks fire?

A single event type: balancePlatform.report.created. Each event delivers a typed ReportNotificationRequest payload that includes the report identifier, type, and download URL.

### How do I download the report after the webhook arrives?

Read the download URL from ReportNotificationData in the payload and issue an HTTP GET against it with your Adyen credentials. The webhook itself is the trigger - it does not embed the report content.

### How do I acknowledge a Report webhook?

Respond with a 200 OK and a BalancePlatformNotificationResponse body containing notificationResponse: '[accepted]'. Adyen retries non-2xx responses, so only return the accepted token after your handler has durably enqueued the download job.

### How do I trigger an automated report download through Jentic?

Search Jentic for 'parse adyen report webhook', load the ReportNotificationRequest schema, validate the inbound body, and chain an HTTP GET against the URL field using credentials Jentic injects from the vault.

### Can I limit what my agent is allowed to do with the Adyen Report Webhooks API?

Yes. Because Jentic One is self-hosted, you decide which operations the agent may run, and these are inbound event schemas rather than outbound calls, so you scope the agent to just the steps it needs, such as validating a balancePlatform.report.created event and triggering the report download. Since you pick the operations that are included, the agent only handles the event validation and download steps you allow. The basic auth credential that validates the webhook and the key used to fetch the report are held by your own Jentic One instance and injected at execution time, never entering the agent's prompt or logs.
