Each operation is dispatched to its own route with the caller identity, so scopes, rate limits (every operation counts), idempotency keys, kill switches and transactions apply per operation. One result per operation, in order. atomic: true is refused today (validation_failed, detail code atomic_unsupported).
Scope: channel:read, channel:write, orders:write, customers:write, products:write, shipments:write, invoices:write, payments:write, fulfillment:write, purchase-orders:write or admin. A permission group made before the Channel API scopes existed grants it as orders:manage or invoices:manage or payments:manage or fulfillment-orders:manage.
Idempotency: not keyed; the request itself is safe to repeat.
Rate limit: write class, 1,200 requests per minute per tenant by default (read class 6,000). Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; a refusal is 429 rate_limited with Retry-After.
