> ## 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.

# 사용자 KYC 이력: 세션 및 재인증

> Didit 사용자 엔티티에 연결된 모든 인증 세션을 조회하고, 기능별 결과를 확인하며, 재인증을 트리거하고 컴플라이언스 보고서를 내보낼 수 있습니다.



KYC 이력 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\````# Goal — read a user's full KYC history and trigger re-verification

Every KYC session a user has ever run stays permanently linked to the User entity via `vendor_data`. The session list endpoint is the entry point; the decision endpoint is the detail view.

\## List every session for a user

\```bash
curl -G https://verification.didit.me/v3/sessions/ \
-H "x-api-key: $DIDIT_API_KEY" \
\--data-urlencode "vendor_data=user-42" \
\--data-urlencode "page_size=50"
\```

Response covers every status (approved, declined, in review, abandoned, expired). Paginate with the `next` cursor / `page` param until empty.

\## Inspect a single session decision

\```bash
curl https://verification.didit.me/v3/session/$SESSION_ID/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
\```

V3 returns plural arrays — always iterate them:

\- `id_verifications[]`
\- `liveness_checks[]`
\- `face_matches[]`
\- `aml_screenings[]`
\- `nfc_verifications[]`
\- `proof_of_address_checks[]`

Never assume V2 singular fields.

\## Trigger re-verification

Annual re-KYC, document expiry, trigger-based re-checks — same pattern: create a new session against the same `vendor_data`. The new session attaches to the existing User entity and updates the `features` map on completion.

\```bash
curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id": "wf_reverification", "vendor_data": "user-42"}'
\```

\## Fast path — fully verified right now?

The User entity carries a `features` map summarising the **latest** state of each feature across all sessions:

\```bash
curl https://verification.didit.me/v3/users/user-42/ \
-H "x-api-key: $DIDIT_API_KEY"
\# data.features = { id_verification: "APPROVED", liveness: "APPROVED", aml: "IN_REVIEW", ... }
\```

Use `features` for "is the user verified right now?" without iterating every session.

\## Generate a PDF for any session

\```bash
curl https://verification.didit.me/v3/session/$SESSION_ID/generate-pdf/ \
-H "x-api-key: $DIDIT_API_KEY" \
-o session-report.pdf
\```

\## Generate the full user history PDF

One file with a cover page plus the report of every reportable session (`Approved`, `Declined`, `In Review`, `Kyc Expired`) of the user, capped at the 20 most recent. Same document as Console → User detail → Actions → Download PDF. Synchronous render: use a 120s read timeout.

\```bash
curl --fail https://verification.didit.me/v3/users/user-42/generate-pdf/ \
-H "x-api-key: $DIDIT_API_KEY" \
-o user-history.pdf
\```

404 = no such user in this application; 403 = user has no reportable session yet.

\## Resubmit vs new session

\| Scenario | Use |
\|---|---|
\| Declined for fixable reason (blurry ID, bad lighting) | Resubmit the existing session (re-deliver `url`); the workflow advances through resubmission |
\| Annual / trigger-based re-KYC | Create a brand new session via `POST /v3/session/` |
\| Transaction-rule triggered remediation | The transaction creates a remediation session automatically (`Awaiting User` status) |

\## Share a session with a partner (Reusable KYC)

\```bash
\# Issue a shareable token
curl -X POST https://verification.didit.me/v3/session/$SESSION_ID/share/ \
-H "x-api-key: $DIDIT_API_KEY"

\# Receiver imports the shared session
curl -X POST https://verification.didit.me/v3/session/import-shared/ \
-H "x-api-key: $RECEIVER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"share_token": "..."}'
\```

\## Failure modes

\- `404` on the user — wrong `vendor_data` casing or no sessions yet.
\- Empty `results[]` — no sessions for this `vendor_data` in this application.
\- Stale signed image URLs — re-fetch the decision.
\- Sharing rejected — receiving application must have Reusable KYC enabled.

\## Sources of truth

\- /sessions-api/retrieve-session — V3 decision schema
\- /management-api/users/generate-pdf — full user history PDF
\- /reference/data-models — per-feature plural-array contract
\- /core-technology/reusable-kyc/overview — share / import pattern
\- /entities/users/data-model — features map computation
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

붙여넣을 곳

사용자가 지금까지 실행한 모든 사용자 인증(KYC) 세션은 사용자 엔터티에 영구적으로 연결된 상태로 유지됩니다. 전체 이력을 조회하고, 개별 세션 결과를 확인하고, 재인증을 트리거하고, 컴플라이언스 보고서를 내보낼 수 있습니다.## 사용자의 모든 세션 나열`vendor_data`로 세션 목록을 필터링합니다:```bash theme={null}
curl -G https://verification.didit.me/v3/sessions/ \
  -H "x-api-key: YOUR_API_KEY" \
  --data-urlencode "vendor_data=user-42" \
  --data-urlencode "page_size=50"
```응답에는 상태와 관계없이 모든 세션이 포함됩니다. 승인됨, 거부됨, 검토 중, 중단됨, 만료됨 세션이 모두 해당됩니다.## 기능 집계 이해하기사용자 엔터티의 `features` 맵은 모든 세션에 걸쳐 각 기능의 **최신** 상태를 보여 줍니다:```json theme={null}
"features": {
  "id_verification": "APPROVED",
  "liveness": "APPROVED",
  "face_match": "APPROVED",
  "aml": "IN_REVIEW"
}
```"사용자가 지금 인증되어 있는가?"를 빠르게 확인하려면 이 값을 사용하세요. 과거 기록(모든 세션, 모든 기능, 모든 결과)이 필요하면 세션 목록을 조회하고 각 결정을 확인하세요.## 단일 세션 확인하기```bash theme={null}
curl https://verification.didit.me/v3/session/{session_id}/decision/ \
  -H "x-api-key: YOUR_API_KEY"
```결정 데이터에는 다음이 포함됩니다:- 기능별 결과(ID, 라이브니스, 얼굴 대조, AML, POA, NFC 등)
- 추출된 문서 데이터와 이미지(서명된 URL)
- 일치 점수 및 위험 점수가 포함된 AML 일치 항목
- 기기 및 IP 분석과 기기 컨텍스트
- 검토자 메모와 수동 작업전체 스키마는 [세션 조회](https://docs.didit.me/ko/sessions-api/retrieve-session.md)를 참조하세요.## 재인증 트리거하기사용자가 재인증을 해야 할 때(예: 연간 재KYC, 문서 만료, 트리거 기반 재확인)에는 다음을 사용합니다:```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "wf_reverification",
    "vendor_data": "user-42"
  }'
```새 세션은 동일한 사용자 엔터티에 연결됩니다. 완료되면 엔터티의 `features` 맵이 새 결과를 반영하도록 업데이트됩니다.## 재제출 대 새 세션| 시나리오 | 사용 방법 |
| - | - |
| 사용자의 세션이 수정 가능한 문제(흐릿한 신분증, 부족한 조명)로 거부됨 | [재제출](https://docs.didit.me/ko/console/manual-review.md): 같은 세션에 새로 업로드 |
| 전체 재인증 또는 주기적 재KYC | 완전히 새로운 세션 생성 |
| 거래 규칙에 의해 시정 조치가 트리거됨 | 거래가 시정 조치 세션을 자동으로 생성합니다(`AWAITING_USER` 상태) |## 컴플라이언스 보고서 내보내기감사, SAR 또는 규제 기관의 요청에 대비해 어떤 세션이든 PDF를 생성할 수 있습니다:```bash theme={null}
curl https://verification.didit.me/v3/session/{session_id}/generate-pdf/ \
  -H "x-api-key: YOUR_API_KEY" \
  -o session-report.pdf
```사용자의 전체 이력을 하나의 파일로 받으려면 [사용자 이력 PDF](https://docs.didit.me/ko/management-api/users/generate-pdf.md)를 다운로드하세요. 이 파일은 표지(프로필 요약, 기능 상태, 세션 색인)로 시작하며, 이어서 보고 가능한 모든 세션의 전체 보고서가 오래된 순서로 포함됩니다. 최근 20개 세션까지만 포함됩니다.```bash theme={null}
curl --fail https://verification.didit.me/v3/users/user-42/generate-pdf/ \
  -H "x-api-key: YOUR_API_KEY" \
  -o user-history.pdf
```이 문서는 *사용자 → \[사용자] → 작업 → PDF 다운로드* 경로에서 콘솔이 생성하는 문서와 동일합니다. 여러 사용자의 CSV 내보내기를 일괄 처리하려면 *검토 및 운영 → PDF/CSV 내보내기*에서 앱 전체 내보내기 기능을 사용하세요.## 세션을 제3자와 공유하기사용자의 인증 정보를 파트너 앱과 공유해야 할 때(예: 재사용 가능한 KYC 시나리오)에는 다음을 사용합니다:- `POST /v3/session/{session_id}/share/`: 공유 토큰을 생성합니다.
- `POST /v3/session/import-shared/`: 수신 측에서 공유된 세션을 가져옵니다.전체 절차는 [재사용 가능한 KYC](https://docs.didit.me/ko/core-technology/reusable-kyc/overview.md)를 참조하세요.## 이력 기반 워크플로세션 이력을 활용하면 더 정교한 컴플라이언스 결정을 내릴 수 있습니다:- 사용자가 N일 이내에 승인된 라이브니스 감지 결과를 이미 보유한 경우 **단계를 건너뜁니다**.
- 사용자의 가장 최근 세션이 거부되었다면 **추가 검사를 요구합니다**.
- 사용자의 세션 수가 예상치 않게 급증하면 **플래그를 지정**합니다.
- [지속적인 모니터링](https://docs.didit.me/ko/core-technology/aml-screening/continuous-monitoring-aml-screening.md) 기능을 통해 지속적인 AML 재스캔을 **모니터링합니다**.## 다음 단계> [card] [데이터 모델](https://docs.didit.me/ko/entities/users/data-model.md)
>
> 기능 맵과 카운터가 계산되는 방식입니다.> [card] [세션 조회](https://docs.didit.me/ko/sessions-api/retrieve-session.md)
>
> 전체 세션 결정 스키마입니다.> [card] [재사용 가능한 KYC](https://docs.didit.me/ko/core-technology/reusable-kyc/overview.md)
>
> 여러 애플리케이션에서 인증된 데이터를 재사용합니다.


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