> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spoofsense.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SpoofSense Credits and Billing: Costs and Balance Rules

> Credit costs per detection type, balance deduction rules, zero-balance behavior, and how verification sessions handle pre-checks and free retries.

SpoofSense is prepaid: you buy credits in the console, and each successful check decrements your balance. Credits are deducted only when a check is actually scored — input errors and server-side failures are always free.

## Credit costs

| Check                                         | Credits |
| --------------------------------------------- | ------- |
| Face liveness (`POST /v1/liveness_detection`) | 1       |
| Deepfake (`POST /v1/deepfake_detection`)      | 2       |
| Unified (`POST /v1/unified_detection`)        | 3       |
| Verification session — liveness only          | 1       |
| Verification session — deepfake only          | 2       |
| Verification session — both (default)         | 3       |

New organizations start with free trial credits, so you can integrate before purchasing a plan.

## Rules

* **You're only charged for scored checks.** Input errors — invalid image, no face detected, image too large, bad threshold, backlit capture — return 4xx and cost nothing.
* **Every response includes your balance** via `credits_remaining`, so you always know where you stand without a separate API call.
* **Zero balance disables your keys.** Calls return `402 INSUFFICIENT_CREDITS` until you top up in the console.
* **Session creation pre-checks the balance.** When you call `POST /v1/verification_sessions`, SpoofSense verifies your balance is sufficient before issuing a session token — you'll never hand your client a token that's doomed to fail at scoring time.
* **Verification session retries are free** until a check actually runs: a `422` retake (blur, no face, backlit) doesn't charge; the credit deduction lands only when the capture is scored.

<Note>
  Surface `402 INSUFFICIENT_CREDITS` to your **operations team**, not your end user — it means the account needs a top-up, not that the user's verification failed.
</Note>
