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 | enum | hourly | daily | weekly | monthly | piece | fixed | annual_leave | absence | day_off | tax_free | advance |
| source | enum | manual(수기 등록) | 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"
}
}