---
title: fees.preview | Doing Work API
description: What Doing Work would take on a payment of this size right now, the effective rate on it, the month's volume so far (all locations under the same owner), a
url: https://doingwork.work/docs/reference/fees-preview/
---

# fees.preview

What Doing Work would take on a payment of this size right now, the effective rate on it, the month's volume so far (all locations under the same owner), and how far the shop is from the next, cheaper band (owner or office). Leave out amount_minor for just the month picture and the next band line.

|  |  |
|---|---|
| Who | Agents can call this |
| REST | `GET /v1/fees/preview` |
| MCP tool | `fees_preview` |
| Writes | no |
| Area | [Shop](https://doingwork.work/docs/reference/#shop) |

## When to use it

What Doing Work would take on a payment of this size right now, the effective rate on it, the month's volume so far (all locations under the same owner), and how far the shop is from the next, cheaper band (owner or office). Leave out amount_minor for just the month picture and the next band line.

## What to tell the owner

Tell them what you found in plain words. Don't read back raw fields.

## Input

| Field | Type | Required |
|---|---|---|
| `shop_id` | string | yes |
| `amount_minor` | integer | no |

## Example

```http
GET https://doingwork.work/v1/fees/preview?shop_id=00000000-0000-4000-8000-000000000000
```

## Output

| Field | Type | Always there |
|---|---|---|
| `shop_id` | string | no |
| `period` | string | no |
| `month_volume_minor` | integer | no |
| `amount_minor` | ['integer', 'null'] | no |
| `fee_minor` | ['integer', 'null'] | no |
| `effective_rate_bps` | ['number', 'null'] | no |
| `current_rate_bps` | integer | no |
| `to_next_band_minor` | ['integer', 'null'] | no |
| `next_rate_bps` | ['integer', 'null'] | no |
| `next_band_line` | string | no |

```json
{
  "shop_id": "00000000-0000-4000-8000-000000000000",
  "period": "...",
  "month_volume_minor": 50000,
  "amount_minor": "...",
  "fee_minor": "...",
  "effective_rate_bps": "...",
  "current_rate_bps": 1,
  "to_next_band_minor": "...",
  "next_rate_bps": "...",
  "next_band_line": "..."
}
```

## Errors

| Code | Status | What to do |
|---|---|---|
| `invalid_input`, `invalid_token`, `rate_limited` |  | Can happen on any call. See [errors](https://doingwork.work/docs/errors/). |
