---
title: 再利用可能なドキュメントの取得
description: 新しいキャプチャフローを開始する前に、ユーザーが再利用可能なドキュメントを既に持っているかどうかを確認します。
canonical: https://developer.unico.io/ja/dual-api/developers/api-reference/api/get-document
locale: ja
generated_by: markdown-export
---

このエンドポイントを使用して、新しいドキュメントキャプチャフローを開始する前に、ユーザーが再利用可能なドキュメントを既に持っているかどうかを確認します。ドキュメントが見つかった場合、その `documentId` を `POST /processes/v1`（ドキュメントタイプ）に直接渡してキャプチャステップをスキップできます。

### エンドポイント

| 環境 | URL |
|---|---|
| **本番** | `GET https://api.id.unico.app/documents/v1` |
| **サンドボックス** | `GET https://api.id.uat.unico.app/documents/v1` |

### リクエスト

## ヘッダー

| ヘッダー | 値 |
|---|---|
| `Authorization` | `Bearer <access_token>`（[認証](../authentication)を参照）|
| `APIKEY` | ドキュメントキャプチャと再利用が有効なプロビジョニング済みAPIキー。 |

## クエリパラメータ

| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| `code` | string | はい | ユーザー識別子（フォーマットなしのCPFまたはCURP）。 |
| `type` | string | はい | クエリするドキュメントタイプ。受け入れ可能な値: `BR_RG`、`BR_CNH`、`BR_CIN`、`BR_PASSPORT`。 |

:::note
上記の `type` の値はこのエンドポイント固有のものです。以下と混同しないでください:
- POSTリクエストの `subject.duiType` - `DUI_TYPE_*` プレフィックスを使用し、ドキュメントタイプではなく*人物*を識別します（例: `DUI_TYPE_BR_CPF`）。
- レスポンスの `documentType` - 完全なレジストリパスを使用します（例: `unico.moja.dictionary.br.cnh.v2.Cnh`）。
:::

### 例

### cURL

```bash
curl -X GET "https://api.id.unico.app/documents/v1?code=12345678909&type=BR_CNH" \
  -H "Authorization: Bearer $TOKEN" \
  -H "APIKEY: $API_KEY"
```

### Node.js

```javascript
import fetch from 'node-fetch';

const params = new URLSearchParams({ code: '12345678909', type: 'BR_CNH' });
const res = await fetch(
  `https://api.id.unico.app/documents/v1?${params}`,
  {
    headers: {
      Authorization: `Bearer ${accessToken}`,
      APIKEY: apiKey
    }
  }
);
const data = await res.json();
// data.items[0].documentId → pass to POST /processes/v1 for reuse
```

### レスポンス

## 200 OK

```json
{
  "items": [
    {
      "documentType": "unico.moja.dictionary.br.cnh.v2.Cnh",
      "documentId": "doc-abc-123"
    }
  ]
}
```

| フィールド | 型 | 説明 |
|---|---|---|
| `items` | array | ユーザーに見つかった再利用可能なドキュメントのリスト。指定した `code` と `type` に対して再利用可能なドキュメントが見つからない場合は空の配列。 |
| `items[].documentType` | string | ドキュメントタイプ識別子。可能な値: `unico.moja.dictionary.br.rg.v2.Rg`、`unico.moja.dictionary.br.cnh.v2.Cnh`、`unico.moja.dictionary.br.cin.v1.Cin`、`unico.moja.dictionary.br.passaporte.v1.Passaporte`。 |
| `items[].documentId` | string | ドキュメント識別子。ドキュメントを再利用するには、`POST /processes/v1` の `document.documentId` にこの値を渡します。 |

### documentIdを使用した再利用

`documentId` を取得したら、ドキュメントプロセスリクエストに渡してキャプチャをスキップします:

```json
{
  "subject": {
    "code": "12345678909",
    "name": "Luke Skywalker"
  },
  "document": {
    "purpose": "onboarding",
    "authProcessId": "<biometric-process-id>",
    "documentId": "doc-abc-123"
  }
}
```

| フィールド | 説明 |
|---|---|
| `document.purpose` | このドキュメントプロセスのビジネス目的。受け入れ可能な値: `creditprocess`、`carpurchase`、`paybypaycheck`、`onboarding`、`fgts`。これらの値はドキュメントAPI固有のものであり、生体認証SDKの `purpose` enumとは異なります。 |
| `document.authProcessId` | このユーザー用に以前作成された生体認証プロセスのID（`POST /processes/v1` から取得）。 |
| `document.documentId` | このエンドポイントのレスポンスから取得したドキュメントID。指定した場合、`document.files` を省略できます。プラットフォームが以前にキャプチャされたドキュメントを自動的に取得します。 |

完全なドキュメントプロセスリクエストスキーマについては、[ドキュメントプロセスの作成](./post-processes-document)を参照してください。

### エラーコード

### 400 Bad Request

| コード | メッセージ | 説明 |
|---|---|---|
| `20507` | O parâmetro subject.code é inválido. | 不正な形式または存在しない識別子の値（CPFまたはCURP）。 |
| `20002` | O parâmetro APIKey não foi informado. | APIKEYヘッダーが欠落しています。 |
| `20001` | O parâmetro authtoken não foi informado. | 認証トークンヘッダーが欠落しています。 |

### 403 Forbidden

Bearerトークンまたは `APIKEY` が欠落、期限切れ、または無効です。

| コード | メッセージ | 説明 |
|---|---|---|
| `30020` | The provided authorization token does not have permission to perform this action. | トークンにドキュメントセルフィーへのアクセス権限がありません。 |
| `30017` | User does not have permission to perform this action. | 不正な形式のJWTまたはこの操作を実行する権限のないユーザー。 |
| `10502` | O token informado está expirado. | 期限切れのアクセストークン。 |
| `10501` | O token informado é inválido. | 無効な認証トークン。 |
| `10201` | O AppKey informado é inválido. | 欠落または存在しないAPIKEY。 |

### 404 Not Found

| コード | メッセージ | 説明 |
|---|---|---|
| `99987` | Attachment not found. | ドキュメントに関連付けられた添付ファイルが見つかりませんでした。 |
| `50001` | The process is not found. | 指定されたパラメータに対するドキュメントが見つかりませんでした。 |

### 429 Too Many Requests

レート制限に達しました。システムがHTTP 429エラーを受信した場合、カスケード障害を防ぎ、制限の悪化を避けるためのメカニズムを実装する必要があります。

**ベストプラクティス:**

- **クールダウン期間（バックオフ）:** システムからの後続リクエストを直ちに停止またはスロットルしてください。失敗したリクエストをタイトループで継続的にリトライしないでください。
- **キューイングとスロットリング:** 再送信前にトラフィックフローを制御するために、送信リクエストをバッファまたはキューに入れてください。
- **ジッターを含む指数バックオフ:** リトライ時に、試行間の待機時間を指数的に増加させ（例: 1秒、2秒、4秒、8秒）、すべてのキューされたリクエストがまったく同じミリ秒にリトライするハード効果を防ぐために小さなランダム遅延（「ジッター」）を追加してください。

:::warning
バックオフせずにレート制限されたエンドポイントに継続的にアクセスすると、**制限期間が延長**され、システムの運用スループットに深刻な影響を与える可能性があります。リクエストを適切にスロットリングすることで、よりスムーズで回復力のあるインテグレーションが確保されます。
:::

デフォルトの制限、リクエストの増加、その他の詳細については、[レート制限](../rate-limits)を参照してください。

### 500 Internal Server Error

| コード | メッセージ | 説明 |
|---|---|---|
| `99999` | Internal failure! Try again later. | サーバー側の処理エラー。 |