スケジュールAPI
スケジュールAPIを使用すると、定期支払いと自動送金をスケジュールで作成・管理できます。
利用可能なエンドポイント
- スケジュール作成 - POST /schedules
- スケジュール一覧 - GET /schedules
- スケジュール取得 - GET /schedules/:id
- スケジュール削除 - DELETE /schedules/:id
- スケジュール実行一覧 - GET /schedules/:id/occurrences
関連エンドポイント
- 課金スケジュール一覧 - GET /charges/schedules
- 送金スケジュール一覧 - GET /transfers/schedules
- 顧客スケジュール一覧 - GET /customers/:id/schedules
- 受取人スケジュール一覧 - GET /recipients/:id/schedules
概要
スケジュールは自動化された繰り返し操作を可能にします:
- 繰り返し課金 - スケジュールに従って顧客に自動課金
- 繰り返し送金 - 受取人への自動送金
- 柔軟な頻度 - 日次、週次、月次のスケジュール
- 実行追跡 - スケジュールの各実行を追跡
一般的なユースケース
- サブスクリプション課金(月額/年額課金)
- マーケットプレイスベンダーへのスケジュール支払い
- 定期寄付
- 会員費
- 自動コミッション支払い
スケジュールの仕組み
- 頻度(日次、週次、月次)を指定してスケジュールを作成
- スケジュールは指定された間隔で自動実行
- 各実行は「occurrence」(実行)を作成
- occurrenceは作成された実際の課金または送金にリンク
- スケジュールのステータスと実行結果を監視
認証
すべてのスケジュールAPIエンドポイントはシークレットキーによる認証が必要です。
スケジュール頻度
スケジュールは以下の頻度をサポートしています:
| 頻度 | 説明 | ユースケース例 |
|---|---|---|
daily | 指定時刻に毎日実行 | 日次支払い |
weekly | 指定曜日に週1回実行 | 週次サブスクリ プション |
monthly | 指定日に月1回実行 | 月次課金 |
スケジュールステータスのライフサイクル
スケジュールは以下のステータスを経由します:
active- スケジュールは実行中で、スケジュール通りに実行されますsuspended- スケジュールは一時停止中(再開可能)deleted- スケジュールは永久に無効化completed- スケジュールは終了日に達しました
実行(Occurrences)
スケジュールが実行されるたびに、occurrence(実行)が作成されます。実行には独自のステータスがあります:
scheduled- 実行は実行待ちキューに入っていますrunning- 実行は現在処理中successful- 実行は正常に完了failed- 実行は失敗(決済拒否、残高不足など)skipped- 実行はスキップされました(例:スケジュールが一時停止中)
ベストプラクティス
1. 失敗した実行の処理
すべてのスケジュールされた操作が成功するわけではありません。以下のWebhookハンドラーを実装してください:
schedule.occurrence.failed- 失敗した支払い/送金の処理schedule.occurrence.successful- 成功した操作の追跡
2. スケジュールの健全性監視
スケジュールのステータスと最近の実行を定期的に確認してください:
- 高い失敗率は顧客の支払い問題を示している可能性があります
- 一時停止されたスケジュールは再アクティブ化されるまで実行されません
3. 終了日の設定
固定期間のサブスクリプションにはend_dateを設定してください:
{
"period": "month",
"end_date": "2027-12-31"
}
4. メタデータの使用
サブスクリプションの詳細をメタデータに保存して、簡単に検索できるようにしてください:
{
"metadata": {
"plan": "premium",
"customer_id": "cust_123",
"subscription_id": "sub_456"
}
}
制限事項
- 最小スケジュール間隔:1日
- アカウントあたりの最大アクティブスケジュール数:制限についてはサポートにお問い合わせください
- 作成後のスケジュールは編集できません(削除して再作成が必要)
- 失敗した実行は自動的に再試行されません
エラー処理
スケジュールを使用する際の一般的なエラー:
| エラーコード | 説明 | 解決策 |
|---|---|---|
invalid_frequency | 無効なperiod値 | daily、weekly、monthlyを使用 |
invalid_start_date | 開始日が過去 | 将来の日付を使用 |
insufficient_balance | 送金のための残高不足 | スケジュール実行前に資金を追加 |
invalid_recipient | 受取人が見つからないか非アクティブ | 受取人が存在することを確認 |