Skip to main content

Fusion Link Docs

Overview

Fusion Link is a multi-vendor driver marketplace that connects chauffeur drivers with transport vendors. One platform for every chauffeur job — drivers browse jobs from multiple vendors in a single feed, while vendors manage drivers, create jobs, and track completion effortlessly.

Multi-Vendor Marketplace

Drivers browse jobs from multiple vendors in a single feed — no more switching between apps or manual coordination.

Global Job Pool

Vendors post overflow jobs to a shared pool. Any qualified driver can bid, replacing ad-hoc manual coordination.

Supplier Network

Vendors connect with supplier companies to access their driver fleets, enabling cross-company job fulfillment.

PWA-First

Runs as a Progressive Web App — installable on any device, no app store required. Google Play distribution via PWABuilder.

Global-Ready

Multi-currency support, local phone validation, configurable document requirements, and timezone-aware dispatch for operators worldwide.

Built-in Wallet

Vendors have wallets for tracking platform fees and payouts within the platform.

Architecture

Tech Stack

CategoryTechnologies
FrameworkNext.js 15 (App Router), React 19, TypeScript
StylingTailwind CSS, shadcn/ui, Radix UI primitives
AuthFirebase Authentication (email/password, custom claims)
DatabaseCloud Firestore (NoSQL, real-time listeners)
StorageCloudflare R2 (S3-compatible, media & documents)
AIVercel AI SDK with Moonshot AI (licence verification, extra-charge detection)
SMS/OTPTwilio Verify (phone number verification)
PushWeb Push API (VAPID, service worker)
Rate LimitingUpstash Redis (sliding window)
HostingVercel (serverless functions, edge)

Infrastructure

Frontend & API

Deployed on Vercel as a Next.js application.

API routes run as serverless functions.

Static assets served via Vercel CDN.

Backend Services

Firebase Auth for identity and custom claims (roles).

Cloud Firestore for all application data.

Cloudflare R2 for document and media storage.

Upstash Redis for rate limiting.

Data Flow

┌──────────┐     ┌──────────────┐     ┌─────────────┐
│  Browser  │────▶│  Next.js API  │────▶│  Firestore   │
│   (PWA)   │◀────│   (Vercel)    │◀────│  (Database)  │
└──────────┘     └──────────────┘     └─────────────┘
      │                 │                      │
      │                 ▼                      │
      │          ┌─────────────┐               │
      │          │ Firebase Auth│               │
      │          │  (Identity)  │               │
      │          └─────────────┘               │
      │                 │                      │
      │                 ▼                      │
      │          ┌─────────────┐     ┌─────────────┐
      │          │ Cloudflare  │     │   Upstash    │
      │          │   R2 (S3)   │     │   Redis      │
      │          └─────────────┘     └─────────────┘
      │
      ▼
┌──────────────┐     ┌─────────────┐
│  Twilio SMS  │     │  Web Push   │
│  (OTP)       │     │  (VAPID)    │
└──────────────┘     └─────────────┘

User Roles

Fusion Link has two completely independent role systems: vendor membership roles (stored in Firestore) and platform admin roles (stored in Firebase custom claims). A user can be a vendor admin and a platform admin simultaneously — the systems do not interact.

Driver
Firebase Auth

Individual chauffeur drivers who browse and accept jobs. Drivers sign up, complete onboarding (profile, vehicle, phone verification, documents), then apply to join vendors.

  • Browse open jobs from joined vendors
  • Bid on global pool jobs
  • Manage profile, vehicle, and documents
  • Track completed jobs and earnings
  • Receive push notifications for new jobs
Vendor Admin
Firestore (vendor membership)

Operators who manage a transport vendor company. They create jobs, manage their driver fleet, configure vendor settings, and handle billing.

  • Create and assign jobs (direct or pool)
  • Approve/reject driver applications
  • Manage vendor settings and vehicle types
  • Track completions and financials
  • Connect with supplier companies
  • Publish overflow jobs to global pool
Platform Admin
Firebase custom claims

Platform-level administrators who oversee the entire marketplace. This is a completely separate role system from vendor admins — they are unrelated.

  • Manage all vendors and users
  • Manage platform configuration
  • View platform-wide statistics
  • Manage admin team members
  • Access audit log
  • Manage driver accounts
Supplier Driver
Firestore (supplier connection)

Drivers who belong to a supplier company connected to a vendor. They receive jobs through the supplier relationship rather than applying directly.

  • Receive jobs through supplier connection
  • Override supplier pricing per job
  • Same driver features as regular drivers

User Flows

Driver Flow

End-to-end journey from sign-up to earning on the platform.

1

Sign Up

Create account with email and password via Firebase Auth.

2

Onboarding

Complete profile: name, phone, vehicle details (make, model, color, plate, year).

3

Phone Verification

Verify phone number via Twilio OTP (SMS code).

4

Documents

Upload required documents (license, insurance, etc.) to Cloudflare R2.

5

Browse Vendors

Search and browse available vendors.

6

Apply to Vendor

Submit membership application to one or more vendors.

7

Accept Jobs

Once approved, browse open jobs and accept or bid on assignments.

8

Complete Jobs

Fulfill assignments and mark as completed with required checkpoints.

9

Earnings

Track completed jobs and earnings history.

Vendor Flow

How a vendor operator sets up and manages their transport business.

1

Register Vendor

Create a vendor company with name, slug, and initial settings.

2

Configure

Set up vehicle types, message templates, commission rates, and wallet.

3

Manage Drivers

Review and approve driver applications, manage active fleet.

4

Connect Suppliers

Link to supplier companies to access additional driver capacity.

5

Create Jobs

Create jobs via form, AI text extraction, or bulk upload. Choose direct assignment or pool.

6

Assign or Pool

Directly assign to a driver, or publish to global pool for bidding.

7

Track Completion

Monitor active jobs and review completed job records.

8

Billing

Manage vendor wallet and track platform fees.

Platform Admin Flow

How platform administrators oversee and manage the marketplace.

1

Access Admin Panel

Platform admins access /platform/admin with Firebase custom claims.

2

Manage Vendors

Create, view, and manage all vendors across the marketplace.

3

Manage Users

View all users, recover custom claims, manage driver accounts.

4

Configure Platform

Manage fees, complaints, and platform settings.

5

Monitor Activity

View platform stats, audit logs, and system health.

6

Manage Admins

Add or remove platform admin and superadmin team members.

API Reference

All endpoints require Firebase Auth bearer tokens unless marked as Public. The auth level indicates the minimum role required to access the endpoint.

Driver
GET/api/driver/profile
Get authenticated driver profile
Driver
PUT/api/driver/profile
Update driver profile
Driver
GET/api/driver/documents
List driver documents
Driver
POST/api/driver/documents
Upload a document
Driver
DELETE/api/driver/documents
Delete a document
Driver
POST/api/driver/phone/send-otp
Send OTP to driver phone number
Driver
POST/api/driver/phone/verify-otp
Verify OTP code
Driver
GET/api/driver/message-templates
List driver message templates
Driver
POST/api/driver/message-templates
Create a message template
Driver
PUT/api/driver/message-templates/:templateId
Update a message template
Driver
DELETE/api/driver/message-templates/:templateId
Delete a message template
Driver
Jobs
GET/api/jobs/open
List open jobs available to driver (direct + supplier + pool merged)
Driver
GET/api/jobs/assigned
List jobs assigned to driver
Driver
GET/api/jobs/completed
List driver completed jobs
Driver
POST/api/jobs/bid
Bid on an open job
Driver
POST/api/jobs/direct
Create a direct job assignment
Vendor
PATCH/api/jobs/direct/:jobId
Update a direct job
Vendor
DELETE/api/jobs/direct/:jobId
Cancel a direct job
Vendor
GET/api/jobs/pool
List global pool jobs
Driver
POST/api/jobs/pool/publish
Publish a job to the global pool
Vendor
POST/api/jobs/pool/unpublish
Unpublish a job from the global pool
Vendor
POST/api/jobs/pool/bid
Bid on a global pool job
Driver
GET/api/jobs/supplier/:jobId/override
Get supplier override for a job
Vendor
PUT/api/jobs/supplier/:jobId/override
Set supplier override for a job
Vendor
DELETE/api/jobs/supplier/:jobId/override
Remove supplier override
Vendor
Vendors
POST/api/vendors/register
Register a new vendor
Driver
GET/api/vendors/browse
Browse available vendors
Driver
GET/api/vendors/stats
Get stats for all vendors (driver view)
Driver
GET/api/vendors/:vendorId/jobs
List vendor jobs
Vendor
POST/api/vendors/:vendorId/jobs/sync
On-demand open supplier job sync
Vendor
POST/api/vendors/:vendorId/jobs/:jobId/assign
Assign a job to a driver
Vendor
GET/api/vendors/:vendorId/drivers
List vendor drivers
Vendor
PATCH/api/vendors/:vendorId/drivers
Update a driver membership
Vendor
DELETE/api/vendors/:vendorId/drivers
Remove a driver from vendor
Vendor
GET/api/vendors/:vendorId/drivers/pending
List pending driver applications
Vendor
GET/api/vendors/:vendorId/drivers/supplier
List supplier drivers
Vendor
GET/api/vendors/:vendorId/completed-jobs
List vendor completed jobs
Vendor
POST/api/vendors/:vendorId/completed-jobs
Trigger historical completed job sync
Platform
GET/api/vendors/:vendorId/settings
Get vendor settings
Vendor
PATCH/api/vendors/:vendorId/settings
Update vendor settings
Vendor
GET/api/vendors/:vendorId/wallet
Get vendor wallet
Vendor
POST/api/vendors/:vendorId/wallet
Create wallet transaction
Vendor
POST/api/vendors/:vendorId/upload
Upload media file to R2
Vendor
DELETE/api/vendors/:vendorId/upload
Delete media file from R2
Vendor
GET/api/vendors/:vendorId/suppliers
List vendor suppliers
Vendor
POST/api/vendors/:vendorId/suppliers
Add a supplier connection
Vendor
PATCH/api/vendors/:vendorId/suppliers/:supplierId
Update supplier connection
Vendor
DELETE/api/vendors/:vendorId/suppliers/:supplierId
Remove supplier connection
Vendor
GET/api/vendors/:vendorId/suppliers/:supplierId/driver
Get supplier driver info
Vendor
GET/api/vendors/:vendorId/message-templates
List vendor message templates
Vendor
POST/api/vendors/:vendorId/message-templates
Create a vendor message template
Vendor
PUT/api/vendors/:vendorId/message-templates/:templateId
Update a message template
Vendor
DELETE/api/vendors/:vendorId/message-templates/:templateId
Delete a message template
Vendor
Platform
GET/api/platform/me
Get current platform admin profile
Platform
GET/api/platform/admins
List platform admins
Platform
POST/api/platform/admins
Add a platform admin
Platform
DELETE/api/platform/admins
Remove a platform admin
Platform
GET/api/platform/users
List all platform users
Platform
GET/api/platform/vendors
List all vendors
Platform
POST/api/platform/vendors
Create a vendor (admin)
Platform
GET/api/platform/vendors/check-slug
Check vendor slug availability
Platform
GET/api/platform/stats
Get platform-wide statistics
Platform
GET/api/platform/audit-log
View audit log entries
Platform
PATCH/api/platform/drivers/:driverUid/region
Change a driver region
Platform
Memberships
POST/api/memberships/apply
Apply to join a vendor
Driver
POST/api/memberships/:membershipId/approve
Approve a membership application
Vendor
POST/api/memberships/:membershipId/reject
Reject a membership application
Vendor
Other
GET/api/notifications
List user notifications
Driver
PATCH/api/notifications
Mark notifications as read
Driver
GET/api/push/subscribe
Get push subscription status
Driver
POST/api/push/subscribe
Subscribe to push notifications
Driver
DELETE/api/push/subscribe
Unsubscribe from push notifications
Driver
POST/api/push/test
Send a test push notification
Driver
POST/api/suppliers/test-connection
Test supplier API connection
Vendor

FAQ