# バッチジョブ

1 回のファイルアップロードで複数の API リクエストを非同期で処理します。

Batch Jobs API を使用すると、Stripe リソースに対して一括操作を実行できます。レート制限をトリガーする可能性のある操作ごとに個別の API コールを行う代わりに、すべての操作を含むファイルをアップロードして、Stripe に非同期で処理させることができます。1 回限りの移行、一括更新、または多くのリソースの処理が必要な操作に使用します。

## バッチジョブを使用する状況

バッチジョブは、次の用途に適しています。

- **一括移行**: 大量のサブスクリプションを新しい請求モードに移行します。
- **大規模な更新**: 多数のアカウントまたはサブスクリプションを一度に更新します。

バッチジョブは次の用途には適していません。

- 即時の同期応答を必要とする操作。
- 厳しいタイミング要件によるリアルタイム処理
- 単一の非同期コール。

バッチジョブを処理するには、次の手順に従います。

1. [バッチジョブを作成](https://docs.stripe.com/batch-api/create.md#create-a-batch-job)し、ターゲット API エンドポイントを指定します。
2. バッチリクエストを含む[入力ファイルをアップロード](https://docs.stripe.com/batch-api/create.md#upload-the-input-file)します。
3. Webhook またはポーリングを使用して[ジョブステータスを監視](https://docs.stripe.com/batch-api/create.md#monitor-job-status)します。
4. [結果をダウンロード](https://docs.stripe.com/batch-api/create.md#download-the-results)します。

## サポート対象のエンドポイント

Batch Jobs API は、Stripe リソース全体の多くのエンドポイントをサポートしています。各バッチジョブは 1 つのエンドポイントを対象とし、バッチ内のすべてのリクエストはそのエンドポイントに送信されます。

利用可能なエンドポイントの完全なリストについては、[サポート対象のエンドポイント](https://docs.stripe.com/batch-api/supported-endpoints.md)をご覧ください。

## 制限事項

以下の制限事項を確認してください。

- バッチファイルは 5 GB に制限されています。大量のリクエストに対して大きなファイルを処理する必要がある場合は、複数のバッチに分割してください。

- バッチジョブは JSONL (改行区切り JSON) ファイルのみサポートしています。バッチジョブは CSV やその他の形式は受け付けません。

- バッチ内のリクエストは `POST` または `DELETE` のみを使用できます。バッチジョブは `GET` をサポートしていません。

- バッチ内のすべてのリクエストは、同じ API エンドポイントを対象とする必要があります。

- バッチジョブはリクエスト処理の順序を保証しません。

- バッチジョブの最大処理期間は 7 日間です。この期間を超えるジョブは `timeout` ステータスに移行し、一部の結果を利用できます。

- バッチジョブは 1 回の実行につき最大 200 万行に制限されています。この制限を超えるジョブは検証に失敗し、リソースは作成されません。より大規模なワークロードは、それぞれ最大 200 万行の複数のバッチジョブに分割し、順次送信してください。1 つのジョブが完了するまで待ってから次のジョブを作成してください。大規模なバッチジョブを複数同時に実行すると、同じ処理を順次実行する場合に比べて処理が遅くなり、信頼性が低下する可能性があります。これ以上の処理容量が必要な場合は、[Stripe サポート](https://support.stripe.com/contact)にお問い合わせください。

- 結果は、ジョブの完了後 7 日間ダウンロードできます。

- アップロード URL はジョブの作成から 5 分後に有効期限が切れます。その後、ジョブは `upload_timeout` に移行するため、新しいジョブを作成する必要があります。

- 事前署名された URL に、直接 HTTP `PUT` リクエストでファイルをアップロードします。
