# Create tariff

URL: https://docs.hanzo.ai/docs/openapi/company/post-company-tariff

> Itemises what a formation costs before anyone commits to it.

`POST /v1/company/tariff`

> [Company →](https://docs.hanzo.ai/docs/openapi/company) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                          |
| ------------- | ---------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/company/tariff` |
| **Method**    | `POST`                                   |
| **Operation** | `post_company_tariff`                    |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`   |

Itemises what a formation costs before anyone commits to it.

It answers what is due now and what recurs, as separate figures, and marks the
state's filing fee as money we collect and remit rather than keep. A caller can
therefore show a payer the whole bill — which is the point of quoting at all,
and was impossible while the fee was one number in an error string.

A jurisdiction whose filing fee this deployment has not been told REFUSES,
naming the setting that fixes it. Quoting our half as though it were the total
is the one answer that would be worse than no answer.

## Request

4 fields, body `application/json` (required).

| Field           | In   | Type    | Required | Description                                                   |
| --------------- | ---- | ------- | -------- | ------------------------------------------------------------- |
| `agentOfRecord` | body | boolean | —        | AgentOfRecord puts us on file as the entity's agent, yearly.  |
| `expeditedEin`  | body | boolean | —        | ExpeditedEIN prioritises the EIN.                             |
| `jurisdiction`  | body | string  | —        | Jurisdiction is the state of formation.                       |
| `structure`     | body | string  | —        | Structure is the entity being formed: c-corp, llc or dao-llc. |

## Response

| Status    | Body            | Meaning |
| --------- | --------------- | ------- |
| `200`     | company.Tariff  | ok      |
| `default` | problem-details | refused |

`200` body — 15 fields.

| Field                 | In   | Type              | Always | Description                                                                                                                                                                          |
| --------------------- | ---- | ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `currency`            | body | string            | —      | Currency is the ISO code every amount on this quote is denominated in.                                                                                                               |
| `dueNowCents`         | body | integer (int64)   | —      | DueNowCents is what is charged to begin: every non-recurring line.                                                                                                                   |
| `jurisdiction`        | body | string            | —      | Jurisdiction is the state of formation the filing fee belongs to.                                                                                                                    |
| `lines`               | body | company.Charge\[] | —      | Lines are the charges, in the order a reader should see them.                                                                                                                        |
| `lines[].amountCents` | body | integer (int64)   | —      | AmountCents is what this line costs.                                                                                                                                                 |
| `lines[].asOf`        | body | string            | —      | AsOf is when a pass-through amount was last checked against its source.                                                                                                              |
| `lines[].code`        | body | string            | —      | Code names the line so a caller can branch on it without reading prose.                                                                                                              |
| `lines[].label`       | body | string            | —      | Label is what the payer sees on the invoice.                                                                                                                                         |
| `lines[].passThrough` | body | boolean           | —      | PassThrough marks money we collect and remit rather than keep — the state's fee is not our revenue, and a quote that hides that is a quote that reads as a bigger margin than it is. |
| `lines[].recurring`   | body | string            | —      | Recurring marks a line that repeats.                                                                                                                                                 |
| `lines[].source`      | body | string            | —      | Source names who publishes this amount, for a line we merely pass through.                                                                                                           |
| `lines[].stale`       | body | boolean           | —      | Stale reports that AsOf is older than the review window — the figure may have moved and nobody has looked.                                                                           |
| `recurring`           | body | string            | —      | Recurring is how often RecurringCents repeats — "yearly" for an agent of record.                                                                                                     |
| `recurringCents`      | body | integer (int64)   | —      | RecurringCents is what repeats, and Recurring says how often.                                                                                                                        |
| `structure`           | body | string            | —      | Structure is the entity this prices: c-corp, llc or dao-llc.                                                                                                                         |

Failure carries the platform error shape — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo company tariff
```

**SDK**

**.ts**

```ts
import { Configuration, CompanyApi } from 'hanzoai';

const api = new CompanyApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postCompanyTariff({ agentOfRecord: false, expeditedEin: false });
```

**.py**

```python
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import CompanyApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = CompanyApi(client).post_company_tariff(agent_of_record=False, expedited_ein=False)
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.CompanyAPI.PostCompanyTariff(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
use hanzo_client::apis::{configuration::Configuration, company_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = company_api::post_company_tariff(&cfg, Default::default()).await?;
```

**.java**

```java
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.CompanyApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new CompanyApi(client).postCompanyTariff();
```

**HTTP**

```bash
curl -X POST https://api.hanzo.ai/v1/company/tariff \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "agentOfRecord": false,
       "expeditedEin": false
     }'
```

**MCP**

MCP reaches **company** through the `company` tool, which names its 22 operations with its own verbs — this one among them, under a name only MCP declares. `describe` explains any of them:

```bash
curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_companies"
         }
       }
     }'
```

---

[Company API](https://docs.hanzo.ai/docs/openapi/company) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
