# FlowCheck API > Stripe payouts, Shopify orders, and bank data — one API. Connect, reconcile, build. - Support: support@usepopup.com FlowCheck unifies Stripe payout data, Shopify order and payout data, and bank account data (via Plaid) into a single REST API. Use it to check balances, track payouts from Stripe and Shopify, reconcile transactions against bank deposits, detect discrepancies, and build financial tools — without managing multiple integrations. - Base URL: https://developer.usepopup.com/api/v0 - Auth: Bearer token (`Authorization: Bearer fc_live_...`) - Response format: JSON envelope with `data`, `meta`, `errors` - Pagination: cursor-based - Rate limits: 60–6,000 req/min depending on plan ## Quick Start 1. Register: `POST /v0/auth/register` with `{"email": "you@example.com"}` 2. Use the sandbox API key returned in the response: `Authorization: Bearer fc_test_...` 3. Sandbox returns realistic mock data instantly. No payment required. 4. When ready for live data, complete checkout via the returned checkout_url. ## Authentication - `POST /v0/auth/register` — Create account, get sandbox API key instantly (no auth required) - `GET /v0/auth/register/status` — Get production API key after checkout ## Balance & Cash Flow - `GET /v0/balance` — Stripe available/pending + bank balances in one call - `GET /v0/cashflow` — Daily inflow/outflow breakdown (7d, 30d, 90d windows) ## Payouts - `GET /v0/payouts` — List Stripe and Shopify payouts with reconciliation status. Filter by `?source=stripe` or `?source=shopify`. - `GET /v0/payouts/:id` — Single payout with matched bank transaction details ## Transactions - `GET /v0/transactions` — Bank transactions from Plaid with filters and pagination ## Reconciliation - `GET /v0/reconcile/summary` — 30-day reconciliation summary - `GET /v0/reconcile/:payout_id` — Per-payout reconciliation detail with confidence score ## Sync - `POST /v0/sync` — Trigger a full sync of connected integrations (Stripe, Shopify, Plaid) and run reconciliation. Rate limited to 1 sync per 5 minutes per tenant. Costs 1 credit. ## Discrepancies - `GET /v0/discrepancies` — Open issues: missing deposits, amount mismatches, timing alerts ## Agent Endpoints Purpose-built for AI agents and automated systems: - `GET /v0/agent/position` — 7-day financial summary (balances, recent payouts, cash flow) - `GET /v0/agent/alerts` — Active alerts and discrepancies in agent-friendly format ## Integrations - `POST /v0/connect/stripe` — Connect Stripe account with restricted API key - `POST /v0/connect/shopify` — Connect Shopify store with shop domain and access token - `POST /v0/connect/plaid/link-token` — Create Plaid Link token for bank connection - `POST /v0/connect/plaid/exchange` — Exchange Plaid public token for access ## Billing - `POST /v0/billing/topup` — Buy 100 credits ($5) charged to card on file. Returns new balance. - `POST /v0/billing/upgrade` — Create a Stripe Checkout session to upgrade your plan. Works at 0 credits (no credit deducted). Body: `{"plan": "starter | growth | pro"}` ## Webhooks - `GET /v0/webhooks` — List registered webhook endpoints - `POST /v0/webhooks` — Register a new webhook endpoint (HTTPS, HMAC-signed) - `DELETE /v0/webhooks/:id` — Remove a webhook endpoint Webhook event types: `payout.matched`, `payout.discrepancy`, `payout.missing`, `refund.detected`, `balance.threshold` ## Credits Every API response includes `meta.credits_remaining` so you can track your balance. When credits hit zero, the API returns a plan-aware `402 credits_exhausted`: - Trial / expired users: response includes `actions.upgrade` pointing to `POST /v0/billing/upgrade` with available plans. - Paid users: response includes `actions.topup` pointing to `POST /v0/billing/topup` ($5 for 100 credits). Both endpoints work programmatically. The upgrade endpoint works even at 0 credits. ## Error Format RFC 7807 Problem Details. Every error includes `type`, `title`, `status`, `detail`, and `instance`. ## Rate Limits | Plan | Credits/mo | Rate | |------|-----------|------| | Trial | 100 | 60/min | | Starter | 1,000 | 300/min | | Growth | 5,000 | 600/min | | Pro | 15,000 | 600/min | | Scale | Custom | 6,000/min | 1 credit = 1 API request. Unused paid credits never expire and roll over month to month. Credits are subject to reasonable use limits to ensure service stability. Each plan has a maximum balance of 6× the monthly allocation. Webhook deliveries are free. Sandbox usage is free. ## Blog - How I stopped reconciling Stripe payouts in spreadsheets: https://developer.usepopup.com/blog/reconciling-stripe-payouts - Building a financial dashboard with Stripe, Shopify, and Plaid without writing a reconciliation engine: https://developer.usepopup.com/blog/financial-dashboard-stripe-shopify-plaid - How to give Claude real-time access to your business finances with MCP: https://developer.usepopup.com/blog/claude-mcp-business-finances ## More - Full API reference: https://developer.usepopup.com/llms-full.txt - OpenAPI spec: https://developer.usepopup.com/.well-known/openapi.json