LGCD
Integrations · Business plan

A REST API and 31 webhooks
to wire your concierge to anything.

PriceLabs, Turno, Metabase, Zapier, n8n, your accounting software… no more double entry. Our API exposes everything that happens in your cockpit, and the webhooks notify your tools in real time.

Available on the Business plan. Sanctum tokens with granular abilities. Rate-limit 60 req/min.

api.lgcd.ma/v1/docs
REST API & Webhooks

21

Granular API scopes

31

Webhook events

60

Req/min per token

HMAC

SHA-256 signed on every webhook

Use cases

What real agencies wire on top.

📈

Yield management

PriceLabs · Wheelhouse · Beyond

Read the consolidated multi-property calendar and push seasonal rates in real time. Your prices auto-adjust to local demand.

calendar:read rates:read rates:write
🧹

Cleaning ops

Turno · Properly · Breezeway

Cleaning tasks are sent to your team via their dedicated apps (checklist, before/after photos). Webhooks on assignment, start, end.

cleaning:read cleaning:write
🛠

Outsourced maintenance

Trades network · vendor management

Automatic ticket creation in your supplier's software. Slack/PagerDuty escalation on urgents (leak, AC failure).

maintenance:read maintenance:write
📊

BI & reporting

Metabase · Looker Studio · Power BI

Hotel KPIs already computed: occupancy rate, ADR, RevPAR, gross/net revenue per property or period. Your dashboards stay up to date with no recalculation.

reports:read
🧾

Owner accounting

Indy · Macompta.ma · Sage

Fetch monthly statements (revenue, commissions, net to disburse). Auto-push to the owner's accounting, trigger transfer.

statements:read invoices:read owners:read
💬

Guest CRM

ActiveCampaign · Brevo · n8n

Webhook on confirmed booking → automatic pre-stay sequence. Push a templated WhatsApp message via API for personalised notifications.

bookings:read whatsapp:write
🔄

OTAs sync

Hostaway · Hospitable · Smoobu

Property create/update/archive notified in real time. Configure external iCal sources (Airbnb, Booking) via API.

properties:read properties:write
🔐

Security & compliance

Datadog · Splunk · Wazuh

Read the audit log (Law 09-08, 3-year retention) and SIEM-push critical events. For agencies subject to audit.

audit:read
🤖

No-code automations

Zapier · Make · n8n

Connect any webhook to hundreds of third-party apps without writing a line of code. Slack, Google Sheets, Notion, Trello, etc.

All webhook events
REST API · v1

A clean, documented, predictable API.

Standard JSON format, Laravel pagination, consistent HTTP codes, Sanctum tokens with granular abilities. OpenAPI 3 documentation kept up to date automatically and browsable via Swagger.

  • Sanctum tokens with granular abilities: a read-only token for Metabase, a write token for Zapier.
  • Automatic tenant isolation: impossible to access another agency's data, even by mistake.
  • Standard rate-limit headers (X-RateLimit-*) for proper client-side back-off.
  • Optional expiration on tokens, immediate revocation from the cockpit.
GET /api/v1/reports/revenue
# List revenue + ADR + RevPAR for July
curl -H "Authorization: Bearer $TOKEN" \
  "https://api.example.com/v1/reports/revenue?from=2026-07-01&to=2026-07-31&granularity=day"

{
  "from": "2026-07-01",
  "to": "2026-07-31",
  "currency": "MAD",
  "data": {
    "global": {
      "gross_revenue": 142500,
      "net_revenue": 128250,
      "nights_booked": 186,
      "adr": 766.13,
      "revpar": 459.68
    },
    "per_property": [...],
    "series": [...]
  }
}
Webhooks · 31 events

Notified in real time when something moves.

Every webhook is HMAC-SHA256 signed and delivered with exponential retry (5 attempts over 24h). Wildcard supported (`booking.*` to subscribe to a whole event family).

Bookings

  • booking.created New booking
  • booking.confirmed Booking confirmed (moved from pending to confirmed)
  • booking.updated Booking modified
  • booking.cancelled Booking cancelled
  • booking.checked_in Check-in confirmed
  • booking.checked_out Check-out confirmed
  • booking.no_show Guest did not show up (no-show)
  • booking.payment_received Guest deposit collected via CMI (mini-site)

Properties

  • property.created New property created
  • property.updated Property modified (price, description…)
  • property.archived Property archived
  • property.rate_changed Seasonal rate added / modified / removed (yield mgmt)

Cleaning

  • cleaning.assigned Task assigned
  • cleaning.completed Task completed
  • cleaning.skipped Task skipped (to be re-scheduled)

Maintenance

  • maintenance.created Ticket created
  • maintenance.assigned Ticket assigned to a tech
  • maintenance.urgent Ticket marked urgent (ops escalation)
  • maintenance.resolved Ticket resolved

Invoices

  • invoice.sent Invoice sent
  • invoice.paid Invoice paid

Sync

  • ical.conflict_detected iCal conflict detected
  • ical.sync_failed iCal sync failure (invalid URL / source down)

WhatsApp

  • whatsapp.message_failed WhatsApp message send failure

Audit / security

  • audit.critical_event Critical event in the audit log

Owners

  • owner.statement_ready Monthly statement available (1st of next month)

SaaS subscription

  • subscription.renewed Subscription renewed after a successful payment

Guest reviews

  • review.received New guest review (reputation management, low-rating alert)

Payments

  • payment.succeeded Payment succeeded (subscription or mini-site booking)
  • payment.failed Payment failed (alerting / retry)

site.webhook_group_finance

  • tax_report.generated site.webhook_event_tax_report.generated
Webhook · payload

Stable and predictable format.

Every event is delivered in an identical envelope: unique id for deduplication, timestamp, event type, and a data block specific to the domain. X-Signature HMAC header to verify authenticity.

  • Exponential retry on 5 attempts over 24h if your endpoint responds >= 500.
  • Delivery log browsable in the cockpit, replay possible.
  • Wildcards: subscribe to booking.* or even * to capture everything.
  • Test from the UI : a "Test" button sends a dummy payload to your endpoint.
POST your-endpoint · payload
{
  "id": "7f2a8b1c-9d4e-4f5a-b2c1-...",
  "event": "booking.confirmed",
  "created_at": "2026-07-15T10:23:41+00:00",
  "agency_id": 42,
  "data": {
    "booking": {
      "id": 9876,
      "reference": "BKG-A1B2C3",
      "status": "confirmed",
      "source": "airbnb",
      "check_in": "2026-08-12",
      "check_out": "2026-08-19",
      "guests_count": 2,
      "guest_name": "Karim B."
    }
  }
}
API scopes · 21 permissions

Minimal-scope tokens.

Each token is limited to a subset of abilities — least-privilege principle. A Metabase token only has reports:read, your production Zapier only has bookings:write.

properties:read Read properties
properties:write Modify iCal sources and trigger a sync
bookings:read Read bookings
bookings:write Create and cancel bookings
owners:read Read owners
invoices:read Read invoices
calendar:read Read the calendar
rates:read Read seasonal rates
rates:write Create, modify and delete seasonal rates
cleaning:read Read cleaning tasks
cleaning:write Create and manage cleaning tasks
maintenance:read Read maintenance tickets
maintenance:write Create and manage maintenance tickets
whatsapp:read Read WhatsApp outbox messages
whatsapp:write Prepare templated WhatsApp messages
reports:read Read aggregated reports (occupancy, revenue, ADR, RevPAR)
statements:read Read owner statements (monthly payouts)
audit:read Read the audit log (Law 09-08 / SIEM)
reviews:read Read guest reviews (reputation management)
reviews:write Create guest reviews (OTA / manual import)
tax_reports:read site.api_ability_tax_reports:read
Developer FAQ

Common questions.

Is the API included in every plan? +
No. The REST API is reserved for Business & Pro plans. The Basic plan only has access to the SaaS-invoices read API (accounting).
Is there a request limit? +
Yes: 60 requests/minute per token. Standard X-RateLimit-* headers are returned on every response to ease client-side back-off.
Are webhooks secure? +
Every payload is HMAC-SHA256 signed with a unique secret per webhook (header X-Signature). You can verify authenticity before processing.
What happens if my webhook endpoint goes down? +
The system retries 5 times over 24h with exponential back-off. Failed deliveries are browsable in the cockpit, with a "Replay" button available for 7 days.
Can I test without subscribing? +
Yes — the 14-day free Business trial gives access to the entire API. You can generate a token and test with no commitment.
Does the API support GraphQL? +
No, it's a REST JSON API, documented in OpenAPI 3. GraphQL is not planned — most target integrations (Zapier, Make, n8n) are REST-first.

Ready to wire your stack?

14-day free trial on the Business plan. No card required. You generate your first tokens in 2 minutes.