---
title: "Run a subscription and payment audit against Stripe"
method: POST
path: "/admin/billing/audits"
tags: ["Billing"]
---

# Run a subscription and payment audit against Stripe

`POST /admin/billing/audits`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/admin/billing/audits`
- Auth: API key in header `x-api-key`

Admin-only. Runs one read-only audit that compares every Stripe subscription, invoice, charge, refund, and dispute with local entitlements, invoice snapshots, period ledgers, and frozen statements, records the run, and returns it with findings, evidence, and repair paths. Optional user_id scopes the run to one customer; scoped runs are recorded but do not affect the scheduled run's diff or emails. Never changes Stripe or local billing data.

## Query parameters

- `format` 'json' | 'markdown'

## Headers

- `x-api-key` string, required

## Request body

- object

## Response `200`

OK

- AppResponse: The Response struct is used for wrapping the API response with a code, message, and data.
  - `code` integer: Code is the HTTP status code or a custom code used to indicate the result of the request @example 200
  - `data` unknown
  - `msg` unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `500`: Internal Server Error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
