Skip to main content

Giới thiệu

Metadata cho phép bạn lưu trữ dữ liệu key-value của riêng mình trên các object của Dodo Payments, chẳng hạn như ID đơn hàng từ hệ thống của bạn hoặc tham chiếu CRM. Bạn có thể đính kèm metadata vào hầu hết các object, bao gồm payment, subscription, customer và product. Xem Các object được hỗ trợ để biết danh sách đầy đủ.

Tổng quan

Metadata tuân theo các quy tắc sau:
  • Khóa metadata có thể dài tối đa 40 ký tự (tối đa 100 ký tự đối với các usage event được tiếp nhận thông qua POST /events/ingest).
  • Giá trị metadata có thể là string, integer, number hoặc boolean. Giá trị string có thể dài tối đa 500 ký tự.
  • Objects, arrays và null không được chấp nhận làm giá trị metadata.
  • Bạn có thể thêm tối đa 50 cặp key-value metadata cho mỗi object. Request có nhiều hơn sẽ trả về MAXIMUM_KEYS_REACHED mã lỗi.
  • API không thể tìm kiếm hoặc lọc theo metadata, nhưng sẽ trả về metadata trong các API response và webhook.

Trường hợp sử dụng

Sử dụng metadata để:
  • Lưu trữ ID hoặc tham chiếu bên ngoài.
  • Thêm ghi chú nội bộ.
  • Liên kết các object của Dodo Payments với các bản ghi trong hệ thống của bạn.
  • Phân loại giao dịch.
  • Thêm các thuộc tính tùy chỉnh để reporting.

Thêm Metadata

Thêm metadata khi bạn tạo hoặc cập nhật một object thông qua API. Đối với product, bạn cũng có thể thêm metadata trong dashboard.

Qua API

Truyền một object metadata trong request body. Các ví dụ dưới đây sử dụng TypeScript SDK và giả định rằng client đã được khởi tạo:

Qua Dashboard UI (Chỉ dành cho Product)

Để thêm metadata vào product mà không cần viết code, hãy mở product trong Products và thêm các cặp key-value trong phần metadata. Bạn có thể thực hiện việc này khi tạo hoặc chỉnh sửa product.
Phần metadata của product trong dashboard Dodo Payments
Thành viên nhóm không làm việc với API có thể sử dụng dashboard để quản lý metadata của product, chẳng hạn như danh mục product.

Truy xuất Metadata

API response bao gồm metadata khi bạn truy xuất một object:
Việc truy xuất một checkout session (GET /checkouts/{id}) không trả về metadata. Response về trạng thái session chỉ chứa id, created_at, payment_id, payment_status, customer_email và customer_name. Để đọc metadata bạn đã đính kèm khi tạo session, hãy truy xuất payment tương ứng bằng payment_id được trả về.

Tìm kiếm và Lọc

API không thể tìm kiếm theo metadata. Để tìm một object theo giá trị metadata:
  1. Lưu các mã định danh quan trọng của bạn trong metadata.
  2. Liệt kê hoặc truy xuất các object thông qua API.
  3. Lọc kết quả trong code ứng dụng của bạn.

Thực tiễn tốt nhất

Tuân theo các hướng dẫn này để metadata luôn hữu ích.

Nên:

  • Sử dụng quy ước đặt tên nhất quán cho các key metadata.
  • Ghi lại schema metadata trong nội bộ.
  • Giữ value ngắn gọn và có ý nghĩa.
  • Chỉ sử dụng metadata cho dữ liệu tĩnh.
  • Cân nhắc sử dụng tiền tố thể hiện hệ thống nguồn, chẳng hạn như crm_id hoặc inventory_sku.

Không nên:

  • Lưu trữ dữ liệu nhạy cảm trong metadata.
  • Sử dụng metadata cho các value thường xuyên thay đổi.
  • Phụ thuộc vào metadata cho logic nghiệp vụ quan trọng.
  • Sao chép thông tin mà object đã chứa.
  • Sử dụng ký tự đặc biệt trong key metadata.

Object được hỗ trợ

Các object sau hỗ trợ metadata:

Webhook và Metadata

Payload webhook bao gồm metadata của object, vì vậy webhook handler của bạn có thể đối chiếu một event với các bản ghi riêng của bạn:
Lần sửa đổi cuối 26 tháng 9, 2026