Skip to main content

소개

메타데이터를 사용하면 시스템의 주문 ID 또는 CRM reference와 같은 자체 key-value 데이터를 Dodo Payments objects에 저장할 수 있습니다. payments, subscriptions, customers, products를 비롯한 대부분의 objects에 메타데이터를 연결할 수 있습니다. 전체 목록은 Supported Objects를 참조하세요.

개요

메타데이터에는 다음 규칙이 적용됩니다:
  • 메타데이터 키는 최대 40자까지 사용할 수 있습니다(POST /events/ingest를 통해 수집된 사용량 이벤트의 경우 최대 100자).
  • 메타데이터 값은 문자열, 정수, 숫자 또는 부울 값일 수 있습니다. 문자열 값은 최대 500자까지 사용할 수 있습니다.
  • 객체, 배열 및 null는 메타데이터 값으로 허용되지 않습니다.
  • 객체당 최대 50개의 메타데이터 키-값 쌍을 추가할 수 있습니다. 이를 초과하는 요청은 MAXIMUM_KEYS_REACHED 오류 코드를 반환합니다.
  • API는 메타데이터로 검색하거나 필터링할 수 없지만, API 응답과 웹훅에 메타데이터를 반환합니다.

사용 사례

메타데이터를 사용하여 다음을 수행할 수 있습니다:
  • 외부 ID 또는 references를 저장합니다.
  • 내부 notes를 추가합니다.
  • Dodo Payments objects를 시스템의 records에 연결합니다.
  • transactions를 분류합니다.
  • reporting을 위한 custom attributes를 추가합니다.

메타데이터 추가

API를 통해 object를 create하거나 update할 때 메타데이터를 추가하세요. products의 경우 dashboard에서도 메타데이터를 추가할 수 있습니다.

API를 통한 추가

request body에 metadata object를 전달합니다. 아래 예제에서는 TypeScript SDK를 사용하며, 초기화된 client 를 가정합니다:

Dashboard UI를 통한 추가(Products만 해당)

코드를 작성하지 않고 product에 메타데이터를 추가하려면 Products에서 product를 열고 metadata section에 key-value 쌍을 추가하세요. product를 create하거나 edit할 때 이 작업을 수행할 수 있습니다.
Dodo Payments dashboard의 product metadata section
API를 사용하지 않는 team members는 dashboard를 사용하여 product categories와 같은 product metadata를 관리할 수 있습니다.

메타데이터 검색

object를 retrieve할 때 API responses에 메타데이터가 포함됩니다:
checkout session( GET /checkouts/{id} )을 retrieve해도 metadata 는 반환되지 않습니다. session status response에는 id, created_at, payment_id, payment_status, customer_email 및 customer_name 만 포함됩니다. session을 create할 때 연결한 메타데이터를 읽으려면 반환된 payment_id 를 사용하여 resulting payment를 retrieve하세요.

검색 및 필터링

API는 메타데이터를 기준으로 search할 수 없습니다. 메타데이터 값으로 object를 찾으려면 다음 단계를 따르세요:
  1. 중요한 identifiers를 메타데이터에 저장합니다.
  2. API를 통해 objects를 list하거나 retrieve합니다.
  3. application code에서 results를 filter합니다.

모범 사례

메타데이터를 유용하게 유지하려면 다음 guidelines를 따르세요.

권장 사항:

  • 메타데이터 키에 일관된 naming conventions를 사용합니다.
  • metadata schema를 내부적으로 document합니다.
  • 값을 짧고 의미 있게 유지합니다.
  • static data에만 메타데이터를 사용합니다.
  • source system을 나타내는 prefixes를 고려합니다. 예를 들어 crm_id 또는 inventory_sku 를 사용할 수 있습니다.

금지 사항:

  • 민감한 데이터를 메타데이터에 저장하지 않습니다.
  • 자주 변경되는 값에 메타데이터를 사용하지 않습니다.
  • 중요한 business logic에 메타데이터를 의존하지 않습니다.
  • object에 이미 포함된 정보를 중복하지 않습니다.
  • 메타데이터 키에 special characters를 사용하지 않습니다.

지원되는 Objects

다음 objects는 메타데이터를 지원합니다:

Webhooks 및 메타데이터

Webhook payload에는 object의 메타데이터가 포함되므로, webhook handler가 event를 자체 records와 일치시킬 수 있습니다:
마지막 수정일 2026년 9월 28일