Repairy Partner API
  1. Bookings
Repairy Partner API
  • Welcome 👋
  • Get Started
  • HTTP Headers
  • Authorization
  • Workshops
  • Bookings
  • Quotes
  • Service Reminder
  • Data Reporting
  • Booking URL
  • Error Codes
  • Technical Support
  • Changelog
  • Webhook
  • Additional Services
  • Service Catalog
  • APIs
    • Authorization
      • Access Token
      • Refresh Token
    • Workshops
      • Availabilities
      • Service Catalog
    • Bookings
      • Booking Request with Service Catalog (beta)
        POST
      • Booking Request
        POST
      • Booking Information
        GET
      • Update Booking Information
        PUT
      • Update Booking Status
        POST
    • Quotes
      • Quote Request
    • Service Reminder
      • Service Reminder Notification
      • Service Reminder Information
    • Data Reporting
      • Partner Report
  • Data Structures
    • AuthResponse
    • Availability
    • CustomAvailability
    • Car
    • Customer
    • Booking
    • BookingUpdateRequest
    • BookingStatusUpdateConfig
    • Quote
    • ServiceHistory
    • ServiceReminder
    • WebhookRequest
    • ServiceCatalog
  1. Bookings

Booking Request with Service Catalog (beta)

Cloud Mock
https://mock.apidog.com/m1/839892-0-default
Cloud Mock
https://mock.apidog.com/m1/839892-0-default
POST
/bookings

Booking Request with Service Catalog (beta)#

Supports the new Service Catalog and Service Category features.
To map out custom services from the catalog, Repairy needs the category information to be passed on the booking creation request instead of legacy service package types.
Key Features:
Service Customization: Flexible definition and selection of services per booking
Service Segregation: Limit bookings shops can accept based on category and fine tune it down to services level in the catalog.

See Service Catalog for more information.#


Important Changes:
1.
servicePackageType will no longer mandatory
2.
new serviceCategory field which is mandatory
3.
new services[] array for flexible service selection
New parameters for service catalog
{
  "serviceCategory": "service",
  "services": [
    {
      "catalogId": "68b7bf3f6210580c57363a94",
      "catalogCode": "logbook",
      "category": "service",
      "title": "Logbook Service",
    },
    {
      "catalogId": "507f1f77bcf86cd799439011",
      "catalogCode": "roadworthy",
      "category": "others",
      "title": "Roadworthy",
      "cost": 150,
    }
  ],
}
Legacy way (still supported)
{
  "servicePackageType": "logbook"
}

Intelligent Service Processing#

The new booking API intelligently handles service category and service selection with smart parsing and fallback mechanisms:

Service Category Processing#

Accepts serviceCategory in booking requests (optional)
Validates category against allowed values (service, tyres, repair, others)
Auto-derives category from services if not provided or invalid
Graceful fallback - invalid categories are ignored and correct category is derived

Service Selection Processing#

Catalog Lookup: Services are resolved using catalogId and catalogCode from your service catalog
Service Enrichment: Missing fields (title, category, icon, color) are populated from catalog
Custom Service Support: Services not found in catalog are stored as-is with provided data
Flexible Input: Accepts both catalog references and custom service definitions

Processing Flow#

// Input: Partner sends booking request
{
  "serviceCategory": "service",  // Optional - validated or derived
  "services": [
    {
      "catalogId": "68b7bf3f6210580c57363a94",
      "catalogCode": "logbook",
      "title": "Logbook Service",  // Can be overridden
      "cost": 150
    },
    {
      "title": "Custom Brake Service",  // Custom service not in catalog
      "category": "repair",
      "cost": 200
    }
  ]
}

// Output: System processes and enriches
{
  "serviceCategory": "service",  // Validated/derived
  "services": [
    {
      "catalogId": "68b7bf3f6210580c57363a94",
      "catalogCode": "logbook",
      "title": "Logbook Service - Full Synthetic Oil Change & 47-Point Inspection",  // Enriched from catalog
      "category": "service",
      "icon": "clipboard",  // Added from catalog
      "color": "blue",      // Added from catalog
      "cost": 150,
      "maxCost": 200,       // Added from catalog
      "source": "catalog"
    },
    {
      "title": "Custom Brake Service",  // Stored as-is
      "category": "repair",
      "cost": 200,
      "source": "custom"
    }
  ]
}

Submit a New Booking Request#

To create a new booking request for a customer, you need to provide the necessary details in the request. This action will initiate the booking process and allow the system to reserve a spot for the customer at the specified workshop.

Requirements:#

Ensure that all required fields are included in the request. Missing information could result in an incomplete booking.
Validate the customer's information before submission. This includes verifying that the email is in a valid format, the phone number is correct, and all required customer details are accurately provided.

Booking Creation Confirmation#

Once the booking request has been successfully submitted, the system will begin processing the booking details. Upon completion, a confirmation response will be returned. This response will:
Confirm that the booking request has been successfully created and is being handled by the system.
Include a unique bookingId that can be used to track or reference the booking.

Default Notifications#

By default, both the workshop and the customer will receive notifications via SMS and email containing the details of the newly created booking.

Skipping Notifications (Optional)#

To suppress these notifications in specific scenarios, you may include the optional field:
"skipNotification": true
When set to true, no notification will be sent to either the workshop or the customer.
Note: This setting applies only during booking creation.

Request

Header Params

Body Params application/json

Example
{
    "workshopId": "WID",
    "customerEmail": "adi+cust@repairy.au",
    "carRego": "AAA001",
    "bookingTime": "2025-11-03T03:30:00Z",
    "pickupTime": "2025-11-03T05:30:00Z",
    "customerName": "adi kurniawan",
    "customerPhone": "0400000001",
    "serviceCategory": "service",
    "services": [
        {
        "catalogId": "68b7bf3f6210580c57363a94",
        "catalogCode": "logbook",
        "category": "service",
        "title": "Logbook Service"
        },
        {
        "catalogId": "507f1f77bcf86cd799439011",
        "catalogCode": "tyre-purchase",
        "category": "tyres",
        "title": "Tyre Purchase",
        "cost": 850
        }
    ],
    "productNotes": [
        "Michelin LTX FORCE 205/70 R15 96T"
    ],
    "tyreQuantities": 4,
    "carVin": "1HGCM82633A004352",
    "carMake": "Honda",
    "carModel": "Accord",
    "carYear": 2003,
    "carBadge": "sport",
    "customerCompany": "CUST corp",
    "notes": "contains special notes from customer"
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://mock.apidog.com/m1/839892-0-default/bookings' \
--header 'X-Partner-ID: PARTNER_ID' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
    "workshopId": "WID",
    "customerEmail": "adi+cust@repairy.au",
    "carRego": "AAA001",
    "bookingTime": "2025-11-03T03:30:00Z",
    "pickupTime": "2025-11-03T05:30:00Z",
    "customerName": "adi kurniawan",
    "customerPhone": "0400000001",
    "serviceCategory": "service",
    "services": [
        {
        "catalogId": "68b7bf3f6210580c57363a94",
        "catalogCode": "logbook",
        "category": "service",
        "title": "Logbook Service"
        },
        {
        "catalogId": "507f1f77bcf86cd799439011",
        "catalogCode": "tyre-purchase",
        "category": "tyres",
        "title": "Tyre Purchase",
        "cost": 850
        }
    ],
    "productNotes": [
        "Michelin LTX FORCE 205/70 R15 96T"
    ],
    "tyreQuantities": 4,
    "carVin": "1HGCM82633A004352",
    "carMake": "Honda",
    "carModel": "Accord",
    "carYear": 2003,
    "carBadge": "sport",
    "customerCompany": "CUST corp",
    "notes": "contains special notes from customer"
}'

Responses

🟢201Created
application/json
Created
Headers

Body

Example
{
    "success": true,
    "booking": {
        "id": "",
        "code": "",
        "carId": "",
        "customerId": "",
        "workshopId": "",
        "externalId": "",
        "car": {
            "id": "",
            "customerId": "",
            "rego": "",
            "year": 0,
            "make": "",
            "model": "",
            "badge": "",
            "vin": ""
        },
        "customer": {
            "id": "",
            "workshopId": "",
            "name": "",
            "firstName": "",
            "lastName": "",
            "email": "",
            "phone": "",
            "company": "",
            "address": "",
            "postcode": "",
            "suburb": ""
        },
        "status": "pending",
        "date": "2025-11-03T03:30:00Z",
        "servicePackageType": "tyres",
        "customerCompany": "",
        "notes": "",
        "interval": 0,
        "jobNotes": [
            "Tyre Purchasing",
            "Nitrogen Inflation"
        ],
        "productNotes": [],
        "tyreQuantities": 0,
        "createdAt": "2025-11-03T03:30:00Z",
        "updatedAt": "2025-11-03T03:30:00Z"
    }
}
🟠400Bad Request
Modified at 2025-09-30 04:50:29
Previous
Service Catalog
Next
Booking Request
Built with