Contents
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
refandX-WP-NonceREST nonce; without it the customer is a guest and must sendrefand
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