How to build Adyen payment dashboards in Metabase
Adyen is an enterprise payments platform processing online, in-app, and in-person payments worldwide, with detailed settlement and fee data. Metabase is where you turn that into shared, trustworthy dashboards for authorization rate, net settlement, chargebacks, and fees. This guide covers two complementary paths: a lightweight MCP + CLI route that pulls live data with the Adyen MCP server and loads a CSV into Metabase with the Metabase CLI for quick analysis, and a durable pipeline route that syncs Adyen into a database so you can build authorization, settlement, and chargeback dashboards anyone can read.
How do you connect Adyen to Metabase?
Most teams combine both routes: use the Adyen MCP server and Metabase CLI route to pull live data and stand up a quick analysis, and the pipeline route for the financial dashboards finance depends on.
Live data in, quick analysis out
Pair Adyen's official (alpha) local MCP server (to look up live payments, captures, and refunds) with the Metabase CLI, whose upload command loads a CSV into Metabase as a ready-to-query table and model.
- Quick lookups like "which authorizations were declined this morning?"
- Loading an Adyen CSV export into Metabase in seconds
- Spot-checks and one-off analyses without a warehouse
- Great for exploration, not governed revenue reporting
- Local MCP only today, and it reads the live API — scope Adyen credentials carefully
- CSV uploads are snapshots — refresh or move to the pipeline for history
Durable dashboards with history
Sync Adyen via settlement detail reports and the APIs into a database, then point Metabase at it.
- Authorization-rate, net-settlement, and fee dashboards finance relies on
- Chargeback, refund, and payment-method trends over time
- Joining payments with orders, product, and risk data
- Requires a destination database and a sync to maintain
- Interchange and scheme fees are detailed — model them carefully
- Reconcile against Adyen Customer Area before anyone trusts the numbers
What can you analyze from Adyen data in Metabase?
- Authorization rate — authorised ÷ attempted, by method, issuer, and country
- Processed and net volume — captured volume and what settles after fees
- Fees — interchange, scheme, and Adyen markup as a share of volume
- Refunds and chargebacks — leakage and risk vs. scheme thresholds
- Settlement — timing and net amounts by currency
- Payment methods — mix and performance across channels
Which Adyen dashboards should you build in Metabase?
Authorization & conversion
How much of attempted volume actually authorizes.
- Authorization rate by day (line)
- Auth rate by payment method and issuer (bar)
- Declines by refusal reason (bar)
- Auth rate by country (map/table)
Volume & net settlement
Processed volume and what settles after fees.
- Processed and captured volume by day (line)
- Net settled amount after fees (line)
- Interchange + scheme + Adyen fees (stacked bar)
- Average transaction value (number)
Refunds & chargebacks
Where money leaks back out and risk pressure.
- Refund rate and refunded amount (number + line)
- Chargebacks and fraud by month (bar)
- Chargeback rate vs. scheme thresholds (line)
- Dispute win/loss rate (table)
Settlement & fees
Cash landing in your account and cost of processing.
- Settlements and settlement timing (table)
- Fees as a share of volume (line)
- Net settlement by month and currency (bar)
- Reserves and adjustments (table)
How do you use the Adyen MCP server with the Metabase CLI?
Pair the Adyen MCP server with the Metabase CLI for fast, hands-on analysis. Adyen ships an official (alpha) local MCP server that looks up live payments, captures, and refunds; the Metabase CLI's upload command loads a CSV into Metabase and creates a ready-to-query table and model. For analysis, scope the Adyen credentials to read-only.
Example workflow
- Ask the Adyen MCP which authorizations were declined this morning, or list a payment's captures and refunds with their status.
- Export the payments, refunds, and settlement records you want to keep as CSVs.
- Run
mb upload csvto load them into Metabase as tables and models, then build questions and dashboards on top.
Be honest about the limits
- The Adyen MCP is great for live lookups — not for scheduled or audited revenue reporting.
- A CSV upload is a point-in-time snapshot; settlement and auth-rate trends still need a warehouse sync, or refresh with
mb upload replace. - Adyen's MCP is local and alpha — scope API credentials carefully and use test-environment credentials first.
mb upload csvneeds an uploads database configured under Admin → Settings → Uploads.
How do you set up the Adyen MCP server and the Metabase CLI?
Adyen MCPofficial · alpha
- Source
adyen/adyen-mcp(GitHub)- Transport
- Local (build/run per the repo)
- Auth
ADYEN_API_KEY+ADYEN_MERCHANT_ACCOUNT- Remote
- Not available yet
Metabase CLIofficial
- Install
npm install -g @metabase/cli- Auth
mb auth login(browser OAuth on v62+, or an API key)- Load data
mb upload csv --file data.csv- Requires
- An uploads database (Admin → Settings → Uploads)
# Adyen (official alpha, local server — build/run per the repo README)
claude mcp add adyen \
--env ADYEN_API_KEY=<YOUR_ADYEN_API_KEY> \
--env ADYEN_MERCHANT_ACCOUNT=<YOUR_MERCHANT_ACCOUNT> \
-- /path/to/adyen-mcp{
"mcpServers": {
"adyen": {
"command": "/path/to/adyen-mcp",
"env": {
"ADYEN_API_KEY": "<YOUR_ADYEN_API_KEY>",
"ADYEN_MERCHANT_ACCOUNT": "<YOUR_MERCHANT_ACCOUNT>"
}
}
}
}Adyen's MCP is distributed as source on GitHub — build and run it per the adyen/adyen-mcp README, then point the command at the resulting binary. Use test-environment credentials first.
# Install the Metabase CLI
npm install -g @metabase/cli
# Log in (opens your browser; requires Metabase v62+)
mb auth login --url https://your-metabase.example.com
# Load an Adyen CSV export — creates a table AND a model
mb upload csv --file adyen-settlement.csv --collection root
# Refresh that same table later from a new export
mb upload replace <table-id> --file adyen-settlement.csvThe Metabase CLI stores its credentials securely after mb auth login.
Can you generate an Adyen dashboard with AI?
Yes. Use the prompt below with any assistant that can run the Adyen MCP server and the Metabase CLI. It works end to end: if Adyen tables already exist in Metabase it analyzes those; otherwise it pulls the data over the Adyen MCP, loads it with mb upload csv, then builds the dashboard — segmenting authorization rate and skipping cards it has no data for.
Create a polished Metabase dashboard for Adyen payments analytics.
Work end to end: get the data into Metabase if it isn't there yet, then build.
Goal: Help payments and finance leaders understand authorization rate, processed
and net volume, refunds, chargebacks, fees, and settlement from Adyen data.
Step 1 — Find or load the data:
- First, check what already exists in Metabase (search for Adyen tables and
models). If durable Adyen data is already present — synced from a warehouse or
uploaded earlier — use it and skip to Step 2.
- If nothing is there, pull it with Adyen's local MCP server using read-only
credentials: payments (authorisations), captures, refunds, chargebacks, and
settlement detail records. Write each result to a CSV, then load it with the
Metabase CLI — run "mb upload csv --file <export>.csv" so each upload creates a
table and a ready-to-query model. Use "mb upload replace <table-id> --file
<export>.csv" to refresh an existing table instead of creating duplicates.
Step 2 — Inspect before querying:
Do not assume exact table names. Map the available raw tables into these
analytical concepts where possible: Payments (authorisations), Captures, Refunds,
Chargebacks/Disputes, Fees (interchange, scheme, markup), Settlements, and
Payouts. Inspect the actual tables and column names first.
Important:
- Build on whatever data is present; don't claim Metabase connects natively to
Adyen — it reads a database or CLI-uploaded tables.
- Compute authorization rate as authorised ÷ attempted, and segment by method,
issuer, and country.
- Separate processed volume from net settlement (after interchange, scheme, and
Adyen fees).
- Track chargeback rate against scheme thresholds.
- Report in a single reporting currency; Adyen is multi-currency, so convert
with a documented rate or split by currency.
- Only build a card if its underlying column/metric exists in the data.
- A single CSV is a point-in-time snapshot: settlement, auth-rate, and chargeback
trends need history, so build trend cards only if a warehouse sync or multiple
uploads provide it.
Dashboard title: Adyen Payments Overview
Sections:
1. Executive summary (KPI cards): Processed volume; Net settlement; Authorization
rate; Refund rate; Chargeback rate; Fees %.
2. Authorization & conversion: Auth rate by day; by method/issuer; declines by
reason.
3. Volume & net settlement: Processed vs. captured; Net settled; Fee breakdown.
4. Refunds & chargebacks: Refund rate; Chargebacks vs. thresholds; Win/loss rate.
5. Settlement & fees: Settlement timing; Fees as a share of volume; Net
settlement by currency.
Filters: Payment method, Issuer, Country, Currency, Date range.
Reuse the models Metabase auto-created from uploaded CSVs, or (for a warehouse)
create reusable models: modeled_adyen_payments, modeled_adyen_settlement_details,
and modeled_adyen_chargebacks.
Output: Build the dashboard if you have permission; otherwise provide the exact
questions, SQL, model definitions, and layout. Include caveats for any metric
that cannot be calculated from the available data. Reconcile totals against
Adyen Customer Area. Keep it practical, dense, and executive-readable. Avoid
vanity metrics.How do you build the Adyen → Metabase pipeline?
For dashboards that need history and reliability, land Adyen data in a database first, then connect Metabase to that database.
Connector options
- Settlement detail reports (free, first-party) — the definitive record of captures, fees, and net settlement; load them on a schedule.
- Adyen APIs (free, raw) — Checkout, Management, and reporting APIs for payment and dispute detail.
- Webhooks (free, events) — stream authorisation, capture, refund, and chargeback notifications into a table.
Notes
- Land raw reports first, then build clean models on top.
- Settlement detail reports are the source of truth for net revenue — model fees (interchange, scheme, markup) from them.
- Adyen is multi-currency — convert to one reporting currency or split by it.
- Amounts are in minor units — divide in a model layer.
How should you model Adyen data in Metabase?
Core tables
| Concept | Grain | Key columns |
|---|---|---|
payments | one row per authorisation | psp_reference, merchant_reference, amount, result, payment_method, shopper_country, created_at |
captures | one row per capture | psp_reference, original_reference, amount, status, created_at |
refunds | one row per refund | psp_reference, original_reference, amount, status, created_at |
chargebacks | one row per dispute | psp_reference, original_reference, amount, reason, status, created_at |
settlement_details | one row per settlement line | psp_reference, type, gross_debit, gross_credit, commission, markup, scheme_fees, interchange, net_debit, net_credit, booking_date |
Modeling advice
- Treat
settlement_detailsas the source of truth for net revenue and fees. - Build a
modeled_adyen_paymentsview keyed onpsp_referenceto link authorisation, capture, refund, and chargeback. - Define authorization rate on a consistent attempt denominator.
- Break fees into interchange, scheme, and markup so cost is transparent.
- Reconcile modeled net settlement against the Adyen Customer Area.
Which Adyen metrics should you track in Metabase?
| Metric | Definition | Notes |
|---|---|---|
| Authorization rate | Authorised ÷ attempted payments. | Segment by method, issuer, country. |
| Processed volume | Sum of captured amounts. | Gross, before fees. |
| Net settlement | Captured − interchange − scheme − markup. | From settlement detail reports. |
| Fee rate | Total fees ÷ processed volume. | Break down by fee type. |
| Refund rate | Refunds ÷ captured payments. | By count or amount — label which. |
| Chargeback rate | Chargebacks ÷ transactions. | Watch against scheme thresholds. |
What SQL powers Adyen dashboards in Metabase?
These assume the modeled tables above (PostgreSQL dialect, amounts in minor units). Adjust identifiers to match your schema.
Authorised payments as a share of attempts.
SELECT
date_trunc('day', created_at) AS day,
COUNT(*) AS attempts,
COUNT(*) FILTER (WHERE result = 'Authorised') AS authorised,
ROUND(100.0 * COUNT(*) FILTER (WHERE result = 'Authorised')
/ NULLIF(COUNT(*), 0), 2) AS auth_rate_pct
FROM payments
WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY 1
ORDER BY 1;Where declines cluster across payment methods.
SELECT
payment_method,
COUNT(*) AS attempts,
ROUND(100.0 * COUNT(*) FILTER (WHERE result = 'Authorised')
/ NULLIF(COUNT(*), 0), 2) AS auth_rate_pct
FROM payments
WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY payment_method
ORDER BY attempts DESC;From settlement detail records — the source of truth for net.
-- Net settlement from settlement detail records
SELECT
date_trunc('month', booking_date) AS month,
ROUND(SUM(gross_debit - gross_credit) / 100.0, 2) AS gross_amount,
ROUND(SUM(commission + markup + scheme_fees + interchange) / 100.0, 2)
AS total_fees,
ROUND(SUM(net_debit - net_credit) / 100.0, 2) AS net_settled
FROM settlement_details
GROUP BY 1
ORDER BY 1;