Endpoints
Partner API endpoint map: the live RFQ contract and the fail-closed estimate and order capabilities.
This page provides a human-readable map of the current Partner API routes. The machine-readable
source of truth remains /docs/api/openapi.yaml.
Base URL
https://api.nowtoprint.com/api/v1
Estimate
| Method | Path | Purpose |
|---|---|---|
POST | /api/v1/estimate | Auth then 503 PARTNER_ESTIMATE_CAPABILITY_UNAVAILABLE |
RFQs
RFQ create and read are live and frozen under the marketplace-partner-api.v1 contract,
published at /api/v1/marketplace/openapi.json.
| Method | Path | Purpose |
|---|---|---|
POST | /api/v1/rfq | Open a request for quotes (rfq:create) |
GET | /api/v1/rfq?id= | Read one RFQ owned by your organization (rfq:read) |
GET | /api/v1/rfq/{id}/quotes | Read the supplier quotes that RFQ received (quotes:read) |
Three things this contract deliberately does not do:
- It does not derive a catalog product from your free-text category.
catalogProductUidis required; when its published projection cannot be resolved the write is refused with503 PARTNER_RFQ_CATALOG_CONTEXT_UNAVAILABLE. That is a readiness state for that product, not a permanent capability gap.categoryis also required and names the buyer-selected Marketplace presentation group. The server validates that group against the L2 leaf resolved from the same catalog projection; a mismatch is rejected rather than silently rewritten. - It does not list RFQs. Pass
?id=. A missing RFQ and an RFQ belonging to another organization return the same404, so an id cannot be probed for existence. - It does not accept quotes or place orders. Those require a NowToPrint account and a human action, and are not part of v1.
Quote acceptance and order routes remain Launch-disabled (HTTP 503). Treat any route listed in
neither /docs/api/openapi.yaml nor the live contract above as
unavailable for public client generation.
Quote and order flow boundaries
Order and batch capabilities are launch-disabled and remain fail-closed boundaries. They return
PARTNER_ORDER_CAPABILITY_UNAVAILABLE or PARTNER_BATCH_ORDER_CAPABILITY_UNAVAILABLE
with RFC 9457 503 after auth and permission checks. No order or batch item is created, listed, or
attempted; these non-public routes are not advertised here.
Separate preflight surface
| Method | Path | Purpose |
|---|---|---|
POST | /api/v1/preflight | Separate paid server-work queue; not a Partner V2 RFQ operation |
Use the dedicated preflight contract from
/docs/api/preflight-openapi.yaml when you need the queued v1
validation surface directly.
Webhooks
Webhook management and event delivery are not public-current production enablements for every
Partner API key. The /api/v1/webhooks management route is a private-beta control-plane surface
that requires an active registry key with webhooks.manage; quote/order event delivery also depends
on contract, entitlement, and rollout state.
Master Data
Master Data is internal-only for external partners unless a private-beta contract and rollout explicitly enable a sanitized read projection. External GA is not enabled. Public Partner API access does not currently include externally enabled Master Data data-product endpoints, partner reads, or canonical write authority.
Master Data external-dark
Do not treat Master Data contract IDs or API key records as live public endpoints. They stay
runtime-dark for external partners until route exposure, authorization, audit, quota, onboarding,
legal controls, certification controls, and production evidence are complete. Public/partner
routes cannot write canonical L2 truth and must return sanitized projections without private
payload fields. Catalog projection data-products also pass the @nowtoprint/catalog positive
allowlist and contract-shape guard before quota reservation or response serialization, so
sanitized optionPolicy.*[].sourceRef refs can expose only collection/id/version/role, and
unexpected metadata fields, ref paths, signed URLs, Firestore paths, cost, margin, billing, and
private evidence fail closed.
Request guidance
- Use the Partner V2 bearer key only from an approved server environment.
- RFQ command identity is derived from the parsed body; a supplied
Idempotency-Keydoes not change it. - Every authenticated request consumes credential minute quota, including disabled estimate/order calls.
- Daily RFQ reservation follows catalog, L2 and canonical schema validation; an identical body reuses that daily receipt.
- Confirm webhook subscription management separately from event delivery.
Related docs
/api/v1/preflight does not use the Partner V2 bearer key: it requires a separate server credential and paid server-work authorization. See OpenAPI Explorer for the queue contract. Published quote amount schema and current numeric projection have a unit mismatch; reconcile it before minor-unit conversion or automated financial processing.
War dieser Artikel hilfreich?