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

一括ステータスレポートのダウンロード

完了した一括課金スケジュール作成ジョブの詳細なステータスレポートをダウンロードします。レポートには、元のCSVデータに加えて、各行の作成ステータスとエラーメッセージを示す追加カラムが含まれます。


🔑API認証情報

リクエストパラメータ

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

レスポンス

200

レポートダウンロード

ステータスレポートを含むCSVファイルを返します。レスポンスのContent-Typeはtext/csvです。

CSVカラムに含まれる内容:
  • アップロードされたCSVのすべての元のカラム
  • status - 行処理ステータス(successまたはfailed)
  • schedule_id - 成功した行の作成されたスケジュールID (schd_*)
  • error_code - 失敗した行のエラーコード
  • error_message - 失敗した行の詳細なエラー説明
出力例:

customer_key,customer,card,amount,description,every,period,days_of_month,start_date,end_date,status,schedule_id,error_code,error_message sub_001,cust_test_abc123,,100000,Monthly plan,1,month,1,2025-02-01,2026-01-31,success,schd_test_xyz789,, sub_002,cust_test_invalid,,50000,Basic plan,1,month,15,2025-02-01,,failed,,invalid_customer,Customer not found

400

不正なリクエスト

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

一般的な原因:
  • 無効なrecurring_id形式
  • ジョブがまだ完了していない(pendingまたはprocessing中)

401

認証エラー

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

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

404

見つかりません

一括作成ジョブが見つからないか、レポートが利用できません。

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

5xx

サーバーエラー

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

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

コードサンプル

# 一括作成ステータスレポートをダウンロード
curl https://api.omise.co/recurring_exports/recr_test_5xuy4w91xqz7d1w9u0t/download \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-o status_report.csv

ステータスレポートの処理

レポートをダウンロードした後、失敗した行を処理できます:

import csv

def process_status_report(filepath):
successful = []
failed = []

with open(filepath, 'r') as f:
reader = csv.DictReader(f)
for row in reader:
if row['status'] == 'success':
successful.append({
'customer_key': row['customer_key'],
'schedule_id': row['schedule_id']
})
else:
failed.append({
'customer_key': row['customer_key'],
'error_code': row['error_code'],
'error_message': row['error_message']
})

print(f"Successful: {len(successful)}")
print(f"Failed: {len(failed)}")

# 失敗した行をリトライするか、関連チームに通知
for fail in failed:
print(f" - {fail['customer_key']}: {fail['error_message']}")

return successful, failed

successful, failed = process_status_report('status_report.csv')

エラーと結果コード

行ステータス値

ステータス説明
successスケジュールが正常に作成されました
failedスケジュールの作成に失敗しました

レポート内の一般的なエラーコード

コード説明解決方法
invalid_customer顧客IDが見つかりません顧客が存在し、アクティブであることを確認
no_card_attached顧客に支払いカードがない顧客にカードを紐付け
invalid_cardカードIDが見つからないか期限切れ有効なカードを使用するか、削除してデフォルトを使用
invalid_amount金額がゼロ、負、または無効正の整数の金額を指定
invalid_period期間の値が認識されませんday、week、またはmonthを使用
invalid_days_of_month無効な日の値1-28の値を使用
invalid_date_format日付形式が認識されませんYYYY-MM-DD形式を使用
start_date_in_past開始日が過去現在または将来の日付を使用
end_date_before_start終了日が開始日より前終了日が開始日より後であることを確認
duplicate_schedule顧客のスケジュールが既に存在既存のスケジュールを確認

試してみる

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