# Fixing a "not enough credits" error

Source: https://help.didit.me/billing-credits/not-enough-credits
Updated: 2026-10-31

Your plan credit and balance are used up, or the workflow includes a check the Free plan credit cannot pay for. Find which one and stop the error recurring.

Your plan credit for the month and your top-up balance cannot cover a check in
the workflow. The Free plan's $10 a month runs out faster than expected when the
workflow includes **white label** ($0.20), AML ($0.20), NFC ($0.15), or active
liveness ($0.15). Open the workflow and look at what's enabled before topping up.

If a verification request fails with `"You don't have enough credits to perform this request"`, or the API answers with the error code `insufficient_credits` when you create a session, your organization's balance can't cover a feature the workflow is trying to run. The same cause can also surface as an **"out of credits" error (sometimes a 502)**, for example when the workflow includes phone verification or database validation, which the Free plan credit does not pay for.

## Check the workflow before you check the balance

The instinct is to look at your usage. Look at your **workflow** first, because every enabled module is paid from your $10 of monthly credit (Free plan) and then your balance, and some modules cost much more than the basic four (ID verification, passive liveness, face match 1:1 and device and IP analysis, $0.33 together). The usual culprits, in the order they actually turn up:

| Feature | Price | Why it surprises people |
|---|---|---|
| **White label / custom branding** | $0.20 per verification | It's a look-and-feel setting, so it doesn't feel like a "check" |
| **AML screening** | $0.20 | Often added to a basic KYC template without noticing |
| **NFC** | $0.15 | Billed separately from ID verification |
| **Active liveness** | $0.15 | Switching from passive to active raises the price. In the workflow the active methods are **3D Flash** and **3D Action & Flash**; **Passive Liveness** is $0.10 |
| **Age estimation** | $0.10 | It is priced separately from ID verification |
| **Questionnaire** | $0.10 | Feels like a form, not a check |
| **Phone verification** | from $0.03 + carrier fee | Carrier fee varies by destination |
| **Email verification** | $0.03 | |
| **Proof of address** | $0.20 | |
| **Database validation** | Varies by country | Also needs a **first top-up** before it runs at all - the Free plan credit does not count. See [database validation](https://help.didit.me/documents-coverage/database-validation) |
| **Business verification (KYB)** | Varies by country and registry tier | |

> **Warning:** **White label is the single most common cause.** A workflow with custom branding
> enabled costs $0.20 per completed verification **on top of** the per-module prices -
> so a flow you set up as plain KYC costs about 60% more the moment you brand it. See
> [customizing branding](https://help.didit.me/workflows/customize-branding-and-experience).

## Fixing it

1. **Open the workflow the failing session uses**

   Not any workflow - the one whose ID the session was created with. In **Workflows**, check every enabled feature against the table above.

2. **Look for the hidden custom-style switch**

   White label is a per-workflow setting called **Include custom style**, and it is not in the step list, which is why auditing the steps never finds it. In the workflow editor it is the small switch **next to the colour-swatch icon in the header, and it only appears once you hover that icon**, so a workflow can be branded without anyone remembering they did it. The same setting is also in the workflow's **Settings** sidebar, where it is always visible.

3. **Check your balance**

   **Settings → Billing and plan** shows your current balance. If your credit for the month is used up and the balance is zero or negative, all billable work stops until it's back above zero.

4. **Either remove the paid feature or top up**

   If you don't need the paid feature, turn it off and republish. If you do, add funds - the minimum top-up is $50. See [top-ups, invoices and payment methods](https://help.didit.me/billing-credits/top-ups-invoices-and-payments).

![The billing page in the Didit console with the account balance and the Top up balance button](https://help.didit.me/screenshots/billing-credits-light.webp)

*Check the balance, but check the workflow's paid features first.*

## Other causes worth ruling out

- **A negative balance.** Once the balance goes below zero and your monthly credit is used up, live checks stop. This is the case where the error genuinely isn't about a particular module.
- **The wrong application's key.** Balance is per organization, but if you're calling with a key for an application whose workflow differs from the one you audited, you're looking at the wrong configuration. See [organizations, applications and environments](https://help.didit.me/account-organization/organizations-and-applications).
- **A standalone API call rather than a workflow session.** Standalone calls are billed per call at list price and use the same credit and balance, so they can use it up faster than you expect.
- **Phone verification or database validation before any top-up.** Both stay inactive until your organization has made a first real top-up; the Free plan credit doesn't unlock them. See [top-ups, invoices and payment methods](https://help.didit.me/billing-credits/top-ups-invoices-and-payments).
- **A sandbox that worked and a live application that doesn't.** Sandbox never charges anything, so it can't reveal a paid feature. The first live session is where the workflow's real price shows up.
- **You genuinely used the month's $10.** Check Analytics for the month's volume per feature, and Usage for what each check was charged, before assuming this one. The credit resets on the 1st.

## Stopping it happening again

- **Turn on auto top-up** in **Settings → Billing and plan** so the balance tops up automatically below a threshold you choose.
- **Test in sandbox**, where nothing is billed and the balance check is bypassed entirely. See [testing in sandbox](https://help.didit.me/getting-started/sandbox-and-testing).
- **Separate your test and live applications**, so an experiment can't drain the balance your production traffic depends on.

## Capping your spend

If you want a hard ceiling so an account can't go negative during testing, that's an account-level control rather than a workflow setting - ask support what's available for your organization. Meanwhile the practical version is: keep testing in a sandbox application, where there is nothing to spend.

## If top-ups aren't self-serve

Organizations on an annual plan can't buy credits through the self-serve top-up flow - contact your account manager instead. A self-serve attempt will tell you so rather than failing silently.

## If your balance looks wrong

If your balance, invoices, or verification history suddenly appear missing or incorrect, this is almost always a temporary platform issue rather than lost data. Contact support rather than trying to fix it yourself, and include your organization ID.
