Lewati ke isi

Sentra Service — API Documentation

5.1 GET /api/v1/slots/check-availability (Cari Ketersediaan Slot Staf)

Digunakan oleh Widget Booking Online untuk memunculkan slot waktu kosong.

  • Parameters:
  • branch_id=b2cbe6f7-0f72-47df-bc62-a7d519b7d8be
  • date=2026-05-21
  • service_id=a11bc90a-2d9c-44bf-a010-388277cdb2d8
  • staff_id=optional-UUID

  • Response (200 OK):

    {
      "status": "success",
      "branch_id": "b2cbe6f7-0f72-47df-bc62-a7d519b7d8be",
      "date": "2026-05-21",
      "available_slots": [
        {
          "time_slot": "09:00",
          "available_staff": [
            { "id": "41c6f498-f2b7-4aeb-81fa-22345bc7d0e4", "name": "Budi (Kapster)" },
            { "id": "92cbef81-773a-4467-91fa-bc92dcf1e771", "name": "Rian (Hairdresser)" }
          ]
        },
        {
          "time_slot": "09:30",
          "available_staff": [
            { "id": "41c6f498-f2b7-4aeb-81fa-22345bc7d0e4", "name": "Budi (Kapster)" }
          ]
        }
      ]
    }
    

5.2 POST /api/v1/appointments/lock-slot (Mengunci Slot Waktu Sementara)

Dipanggil saat pelanggan memilih slot dan melanjutkan ke pembayaran DP.

  • Request Body (JSON):

    {
      "branch_id": "b2cbe6f7-0f72-47df-bc62-a7d519b7d8be",
      "date": "2026-05-21",
      "time_slot": "09:00",
      "staff_id": "41c6f498-f2b7-4aeb-81fa-22345bc7d0e4",
      "customer_phone": "081298818818"
    }
    

  • Response (200 OK):

    {
      "status": "success",
      "lock_token": "token-8cbe6f76-0f72-47df-bc62-a7d519b7d8be",
      "expiry_seconds": 600,
      "message": "Slot locked for 10 minutes"
    }
    

5.3 WebSocket /ws/branches/realtime-queue (Push Realtime Dashboard Antrean)

Digunakan oleh layar monitor lobi cabang untuk memanggil nomor antrean.

  • Event Name: queue_called
  • Payload:
    {
      "queue_number": "A-12",
      "customer_name": "Anto Wijaya",
      "assigned_staff_name": "Budi",
      "status": "CALLING",
      "branch_code": "BR-DAGO-01"
    }