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

사용 규칙

증분 조회

전체를 다시 받지 않고 변경분만 가져옵니다. 다만 삭제는 이 방식으로 감지되지 않습니다.

사용법

updated_since 에 마지막으로 동기화한 시각을 넣습니다. 그 시각 이후에 생성되거나 수정된 레코드만 반환됩니다.

cURL
curl -sS -G "https://developer.openapi.giig.app/api/v1/work-records" \
  --data-urlencode "store_id=st_7Kq2" \
  --data-urlencode "from=2026-08-01" \
  --data-urlencode "to=2026-08-31" \
  --data-urlencode "updated_since=2026-08-20T00:00:00+09:00" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
  • from·to여전히 필수입니다. 증분 조회도 기간 상한을 따릅니다.
  • 출퇴근 기록과 근무 기록 모두 같은 방식으로 동작합니다.
  • 기준 시각은 응답 레코드의 updated_at 중 가장 큰 값을 저장해 두고 쓰면 됩니다.

삭제는 잡히지 않는다

×

증분 조회는 신규·수정만 반환합니다

삭제된 레코드는 결과에서 그냥 사라질 뿐, 별도의 삭제 이벤트가 오지 않습니다. 증분 조회만 반복하면 이미 받아간 레코드가 삭제되었다는 사실을 영영 알 수 없습니다.

사장님이 잘못 등록한 근무를 지우는 일은 실제로 자주 일어납니다. 인건비 집계에 그대로 영향을 줍니다.

권장 동기화 전략

증분과 전체 재조회를 섞습니다.

  • 수시(예: 1시간마다) — 이번 달을 updated_since 로 증분 조회
  • 매일 1회 — 이번 달 전체를 updated_since 없이 재조회해 로컬과 대조하고, 응답에 없는 레코드를 삭제 처리
  • 정산 후 1회 — 지난 달을 재조회해 확정. settled: true 인 기록은 이후 잘 바뀌지 않습니다
삭제 감지
// 전체 재조회 결과와 로컬을 대조한다.
const fetched = new Set(records.map(r => r.work_record_id));
const removed = [...local.keys()].filter(id => !fetched.has(id));
// removed 를 삭제 처리
i

Webhook 은 아직 제공하지 않습니다

변경 알림을 푸시로 받는 기능은 준비 중입니다. 그때까지는 위 방식으로 동기화하세요.