---
id: OV-C8-POS-004
title: "Offline check-in and check-out run on local data without backend"
product: mobile
module: offline-visitation
type: functional
priority: P0
risk: critical
status: draft
automationStatus: planned
sourceRefs:
  tsd: PK144
  tsdSection: C8
  tsdScenario: C8.4
  prd: PK144
  jira: null
automationRef: null
lifecycleStatus: active
lifecycleReason: "AI-generated draft from PK144 TSD C8.4; pending QA review."
lastReviewedAt: null
reviewedBy: null
supersededBy: null
duplicateOf: null
blockedBy: null
preconditionRefs:
  - PRE-OV-mode-luring-active
tags:
  - mobile
  - offline-visitation
  - mode-luring
  - visitation
  - pk144
  - staging
---
## Objective
Verify offline check-in/check-out using local data, including map-failure resilience.

## Preconditions
- See [[PRE-OV-mode-luring-active]]
- And the employee is on Detail Kunjungan with no connection

## Steps
1. When the employee taps "Check In"
2. Complete the visit and check out

## Expected Result
- Then the check-in flow runs using LOCAL data: visitation policy (selfie/geofence) from the bundle, geofence validation against locally stored pinpoint data
- And if the map fails to load, an "unable to show map" message shows and the flow stays unblocked
- And it proceeds WITHOUT backend confirmation, transitions to "Dalam Proses" locally, and the timer starts
- And selfie image, check-in/out GPS coordinates, and validation mark are captured locally
- And check-out follows the same offline pattern, with backend recording deferred to sync

## Source Traceability
- TSD: PK144
- Section: C8 - Mode Luring State Management
- Scenario: C8.4 - Check-in & check-out offline
- Acceptance Criteria: E6.US-4 AC1–AC5

## Evidence Required
- Screen recording of offline check-in/out; local capture inspection.

## Notes / Gaps
- Selfie/geofence policy detail references PK135 (cross-PRD).
