curl --request GET \
--url http://latepoint-dev.local/wp-json/latepoint-api/v1/bookings/{id} \
--header 'X-API-Key: <x-api-key>'{
"status": "error",
"error": {
"code": "booking_not_found",
"message": "Booking with ID 123 was not found"
}
}
Retrieves detailed information for a specific booking
curl --request GET \
--url http://latepoint-dev.local/wp-json/latepoint-api/v1/bookings/{id} \
--header 'X-API-Key: <x-api-key>'{
"status": "error",
"error": {
"code": "booking_not_found",
"message": "Booking with ID 123 was not found"
}
}
Show Complete Booking Structure
pending - Pendingapproved - Approvedcancelled - Cancelledcompleted - Completedno_show - No shownot_paid - Not paidpartially_paid - Partially paidpaid - Paidrefunded - Refundedcurl -X GET "http://latepoint-dev.local/wp-json/latepoint-api/v1/bookings/16" \
-H "X-API-Key: lp_n1k6BVf3h7JRyjXkWMSoXi0BBZYRaOLL4QohDPQJ" \
-H "Content-Type: application/json"
{
"success": true,
"data": {
"id": "18",
"booking_code": "EUHJVNH",
"start_datetime": "2025-11-17T16:00:00-03:00",
"end_datetime": "2025-11-17T17:00:00-03:00",
"service_name": "test 1",
"duration": "60",
"customer_comment": null,
"status": "pending",
"start_date": "11/17/2025",
"start_time": "16:00",
"timezone": "America/Montevideo",
"agent": {
"id": "1",
"full_name": "Pao Campo",
"email": "[email protected]",
"phone": ""
},
"created_datetime": "2025-08-21T07:41:32+00:00",
"manage_booking_for_agent": "http://latepoint-dev.local/wp-admin/admin-post.php?action=latepoint_route_call&route_name=manage_booking_by_key__show&key=3d09aa7219f4c883f6a3f78e7662c977a5dd",
"manage_booking_for_customer": "http://latepoint-dev.local/wp-admin/admin-post.php?action=latepoint_route_call&route_name=manage_booking_by_key__show&key=2009d8e53283cca27ccf1345b53ffa38d881",
"customer": {
"id": "7",
"first_name": "Ana",
"last_name": "Lopez",
"full_name": "Ana Lopez",
"email": "[email protected]",
"phone": "+525559876543"
},
"transactions": [],
"order": {
"id": "34",
"confirmation_code": "SCLRA23J",
"customer_comment": null,
"status": "open",
"fulfillment_status": "not_fulfilled",
"payment_status": "not_paid",
"source_id": null,
"source_url": "",
"total": "$0",
"subtotal": "$0",
"created_datetime": "2025-08-21T07:41:32+00:00"
},
"location": {
"id": "1",
"name": "Main Location",
"full_address": "",
"category": []
},
"service_extras": []
}
}
{
"status": "error",
"error": {
"code": "booking_not_found",
"message": "Booking with ID 123 was not found"
}
}
// To display complete details on a booking page
async function showBookingDetails(bookingId) {
try {
const response = await fetch(`/wp-json/latepoint-api/v1/bookings/${bookingId}`, {
headers: {
'X-API-Key': 'your_api_key',
'Content-Type': 'application/json'
}
});
if (response.ok) {
const result = await response.json();
const booking = result.data;
// Display information in the UI
document.getElementById('booking-code').textContent = booking.booking_code;
document.getElementById('customer-name').textContent = booking.customer.full_name;
document.getElementById('service-name').textContent = booking.service.name;
document.getElementById('appointment-date').textContent =
`${booking.start_date} ${booking.start_time}`;
}
} catch (error) {
console.error('Error fetching booking:', error);
}
}
// To verify the current status of a booking
async function checkBookingStatus(bookingId) {
const response = await fetch(`/wp-json/latepoint-api/v1/bookings/${bookingId}`);
const result = await response.json();
if (result.status === 'success') {
const status = result.data.status;
const paymentStatus = result.data.payment_status;
return {
booking_status: status,
payment_status: paymentStatus,
is_approved: status === 'approved',
is_paid: paymentStatus === 'paid'
};
}
return null;
}
// To generate personalized confirmation emails
async function getBookingForEmail(bookingId) {
const response = await fetch(`/wp-json/latepoint-api/v1/bookings/${bookingId}`);
const result = await response.json();
if (result.status === 'success') {
const booking = result.data;
return {
customer_name: booking.customer.full_name,
customer_email: booking.customer.email,
service_name: booking.service.name,
agent_name: booking.agent.display_name,
appointment_datetime: `${booking.start_date} ${booking.start_time}`,
location_name: booking.location.name,
location_address: booking.location.full_address,
booking_code: booking.booking_code
};
}
return null;
}```
## Important Notes
<Note>
**Complete Information**: This endpoint returns all available booking information, including related customer, agent, service, and location data.
</Note>
<Warning>
**Permissions**: Make sure your API Key has permissions to access bookings. Some configurations may restrict access to specific bookings.
</Warning>
<Tip>
**Caching**: Consider implementing client-side caching for bookings that don't change frequently, especially for displaying details in user interfaces.
</Tip>
## Additional Information
The booking response includes all essential information needed for managing appointments, including customer details, agent information, service details, and location data.
## Integration with Other Endpoints
This endpoint complements perfectly with other API endpoints:
- **Update booking**: Use `PUT /bookings/{id}` after getting current data
- **Check availability**: Use `GET /availability` for schedule changes
- **Get customer**: Use `GET /customers/{id}` for additional customer information
- **List bookings**: Use `GET /bookings` for context of other customer bookings