Skip to main content

Pendahuluan

Metadata memungkinkan Anda menyimpan data key-value Anda sendiri pada objek Dodo Payments, seperti ID pesanan dari sistem Anda atau referensi CRM. Anda dapat melampirkan metadata ke sebagian besar objek, termasuk payments, subscriptions, customers, dan products. Lihat Supported Objects untuk daftar lengkapnya.

Ikhtisar

Metadata mengikuti aturan berikut:
  • Kunci metadata dapat memiliki panjang hingga 40 karakter (hingga 100 karakter untuk usage events yang diserap melalui POST /events/ingest).
  • Nilai metadata dapat berupa string, integer, number, atau boolean. Nilai string dapat memiliki panjang hingga 500 karakter.
  • Object, array, dan null tidak diterima sebagai nilai metadata.
  • Anda dapat menambahkan hingga 50 pasangan kunci-nilai metadata per object. Request dengan jumlah lebih banyak akan menghasilkan MAXIMUM_KEYS_REACHED kode error.
  • API tidak dapat melakukan pencarian atau pemfilteran berdasarkan metadata, tetapi API mengembalikan metadata dalam respons API dan webhook.

Use Cases

Gunakan metadata untuk:
  • Menyimpan ID atau referensi eksternal.
  • Menambahkan catatan internal.
  • Menautkan object Dodo Payments ke record dalam sistem Anda.
  • Mengategorikan transaksi.
  • Menambahkan atribut khusus untuk reporting.

Menambahkan Metadata

Tambahkan metadata saat Anda membuat atau memperbarui object melalui API. Untuk products, Anda juga dapat menambahkan metadata di dashboard.

Melalui API

Teruskan object metadata dalam request body. Contoh di bawah menggunakan TypeScript SDK dan mengasumsikan client telah diinisialisasi:

Melalui Dashboard UI (Hanya Products)

Untuk menambahkan metadata ke product tanpa menulis kode, buka product di Products dan tambahkan pasangan key-value di bagian metadata. Anda dapat melakukannya saat membuat atau mengedit product.
Product metadata section in the Dodo Payments dashboard
Anggota tim yang tidak bekerja dengan API dapat menggunakan dashboard untuk mengelola metadata product, seperti kategori product.

Mengambil Metadata

API responses menyertakan metadata saat Anda mengambil object:
Mengambil checkout session (GET /checkouts/{id}) tidak mengembalikan metadata. Status response session hanya berisi id, created_at, payment_id, payment_status, customer_email, dan customer_name. Untuk membaca metadata yang Anda lampirkan saat membuat session, ambil payment yang dihasilkan menggunakan payment_id yang dikembalikan.

Mencari dan Memfilter

API tidak dapat melakukan pencarian berdasarkan metadata. Untuk menemukan object berdasarkan nilai metadata:
  1. Simpan identifier penting Anda dalam metadata.
  2. List atau ambil object melalui API.
  3. Filter hasilnya dalam kode aplikasi Anda.

Praktik Terbaik

Ikuti panduan berikut agar metadata tetap bermanfaat.

Lakukan:

  • Gunakan konvensi penamaan yang konsisten untuk key metadata.
  • Dokumentasikan schema metadata Anda secara internal.
  • Buat nilainya singkat dan bermakna.
  • Gunakan metadata hanya untuk data statis.
  • Pertimbangkan prefix yang menunjukkan sistem sumber, misalnya crm_id atau inventory_sku.

Jangan lakukan:

  • Simpan data sensitif dalam metadata.
  • Gunakan metadata untuk nilai yang sering berubah.
  • Andalkan metadata untuk business logic yang penting.
  • Gandakan informasi yang sudah terdapat dalam object.
  • Gunakan karakter khusus dalam key metadata.

Supported Objects

Object berikut mendukung metadata:

Webhooks dan Metadata

Payload webhook menyertakan metadata object, sehingga webhook handler Anda dapat mencocokkan event dengan record Anda sendiri:
Terakhir diubah pada 28 September 2026