Skip to main content

Overview

Customers can book a job on behalf of another person — a family member, friend, or anyone who needs roadside help. The beneficiary is the person receiving the service, while the booker handles payment and job management.

How It Works

When creating a job, pass optional beneficiary_name, beneficiary_phone, and contact_preference fields:

Fields

When contact_preference is set to beneficiary, both beneficiary_name and beneficiary_phone are required. The server returns a 422 validation error if they are missing.

Mechanic Experience

When a mechanic views the job details (via GET /jobs/{id}), the response includes:
The mobile app should:
  1. Check contact_preference — if beneficiary, show the beneficiary’s name and phone as the primary contact
  2. Display a “Call” button that dials beneficiary_phone instead of the booker’s number
  3. Keep the booker accessible — the booker is still the customer and handles payment/chat

Contact Preference Logic

Flutter Integration

The booker always remains the customer in the job. Payment, chat messages, and job management are tied to the booker’s account. Only the contact information shown to the mechanic changes based on contact_preference.