# Bulkroom > Wholesale & B2B portal for OpoShop stores — approved trade accounts, tiered price lists, quote-to-order and net terms. ## What it does Retailers apply for a trade account through a merchant-branded portal. The merchant reviews and approves each one, which puts that buyer on a price list (a percentage off retail, with optional volume breaks and per-product rates). The buyer sees their own pricing and submits a quote request. The merchant prices it line by line and sends it; the buyer accepts; the merchant approves, and Bulkroom creates the real order on the store at exactly the agreed total — either unpaid on net terms, or with a card checkout link. ## Machine interfaces - OpenAPI contract: https://app.trybulkroom.com/openapi.json - API docs (Swagger): https://app.trybulkroom.com/docs - Fuller LLM context: https://app.trybulkroom.com/llms-full.txt - Release notes: https://app.trybulkroom.com/api/release-notes - MCP endpoint (hosted): https://app.trybulkroom.com/mcp — add this URL to Claude or any LLM client to drive the app in natural language. Authenticate with your OWN store token via `Authorization: Bearer `, so you only ever touch your own store's data. ## Money safety — read this before driving it with an agent Creating an order in a merchant's store is gated three ways: it requires an EXPLICIT merchant approval (no schedule, webhook or automatic path exists), it is refused entirely unless the deployment enables live orders, and every created order is read back and arithmetic-checked — a mismatch cancels the order. Amounts are always integer cents. A client-supplied price is never trusted anywhere; every figure is recomputed server-side from the live catalog. ## Auth Merchant endpoints take `Authorization: Bearer ` from the OpoShop OAuth session. Buyer-portal endpoints take a separate, buyer-scoped grant.