Lewati ke isi

Sentra Laundry — API Documentation

Semua response standar menggunakan format REST JSON.

5.1 POST /api/v1/scale/weigh (Webhook Pembacaan Timbangan Digital)

Dipanggil oleh Daemon lokal Edge PC outlet ketika kasir memicu timbangan stabil.

  • Headers: Content-Type: application/json X-Device-Token: DEV-SC-0981

  • Request Body:

    {
      "device_id": "SCALE-OUT-01",
      "raw_weight_kg": 6.45,
      "is_stable": true,
      "timestamp": "2026-05-21T20:12:00+07:00"
    }
    

  • Response (200 OK):

    {
      "status": "success",
      "weight_locked_kg": 6.45,
      "formatted_weight": "6.45 Kg",
      "lock_id": "wlock-8cbe6f76-0f72-47df-bc62"
    }
    

5.2 POST /api/v1/orders/create (Pembuatan Order POS & Tagging)

Dipanggil saat kasir menyelesaikan pendaftaran cucian masuk di meja POS.

  • Request Body:

    {
      "customer_id": "31fbc9c0-9a2c-47bc-926c-d2cbe234dcf1",
      "outlet_id": "c1fbc9c0-8c88-47df-bc62-a7d519b7d8be",
      "service_type": "EXPRESS",
      "items": [
        {
          "service_id": "41c6f498-f2b7-4aeb-81fa-22345bc7d0e4",
          "weight_kg": 6.45,
          "qty_pcs": 12,
          "fabric_notes": "Campuran kaos & celana jeans",
          "special_treatment": "Setrika parfum Sakura premium"
        }
      ]
    }
    

  • Response (201 Created):

    {
      "status": "success",
      "order_id": "7a89c922-261f-4ef0-91cc-cbfb4920401b",
      "order_number": "ORD/LD-01/20260521/0088",
      "subtotal": 64500.00,
      "express_surcharge": 25000.00,
      "grand_total": 89500.00,
      "sla_deadline": "2026-05-22T02:12:00+07:00",
      "barcode_tags": [
        { "tag_id": "TAG-882901-01", "print_payload": "^XA^FO50,50^BY3^BCN,100,Y,N,N^FDTAG-882901-01^FS^XZ" }
      ]
    }
    

5.3 WebSocket /ws/orders/{id}/tracking (Push Live Timeline Cucian)

Konsumen dapat memantau status pengerjaan secara realtime di HP mereka:

  • Event Name: state_changed
  • Payload:
    {
      "order_number": "ORD/LD-01/20260521/0088",
      "current_state": "IRONING",
      "operator_name": "Supriyadi",
      "time_entered": "2026-05-21T20:13:00+07:00",
      "sla_time_left_minutes": 320
    }