Help Center

Accepting appointment requests from your website

Connect the booking form on your own website to Flux so requests land on your dashboard, using the store's API key.

Your website can send appointment requests straight into Flux. Each request appears in the Requested Appointments card on the Dashboard, where the counter accepts it with Verify (which opens a new work order pre-filled with the customer's details) or Decline. See Appointments for what happens next.

This page is for whoever maintains your website. Everything else about appointments needs no setup.

1. Get the store's API key #

  1. Open Settings (as an admin) and find Website API Key in Store Details.
  2. Click Show key and copy the 32-character code.

The key identifies one store. If you have several locations with separate booking forms, each form uses its own store's key. Regenerate replaces the key immediately, so update the website at the same time.

You will also need the store's numeric ID. It appears in the address bar as store= on most admin pages, or ask us.

2. Send the request from your web server #

Post JSON to the appointment endpoint with the key in the X-Api-Key header. Send it from your server, not from the visitor's browser.

POST https://fluxshopmanager.com/api/v1/order/appointment
Content-Type: application/json
X-Api-Key: <your store's key>

{
  "store_id": 12,
  "full_name": "Jane Doe",
  "email": "jane@example.com",
  "phone": "3305551234",
  "requested_date": "2026-10-14",
  "work_requested": "Oil change and check a squeak in the front end"
}

All six fields are required. requested_date must be today or later.

A PHP example:

$payload = json_encode([
  'store_id'       => 12,
  'full_name'      => $_POST['name'],
  'email'          => $_POST['email'],
  'phone'          => $_POST['phone'],
  'requested_date' => $_POST['date'],
  'work_requested' => $_POST['details'],
]);
$ch = curl_init('https://fluxshopmanager.com/api/v1/order/appointment');
curl_setopt_array($ch, [
  CURLOPT_POST           => true,
  CURLOPT_POSTFIELDS     => $payload,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER     => ['Content-Type: application/json', 'X-Api-Key: ' . $storeKey],
]);
$response = json_decode(curl_exec($ch), true);

3. Handle the response #

ResponseMeaning
{"success":"Appointment was created."}The request is on the dashboard.
{"error":"invalid_api_key"} (401)The key is missing, wrong, or was regenerated.
{"error":"store_id is required"} (400)The body is not valid JSON or has no store_id.
{"errors":[...]} (400)One or more fields are missing; each entry names the field.
{"error":"Requested date should be greater than or equal to ..."}The date is in the past.
{"error":"Active appointment request already exists."}That email already has an open request at this store. Show the visitor a friendly "we already have your request" message.

Keep the API key on the server and out of page source. Anyone with the key can create requests for your store.

Still stuck? Contact us and we'll help you get going.