メインコンテンツへスキップ
バージョン: 最新版

一括作成の進捗監視

一括課金スケジュール作成ジョブの現在のステータスを取得します。このエンドポイントを使用して、進捗の追跡、完了ステータスの確認、ステータスレポートのダウンロード準備ができたタイミングの判断を行います。


🔑API認証情報

リクエストパラメータ

必須 - 1フィールドパスパラメータ
`recurring_id`STRING(required)
一括作成エンドポイントから返されたRecurring export ID。IDはrecr_で始まります。
Example:"recr_test_5xuy4w91xqz7d1w9u0t"

レスポンス

200

ジョブステータス取得

進捗の詳細を含む一括作成ジョブの現在のステータスを返します。

レスポンスに含まれる内容:
  • object - 常に "recurring_export"
  • id - Recurring export ID (recr_*)
  • livemode - 本番モードの操作かどうか
  • location - このリソースへのAPIパス
  • state - 現在のジョブ状態(pending、processing、completed、failed)
  • total_rows - CSV内の総行数
  • processed_rows - これまでに処理された行数
  • successful_rows - 正常に作成されたスケジュール数
  • failed_rows - 作成に失敗した行数
  • progress_percentage - 完了率(0-100)
  • download_uri - ステータスレポートダウンロード用URI(完了時に利用可能)
  • created_at - ジョブ作成タイムスタンプ
  • completed_at - ジョブ完了タイムスタンプ(未完了の場合はnull)

400

不正なリクエスト

リクエストの検証に失敗しました。詳細はエラーメッセージを確認してください。

一般的な原因:
  • 無効なrecurring_id形式
  • recurring_idパラメータが欠落

401

認証エラー

認証に失敗しました。APIキーが無効または欠落しています。

一般的な原因:
  • Authorizationヘッダーが欠落
  • 無効なシークレットキー
  • シークレットキーの代わりにパブリックキーを使用
  • HTTP Basic Auth形式が不正

404

見つかりません

一括作成ジョブが見つかりません。

一般的な原因:
  • 無効なrecurring_id
  • ジョブが別のアカウントに属している
  • テストモードと本番モードのキーを混同
  • ジョブの有効期限が切れている(30日以上経過)

5xx

サーバーエラー

サーバー側でエラーが発生しました。これらは稀ですが、適切に処理する必要があります。

対処方法:
  • 指数バックオフでリクエストをリトライ
  • status.omise.coでサービスインシデントを確認
  • 詳細なガイダンスはエラー処理を参照

コードサンプル

# 一括作成ジョブのステータスを確認
curl https://api.omise.co/recurring_exports/recr_test_5xuy4w91xqz7d1w9u0t \
-u skey_test_5xuy4w91xqz7d1w9u0t:

完了までのポーリング

ジョブが完了するまでエンドポイントをポーリングする例:

const axios = require('axios');

async function waitForCompletion(recurringId, maxAttempts = 60, intervalMs = 5000) {
for (let i = 0; i < maxAttempts; i++) {
const response = await axios.get(
`https://api.omise.co/recurring_exports/${recurringId}`,
{
auth: { username: 'skey_test_5xuy4w91xqz7d1w9u0t', password: '' }
}
);

const { state, progress_percentage, successful_rows, failed_rows, total_rows } = response.data;

console.log(`Progress: ${progress_percentage}% (${successful_rows + failed_rows}/${total_rows})`);

if (state === 'completed') {
console.log(`Completed! Success: ${successful_rows}, Failed: ${failed_rows}`);
return response.data;
}

if (state === 'failed') {
throw new Error('Bulk creation job failed');
}

await new Promise(resolve => setTimeout(resolve, intervalMs));
}

throw new Error('Timeout waiting for job completion');
}

// 使用例
const result = await waitForCompletion('recr_test_5xuy4w91xqz7d1w9u0t');

エラーと結果コード

ジョブ状態

状態説明次のステップ
pendingジョブはキューに入っています待機して再度ポーリング
processingジョブはアクティブに実行中待機して再度ポーリング
completedジョブ完了ステータスレポートをダウンロード
failedジョブで致命的なエラー発生エラーメッセージを確認し、アップロードをリトライ

一般的なエラーコード

コード説明解決方法
authentication_failure無効なAPIキーシークレットキーが正しいことを確認
not_foundジョブが見つかりませんrecurring_idが正しいことを確認
job_expiredジョブデータの有効期限切れジョブは30日間保持されます

試してみる

必須 - 1項目
あなたのIP: ...読み込み中...