Developer · Webhooks

Webhook bertanda tangan HMAC untuk siklus hidup off-ramp.

Ketika produk Anda memerlukan state siklus hidup asinkron, daftarkan endpoint webhook dan verifikasi setiap pengiriman. Tanda tangan mengikat timestamp ke isi mentah yang tepat sehingga Anda dapat menolak payload yang dirusak atau diputar ulang.

01

Event siklus hidup

EventMakna
deposit.createdDeposit penjual dibuat di Base
deposit.partially_filledDeposit terisi sebagian
deposit.filledDeposit terisi penuh
deposit.closedPenjual menutup atau menarik saldo yang tersisa
otc.takenDeposit OTC privat diambil oleh pembeli yang disetujui
02

Verifikasi setiap pengiriman

  1. 1Baca header X-Usdctofiat-Signature dalam bentuk t=<unix>,v1=<hex>.
  2. 2Buat payload yang ditandatangani sebagai string timestamp.rawBody menggunakan isi mentah yang belum diparsing.
  3. 3Hitung HMAC-SHA256 atas payload tersebut dengan rahasia endpoint Anda.
  4. 4Bandingkan dalam waktu konstan terhadap nilai hex v1 sebelum mempercayai event.
  5. 5Opsional, tolak pengiriman yang timestamp-nya lebih tua dari jendela waktu yang Anda tentukan.
03

Perlindungan replay adalah pilihan Anda

Penerima referensi di repo starters memperlakukan timestamp yang lebih dari 5 menit sebagai basi untuk melindungi dari replay. Jendela waktu tersebut diberlakukan oleh verifikator Anda, bukan pengirim, sehingga Anda dapat memperketat atau memperlonggarnya sesuai latensi dan toleransi percobaan ulang Anda.

Karena tanda tangan mencakup timestamp.rawBody, parse JSON hanya setelah pemeriksaan HMAC berhasil. Memverifikasi objek yang sudah diparsing alih-alih bytes mentah adalah cara paling umum yang membuat verifikasi tanda tangan subtil salah.

04

Daftar dan operasikan

  • Daftarkan endpoint dengan API key Peerlytics Anda; satu kunci mengautentikasi permukaan offramp dan Peerlytics.
  • Endpoint yang mengalami kegagalan pengiriman beruntun berulang dapat dinonaktifkan hingga Anda memperbaikinya.
  • Gunakan penerima di repo starters sebagai referensi verifikasi HMAC yang terbukti benar.
  • Perlakukan webhook sebagai petunjuk state; rekonsiliasi terhadap kebenaran onchain dengan deposits() bila diperlukan.

Common questions

Bagaimana webhook USDCtoFiat ditandatangani?

Setiap pengiriman membawa X-Usdctofiat-Signature: t=<unix>,v1=<hex>, HMAC-SHA256 atas string timestamp.rawBody. Hitung ulang HMAC dengan rahasia endpoint Anda atas isi mentah dan bandingkan dalam waktu konstan sebelum mempercayai event.

Bagaimana cara mencegah webhook yang diputar ulang?

Tolak pengiriman yang timestamp-nya bertanda tangan lebih tua dari jendela waktu yang Anda tentukan. Penerima referensi menggunakan 5 menit. Pengirim tidak memberlakukan jendela waktu, sehingga ini adalah tanggung jawab verifikator Anda.

Apakah saya memerlukan API key untuk webhook?

Ya. Membuat deposit tidak memerlukan izin, tetapi mendaftarkan endpoint webhook menggunakan API key Peerlytics. Kunci yang sama juga mengautentikasi API Peerlytics.