はじめに
メタデータを使用すると、システムの注文 ID や CRM 参照情報など、独自のキーと値のデータを Dodo Payments オブジェクトに保存できます。支払い、サブスクリプション、顧客、商品など、ほとんどのオブジェクトにメタデータを付加できます。完全な一覧については、サポート対象オブジェクト を参照してください。概要
メタデータには次のルールがあります。- メタデータキーは最大40文字です(
POST /events/ingestを通じて取り込まれる使用量イベントの場合は最大100文字です)。 - メタデータ値には、文字列、整数、数値、またはブール値を指定できます。文字列値は最大500文字です。
- オブジェクト、配列、および
nullは、メタデータ値として受け付けられません。 - オブジェクトごとに最大50個のメタデータのキーと値のペアを追加できます。これを超えるリクエストは、
MAXIMUM_KEYS_REACHEDエラーコードを返します。 - APIではメタデータによる検索やフィルタリングはできませんが、APIレスポンスとWebhookにはメタデータが含まれます。
ユースケース
メタデータを使用して、次のことができます。- 外部 ID や参照情報を保存する。
- 社内メモを追加する。
- Dodo Payments オブジェクトをシステム内のレコードに関連付ける。
- トランザクションを分類する。
- レポート用のカスタム属性を追加する。
メタデータの追加
API を通じてオブジェクトを作成または更新するときに、メタデータを追加します。商品については、ダッシュボードからメタデータを追加することもできます。API 経由
リクエスト本文にmetadata オブジェクトを渡します。以下の例では TypeScript SDK を使用し、初期化済みの client を前提としています。
ダッシュボード UI 経由(商品のみ)
コードを記述せずに商品へメタデータを追加するには、Products で商品を開き、メタデータセクションにキーと値のペアを追加します。商品を作成または編集するときに操作できます。
メタデータの取得
オブジェクトを取得すると、API レスポンスにメタデータが含まれます。チェックアウトセッション(
GET /checkouts/{id})を取得しても、metadata は返されません。セッションステータスのレスポンスには、id、created_at、payment_id、payment_status、customer_email、customer_name のみが含まれます。セッションの作成時に付加したメタデータを読み取るには、返された payment_id を使用して、生成された支払いを取得します。検索とフィルタリング
API ではメタデータによる検索はできません。メタデータの値を使ってオブジェクトを検索するには、次の手順を実行します。- 重要な識別子をメタデータに保存します。
- API を通じてオブジェクトを一覧表示または取得します。
- アプリケーションコードで結果をフィルタリングします。
ベストプラクティス
メタデータを有効に活用するため、次のガイドラインに従ってください。推奨事項:
- メタデータキーには一貫した命名規則を使用する。
- メタデータスキーマを社内で文書化する。
- 値は短く、意味のあるものにする。
- メタデータは静的なデータにのみ使用する。
- ソースシステムを示すプレフィックスの使用を検討する。例:
crm_idやinventory_sku。
非推奨事項:
- 機密データをメタデータに保存しない。
- 頻繁に変更される値にメタデータを使用しない。
- 重要なビジネスロジックをメタデータに依存しない。
- オブジェクトにすでに含まれている情報を重複して保存しない。
- メタデータキーに特殊文字を使用しない。