List expected-vs-actual billing mismatches
Admin-only endpoint that lists Stripe invoice snapshots with dual-view mismatch data. The default filter is has_mismatch=true and the default time window is the last 30 days.
Request
- Base URL: https://api.crawlora.net/api/v1
- URL: https://api.crawlora.net/api/v1/admin/billing/mismatches
- Auth: API key in header x-api-key
Query parameters
Updated-at lower bound in RFC3339 format
Updated-at upper bound in RFC3339 format
Billing plan
Stripe invoice status
Stripe customer id
Matched user id
Matched billing period key in YYYY-MM format
Stripe invoice id
Stripe repair status
Mismatch flag to filter
Minimum repair attempts
Filter snapshots with manual-review mismatch flags
Override the default mismatch=true filter
Maximum mismatches to return. Defaults to 50 and clamps to 100.
Headers
Admin API key required unless an Admin JWT is already present
Response
Mismatched Stripe invoice snapshots
Example response
{
"code": 200,
"data": [
{
"actual_overage_cents": 3200,
"actual_subscription_cents": 7900,
"amount_due_cents": 11100,
"amount_paid_cents": 11100,
"charge_id": "ch_123",
"created_at": "2026-05-01T00:59:00Z",
"currency": "usd",
"due_date": "2026-05-08T00:00:00Z",
"effective_due_date": "2026-05-08T00:00:00Z",
"expected_total_cents": 11100,
"finalized_at": "2026-05-01T01:00:00Z",
"hosted_invoice_url": "https://invoice.stripe.com/i/acct_...",
"invoice_pdf": "https://pay.stripe.com/invoice/.../pdf",
"last_event_created": "2026-05-01T01:01:00Z",
"last_event_id": "evt_123",
"line_items": [
{
"amount_cents": 7900,
"category": "subscription",
"currency": "usd",
"description": "Pro plan",
"line_id": "il_123",
"period_end": "2026-05-01T00:00:00Z",
"period_start": "2026-04-01T00:00:00Z",
"source_ref": "sub_123",
"type": "subscription"
}
],
"matched_period_key": "2026-04",
"matched_user_id": "user-1",
"net_cash_cents": 11100,
"paid_at": "2026-05-01T01:01:00Z",
"payment_intent_id": "pi_123",
"period_end": "2026-05-01T00:00:00Z",
"period_start": "2026-04-01T00:00:00Z",
"plan": "Pro",
"reconciliation_status": "paid",
"repair_attempts": 1,
"repair_last_attempt_at": "2026-05-01T02:00:00Z",
"repair_last_success_at": "2026-05-01T02:01:00Z",
"repair_status": "pending",
"stripe_customer_id": "cus_123",
"stripe_invoice_id": "in_123",
"stripe_invoice_number": "C8F8C2D-0001",
"stripe_invoice_status": "paid",
"subtotal_cents": 11100,
"subtotal_excluding_tax_cents": 11100,
"total_cents": 11100,
"total_excluding_tax_cents": 11100,
"updated_at": "2026-05-01T01:01:00Z"
}
],
"msg": "OK"
}Changes
No recorded changes to this operation across all 3 revisions of this API.