> For the complete index of the 402pay docs, see [llms.txt](https://developer.402pay.co/llms.txt).

# Retrieve the fee statement

Get what your business owes 402pay in fees, what's on its way to 402pay, and this month's totals.

`GET https://dash.402pay.co/api/v1/billing/fees`

What your business owes 402pay in fees, in US cents. Fees accrue as payments succeed and as your wallet plan renews each month, and 402pay collects them by sending whole payments to its own address once you owe $25.00. See [fees and billing](https://developer.402pay.co/guides/fees.md).

Reading the statement first charges any wallet-plan month that came due, so it's never behind. A restricted key needs read access to payments.

### Fields

- `owed` (integer): What you owe now: `accrued` less `collected`, plus `adjusted`. Below zero it's credit against future fees, from an overpayment or a credit 402pay gave.
- `reserved` (integer): What's on its way to 402pay's address and counts against what you owe: a checkout's whole total once its payment arrives or its card is approved, and what arrived of an underpaid one. A checkout nobody has paid yet holds nothing.
- `accrued` (integer): Every payment fee and wallet-plan month, all time.
- `collected` (integer): What reached 402pay's addresses, all time.
- `adjusted` (integer): Adjustments 402pay made, signed: positive raised what you owe, negative was a credit.
- `this_month` (object): `period`, the current UTC month as `YYYY-MM`, with what accrued and was collected in it.
- `collection` (object): `enabled` is whether 402pay collects from this business, `threshold` what you have to owe before it does, and `active` whether it's collecting now.

### Errors

- 403 `permission_denied` A restricted key without read access to payments.

Any request can also fail on its key or its body. See [errors](https://developer.402pay.co/api/errors.md).

Request, cURL:

```bash
curl "https://dash.402pay.co/api/v1/billing/fees" \
  -H "Authorization: Bearer $PAY402_SECRET_KEY"
```

Request, Node.js:

```js
const response = await fetch("https://dash.402pay.co/api/v1/billing/fees", {
  headers: {
    Authorization: `Bearer ${process.env.PAY402_SECRET_KEY}`,
  },
});
const { data } = await response.json();
```

Request, Python:

```python
import os

import requests

response = requests.get(
    "https://dash.402pay.co/api/v1/billing/fees",
    headers={
        "Authorization": f"Bearer {os.environ['PAY402_SECRET_KEY']}",
    },
)
data = response.json()["data"]
```

Response, 200 OK:

```json
{
  "data": {
    "kind": "fee_statement",
    "currency": "USD",
    "owed": 3140,
    "reserved": 2500,
    "accrued": 10250,
    "collected": 7110,
    "adjusted": 0,
    "this_month": {
      "period": "2026-09",
      "accrued": 1200,
      "collected": 2500
    },
    "collection": {
      "enabled": true,
      "threshold": 2500,
      "active": true
    }
  }
}
```
