useLodger

Welcome to useLodger

Africa's hospitality platform

Request a demo

useLodger · Africa-first hospitality SaaS · © 2026

Documentation

API Reference

UseLodger API

RESTful JSON API. Base URL: https://api.uselodger.com/api/v1
23 modules · 208 endpoints · JWT authentication

FrameworkLaravel 11 · PHP 8.4
AuthJWT (php-open-source-saver/jwt-auth)
PaymentsPaystack · Flutterwave
MediaCloudinary CDN
SearchMeilisearch
AIGroq + Llama 3
SMSKudiSMS · Termii

Authentication header

Authorization: Bearer <your-jwt-token>

Auth

JWT authentication with email OTP verification, 2FA (TOTP), session management, and profile updates.

14 POST3 GET1 PUT3 DELETE
Base: /api/v1/auth

Properties

Property listing, management, media uploads, availability, and reviews.

10 GET8 POST2 PUT1 DELETE
Base: /api/v1/properties

Rooms

Physical room management, status board, housekeeping, and media uploads.

3 GET3 POST1 PATCH
Base: /api/v1/rooms

Bookings

Complete booking lifecycle — create, modify, cancel, check-in, check-out, and pricing.

6 GET4 POST1 PATCH
Base: /api/v1/bookings

Payments

Paystack and Flutterwave payment initialization with automatic 5% platform split via subaccounts.

6 POST1 GET
Base: /api/v1/payments

Bank Accounts

Property owner bank account setup for Paystack subaccount creation and automatic payouts.

2 GET2 POST
Base: /api/v1/bank-accounts

Restaurant & F&B

Menu management, real-time order queue, QR table ordering, and table reservations.

3 GET4 POST1 PUT2 PATCH
Base: /api/v1/restaurants

Inventory

Stock tracking, low-stock alerts, and purchase order management across all departments.

3 GET4 POST1 PUT
Base: /api/v1/inventory

Staff Management

Staff profiles, 12-role access control, digital attendance, shift scheduling, and task management.

3 GET5 POST1 PUT
Base: /api/v1/staff

Finance

Double-entry accounts, expense management, revenue reports, and profit & loss with 7.5% Nigerian VAT.

5 GET3 POST1 PATCH
Base: /api/v1/finance

Drivers & Rides

Hotel fleet management, ride requests, and live driver location tracking.

2 GET3 POST3 PATCH
Base: /api/v1/drivers

AI Features

Groq + Llama 3 powered features — smart pricing, fraud detection, chat assistant, and operational intelligence.

4 POST2 GET
Base: /api/v1/ai

Reports

Occupancy, booking analytics, staff performance, customer insights, and AI-generated insights.

7 GET1 POST1 DELETE
Base: /api/v1/reports

Subscriptions

Plan management and tenant subscription status. Note: core platform is free — 5% commission model applies.

2 GET3 POST
Base: /api/v1/subscriptions

Super Admin

Platform administration — tenant management, subscription plans, audit logs, and commission reporting.

7 GET2 POST2 PATCH1 DELETE
Base: /api/v1/super-admin

Admin Properties

Super admin property moderation — approval, verification, and takedown.

2 GET2 PATCH1 DELETE
Base: /api/v1/admin

Social & Engagement

Likes, bookmarks, shares, follows, view tracking, and threaded comments on properties.

5 POST3 GET1 PUT1 DELETE
Base: /api/v1/social

Landlord & Leasing

Long-term rental management — units, tenants, leases, rent collection, and maintenance requests. A separate vertical from the hotel/shortlet booking model.

8 GET10 POST2 PUT1 DELETE
Base: /api/v1/landlord

Advertising

Sponsored placements across the platform — featured listings, banners, homepage hero. Gated behind the 'advertising' module subscription.

4 GET6 POST1 PUT1 DELETE
Base: /api/v1/ads

Referrals

Refer-a-friend program with a shared wallet balance that doubles as store credit for bookings.

3 GET2 POST
Base: /api/v1/referrals

Waitlist

Pre-launch email capture, shown via the site-wide coming-soon modal.

1 POST2 GET
Base: /api/v1/waitlist

Response format

All responses use a consistent envelope:

Success

{
  "success": true,
  "message": "Success",
  "data": { ... }
}

Paginated

{
  "success": true,
  "data": [ ... ],
  "meta": {
    "current_page": 1,
    "last_page": 5,
    "per_page": 10,
    "total": 48,
    "from": 1,
    "to": 10
  }
}

Validation error (422)

{
  "success": false,
  "message": "Validation failed",
  "errors": {
    "email": ["The email field is required."],
    "password": ["Min 8 characters."]
  }
}

Error

{
  "success": false,
  "message": "Booking cannot be modified",
  "code": "booking_locked"
}

Roles reference

Roles are assigned via Spatie/laravel-permission. The JWT payload includesrolesarray. The frontend reads this from the Zustand auth store via hasRole().

RoleDescription
super_adminFull platform access including tenant management
hotel_ownerFull access to their properties, staff, finance, and bookings
branch_managerFull operational access excluding billing and tenant admin
property_managerProperty, rooms, bookings, maintenance
receptionistBookings, check-in/out, rooms (view only)
housekeepingRoom status updates, housekeeping dashboard
restaurant_managerRestaurant, menu, orders, inventory (F&B)
accountantFinance dashboard, expenses, reports
auditorRead-only access to finance and reports
inventory_officerInventory management and purchase orders
driverDriver profile, availability, rides
customerPublic guest — bookings, profile, wishlist

Error codes

400

Bad Request

Invalid request format

401

Unauthorized

Missing or invalid JWT token

403

Forbidden

Authenticated but insufficient role/permission

404

Not Found

Resource does not exist

409

Conflict

Duplicate record (e.g. room_number already exists)

422

Unprocessable

Validation failed — errors object included in response

429

Too Many Requests

Rate limit exceeded

500

Server Error

Internal error — check Laravel logs

503

Unavailable

Payment gateway or third-party service unreachable

Hotel AI Assistant

Online · powered by Groq

Hello! 👋 I'm your Hotel AI Assistant. I can help with bookings, room status, pricing, operational insights and more. How can I help you today?
08:09 PM

Powered by Codequor AI · Available 24/7