Guide - Integrations

How do you analyze Paystack payments in Metabase?

Paystack analytics turns finance operations into shared, queryable models. Paystack processes payments across cards, bank transfers, mobile money, and local channels. Metabase can turn transaction, settlement, refund, and dispute records into payment-performance and finance-reconciliation dashboards. Metabase connects to the database that holds the synced data; it does not connect natively to Paystack.

TL;DR - Use the MCP + CLI route for a scoped, short-lived analysis. Use the official API or approved connector route for recurring dashboards, history, permissions, and reconciliation.

How do you connect Paystack to Metabase?

1 - MCP + CLI route (AI-assisted)

Explore a scoped snapshot quickly

Paystack's official MCP server exposes the documented API in public preview and accepts test keys only. Use it to inspect test transactions and validate workflows, not to query production reporting data. Pair the approved server with the Metabase CLI to load a focused CSV as a table and model.

Best for
  • Quick questions about Paystack data
  • Validating fields and dashboard ideas before building a pipeline
  • Loading a minimal, permissioned snapshot into Metabase
Trade-offs
  • A CSV is a point-in-time snapshot, not governed reporting
  • Finance data needs least-privilege credentials and an explicit tool allowlist
  • Move recurring dashboards to the warehouse-backed route
2 - Pipeline route (warehouse-backed)

Durable dashboards with history

Use the Paystack API and verified webhooks to sync transactions, customers, settlements, refunds, disputes, and transfer data. Reconcile successful charges to settlements rather than reporting authorization alone.

Best for
  • Recurring finance and leadership dashboards
  • Historical aging, lifecycle, and period reporting
  • Joining finance data with sales, product, and operations data
Trade-offs
  • Requires a destination database and maintained sync
  • You own currency, status, accounting period, and reconciliation definitions
  • Every modeled total should reconcile to the source system

What can you analyze from Paystack?

  • Payment success by channel and currency
  • Settlement amount and lag
  • Fees, refunds, and disputes
  • Customer and merchant performance
  • Transaction-to-settlement reconciliation

Which Paystack dashboards should you build in Metabase?

For: Finance leaders

Finance overview

A compact view of cash, exposure, and operating performance.

  • Gross and net payment volume
  • Payment success rate
  • Settled vs. unsettled amount
  • Fees and refunds
For: Finance operations

Operations

The work that needs attention before the next close.

  • Failed transactions by reason
  • Pending settlements
  • Refund queue
  • Dispute exposure
For: Controllers

Controls and reconciliation

Find exceptions before they become close surprises.

  • Successful charges missing settlement
  • Settlement amount variance
  • Duplicate references
  • Webhook freshness
For: FP&A

Planning and trends

Compare actuals with the plan and explain the variance.

  • Channel mix
  • Settlement forecast
  • Fee-rate trend
  • Currency and country mix

How do you use Paystack MCP with the Metabase CLI?

The Paystack MCP server is a officialMCP option for AI-assisted exploration. Paystack's official MCP server exposes the documented API in public preview and accepts test keys only. Use it to inspect test transactions and validate workflows, not to query production reporting data. The Metabase CLI can then upload a sanitized CSV and create a ready-to-query table and model.

  • Start with a narrow read-only question and the minimum required objects.
  • Remove secrets, bank details, and personal fields before exporting.
  • Use mb upload csv for a first snapshot and mb upload replace for a controlled refresh.
  • Move to an API or connector sync when the dashboard becomes recurring.

How do you set up Paystack MCP and the Metabase CLI?

Paystack MCP serverofficial

Data source
Paystack API
Auth
Paystack test secret key; live keys are rejected
Access
Read-only, least privilege
Use for
Exploration and scoped exports

Metabase CLIofficial

Install
npm install -g @metabase/cli
Auth
mb auth login
Load data
mb upload csv --file data.csv
Requires
An uploads database in Metabase
MCP clientExample MCP configuration - verify before use
{
  "mcpServers": {
    "paystack": {
      "command": "npx",
      "args": ["@paystack/mcp-server", "--api-key", "sk_test_..."]
    }
  }
}
TerminalLoad a Paystack CSV with the Metabase CLI
# 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 a scoped Paystack export - creates a table and a model
mb upload csv --file paystack-export.csv --collection "Finance & Accounting"

# Refresh the same table later
mb upload replace <table-id> --file paystack-export.csv
Verify before connecting: check the current Paystack MCP server documentation, review every MCP tool, and enable an uploads database under Admin > Settings > Uploads. Use the vendor's documented authentication flow and a least-privilege role for analytics.

Can you generate a Paystack finance dashboard with AI?

Yes. Use the prompt below with an assistant that can access an approved data route and the Metabase CLI. It tells the assistant to inspect the real schema, reconcile totals, and skip cards that the available data cannot support.

Prompt for a Paystack finance dashboard
Create a polished Metabase dashboard for Paystack finance analytics.
Work end to end: find existing modeled data first; if none exists, load a minimal
read-only snapshot or describe the warehouse sync required.

Goal: Connect Paystack to Metabase for payment success, settlements, fees, refunds, disputes, channels, and reconciliation dashboards.

Inspect before querying:
- Inspect actual tables, column names, currencies, status values, and timestamps.
- Do not assume the source schema matches this guide exactly.
- Reconcile source totals before publishing any finance KPI.

Important:
- Do not claim Metabase connects natively to Paystack; it reads a
  supported database or CLI-uploaded tables.
- Keep native amount, native currency, and reporting-currency amount separate.
- Distinguish authorization, posting, payment, settlement, and reconciliation
  states where the source exposes them.
- Use stable business keys and apply updates/deletes during incremental syncs.
- Exclude account numbers, personal data, and secrets from broad dashboards.
- Only build cards whose required fields and history are actually present.

Dashboard sections:
1. Finance overview: Gross and net payment volume; Payment success rate; Settled vs. unsettled amount; Fees and refunds.
2. Operations: Failed transactions by reason; Pending settlements; Refund queue; Dispute exposure.
3. Controls and reconciliation: Successful charges missing settlement; Settlement amount variance; Duplicate references; Webhook freshness.
4. Planning and trends: Channel mix; Settlement forecast; Fee-rate trend; Currency and country mix.

Suggested models: modeled_paystack_transactions, modeled_paystack_settlements, modeled_paystack_refunds_disputes.

Output: Build the dashboard if you have permission; otherwise provide the exact
questions, SQL, model definitions, and layout. State refresh time, reporting
currency, accounting basis, and any reconciliation caveats.

How do you sync Paystack into a database or warehouse?

Use the Paystack API and verified webhooks to sync transactions, customers, settlements, refunds, disputes, and transfer data. Reconcile successful charges to settlements rather than reporting authorization alone.

Paystack API or data service

Start from Paystack's official interface and authentication documentation. Extract only the finance objects required by the models below.

dlt Paystack REST pipeline

Load transactions and settlements into a supported destination with pagination, retries, and secret-key authentication.

Implementation checklist

  1. Create a dedicated read-only integration identity and document its scopes.
  2. Land raw records with source IDs, source timestamps, extraction time, and currency fields intact.
  3. Apply updates and deletes idempotently; keep lifecycle history when aging or process metrics depend on it.
  4. Reconcile modeled totals to Paystack for a closed period before exposing the models broadly.
  5. Connect Metabase to the destination database and schedule model refreshes.

Source documentation

What data model should you use?

EntityGrainUse
transactionsone row per payment referencestatus, channel, amount, and fees
settlementsone row per settlementnet cash delivery
settlement_transactionsone row per settlement-payment linkreconciliation
refunds_disputesone row per refund or disputeloss and operational follow-up

Build reusable models such as modeled_paystack_transactions, modeled_paystack_settlements, modeled_paystack_refunds_disputes.

Which finance metrics are useful?

Practical SQL patterns

Payment success rate by channelPostgreSQL
SELECT
  channel,
  COUNT(*) AS attempts,
  COUNT(*) FILTER (WHERE status = 'success') AS successful,
  ROUND(100.0 * COUNT(*) FILTER (WHERE status = 'success')
    / NULLIF(COUNT(*), 0), 2) AS success_rate_pct
FROM modeled_paystack_transactions
WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY 1
ORDER BY attempts DESC;
Successful payments awaiting settlementPostgreSQL

Separate payment success from settled cash and give finance an exceptions queue.

SELECT
  transaction_reference,
  paid_at,
  amount,
  currency,
  CURRENT_TIMESTAMP - paid_at AS unsettled_age
FROM modeled_paystack_transactions
WHERE status = 'success'
  AND settlement_id IS NULL
ORDER BY paid_at;

Common mistakes

Treating every initialized transaction as an attempt.→ Define the attempt denominator from the lifecycle events your integration actually receives.
Using successful payments as settled cash.→ Join transactions to settlement detail and report timing differences.
Trusting webhook payloads without verification.→ Verify signatures and retrieve authoritative records before loading finance models.

Dashboards

Integrations

Analytics

FAQ

What is the difference between a successful transaction and a settlement?
A successful transaction records customer payment; settlement records the net funds delivered to your account after timing and fee rules.
Can I compare Paystack with Stripe or Flutterwave?
Yes after normalizing attempts, success states, currencies, fees, refunds, disputes, and settlement dates into a shared payments model.
Does Metabase connect natively to Paystack?
No. Metabase reads supported databases and uploaded tables. Sync Paystack data into a database or load a scoped CSV snapshot first.