> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 위치 인증 보고서: geolocation_checks 필드

> Didit 세션 결정의 geolocation_checks 및 geolocation_attempts를 파싱하여 위치, 정확도, 영역, 거리, 익명화 도구, 동의 및 경고를 확인하세요.

## 개요

세션 결정은 모든 위치 인증 단계의 결과를 두 개의 목록으로 반환합니다. `geolocation_checks[]`에는 각 단계에서 수락된 시도가 포함되고, `geolocation_attempts[]`에는 모든 시도가 순서대로 나열됩니다.
두 목록 모두 `GET /v3/session/{sessionId}/decision/`([세션 조회](https://docs.didit.me/ko/sessions-api/retrieve-session.md)를 참조하십시오) 및 `status.updated` webhook에서 제공됩니다.
위치 단계가 없는 워크플로는 두 항목 모두 `null` 또는 빈 목록을 반환합니다.

```text theme={null}
GET /v3/session/{sessionId}/decision/
  --> { "geolocation_checks": [ { node_id, status, outcome, permission, latitude, longitude, accuracy_m, ... } ],
        "geolocation_attempts": [ { node_id, outcome, attempts, received_at, ... } ] }
```

## `geolocation_checks[]`

위치 단계(`node_id`)당 하나의 항목이 포함되며, 가장 최근 시도에서 가져옵니다.

```json theme={null}
{
  "node_id": "geolocation_1",
  "status": "Declined",
  "outcome": "outside_geofence",
  "permission": "granted_precise",
  "latitude": 48.8566,
  "longitude": 2.3522,
  "accuracy_m": 35.0,
  "accuracy_confidence": "p95",
  "measured_at": "2026-11-03T10:15:02Z",
  "age_seconds": 2,
  "source": "browser",
  "platform": "web",
  "sdk_version": null,
  "is_mock": null,
  "produced_by_accessory": null,
  "integrity": "unsupported",
  "country_code": "FR",
  "region_code": "FR-IDF",
  "city": "Paris",
  "geofence": { "enabled": true, "result": "outside" },
  "inside_geofence": false,
  "geofence_basis": "device",
  "inside_areas": [],
  "blocked_areas": [],
  "position_source": "device_and_ip",
  "anonymizers": { "vpn": false, "proxy": false, "tor": false, "spoofing": null, "emulator": null },
  "ip_distance_km": 0,
  "ip_distance_uncertainty_km": 12.4,
  "ip_consistent": true,
  "document_distance_km": null,
  "travel_excused": null,
  "consecutive_mismatches": 1,
  "attempts": 3,
  "consent": { "accepted_at": "2026-11-03T10:14:55Z", "version": "hosted-web-1", "locale": "en" },
  "warnings": [
    {
      "risk": "LOCATION_OUTSIDE_GEOFENCE",
      "log_type": "error",
      "short_description": "Device location outside the allowed area",
      "node_id": "geolocation_1"
    }
  ]
}
```

| 필드 | 유형 | 설명 |
| - | - | - |
| `node_id` | string | 결과를 생성한 워크플로 노드입니다. 따라서 위치 단계가 두 개인 워크플로에서도 결과를 쉽게 구분할 수 있습니다. |
| `status` | string | 경고를 기반으로 결정된 `Approved`, `In Review`, `Declined` 또는 `Not Finished`입니다. |
| `outcome` | string | 수락된 시도에서 발생한 결과입니다. [결과](https://docs.didit.me/ko/core-technology/location-verification/overview.md#결과)를 참조하십시오. |
| `permission` | string | 시스템이 부여한 권한입니다: `granted_precise`, `granted_approximate`, `denied`, `restricted`, `unavailable`, `timeout`, `dismissed` 또는 `not_requested`(IP 전용 단계). |
| `latitude`, `longitude` | number or null | WGS84 좌표입니다. 위치 정보가 없는 경우 `null`입니다. |
| `accuracy_m` | number or null | 불확실성 반경(미터 단위)입니다. |
| `accuracy_confidence` | string or null | 반경의 신뢰도 수준입니다: `p95`(웹), `p68`(Android) 또는 `unspecified`(iOS). 플랫폼마다 차이가 있으므로 정규화하지 않고 그대로 기록됩니다. |
| `measured_at` | datetime or null | 기기 시계를 기준으로 기기가 위치를 측정한 시각입니다. |
| `age_seconds` | integer or null | 측정 시점부터 Didit이 이를 수신한 시점까지의 시간입니다. |
| `source` | string or null | `gps`, `fused`, `network`, `wifi`, `cell`, `browser`, `unknown` 또는 IP 전용 단계의 경우 `ip`입니다. |
| `platform` | string or null | `web`, `ios`, `android`, `react_native` 또는 `flutter`입니다. |
| `sdk_version` | string or null | 위치를 생성한 SDK 버전입니다. |
| `is_mock` | boolean or null | 시스템이 모의 위치를 보고했는지 여부입니다. `null`은 `false`를 의미하는 것이 아니라 플랫폼에서 확인할 수 없음(웹)을 의미합니다. |
| `produced_by_accessory` | boolean or null | iOS 전용: 위치가 외부 액세서리에서 전달되었는지 여부입니다. |
| `integrity` | string | 기기 증명입니다: `attested`, `not_attested`, `failed`, `unsupported`(웹) 또는 `not_determined`. |
| `country_code`, `region_code`, `city` | string or null | 위치를 오프라인으로 판별한 장소입니다: ISO 3166-1 alpha-2 국가 코드, ISO 3166-2 지역 코드 및 가장 가까운 인구 거주지입니다. 도시는 검토자를 위한 라벨일 뿐이며 규칙 입력값으로 사용되지 않습니다. |
| `geofence` | object | `enabled` 및 `result`(`inside`, `outside` 또는 `undetermined`)입니다. 지오펜싱이 비활성화된 경우 `result`는 `null`입니다. |
| `inside_geofence` | boolean or null | `true` 또는 `false`이며, 지오펜싱이 비활성화되었거나 정확도 원이 경계에 걸쳐 있는 경우 `null`입니다. |
| `geofence_basis` | string or null | 구역 판정에 사용된 위치 기준입니다: `device` 또는 `ip`. |
| `inside_areas`, `blocked_areas` | array | 전체 정확도 원이 포함된 허용 구역 및 차단 구역의 `id` 목록입니다. |
| `position_source` | string or null | 시도가 실행되었을 때 해당 노드의 `geolocation_position_source`입니다. |
| `anonymizers` | object or null | `vpn`, `proxy`, `tor`, `spoofing` 및 `emulator` 항목으로, 각각 `true`, `false`이거나 소스에서 확인할 수 없는 경우 `null`입니다. |
| `ip_distance_km` | number or null | 두 불확실성 반경을 뺀 후의 IP 주소 위치까지의 거리입니다. 0은 서로 겹침을 의미합니다. |
| `ip_distance_uncertainty_km` | number or null | 차감된 결합 반경입니다. |
| `ip_consistent` | boolean or null | `ip_distance_km`가 `geolocation_ip_distance_km` 이내인지 여부입니다. 어느 한쪽이라도 알 수 없는 경우 `null`입니다. |
| `document_distance_km` | number or null | 지오코딩된 문서 주소까지의 거리입니다. 등록된 주소가 없는 경우 `null`입니다. |
| `travel_excused` | boolean or null | 여행 허용 범위로 인해 거리가 참작되었는지 여부입니다. 허용 오차가 꺼져 있는 경우 `null`입니다. |
| `consecutive_mismatches` | integer or null | 최종 시도 기준으로, 이번 확인과 동일 인물의 이전 연속 불일치 횟수를 합산한 값입니다. |
| `attempts` | integer | 시도 번호입니다. |
| `consent` | object or null | 사용자가 수락한 위치 고지의 `accepted_at`, `version` 및 `locale`입니다. |
| `warnings` | array | 해당 단계의 [경고](https://docs.didit.me/ko/core-technology/location-verification/warnings-location-verification.md)입니다. |

## `geolocation_attempts[]`

모든 위치 단계의 각 시도를 가장 오래된 순서대로 나열하며, `warnings`를 제외하고 `geolocation_checks[]`와 동일한 측정, 불확실성, 구역 및 거리 필드를 포함하고 다음 항목이 추가됩니다:

| 필드 | 유형 | 설명 |
| - | - | - |
| `received_at` | datetime | Didit이 시도를 수신한 시각입니다. |
| `created_at` | datetime | 시도가 기록된 시각입니다. |

재제출로 인해 폐기된 시도는 제외됩니다.
클라이언트의 원본 제출 데이터 및 챌린지는 반환되지 않습니다.

## 상태 규칙 및 분기용 필드

사용자 정의 `status_rules` 및 분기 규칙은 다음 필드를 읽을 수 있습니다:
`geolocation.status`, `geolocation.outcome`, `geolocation.permission`, `geolocation.latitude`, `geolocation.longitude`, `geolocation.accuracy_m`, `geolocation.accuracy_confidence`, `geolocation.age_seconds`, `geolocation.measured_at`, `geolocation.source`, `geolocation.platform`, `geolocation.country`(ISO 3166-1 alpha-3), `geolocation.region`, `geolocation.city`, `geolocation.is_mock`, `geolocation.integrity`, `geolocation.inside_geofence`, `geolocation.ip_distance_km`, `geolocation.ip_consistent`, `geolocation.document_distance_km`, `geolocation.attempts`, `geolocation.consent_at`, `geolocation.inside_areas`, `geolocation.blocked_areas`, `geolocation.anonymizers`(`vpn`, `proxy`, `tor`, `spoofing`, `emulator`) 및 `geolocation.consecutive_mismatches`.
누락된 값은 `is_empty`에만 일치하므로, 사기 신호 감지를 위해 작성된 규칙이 누락된 데이터로 인해 잘못 트리거되지 않습니다.

## 관련 문서

* [위치 인증](https://docs.didit.me/ko/core-technology/location-verification/overview.md) - 해당 단계의 작동 방식 및 비용.
* [위치 인증 경고](https://docs.didit.me/ko/core-technology/location-verification/warnings-location-verification.md) - 모든 `LOCATION_*` 코드.
* [Webhook](https://docs.didit.me/ko/integration/webhooks.md) - 해당 목록을 전달하는 `status.updated`.
* [데이터 모델 - 경고 객체](https://docs.didit.me/ko/reference/data-models.md#경고-객체) - `warnings[]`의 각 항목 구조.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.