{"openapi":"3.1.0","info":{"title":"Figgo Courier API","version":"1.0.0","description":"Tenant-isolated courier operations API. Regulatory provider activation remains explicitly gated."},"servers":[{"url":"https://api.courier.figgoapp.com/v1"}],"components":{"securitySchemes":{"googleIdentity":{"type":"http","scheme":"bearer","bearerFormat":"Google Identity Platform ID token"},"connectorHmac":{"type":"apiKey","in":"header","name":"x-figgo-signature","description":"v1 HMAC over timestamp.rawBody"}}},"paths":{"/v1/auth/session":{"post":{"summary":"Exchange a verified ID token for a secure session","security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"delete":{"summary":"End the session","security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/auth/mobile/sign-in":{"post":{"summary":"Sign in a tenant mobile operator through Google Identity","security":[],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/auth/mobile/refresh":{"post":{"summary":"Rotate a tenant-bound mobile refresh token","security":[],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/auth/mobile/revoke":{"post":{"summary":"Revoke authenticated mobile device sessions","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/auth/web/sign-in":{"post":{"summary":"Sign in an active Figgo platform user","security":[],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/auth/web/refresh":{"post":{"summary":"Rotate an HttpOnly platform refresh session","security":[],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/mobile/tasks":{"get":{"summary":"Download privacy-minimized assigned driver tasks","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/mobile/workflows":{"get":{"summary":"Download assigned published workflow evidence policy","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/mobile/evidence":{"post":{"summary":"Upload and register tenant-bound delivery evidence","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/mobile/events":{"post":{"summary":"Apply an assigned offline mobile workflow event","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/orders":{"get":{"summary":"List tenant orders","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create an order","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/orders/{id}":{"get":{"summary":"Get an order","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/orders/{id}/labels":{"get":{"summary":"Render PDF, ZPL or TSPL piece labels","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/events":{"post":{"summary":"Accept an offline-safe operational event","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/imports/preview":{"post":{"summary":"Upload and validate an XLSX workbook","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/imports/template":{"get":{"summary":"Download the current XLSX import template","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/imports/{id}/confirm":{"post":{"summary":"Idempotently create orders from a validated import","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/inventory":{"get":{"summary":"Get physical inventory projections","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/locations":{"get":{"summary":"List warehouse locations","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create a warehouse location","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/containers":{"get":{"summary":"List containers","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create a container","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/containers/{id}/members":{"post":{"summary":"Add or remove a container member","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/routes":{"get":{"summary":"List planned routes","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create a route","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/routes/optimize":{"post":{"summary":"Run credential-gated Google route optimization","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/cod":{"post":{"summary":"Append a COD ledger entry","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/cod/report":{"get":{"summary":"Report COD liability and remittance","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/control-tower":{"get":{"summary":"Get control tower KPI snapshot","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/tracking/{trackingId}":{"get":{"summary":"Get customer-safe public tracking","security":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/me":{"get":{"summary":"Get the authenticated tenant and member profile","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/merchants":{"get":{"summary":"List merchant accounts","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create a merchant account","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/service-types":{"get":{"summary":"List service types","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create a service type","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/sla-policies":{"get":{"summary":"List SLA policy versions","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create an SLA policy version","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows":{"get":{"summary":"List workflow versions","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Create a draft workflow version","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/{id}/publish":{"post":{"summary":"Validate and publish an immutable workflow version","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/{id}/versions":{"post":{"summary":"Create the next immutable workflow draft version","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/{id}/validate":{"post":{"summary":"Validate workflow reachability, authorization, and retry cycles","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/assignments":{"post":{"summary":"Assign a workflow by tenant, merchant and service","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/resolve":{"get":{"summary":"Resolve workflow assignment precedence","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/transition":{"post":{"summary":"Validate and apply a versioned workflow transition","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/migrations/preview":{"post":{"summary":"Preview workflow migration","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/workflows/migrations/{id}/confirm":{"post":{"summary":"Confirm a safe workflow migration","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/users":{"get":{"summary":"List tenant users","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Invite a tenant user without bypassing provider gates","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/users/{userId}":{"patch":{"summary":"Change tenant user lifecycle","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/platform/tenants":{"get":{"summary":"List tenants for Figgo platform administrators","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/platform/tenants/{tenantId}":{"patch":{"summary":"Manage tenant lifecycle and commercial configuration","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/platform/tenants/{tenantId}/users":{"get":{"summary":"List a tenant's users","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"summary":"Invite a tenant user","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/platform/tenants/{tenantId}/users/{userId}":{"patch":{"summary":"Manage a tenant user","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/platform/support-sessions":{"post":{"summary":"Create an MFA-gated, ticketed support session","security":[{"googleIdentity":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/platform/support-sessions/{id}":{"delete":{"summary":"Expire a support session","security":[{"googleIdentity":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/internal/crm/onboarding":{"post":{"summary":"Accept signed CRM onboarding","security":[{"connectorHmac":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Insufficient permission","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"State or idempotency conflict","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Validation failed","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}