# Pricing and billing

> What voicast costs (¥6 per minute, pay as you go) and how you pay: prepaid credit, auto-recharge and expiry, enterprise contracts with invoicing, and spending caps.

Source: https://voicast.jp/en/docs/pricing

## Price

| Item | Details |
| --- | --- |
| Price | ¥6 per minute (excl. tax). No monthly fee, no setup fee |
| What is counted | Call seconds from connect to hang-up. Phone and Web/app calls are the same |
| Environments | Live and test calls are counted the same. There are no free minutes |
| Consumption tax | 10%, added on top-ups and invoices |
| Not included | Phone numbers, lines and carrier charges (your Twilio or other contract) |

Speech recognition, the language model, speech synthesis, summaries and connections are all included.

## How you pay

There are two ways to pay. Self-serve organizations use prepaid credit; organizations on an enterprise contract can also pay by invoice.

| | Prepaid credit (default) | Invoice (enterprise) |
| --- | --- | --- |
| When | Add credit in advance | Billed after the month closes |
| Method | Card | Bank transfer |
| Per minute | ¥6 | The price in your contract |
| How usage is taken | Deducted from the balance after each call | Monthly total seconds ÷ 60, rounded up, billed as minutes |

## Prepaid credit

After each call, `seconds × per-minute price ÷ 60` is deducted from your balance. At ¥6 per minute that is ¥0.1 per second.

### Top-ups

- In the dashboard under Organization settings → Billing, or with the MCP tool `create_topup` (owners only). With an API key, `POST /v1/billing/topups { amount_yen }` creates a top-up URL (payment happens in the browser).
- ¥500–¥300,000 per top-up (excl. tax, in whole yen). ¥3,000, ¥5,000, ¥10,000 and ¥30,000 are one click away.
- Paid by card with consumption tax added. Each payment comes with a qualified invoice (with our registration number) for Japanese tax purposes.
- The card used for your first top-up is saved for auto-recharge.

### Expiry

Each top-up expires 6 months after purchase. Credit that expires soonest is used first, and whatever is left at expiry is removed. Billing in the dashboard, the MCP tool `get_billing` and `GET /v1/billing` show your balance and the next amount to expire. Each call's cost is in the call's `billed_yen`.

### When the balance runs out

- While the balance is **zero or below**, new calls are refused. On the phone the voice server closes the stream right away (Twilio moves on to your next step); for Web and apps, `POST /v1/sessions` returns 402 `balance_depleted`.
- Calls in progress are never cut off. After a long call the balance can go slightly negative; the next top-up covers it.
- The call that takes the balance to zero or below triggers the `billing.balance_depleted` webhook and an email to the owners.

### Auto-recharge

When the balance falls below a threshold, voicast charges the saved card for a set amount. Configure it under Billing in the dashboard.

| Setting | Range |
| --- | --- |
| Threshold | ¥1–¥300,000 (e.g. ¥1,000) |
| Amount | ¥500–¥300,000 |
| Monthly cap | Cap on this month's auto-recharge total (optional) |

- An auto-recharge that would exceed the monthly cap is skipped and reported with `billing.cap_reached` (`kind: 'auto_recharge'`).
- A declined card triggers `billing.recharge_failed` and an email, and the charge is retried later. After 3 declines in a row, auto-recharge is turned off.
- Without auto-recharge, `billing.balance_low` is sent once when the balance falls below the threshold.

## Enterprise contracts

High-volume organizations can agree a per-minute price and payment method in a contract. Contact us.

- With invoicing, the month's total seconds (live and test combined) ÷ 60, rounded up, × the contract price is invoiced at month end and paid by bank transfer. Payment terms are set in the contract.
- When an invoice is overdue, you get the `billing.payment_overdue` webhook and an email. If it is still unpaid exactly 14 days after the due date, new calls are refused (402 `payment_overdue`). Paying restores service immediately.

### Spending cap

Invoiced organizations can set a monthly cap (yen, excl. tax). When this month's estimate reaches the cap, new calls (live and test) are refused (402 `spending_cap_reached`) and `billing.cap_reached` (`kind: 'usage'`) is sent.

Set the cap under Billing in the dashboard. The MCP tool `set_spending_cap` can only lower it; raising or removing it is dashboard-only.

## Test environment

Test calls are priced like live calls and deducted from the same balance; they also count toward caps and estimates. Keep trial calls short, and watch the number of calls when automated tests place them.

## Usage breakdown

`GET /v1/usage` (MCP: `get_usage`) returns calls, seconds, minutes and an estimated amount for an environment. Use it to bill your own customers (tenants).

```bash
curl "https://api.voicast.jp/v1/usage?from=2026-09-01&to=2026-09-30&group_by=tenant" \
  -H "Authorization: Bearer $VOICAST_API_KEY"
```

```json
{
  "environment": "live",
  "from": 1788188400000,
  "to": 1790780400000,
  "group_by": "tenant",
  "unit_price_yen": 6,
  "total": { "calls": 412, "seconds": 61230, "minutes": 1021, "amount_yen": 6123 },
  "data": [
    {
      "tenant": { "id": "ten_…", "external_id": "clinic-123", "name": "Sakura Dental" },
      "calls": 120, "seconds": 17940, "minutes": 299, "amount_yen": 1794
    }
  ]
}
```

| Query | Description |
| --- | --- |
| `from`, `to` | A date (`YYYY-MM-DD`, Japan time; `to` includes that day) or Unix milliseconds (`to` is exclusive). Defaults to the start of this month until now. Up to 366 days |
| `group_by` | `tenant`, `day` or `channel` (`phone` and `web`) |

- Calls that ended within the period are counted.
- `minutes` is each group's total seconds ÷ 60, rounded up. `amount_yen` is seconds ÷ 60 × the per-minute price, rounded to yen (an estimate, excl. tax).
- What your organization actually pays is the sum deducted per call (prepaid) or the organization's monthly total seconds (invoice).

## Invoices and receipts

- Top-up invoices, card changes and billing details are under Billing → Manage billing in the dashboard (Stripe's portal; owners only).
- Every balance movement (top-ups, calls, expiry) is listed under Billing in the dashboard.
