Contents
On this page

List Customer Bookings - Plugixa Car Wash

GET /plugixa-carwash/v1/customers/{id}/bookings

List a customer’s bookings, latest first, up to 100. Trashed bookings are left out.

Needs the plugixa_carwash_view capability.

Note. The customer is not looked up first: an id that does not exist, or a customer in the trash, answers 200 with whatever bookings still carry that id.

Request

GET https://your-site.example/wp-json/plugixa-carwash/v1/customers/25/bookings

Path parameters

Name Type Description
id integer The customer’s id

Responses

200 OK. data is the list.

{
  "success": true,
  "data": [
    {
      "id": 42,
      "number": "CW2026-0042",
      "start_at": "2026-11-14 15:00:00",
      "status": "confirmed",
      "total": 52.06,
      "currency": "USD",
      "package": "Deluxe"
    }
  ]
}
Field Type Meaning
data[].id integer The booking’s id
data[].number string Its reference
data[].start_at string UTC start
data[].status string Its status
data[].total number Its total
data[].currency string Its currency
data[].package string The package name, empty for services only

Errors

Plus the errors every endpoint can return.

Examples

curl -s "https://your-site.example/wp-json/plugixa-carwash/v1/customers/25/bookings" \
  -u "admin:$WP_APP_PASSWORD"
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-carwash/v1/customers/25/bookings');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = Buffer.from(`admin:${process.env.WP_APP_PASSWORD}`).toString('base64');
const response = await fetch('https://your-site.example/wp-json/plugixa-carwash/v1/customers/25/bookings', {
  headers: {
    'Authorization': `Basic ${auth}`,
  },
});
const { data } = await response.json();

Quick Links

Share