본문으로 건너뛰기
G 기그 Open API v1

API 레퍼런스

근무 기록

급여 정산에 실제로 반영되는 근무 기록이다. 적용된 시급이 스냅샷으로 남아 있어 소급 계산이 정확하다. 인건비 계산은 반드시 이 API 로 한다.

근무 기록 목록

GET /work-records attendance:read

기간 내 근무 기록을 조회한다. 항목별 시급·근무시간·야간/연장 플래그를 포함한다.

i

인건비 계산의 기준

기본 인건비 = Σ(items[].hourly_wage × items[].work_minutes ÷ 60). 주휴수당·4대보험·세금·가산액은 포함되지 않는다.

쿼리 파라미터

이름타입설명
store_id 필수string매장 식별자
from 필수date조회 시작일 (YYYY-MM-DD, 매장 로컬 날짜)
to 필수date조회 종료일. to − from ≤ 30일 (양끝 포함 31일)
staff_id string특정 직원만 조회
updated_since datetime이 시각 이후 변경된 것만. 삭제는 잡히지 않는다
limit int페이지 크기. 기본 100, 최대 1000
cursor string다음 페이지 커서. 응답의 next_cursor 를 그대로 넣는다

응답 필드

이름타입설명
stamp_type enumhourly | daily | weekly | monthly | piece | fixed | annual_leave | absence | day_off | tax_free | advance
source enummanual(수기 등록) | attendance(출퇴근) | schedule(스케줄)
items[].hourly_wage int | null그 근무에 실제 적용된 시급 스냅샷
items[].night_work · extended_work · overtime_work bool야간 · 연장 · 특근. 앱에서도 이 셋이 한 묶음으로 다닌다
settled bool급여 정산 완료 여부. false 면 아직 바뀔 수 있다

알아둘 것

  • hourly_wage 와 야간/연장/특근 플래그는 stamp_type 이 hourly 일 때만 존재한다. 다른 유형은 null 이다.
  • hourly_wage 는 스냅샷이므로 이후 매장의 기본 시급이 바뀌어도 과거 기록은 변하지 않는다. 소급 계산은 이 값을 쓴다.
  • source 가 manual 인 기록이 출퇴근 기록에는 없는 근무다. 인건비 차이의 원인이 여기에 있다.
  • 야간·연장·특근은 플래그일 뿐 금액이 아니다. 가산 금액은 저장되어 있지 않다.
cURL
curl -sS "https://developer.openapi.giig.app/api/v1/work-records?store_id=&from=&to=" \
  -H "Authorization: Bearer $GIG_ACCESS_TOKEN"
200 OK · application/json
{
  "data": [
    {
      "work_record_id": "wr_5Tz3",
      "store_id": "",
      "staff_id": "",
      "work_date": "2026-08-14",
      "stamp_type": "hourly",
      "source": "attendance",
      "items": [
        {
          "start_at": "2026-08-14T09:00:00+09:00",
          "end_at": "2026-08-14T18:00:00+09:00",
          "break_minutes": 60,
          "work_minutes": 480,
          "hourly_wage": 10800,
          "night_work": false,
          "extended_work": false,
          "overtime_work": false
        }
      ],
      "settled": true,
      "settled_at": "2026-09-01T03:00:00+09:00",
      "updated_at": "2026-08-14T18:12:04+09:00"
    }
  ],
  "next_cursor": null,
  "has_more": false
}
에러 · application/json
{
  "error": {
    "code": "range_too_large",
    "message": "...",
    "request_id": "req_01J8XQ4M2N7P"
  }
}