# get-pricing

Free, open (no ownership or wallet authorization). The entity-formation catalog: price, turnaround, required form contract, publication flags, client obligations, and exclusions for every `(state, entityType, product)` combination. Answers come from the provider's synced catalog cache only — never a live supplier call on the request path. Prices go through the same rounding helper as the payment quote, so **advertised == quoted == charged**. A stale catalog is flagged in the response and pauses purchases until the next sync.

## Input

| Field | Required | Notes |
|---|---|---|
| `country` | no | ISO 3166-1 alpha-2. Default `"US"` — the only supported value today. |
| `state` | no | 2-letter state code (`"WY"`, `"DC"`) to narrow to one state. |
| `entityType` | no | Supplier-verbatim type name. Only meaningful for `product: "formation"`. |
| `product` | no | `formation` \| `ein` \| `compliance` \| `amendment` \| `dissolution` \| `good-standing` \| `ra-renewal`. |

Broad filters return **summary rows**. Repeat with `country + state + entityType + product` (`entityType` only applies to `product: "formation"`) for the **full detail**, including the `requiredFields` contract you must satisfy when buying.

## Result artifact — `entity_pricing` (summary)

```jsonc
{
  "summary": true,
  "country": "US",
  "combinations": [
    {
      "country": "US", "state": "WY",
      "entityType": "Limited Liability Company", "product": "formation",
      "priceUsdc": "263750000",            // atomic USDC (6 decimals)
      "priceDisplay": "$263.75",
      "turnaroundEstimate": { "filedInDays": 1, "docsInDays": 3, "methodType": "online" },
      "publicationObligation": false,
      "humanParties": "required",             // whether this product names human representatives ("required" | "none")
      "supported": true
    },
    {
      "country": "US", "state": "WY",
      "entityType": "", "product": "ra-renewal",   // entityType empty for non-formation products
      "priceUsdc": "148750000", "priceDisplay": "$148.75",
      "turnaroundEstimate": { "filedInDays": 0, "docsInDays": 0, "methodType": "online" },
      "publicationObligation": false, "supported": true
    }
  ],
  "notSupported": [ /* exclusions: non-US, territories, EIN without SSN, BOI reports, … */ ],
  "detailHint": "repeat with country+state+entityType+product for requiredFields (use entityType=Corporation for corporate formation and follow-up filings)"
}
```

## Result artifact — `entity_pricing` (detail)

Fully-filtered calls add `included`, `clientObligations`, and the `requiredFields` contract:

```jsonc
{
  "country": "US", "state": "WY",
  "entityType": "Limited Liability Company", "product": "formation",
  "supported": true,
  "filingPlanId": "copy-current-plan-uuid",
  "addressRequirements": [
    { "target": "/company_principal_address", "required": true, "sources": ["northwest", "customer"], "recommendation": "northwest", "disclosure": "This address will be submitted for public filing.", "policyVersion": "opaque-version" }
  ],
  "filerRequirements": { "sources": ["contact", "official"], "profileRequired": false },
  "priceUsdc": "263750000", "priceDisplay": "$263.75",
  "included": [
    "state filing",
    "registered agent service (12 months)",
    "Northwest registered office for service of process",
    "Northwest business-address use for permitted company and official filing fields",
    "scanning of 5 ordinary-mail pieces per service year (additional mail costs extra)",
    "receipt and scanning of state/legal mail (supplier limits apply)",
    "owner-authorized access to supplier-delivered document metadata and PDF scans"
  ],
  "turnaroundEstimate": { "filedInDays": 1, "docsInDays": 3, "methodType": "online" },
  "publicationObligation": false,          // true for NY/AZ/NE formations
  "humanParties": "required",              // human representative data needed? ("required" | "none" — agent-only products)
  "clientObligations": [ /* federal + WY obligations, disclosure text */ ],
  "notSupported": [ /* exclusions */ ],
  "requiredFields": {
    "filingPlanId": { "required": true, "value": "copy-current-plan-uuid" },
    "filingAddresses": { "required": true, "targets": [ /* same addressRequirements entries as above */ ] },
    "filingFiler": { "required": true, "sources": ["contact", "official"], "profileRequired": false },
    "country":      { "title": "ISO 3166-1 alpha-2 country code", "required": true, "note": "only \"US\" today" },
    "state":        { "title": "2-letter state code", "required": true },
    "entityType":   { "title": "Entity type (Northwest constant)", "required": true },
    "companyName":  { "title": "Exact legal name incl. designator", "required": true },
    "contactEmail": { "title": "Client notification email (receives all lifecycle mail)", "required": true },
    "contactPerson": { "title": "Contact person (firstName, lastName, phone E.164, dob YYYY-MM-DD, address; optional title)", "required": true },
    "managementType": { "title": "LLC management type", "required": true, "acceptedValues": ["Member Managed", "Manager Managed"] },
    "members": { "title": "LLC members", "required": false, "requiredWhen": "managementType is \"Member Managed\"" },
    "managers": { "title": "LLC managers", "required": false, "requiredWhen": "managementType is \"Manager Managed\"" },
    "formData": {                          // the state-specific contract, keys supplier-verbatim
      "requiredFields": [ /* non-address supplier fields */ ],
      "optionalFields": [ /* … */ ]
    }
  }
}
```

`included` describes the Daski purchase. It does not grant every extra advertised on Northwest's retail website. Premium mail forwarding, virtual office, physical forwarding, and digital identity services are not set up by formation. The registered-agent service includes five ordinary-mail scans per service year; additional mail access costs extra and is support-mediated. EIN and later filings are separately priced.

Detailed cart-backed pricing returns `filingPlanId`, `addressRequirements` and
`filerRequirements`. Pass the plan ID unchanged in the purchase. Choose a source
for each required target through `filingAddresses`; Northwest is recommended
only for verified eligible fields. A customer address is an explicit public
filing choice. Private contact and screening addresses are not automatically
copied into filings. Optional addresses stay absent.

The same plan and choices are included under `requiredFields.filingPlanId`,
`requiredFields.filingAddresses`, and `requiredFields.filingFiler`. This keeps
the gateway's signed intake/requirements response sufficient to prepare a
purchase. Follow-ups that need a saved profile also publish
`requiredFields.filingProfileId`. Resolve these requirements before requesting
a binding quote, then keep the purchase request unchanged through signing and
retries. A placeholder plan ID does not establish readiness.

Choose the filer identity using the published sources. Managed follow-ups that
need contact/official autofill also require `filingProfileId` and owner-scoped
official references from `get-entity-status`. These identifiers confer no ownership
authority. RA renewal does not require a filing plan.

The official fields are classification-specific and are sent at the top level of `serviceArgs`: LLC uses `managementType` plus `members` or `managers` (a `DAO LLC` accepts only `"Member Managed"` with `members`); Corp and Non-Profit use `directors`, `presidents`, `secretaries`, and `treasurers`; Partnership uses `partners`; Other uses `officials`. Every official carries `address`; every natural-person official carries `dob`; company officials set `isCompany: true` and carry `companyName`. The state form's official, management, filer, and registered-agent sections are auto-filled by the provider from those top-level fields and never repeat inside `requiredFields.formData`.

For cart-backed follow-ups the fixed contract includes `entity` and `filingPlanId`; `formData` carries the per-state (or federal — e.g. the EIN's `responsible_party` + top-level `ssn`) fields. Person objects inside `formData` carry a `dob` adjunct for natural persons — screening-only, never sent to the state.

**The summary lists exactly what is purchasable right now.** Offerings are deliberately restricted (operator offering policy + technical checks — e.g. filings that a state only accepts by mail or with signed paper forms are never sold). A combination absent from the summary is not offered; the fully-filtered detail call answers `supported: false` with a `reason` that names the actual restriction: the operator's offering policy (`"Corporation formation in WY is disabled by the operator's offering policy."`), pricing too stale to sell, an unverified filing schema, a mail-only filing, an unavailable filing plan, a jurisdiction outside the type's scope, or a combination with no synchronized offering. A recognized entity type that the operator has disabled is reported as disabled, never as an unknown label, and a missing catalog row is never described as a supplier rejection. For formations the response may add `supportedEntityTypes`, the types you CAN buy in that state today; it is information, not authorization to change the entity type the buyer chose. Only a label that is not a Northwest entity-type constant is reported as unrecognized, with the purchasable types listed when there are any. The signed gateway intake carries the same message as a `fieldErrors` entry with `rule: "unavailable"` on `entityType` for type-specific restrictions and on `state` for jurisdiction or catalog problems. Unsupported inputs answer `supported: false` with a message (unknown country, bad state code, product not offered in that state). A stale catalog adds `"stale": true, "staleNote": "Catalog is stale; new purchases are paused until the next sync."`.

`clientObligations` combines federal and shared disclosures with any additional
notes for the selected state. Shared duties still apply when no additional
state note is needed. These disclosures cover ordinary LLC formation and
maintenance; tax treatment, activities, employees, and location can create
additional requirements. Formation does not purchase ongoing reports, tax
filings, licenses, or publication. Formation-completion artifacts and emails
include the same applicable disclosures.

## Next step

`daski_buy_service` for the priced skill. The `/standard-rail/quote` endpoint remains authoritative at settlement — it charges exactly the advertised amount.


For corporate filings, pass `entityType: "Corporation"` on both formation and
follow-up product queries (including EIN). Corporate products have their own
supplier prices, schemas, and filing plans; an LLC plan cannot be reused.
The summary's `entityType` identifies corporate lifecycle rows as well as
formations. An empty lifecycle type denotes the shared LLC catalog.

Corporate formation contracts include the supplier's stock fields
(`authorized_shares`, `par_value`) as plain decimal strings. Fields the
provider withholds — `share_class` and the alternative-company-name field —
never appear in `requiredFields.formData` and are rejected if sent.
