{"openapi":"3.1.0","info":{"title":"TaxiD Logistics Partner API","version":"2026-10-01","description":"Tenant-scoped logistics API. Authenticate with `Authorization: Bearer <client_id>:<secret>`. Writes require an `Idempotency-Key`. Webhooks are signed with scheme v2: `TaxiD-Signature: t=<unix>,v1=<hex hmac-sha256>` over `${t}.${rawBody}`."},"servers":[{"url":"/functions/v1/logistics-partner-api","description":"TaxiD logistics gateway"}],"components":{"securitySchemes":{"partnerCredential":{"type":"http","scheme":"bearer","description":"client_id:secret"}},"parameters":{"Version":{"name":"TaxiD-Version","in":"header","required":false,"schema":{"type":"string","enum":["2026-10-01"]},"description":"Date-based API version; defaults to the latest."}},"headers":{"RequestId":{"schema":{"type":"string"},"description":"Quote this reference when contacting support."},"RateLimitRemaining":{"schema":{"type":"integer"}}},"schemas":{"Problem":{"type":"object","description":"RFC 9457 problem details","required":["type","title","status","code","request_id"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"instance":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"request_id":{"type":"string"},"correlation_id":{"type":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}}}}}}}},"paths":{"/v1/orders":{"post":{"operationId":"orders.create","summary":"Create a logistics order priced by TaxiD. Always returns an unpaid order.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.orders.write","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/orders/{id}":{"get":{"operationId":"orders.read","summary":"Retrieve one order with its packages.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.orders.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/shipments":{"post":{"operationId":"shipments.create","summary":"Create a shipment. A shipment is the package set of one order.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.shipments.write","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/shipments/{id}":{"get":{"operationId":"shipments.read","summary":"Retrieve one shipment and its package states.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.shipments.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/packages/{id}":{"get":{"operationId":"packages.read","summary":"Retrieve one package with its milestone history.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.packages.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/tracking/{reference}":{"get":{"operationId":"tracking.read","summary":"Track by TaxiD tracking number or your own partner reference.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.tracking.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/routes/{id}":{"get":{"operationId":"routes.read","summary":"Retrieve a route, restricted to the stops carrying your packages.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.routes.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/delivery-attempts/{id}":{"get":{"operationId":"delivery_attempts.read","summary":"Retrieve one delivery attempt outcome.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.packages.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/pod/{id}":{"get":{"operationId":"pod.read","summary":"Retrieve proof-of-delivery metadata and its integrity hash.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.pod.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/returns":{"post":{"operationId":"returns.create","summary":"Request a return authorisation for a package.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.returns.write","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/returns/{id}":{"get":{"operationId":"returns.read","summary":"Retrieve one return and its lifecycle state.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.returns.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/exceptions":{"get":{"operationId":"exceptions.list","summary":"List operational exceptions raised on your shipments.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.exceptions.read","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor from the previous page."}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/webhooks":{"get":{"operationId":"webhooks.list","summary":"List your webhook endpoints (never the signing secret).","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.webhooks.manage","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor from the previous page."}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/air/quotes":{"post":{"operationId":"air_quotes.create","summary":"Server-priced air-charter quotes for every live TaxiD partner aircraft on a route. Read-only: nothing is booked or charged.","security":[{"partnerCredential":[]}],"x-required-scope":"mobility.quotes.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/rentals/quotes":{"post":{"operationId":"rental_quotes.create","summary":"Server-priced rental quotes from the live TaxiD rate card. Nothing is booked or charged.","security":[{"partnerCredential":[]}],"x-required-scope":"mobility.quotes.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/rides/quotes":{"post":{"operationId":"ride_quotes.create","summary":"Locked, server-priced ride quote for the partner's linked rider account.","security":[{"partnerCredential":[]}],"x-required-scope":"mobility.quotes.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/rides/bookings":{"post":{"operationId":"ride_bookings.create","summary":"Confirm a ride from a valid quote. Sandbox returns a simulated booking.","security":[{"partnerCredential":[]}],"x-required-scope":"mobility.bookings.write","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/rides/bookings/{id}/cancel":{"post":{"operationId":"ride_bookings.cancel","summary":"Cancel a ride booked by this partner.","security":[{"partnerCredential":[]}],"x-required-scope":"mobility.bookings.write","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/rentals/bookings":{"post":{"operationId":"rental_bookings.create","summary":"Book a rental at the server-recalculated price; payment is collected by M-Pesa. Sandbox is simulated.","security":[{"partnerCredential":[]}],"x-required-scope":"mobility.bookings.write","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/charters/bookings":{"post":{"operationId":"charter_bookings.create","summary":"Request an air-charter booking; the price is recalculated on the server. Sandbox is simulated.","security":[{"partnerCredential":[]}],"x-required-scope":"mobility.bookings.write","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":200}}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/settlements":{"get":{"operationId":"settlements.list","summary":"Your settlement statements (production keys only; sandbox returns an empty list).","security":[{"partnerCredential":[]}],"x-required-scope":"settlement.read","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor from the previous page."}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/settlements/{id}":{"get":{"operationId":"settlements.read","summary":"One settlement statement with its order lines.","security":[{"partnerCredential":[]}],"x-required-scope":"settlement.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/ledger":{"get":{"operationId":"ledger.list","summary":"Your append-only partner ledger, read-only.","security":[{"partnerCredential":[]}],"x-required-scope":"settlement.read","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor from the previous page."}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/documents/statements/{id}":{"get":{"operationId":"documents.statement","summary":"A settlement statement document with a SHA-256 content hash you can verify.","security":[{"partnerCredential":[]}],"x-required-scope":"documents.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/white-label/domains":{"get":{"operationId":"wl_domains.list","summary":"Your white-label custom web addresses, their DNS TXT verification token and status.","security":[{"partnerCredential":[]}],"x-required-scope":"whitelabel.manage","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor from the previous page."}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"post":{"operationId":"wl_domains.create","summary":"Request a custom web address. Publish the returned TXT token at _taxid-verify.<domain>; TaxiD verifies it.","security":[{"partnerCredential":[]}],"x-required-scope":"whitelabel.manage","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/sso/connections":{"get":{"operationId":"sso.list","summary":"Your company single sign-on (SAML) connections and their status.","security":[{"partnerCredential":[]}],"x-required-scope":"whitelabel.manage","parameters":[{"$ref":"#/components/parameters/Version"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque next_cursor from the previous page."}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"post":{"operationId":"sso.create","summary":"Request company single sign-on for an email domain with your SAML metadata URL. TaxiD activates it after review.","security":[{"partnerCredential":[]}],"x-required-scope":"whitelabel.manage","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/oauth/token":{"post":{"operationId":"oauth.token","summary":"OAuth 2.0 client-credentials: exchange client_id and secret for a one-hour scoped bearer token.","security":[{"partnerCredential":[]}],"x-required-scope":"","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/openapi.json":{"get":{"operationId":"openapi.read","summary":"The OpenAPI 3.1 document generated from this implementation.","security":[{"partnerCredential":[]}],"x-required-scope":"logistics.tracking.read","parameters":[{"$ref":"#/components/parameters/Version"}],"responses":{"200":{"description":"Success","headers":{"X-Request-Id":{"$ref":"#/components/headers/RequestId"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"}}},"400":{"description":"Unsupported version or invalid cursor","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Credential missing, invalid or revoked","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"Scope or tenant entitlement missing","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"No resource for your tenant","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"Idempotency key reused with a different body, or request in flight","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Validation or commercial rule failure","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited — see Retry-After","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}}}