ko
예약›견적 발송(FIXED 액션 — 비즈니스)

견적 발송(FIXED 액션 — 비즈니스)

견적을 발송합니다: quoted_at + duration 컬럼을 설정하고 pending_action을 confirm_booking으로 진행시킵니다. 상태는 `booking`으로 유지됩니다.

인수

idstringpath필수
작업 요청 ID
▾crewarray<object>body선택
Crew — 다인 계획(팀 리드 + 버디). 생략 / 비움 = 1인 (리드 100%). 있을 경우 정확히 하나의 is_lead가 있어야 하며 wrench_percent 합계가 100이어야 합니다. MULTIPERSON_CREW_DESIGN.md 참고.
is_leadbooleanbody선택
Whether this slot is the crew lead. Exactly one slot must set it.
skill_idsarray<string>body선택
UUIDs of the skills this slot requires (hard filter for the matching engine). Optional; up to 20.
wrench_percentintegerbody선택
This slot's share of the job's man-hours, in percent (1–100). Shares across all slots must sum to 100.
demobilization_minutesintegerbody선택
Demobilization (teardown) minutes added after the work. Optional, min 0.
forcebooleanbody선택
Schedule the job even when no technician can take it in ANY window the customer asked for (outside working hours, outside every service area, nobody free). Without it that case answers 409 JOB_REQUEST_QUOTE_NOT_SCHEDULABLE with the reason, so the coordinator can agree a different time with the customer first. Send true only after that conversation; the override is recorded in the activity feed.
job_duration_minutesintegerbody선택
Hands-on work duration in minutes (man-minutes for a crew job), min 1. On POST /quote it may be OMITTED when the job's job type carries a default_duration_minutes: the quote then uses the type's default duration and its default buffers (a buffer you send still wins). No duration and no default answers 400 JOB_REQUEST_QUOTE_INVALID. PATCH /quote always requires it.
mobilization_minutesintegerbody선택
Mobilization (setup/travel-prep) minutes added before the work. Optional, min 0.
status_versionintegerbody선택
Optimistic-lock fence: the status_version from your last read. Omitted/0 = fence on the row's current version (no race protection).
POST/v1/job-requests/{id}/quote
curl -X POST "https://api.crisphive.com/v1/job-requests/9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01/quote" \
  -H "Authorization: Bearer chsk_test_4eC8xQ9mZ2pL7Ka0rT" \
  -H "Content-Type: application/json" \
  -d '{
  "crew": [
    {
      "is_lead": true,
      "skill_ids": [
        "9b2f6c3e-1a4d-4f0a-8f2e-7c5d1b3a9e01"
      ],
      "wrench_percent": 50
    }
  ],
  "demobilization_minutes": 15,
  "force": false,
  "job_duration_minutes": 120,
  "mobilization_minutes": 15,
  "status_version": 1
}'
요청 본문
{
"crew": [
{
"is_lead": ,
"skill_ids": [
],
"wrench_percent":
}
],
"demobilization_minutes": ,
"force": ,
"job_duration_minutes": ,
"mobilization_minutes": ,
"status_version":
}

응답