> ## Documentation Index
> Fetch the complete documentation index at: https://support.i.moneyforward.com/llms.txt
> Use this file to discover all available pages before exploring further.

# エラー

> IT Management API は、問題が発生した際に適切な HTTP ステータスコードとエラーメッセージを返します。API を使用する際は、これらのエラーレスポンスを適切に処理することが重要です。

## HTTP ステータスコード

API は標準的な HTTP ステータスコードを使用します。以下はよく使われるステータスコードとその意味です。

| ステータスコード | 意味                    | 説明                      |
| -------- | --------------------- | ----------------------- |
| 200      | OK                    | リクエストが成功した              |
| 201      | Created               | リソースが正常に作成された           |
| 204      | No Content            | リクエストが成功し、コンテンツがない      |
| 400      | Bad Request           | リクエストに誤りがある（無効なパラメータなど） |
| 401      | Unauthorized          | 認証情報が無効または不足している        |
| 403      | Forbidden             | アクセス権限がない               |
| 404      | Not Found             | リクエストされたリソースが存在しない      |
| 422      | Unprocessable Entity  | リクエスト形式は正しいが、意味的に誤っている  |
| 429      | Too Many Requests     | レート制限を超えている             |
| 500      | Internal Server Error | サーバー内部エラー               |

## エラーレスポンス形式

エラーが発生した場合、API は以下の形式の JSON レスポンスを返します。

```json theme={null}
{
  "statusCode": 400,
  "errorId": "validation_exception",
  "message": "Validation failed",
  "errorDetails": [
    {
      "property": "email",
      "constraints": {
        "isEmail": "email must be an email"
      }
    }
  ]
}
```

### レスポンスフィールド

| フィールド          | 型       | 説明               |
| -------------- | ------- | ---------------- |
| `statusCode`   | integer | HTTP ステータスコード    |
| `errorId`      | string  | エラーの識別子          |
| `message`      | string  | エラーの簡単な説明        |
| `errorDetails` | array   | 詳細なエラー情報（存在する場合） |

## 一般的なエラー

### 認証エラー (401)

```json theme={null}
{
  "statusCode": 401,
  "errorId": "unauthorized",
  "message": "Unauthorized"
}
```

原因: API キーが無効または不足している

### 権限エラー (403)

```json theme={null}
{
  "statusCode": 403,
  "errorId": "forbidden",
  "message": "Forbidden"
}
```

原因: リクエストされた操作に対する権限がない

### 検証エラー (422)

```json theme={null}
{
  "statusCode": 422,
  "errorId": "validation_exception",
  "message": "Validation failed",
  "errorDetails": [
    {
      "property": "name",
      "constraints": {
        "minLength": "name must be longer than or equal to 1 characters"
      }
    }
  ]
}
```

原因: リクエストパラメータがバリデーションルールを満たしていない

## エラー処理のベストプラクティス

1. すべての HTTP ステータスコードを適切に処理する
2. 特に 429 (レート制限) エラーに対しては、リトライロジックを実装する
3. エラーメッセージをログに記録して、問題の診断に役立てる
4. ユーザーにわかりやすいエラーメッセージを表示する
5. センシティブな情報をエラーメッセージへ含めないようにする
