receptionist_not_purchasable
The AI receptionist's two licensed Prices are not both wired in this deployment: VOCAPABLE_STRIPE_RECEPTIONIST_BASE_PRICE_ID (the first connection) or VOCAPABLE_STRIPE_RECEPTIONIST_CONNECTION_PRICE_ID (each additional one) is unset, so inbound answering connections cannot bill. Raised by POST /v1/subscription whenever the order's split (vocapable_domain.rate_card.receptionist_line_items) reaches for either Price, and by PUT /v1/subscription/receptionist-connections needing a Stripe change. All or nothing deliberately - a deployment holding one id could bill only half the product, either skipping an item and selling capacity nothing charges for or invoicing the additional-connection price for the first connection - so a half-configuration makes both unreachable and gives the operator one thing to fix. An operator wires both plan-independent Prices, each its own Stripe Price and never the one the standalone receptionist plan's base fee already bills through; no price is invented at checkout.
Problem shape
Every non-2xx response is an RFC 9457 application/problem+json body. The type URI below is stable and machine-matchable, so branch on the final path segment (the code) and treat the status as redundant confirmation. See the error-handling guide.
{
"type": "https://docs.vocapable.com/errors/receptionist_not_purchasable",
"title": "…",
"status": 409,
"detail": "…",
"instance": "/v1/…"
}