E経費精算クラウドDEMO

自動化向けの仕様(Playwright / HTTP)

画面の流れ

  1. /login を開き、#username と #password に入力して #login-button を押す。成功すると / へ移る。失敗は #login-error が出る
  2. / の #new-report-button を押すと /reports/new へ移る
  3. #report-name(必須)・#report-cost-center・#report-purpose を入れて #create-report-button を押すと /reports/{id} に移る(レポートは下書き)
  4. 明細フォーム #expense-form: #expense-date(YYYY-MM-DD)・#expense-category・#expense-amount(整数)・#expense-vendor・#expense-payment・#expense-attendees・#expense-memo・#expense-receipt(任意)を入れて #add-expense-button を押す。同じページに戻り、#flash に「明細を追加しました」・tr[data-testid=expense-row] が増える
  5. 作ったレポート番号は #report-number、ステータスは #report-status[data-status](draft / submitted / approved)、合計は #report-total[data-total] から読める
  6. 申請まで進めるなら #submit-report-button(confirm ダイアログあり)。下書きで止めるなら押さない

すべてサーバー描画・通常のフォーム送信(303 リダイレクト)です。一覧は #report-table tr[data-testid=report-row][data-report-number]。

待ち合わせと判定のコツ(Playwright)

選択肢の値

費目接待交際費 交通費 宿泊費 会議費 消耗品費 通信費 その他
支払方法個人立替 法人カード 請求書払い
部門営業部 開発部 管理部 マーケティング部

JSON API(Playwright を使わない経路)

ヘッダー X-API-Key が必要です(キーは管理者から受け取ってください)。

POST /api/reports
Content-Type: application/json
X-API-Key: <key>

{
  "name": "10月 取引先との会食",
  "purpose": "B社との情報交換",
  "cost_center": "営業部",
  "expenses": [
    {"expense_date": "2026-10-08", "category": "接待交際費", "amount": 24200,
     "vendor": "炭火焼 まる田 六本木店", "payment": "個人立替", "attendees": "B社 佐藤様", "memo": "4名"}
  ]
}
応答: 201 {"id": 4, "number": "EXP-2026-0004", "status": "draft", "url": "/reports/4", ...}

GET /api/reports            一覧(?status=draft で絞り込み)
GET /api/reports/{id}       1件

再試行で二重に作らないときは POST に Idempotency-Key ヘッダー(任意の文字列)を付ける。同じキーの2回目は作らずに同じレポートを 200 で返す。

デモデータ

一覧ページの「デモデータをリセット」(confirm あり)で初期状態(レポート3件)に戻ります。ログイン情報・API キーは管理者から受け取ってください。