Security

Security at Orita

Orita processes booking transactions and provider data on behalf of your application. These are the security properties we implement and verify.

βœ“

Signed webhooks (HMAC-SHA256)

Every webhook delivery is signed with your endpoint secret using HMAC-SHA256. Verify the X-Orita-Signature header before processing. Invalid signatures must be rejected.

βœ“

Tenant isolation

Each organization operates in a strict isolation boundary. An API key can only read, create, and modify resources belonging to its own organization. Cross-tenant access returns 404, not 403, to prevent resource enumeration.

βœ“

Explicit approval boundary

The confirmation API requires explicit approval evidence before creating a booking. Calls without a valid approval response receive input_required, not a booking. This prevents accidental or unauthorized booking creation.

βœ“

Idempotency keys

Confirmation endpoints enforce idempotency keys. Retrying the same confirmation with the same key returns the original booking without creating duplicates. Different keys with different bodies produce an idempotency conflict error.

βœ“

Atomic booking confirmation

Booking creation and outbox event persistence are committed in a single database transaction. If either fails, both roll back. No booking is created without a corresponding domain event.

βœ“

A2A Agent Card β€” ES256 signature

The public Agent Card at /.well-known/agent-card.json is signed using ES256. External agents can verify the signature against the JWKS at /a2a/jwks.json before trusting the card.

βœ“

Sandbox isolation (testMode)

Sandbox credentials cannot process live transactions. Any attempt returns 403 PRODUCTION_PLAN_REQUIRED. Test bookings always carry testMode: true and are excluded from billing and milestone detection.

βœ“

Secret handling

Webhook secrets and API key secrets are stored as SHA-256 hashes β€” never in plaintext. The raw secret is shown once at creation and never again. Rotation invalidates the previous secret. No secrets appear in logs or API responses.

What is not claimed

Orita does not currently hold SOC 2, HIPAA, ISO 27001, or other third-party security certifications. If your application requires these certifications from infrastructure providers, verify requirements before integrating.

No AI-specific privacy certifications are claimed. Data handled by Orita is limited to provider profiles, availability, and booking transactions β€” not unstructured patient or client records.

Responsible disclosure

If you discover a security vulnerability in Orita, please report it to guillermo@orita.online before public disclosure.

Include a description of the vulnerability, steps to reproduce, and potential impact. We aim to respond within 48 hours and provide a fix timeline within 7 days for confirmed critical issues.