Contents
On this page

List Customer Bookings - Plugixa Car Parking

GET /plugixa-car-parking/v1/account/bookings

The bookings the customer account page shows: every booking of a signed-in customer, or one booking found by its reference and e-mail for a guest.

Anyone may call it. No nonce is needed. A signed-in customer counts against the account_list rate limit (60 every 10 minutes); a guest lookup counts against account_lookup (10 every 15 minutes).

Note. Who is signed in decides the answer. A signed-in customer gets all of their own bookings and ref and email are ignored. From a browser, WordPress only treats the request as signed in when it also carries the X-WP-Nonce REST nonce; without it the customer is a guest and must send ref and email.

Request

GET https://your-site.example/wp-json/plugixa-car-parking/v1/account/bookings?ref=PKG-3F9A2C&email=lucas@example.com

Query parameters

Name Type Default Description
ref string Guests only, required. The booking reference.
email string Guests only, required. The e-mail on the booking, matched without regard to case.

A signed-in customer’s list holds every booking linked to their account that is not in the trash, whatever its status, newest entry date first. It is not paged.

Responses

200 OK. data.bookings is the list.

{
  "success": true,
  "message": "",
  "data": {
    "bookings": [
      {
        "id": 57,
        "booking_ref": "PKG-3F9A2C",
        "status": "pending",
        "payment_status": "unpaid",
        "entry_datetime": "2026-11-20 08:00:00",
        "exit_datetime": "2026-11-23 18:00:00",
        "quantity": 1,
        "total": 48.0,
        "currency": "EUR",
        "location_name": "Airport Parking P1",
        "space_type_name": "Standard car",
        "can_cancel": true,
        "summary_url": "https://your-site.example/booking-summary/?plugixa_carparking_ref=PKG-3F9A2C&plugixa_carparking_token=9c1e5b2a7d"
      }
    ]
  }
}
Field Type Meaning
data.bookings[].id integer The booking’s id
data.bookings[].booking_ref string The reference shown to the customer
data.bookings[].status string The booking’s status, such as pending, confirmed, paid, completed, cancelled or expired
data.bookings[].payment_status string Such as unpaid or paid
data.bookings[].entry_datetime, exit_datetime string Car park local time
data.bookings[].total number What the booking costs
data.bookings[].location_name, space_type_name string|null Names, null when the record is gone
data.bookings[].can_cancel boolean Whether Cancel Customer Booking would accept it now: the status is pending, confirmed or paid, and the cancellation cut-off has not passed
data.bookings[].summary_url string The booking summary page with its access token, or an empty string when no summary page is set

Errors

Status Code When
422 rest_error A guest sent no ref or no email: “Enter your booking reference and email.”
404 rest_error No booking has that reference with that e-mail.

Plus the errors every endpoint can return.

Examples

curl -s "https://your-site.example/wp-json/plugixa-car-parking/v1/account/bookings?ref=PKG-3F9A2C&email=lucas@example.com"
<?php
$query = http_build_query(['ref' => 'PKG-3F9A2C', 'email' => 'lucas@example.com']);
$ch = curl_init('https://your-site.example/wp-json/plugixa-car-parking/v1/account/bookings?' . $query);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const query = new URLSearchParams({ ref: 'PKG-3F9A2C', email: 'lucas@example.com' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-car-parking/v1/account/bookings?${query}`);
const { data } = await response.json();

Quick Links

Share