Skip to content

Garita (garita.redbroomsoftware.com)

Access control and amenity reservation platform for multi-unit residential buildings, gyms, spas, clubs, and coworkings — tracking who enters, who visits, and who books shared resources.

URL: https://garita.redbroomsoftware.comStatus: LIVE Tier: T2 (vertical SaaS primitive)

T1 apps are indispensable horizontal primitives. T2 apps are vertical SaaS or single-domain primitives — primitive-like in their domain but not universal dependencies.

What you can integrate

  • Access events — receive garita.access.granted / garita.access.denied when a resident or guest attempts entry
  • Visitor lifecycle — know when a visitor checks in via garita.visitor.checked_in; approve or reject visitor requests via API
  • Amenity reservations — subscribe to garita.reservation.* events for pool, gym, co-work, or meeting room bookings
  • Resident onboarding — receive garita.resident.onboarded to trigger downstream CRM or billing flows in Camino
  • Property type changesgarita.property.type_changed lets Camino re-classify the account for pricing and upsell

Authentication

http
Authorization: Bearer <api_key>
Content-Type: application/json

User identity flows through Camino SSO via /auth/rbs/callback. Server-to-server partners use per-property API keys. Resident portal auth uses RBSAuth from the ecosystem SDK.

Endpoints

MethodPath
GET, POST, PATCH/api/access
POST/api/access/seal-batch
POST/api/access/validate
GET/api/availability
GET, PATCH/api/business-profile
GET, POST/api/cashback
POST/api/cashback/redeem
GET, POST, PATCH/api/cashback/rules
GET, POST, PATCH, DELETE/api/credentials
GET, POST/api/dashboard/channels

33 total — 2 admin/cron/internal (hidden) — +21 more primary endpoints not shown. Source: src/routes/api/**/+server.{ts,js} in the garita repo.

Events emitted

EventReceiversDescription
garita.access.deniedcolectivaA person was denied access to a property
garita.access.grantedcolectivaA person was granted access to a property (check-in)
garita.cfdi.stamp.requestedconstanzaA Garita boutique-hotel stay requires a CFDI — Constanza queues the stamp request in garita_cfdi_requests. Actual stamping completes when a Constanza org is linked to the Garita property (post-firma operations). Introduced S203 Park Nilo Wave 4.
garita.credential.issued(none declared)An access credential (PIN, QR, RFID, app token, biometric, license plate) was issued in Garita — design-intent receiver reservation; currently fire-and-forget (no active subscribers).
garita.credential.revoked(none declared)An access credential was revoked in Garita — design-intent receiver reservation; currently fire-and-forget (no active subscribers).
garita.property.type_changedcamino[auto-derived] garita.property.type_changed event
garita.reservation.cancelledcolectivaA reservation was cancelled
garita.reservation.completedcolectivaA reservation was completed (amenity used)
garita.reservation.createdcolectivaA reservation for an amenity was created
garita.reservation.no_showcolectivaA resident did not show up for their reservation
garita.resident.onboardedcolectivaA new resident or member was registered in a property
garita.stay.checked_in(none declared)A guest checked in to a Garita boutique-hotel stay — fire-and-forget, currently no subscribers. Carries reservation + property context for CRM/activity sync.
garita.visitor.checked_incolectivaA visitor checked into a property

Events consumed

EventSendersDescription
cfdi.stampedconstanzaA CFDI invoice has been stamped by the SAT via Constanza — receiver apps attach the UUID to their local invoice record and update status.
contact.created(none declared)A new CRM contact was created in Camino — Garita links the contact to a resident record on the property.
contact.updated(none declared)A CRM contact record was updated in Camino — receiver apps sync the changed fields to their local contact/investor/resident records.
customer.createdcamino, caracol, comal, servilletaA new customer/contact/third-party record was created — used for CRM sync, fiscal pre-registration, and cross-app contact linking.
customer.updatedcamino, constanza, caracolA customer/contact record was updated in Camino — receiver apps sync the changed fields to their local customer records for display and invoicing accuracy.
payment.receivedcolectiva, constanzaA payment has been processed via Colectiva
subscription.activatedcamino, colectivaA subscription plan has been activated for a tenant — all apps that gate features behind the subscription tier update their local tier state.
subscription.cancelledcamino, colectivaA subscription has been cancelled — all apps that gate features behind the subscription tier update their local tier state to free/cancelled.

Webhook signature

Standard ecosystem HMAC-SHA256 over the raw body with a 5-minute timestamp window. See Webhooks.

OpenAPI

Coming in the OpenAPI generator phase — see /reference/openapi.

SDK

See /sdk/ for @r-bsoftware/ecosystem-sdk helpers.

Gotchas

  • All events are prefixed garita.* — they do not follow the flat noun.verb convention used by most other ecosystem apps. Filter by prefix when routing.
  • garita.property.type_changed is consumed by Camino to re-classify the account. If you are building a partner integration that gates features by vertical, subscribe to this event to stay synchronized.
  • The /api/access endpoint is designed as an inbound webhook for physical gate controllers, not for user-facing flows. Rate limiting is applied at the device level.

Red Broom Software Ecosystem