{"openapi":"3.0.3","info":{"title":"Printonic for Teams API","version":"1.0.0","description":"Corporate gifting API. This specification describes the integration/teams release; deploy the migrations and application before use."},"servers":[{"url":"https://staging.printonic.com/api/teams/v1","description":"Staging"},{"url":"https://platform.printonic.com/api/teams/v1","description":"Production, after Teams promotion"}],"paths":{"/team":{"get":{"operationId":"getTeam","tags":["team"],"summary":"get Team","description":"Required scopes: any active Teams scope.","security":[{"TeamApiKey":[]}],"parameters":[],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":[],"x-idempotency-required":false}},"/members":{"get":{"operationId":"getMembers","tags":["team"],"summary":"get Members","description":"Required scopes: people:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["people:read"],"x-idempotency-required":false}},"/collections":{"get":{"operationId":"listCollections","tags":["catalog"],"summary":"list Collections","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/collections/{slug}":{"get":{"operationId":"getCollection","tags":["catalog"],"summary":"get Collection","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/items":{"get":{"operationId":"listItems","tags":["catalog"],"summary":"list Items","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/items/{slug}/options":{"get":{"operationId":"getItemOptions","tags":["catalog"],"summary":"get Item Options","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/people/upcoming":{"get":{"operationId":"upcomingPeople","tags":["people"],"summary":"upcoming People","description":"Required scopes: people:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["people:read"],"x-idempotency-required":false}},"/people":{"get":{"operationId":"listPeople","tags":["people"],"summary":"list People","description":"Required scopes: people:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["people:read"],"x-idempotency-required":false},"post":{"operationId":"upsertPeople","tags":["people"],"summary":"upsert People","description":"Required scopes: people:write.","security":[{"TeamApiKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"people":[{"first_name":"Alex","last_name":"Rivera","work_email":"alex@example.com","start_date":"2026-10-01","department":"Engineering","country":"US","status":"active"}]}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["people:write"],"x-idempotency-required":false}},"/people/{id}":{"patch":{"operationId":"updatePerson","tags":["people"],"summary":"update Person","description":"Required scopes: people:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"department":"Marketing","birthday":"04-12"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["people:write"],"x-idempotency-required":false},"delete":{"operationId":"deletePerson","tags":["people"],"summary":"delete Person","description":"Required scopes: people:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["people:write"],"x-idempotency-required":false}},"/contacts":{"get":{"operationId":"searchContacts","tags":["contacts"],"summary":"search Contacts","description":"Required scopes: contacts:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"provider","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["contacts:read"],"x-idempotency-required":false}},"/gifts":{"post":{"operationId":"createGifts","tags":["gifts"],"summary":"create Gifts","description":"Required scopes: gifts:send. Defaults to held for approval. Only live REST keys with orders:pay and current caps can pay. MCP never pays.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"recipients":[{"person_id":123}],"gift":{"collection_slug":"welcome"},"message":"Welcome to the team!"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["gifts:send"],"x-idempotency-required":true},"get":{"operationId":"listGifts","tags":["gifts"],"summary":"list Gifts","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/gifts/{id}/timeline":{"get":{"operationId":"getGiftTimeline","tags":["gifts"],"summary":"get Gift Timeline","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/gifts/{id}":{"get":{"operationId":"getGift","tags":["gifts"],"summary":"get Gift","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/team-orders/quote":{"post":{"operationId":"quoteOrder","tags":["orders"],"summary":"quote Order","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"collection":"welcome","headcount":10,"destination_countries":["US"]}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/team-orders":{"post":{"operationId":"createOrder","tags":["orders"],"summary":"create Order","description":"Required scopes: orders:write. Defaults to held for approval. Only live REST keys with orders:pay and current caps can pay. MCP never pays.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"collection":"welcome","recipients":[{"name":"Alex Rivera","email":"alex@example.com"}],"gift_message":"Welcome, Alex!","po_number":"PO-2026-100"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true},"get":{"operationId":"listOrders","tags":["orders"],"summary":"list Orders","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/team-orders/{id}/manifest.csv":{"get":{"operationId":"orderManifest","tags":["orders"],"summary":"order Manifest","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"text/csv":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/team-orders/{id}/proofs":{"get":{"operationId":"getProof","tags":["proofs"],"summary":"get Proof","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/team-orders/{id}":{"get":{"operationId":"getOrder","tags":["orders"],"summary":"get Order","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false},"patch":{"operationId":"updateOrder","tags":["orders"],"summary":"update Order","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"po_number":"PO-2026-101","cost_center_id":3}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":false}},"/team-orders/{id}/cancel":{"post":{"operationId":"cancelOrder","tags":["orders"],"summary":"cancel Order","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"reason":"Program canceled"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/team-orders/{id}/request-approval":{"post":{"operationId":"requestApproval","tags":["orders"],"summary":"request Approval","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/approvals":{"get":{"operationId":"listApprovals","tags":["orders"],"summary":"list Approvals","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/approvals/{id}":{"get":{"operationId":"getApproval","tags":["orders"],"summary":"get Approval","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/billing/balance":{"get":{"operationId":"getBalance","tags":["billing"],"summary":"get Balance","description":"Required scopes: billing:read.","security":[{"TeamApiKey":[]}],"parameters":[],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:read"],"x-idempotency-required":false}},"/invoices":{"get":{"operationId":"listInvoices","tags":["billing"],"summary":"list Invoices","description":"Required scopes: billing:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:read"],"x-idempotency-required":false}},"/invoices/{id}.pdf":{"get":{"operationId":"getInvoicePdf","tags":["billing"],"summary":"get Invoice Pdf","description":"Required scopes: billing:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:read"],"x-idempotency-required":false}},"/receipts/{id}.pdf":{"get":{"operationId":"getReceiptPdf","tags":["billing"],"summary":"get Receipt Pdf","description":"Required scopes: billing:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:read"],"x-idempotency-required":false}},"/statements/{month}":{"get":{"operationId":"getStatement","tags":["billing"],"summary":"get Statement","description":"Required scopes: billing:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"month","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","pdf"],"default":"json"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:read"],"x-idempotency-required":false}},"/cost-centers":{"get":{"operationId":"getCostCenters","tags":["billing"],"summary":"get Cost Centers","description":"Required scopes: billing:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:read"],"x-idempotency-required":false},"post":{"operationId":"addCostCenter","tags":["billing"],"summary":"add Cost Center","description":"Required scopes: billing:write.","security":[{"TeamApiKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"code":"ENG","name":"Engineering"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:write"],"x-idempotency-required":false}},"/credit-terms":{"get":{"operationId":"getCreditTerms","tags":["billing"],"summary":"get Credit Terms","description":"Required scopes: billing:read.","security":[{"TeamApiKey":[]}],"parameters":[],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:read"],"x-idempotency-required":false}},"/webhooks":{"post":{"operationId":"createTeamWebhook","tags":["webhooks"],"summary":"create Team Webhook","description":"Required scopes: webhooks:manage.","security":[{"TeamApiKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://example.com/hooks/printonic","events":["gift.sent","gift.claimed","gift.shipped","gift.delivered"]}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["webhooks:manage"],"x-idempotency-required":false},"get":{"operationId":"listTeamWebhooks","tags":["webhooks"],"summary":"list Team Webhooks","description":"Required scopes: webhooks:manage.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["webhooks:manage"],"x-idempotency-required":false}},"/webhooks/{id}":{"delete":{"operationId":"deleteTeamWebhook","tags":["webhooks"],"summary":"delete Team Webhook","description":"Required scopes: webhooks:manage.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["webhooks:manage"],"x-idempotency-required":false}},"/webhooks/{id}/test":{"post":{"operationId":"testTeamWebhook","tags":["webhooks"],"summary":"test Team Webhook","description":"Required scopes: webhooks:manage.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["webhooks:manage"],"x-idempotency-required":true}},"/artwork":{"get":{"operationId":"listArtwork","tags":["artwork"],"summary":"list Artwork","description":"Required scopes: artwork:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["artwork:write"],"x-idempotency-required":false},"post":{"operationId":"createArtwork","tags":["artwork"],"summary":"create Artwork","description":"Required scopes: artwork:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://example.com/brand/logo.png","name":"Company logo"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["artwork:write"],"x-idempotency-required":true}},"/artwork/previews":{"post":{"operationId":"createPreview","tags":["artwork"],"summary":"create Preview","description":"Required scopes: artwork:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"product_id":102,"placements":{"1":{"artwork_id":15,"fit":"contain"}}}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["artwork:write"],"x-idempotency-required":true}},"/previews/{id}":{"get":{"operationId":"getPreview","tags":["artwork"],"summary":"get Preview","description":"Required scopes: artwork:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["artwork:write"],"x-idempotency-required":false}},"/print-areas":{"get":{"operationId":"getPrintAreas","tags":["artwork"],"summary":"get Print Areas","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"product","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/templates":{"get":{"operationId":"listTemplates","tags":["templates"],"summary":"list Templates","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false},"post":{"operationId":"createTemplate","tags":["templates"],"summary":"create Template","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"name":"New hire welcome","occasion":"new_hire","budget_cents":5000,"setup":{"bundle_items":[{"merchant_product_id":501,"quantity":1}]}}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/templates/{id}/use":{"get":{"operationId":"useTemplate","tags":["templates"],"summary":"use Template","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false}},"/templates/{id}":{"get":{"operationId":"getTemplate","tags":["templates"],"summary":"get Template","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false},"put":{"operationId":"updateTemplate","tags":["templates"],"summary":"update Template","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":false},"delete":{"operationId":"deleteTemplate","tags":["templates"],"summary":"delete Template","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"revision":1}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":false}},"/rules":{"get":{"operationId":"listRules","tags":["rules"],"summary":"list Rules","description":"Required scopes: rules:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["hr","crm"],"default":"hr"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["rules:write"],"x-idempotency-required":false},"post":{"operationId":"createRule","tags":["rules"],"summary":"create Rule","description":"Required scopes: rules:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["hr","crm"],"default":"hr"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"kind":"hr","name":"New hire welcome","trigger_type":"new_hire","bundle":{"items":[{"merchant_product_id":501,"quantity":1}]},"gift_sender":"Acme","approval_mode":"hold_for_approval","budget_per_send_cents":5000,"budget_monthly_cents":100000,"active":true}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["rules:write"],"x-idempotency-required":true}},"/rules/evaluate":{"post":{"operationId":"evaluateRules","tags":["rules"],"summary":"evaluate Rules","description":"Required scopes: rules:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["hr","crm"],"default":"hr"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"kind":"hr"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["rules:write"],"x-idempotency-required":true}},"/rules/{id}/preview":{"get":{"operationId":"previewRule","tags":["rules"],"summary":"preview Rule","description":"Required scopes: rules:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["hr","crm"],"default":"hr"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["rules:write"],"x-idempotency-required":false}},"/rules/{id}":{"get":{"operationId":"getRule","tags":["rules"],"summary":"get Rule","description":"Required scopes: rules:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["hr","crm"],"default":"hr"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["rules:write"],"x-idempotency-required":false},"patch":{"operationId":"updateRule","tags":["rules"],"summary":"update Rule","description":"Required scopes: rules:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["hr","crm"],"default":"hr"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["rules:write"],"x-idempotency-required":false},"delete":{"operationId":"deleteRule","tags":["rules"],"summary":"delete Rule","description":"Required scopes: rules:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["hr","crm"],"default":"hr"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["rules:write"],"x-idempotency-required":false}},"/proofs/{id}/versions":{"post":{"operationId":"createProofVersion","tags":["proofs"],"summary":"create Proof Version","description":"Required scopes: artwork:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["artwork:write"],"x-idempotency-required":true}},"/proofs/{id}/review":{"post":{"operationId":"requestProofReview","tags":["proofs"],"summary":"request Proof Review","description":"Required scopes: artwork:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["artwork:write"],"x-idempotency-required":true}},"/proofs/{id}/sign":{"post":{"operationId":"signProof","tags":["proofs"],"summary":"sign Proof","description":"Signed-in approver session only.","security":[{"PrintonicSession":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":[],"x-idempotency-required":true}},"/large-campaigns":{"post":{"operationId":"createLargeCampaign","tags":["largeCampaigns"],"summary":"create Large Campaign","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"name":"Annual appreciation","address_mode":"collect","gift_sender":"Acme","bundle_items":[{"merchant_product_id":501,"quantity":1}],"recipients":[{"name":"Alex Rivera","email":"alex@example.com"}]}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/large-campaigns/{id}":{"get":{"operationId":"getLargeCampaign","tags":["largeCampaigns"],"summary":"get Large Campaign","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false},"patch":{"operationId":"updateLargeCampaign","tags":["largeCampaigns"],"summary":"update Large Campaign","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"action":"stop"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/large-campaigns/{id}/process":{"post":{"operationId":"processLargeCampaign","tags":["largeCampaigns"],"summary":"process Large Campaign","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/store":{"get":{"operationId":"getStore","tags":["stores"],"summary":"get Store","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/store/quote":{"post":{"operationId":"quoteStore","tags":["stores"],"summary":"quote Store","description":"Required scopes: catalog:read.","security":[{"TeamApiKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"entry":{"kind":"kit","slug":"welcome"},"expected_revision":1,"recipients":[{"name":"Alex Rivera","email":"alex@example.com"}]}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["catalog:read"],"x-idempotency-required":false}},"/store/orders":{"post":{"operationId":"createStoreOrder","tags":["stores"],"summary":"create Store Order","description":"Required scopes: orders:write. Defaults to held for approval. Only live REST keys with orders:pay and current caps can pay. MCP never pays.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"entry":{"kind":"kit","slug":"welcome"},"expected_revision":1,"recipients":[{"name":"Alex Rivera","email":"alex@example.com"}]}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/funding":{"post":{"operationId":"createFunding","tags":["billing"],"summary":"create Funding","description":"Required scopes: billing:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"method":"bank_transfer","amount_cents":100000,"po_number":"PO-2026-100"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:write"],"x-idempotency-required":true}},"/deposit-invoices":{"post":{"operationId":"addDepositInvoice","tags":["billing"],"summary":"add Deposit Invoice","description":"Required scopes: billing:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"amount_cents":100000,"po_number":"PO-2026-100","memo":"Q4 employee gifts"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:write"],"x-idempotency-required":true}},"/tax-certificates":{"post":{"operationId":"addTaxCertificate","tags":["billing"],"summary":"add Tax Certificate","description":"Required scopes: billing:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"url":"https://example.com/resale-certificate.pdf","state":"CA","expires_on":"2027-12-31"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:write"],"x-idempotency-required":true}},"/billing/profile":{"put":{"operationId":"putBillingProfile","tags":["billing"],"summary":"put Billing Profile","description":"Required scopes: billing:write.","security":[{"TeamApiKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["billing:write"],"x-idempotency-required":false}},"/recipient-branding":{"get":{"operationId":"getBranding","tags":["branding"],"summary":"get Branding","description":"Required scopes: orders:read.","security":[{"TeamApiKey":[]}],"parameters":[],"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:read"],"x-idempotency-required":false},"patch":{"operationId":"updateBranding","tags":["branding"],"summary":"update Branding","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":false}},"/sandbox/events":{"post":{"operationId":"simulateSandboxEvent","tags":["sandbox"],"summary":"simulate Sandbox Event","description":"Required scopes: orders:write.","security":[{"TeamApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":128},"description":"Stable per business event. Repeat an identical request with the same key; changed payloads return 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"example":{"type":"team_order.shipped","resource_id":"RETURNED_TEST_ORDER_UUID"}}}},"responses":{"200":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"201":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"The tenant-scoped result. Recipient emails and claim links are omitted.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"422":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"},"503":{"$ref":"#/components/responses/Error"}},"x-required-scopes":["orders:write"],"x-idempotency-required":true}},"/keys":{"get":{"operationId":"listKeys","tags":["team"],"summary":"Team owner session only","security":[{"PrintonicSession":[]}],"parameters":[],"responses":{"200":{"description":"Owner key management result. A new key is returned once."},"401":{"$ref":"#/components/responses/Error"}}},"post":{"operationId":"createKey","tags":["team"],"summary":"Team owner session only","security":[{"PrintonicSession":[]}],"parameters":[],"responses":{"200":{"description":"Owner key management result. A new key is returned once."},"401":{"$ref":"#/components/responses/Error"}}}},"/keys/{id}":{"delete":{"operationId":"revokeKey","tags":["team"],"summary":"Team owner session only","security":[{"PrintonicSession":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Owner key management result. A new key is returned once."},"401":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"TeamApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ptk_live_… or ptk_test_…"},"PrintonicSession":{"type":"apiKey","in":"cookie","name":"sb-session","description":"Use an authenticated Printonic dashboard session. The actual Supabase cookie name is environment-specific; API keys are refused."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object"}}}}}},"responses":{"Error":{"description":"Read error.code and error.request_id. On 429 honor Retry-After. Do not change the idempotency key after an ambiguous write without checking its result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}