• Apa itu API?

    API dapat dimanfaatkan oleh pengembang atau bisnis yang ingin membuat aplikasi untuk dihubungkan ke Paxful.


    Antarmuka pemrograman aplikasi (API) adalah sarana untuk dapat terhubung ke Paxful. Untuk informasi selengkapnya, klik di sini.

  • Menyiapkan Webhook

    Webhook memungkinkan Anda untuk menerima notifikasi event HTTPS secara real-time di marketplace Paxful. Misalnya, kami mengirim notifikasi kepada Anda saat jual beli baru dimulai atau ketika mitra jual beli mengirim pesan di obrolan jual beli. Hal ini mencegah Anda dari keharusan meminta API untuk perubahan pada objek yang mungkin atau mungkin tidak terjadi dan membantu Anda menghindari mencapai batas tarif Anda. Panduan ini akan menjelaskan bagaimana tepatnya Anda bisa menyiapkan Webhook dengan Paxful.

    Kami mendukung Webhook untuk event berikut:

    • Jual beli yang baru masuk di Paxful
    • Pesan yang diterima di obrolan jual beli
    • Lampiran yang diterima di obrolan jual beli
    • Seseorang sudah melihat profil Paxful Anda
    • Seseorang sudah melihat penawaran Anda
    • Mitra jual beli sudah membayar untuk bitcoinnya
    • Jual beli dibatalkan atau sudah kedaluwarsa
    • Bitcoin berhasil dijual
    • Bitcoin dibeli
    • Setoran bitcoin dikonfirmasi
    • Simpanan bitcoin masuk menunggu persetujuan
    • Umpan balik diterima dari mitra jual beli
    • Balasan umpan balik baru diterima

    Menyiapkan Webhook

    Catatan: Pastikan layanan Anda siap untuk menerima Webhook. Selama proses penyimpanan URL, layanan Anda harus mengajukan permintaan dengan judul "X-Paxful-Request-Challenge" dan memasukkannya dalam tanggapan apa adanya.

    Beginilah seharusnya judul permintaan kami ditampilkan dalam payload Anda (ini adalah contoh layanan Webhook dalam Node.js):

    RequestHeader.png

    1. Masuk ke akun Paxful Anda, arahkan ke nama pengguna di kanan atas halaman dan klik Pengaturan dari menu konteks yang muncul.
    ClickSettings.png

    Halaman Pengaturan akan muncul.

    2. Pada menu di sisi kiri halaman, klik Developer.
    Click_Developer.png

    Halaman Developer akan muncul.

    3. Jika Anda tidak memiliki kunci API, masukkan kode dua faktor pada kolom di bawah ini dan klik Tambahkan kunci API baru. Jika Anda sudah memiliki kunci API, Anda bisa melewati langkah ini. 
    AddAPIKey.png

    Kunci API baru Anda akan muncul di halaman Developer bersama dengan bagian tambahan.

    4. Salin URL dari aplikasi Anda.
    Buka bagian Webhook di halaman Developer Paxful. Tempelkan tautan ke dalam kolom Minta URL dan klik Simpan.

    Peringatan: Webhook hanya didukung oleh jenis alamat HTTPS. Alamat HTTP tidak akan berfungsi untuk tujuan ini.


    ClickSave.png

    Judul permintaan telah dikirim ke aplikasi Anda.

    Catatan: Kami memiliki batas waktu 10 detik. Jika kami tidak menerima tanggapan dari aplikasi Anda, URL tidak akan disimpan, dan Webhook tidak akan diterima.

    5. Jika berhasil, daftar event yang tersedia untuk berlangganan akan muncul di bawah ini. Centang kotak untuk memilih event dari daftar Berlangganan event.
    Events.png

    Catatan:

    • Setelah dipilih, event akan disimpan secara otomatis.
    • Jika tiga upaya gagal untuk mengirim informasi event ke aplikasi Anda, Webhook (URL) akan dinonaktifkan. 
    • Untuk memasukkan tautan baru, gantikan URL saat ini dengan yang baru dan klik Ubah
    • Untuk menonaktifkan Webhook Anda sepenuhnya, klik Hapus.
    • Untuk mengaktifkan kembali URL yang dinonaktifkan, klik Coba lagi.
      ClickRetry.png
       

    Jika permintaan URL berhasil disimpan, beginilah event kami akan ditampilkan di aplikasi Anda:

    WebhookexampleEvent.png

    Memverifikasi permintaan dari Paxful

    Paxful membuat string unik untuk aplikasi Anda dan membagikannya kepada Anda. Verifikasi permintaan dari Paxful tanpa ragu dengan memverifikasi tanda tangan menggunakan rahasia tanda tangan Anda.

    Pada setiap permintaan HTTP yang dikirimkan, kami menambahkan judul HTTPS "X-Paxful-Signature" . Tanda tangan dibuat dengan memadukan rahasia tanda tangan dengan isi permintaan yang kami kirimkan menggunakan hash kunci standar HMAC-SHA256.

    Catatan: Tanda tangan yang dihasilkan bersifat unik untuk setiap permintaan dan secara tidak langsung berisi semua informasi rahasia. Tanda tangan unik ini menjaga aplikasi Anda tetap aman, mencegah aktor jahat agar tidak menyebabkan kekacauan.

    Contoh di JavaScript

    
    const crypto = require('crypto');
    const express = require('express');
    const app = express();
    const port = 3000;
    const bodyParser = require('body-parser');

    Rahasia API Anda dari halaman https://paxful.com/account/developer:

    
    const apiSecret = 'maE5KV16FV0nDyh7XPm2F8f8FZTdtb5p';
    
    app.use(bodyParser.json());

    Ketika Anda menerima permintaan verifikasi alamat layanan, Anda harus mengajukan dengan judul "X-Paxful-Request-Challenge" dari permintaan tersebut dan memasukkannya ke tanggapan.

    
    app.use((req, res, next) => {
    

    Permintaan verifikasi alamat tidak berisi payload dan memerlukan tanda tangan.

    
      if (!Object.keys(req.body).length && !req.get('X-Paxful-Signature')) {
            console.log('Address verification request received.');
            const challengeHeader = 'X-Paxful-Request-Challenge';
            res.set(challengeHeader, req.get(challengeHeader));
            res.end();
        } else {
            next();
        }
    });

    Jika Anda menerima notifikasi event, Anda harus memverifikasi judul "X-Paxful-Signature". Jika permintaan berisi tanda tangan yang salah, jangan memprosesnya.

    
      app.use((req, res, next) => {
        const providedSignature = req.get('X-Paxful-Signature');
        const calculatedSignature = crypto.createHmac('sha256', apiSecret).update(JSON.stringify(req.body)).digest('hex');
        if (providedSignature !== calculatedSignature) {
            console.log('Request signature verification failed.');
            res.status(403).end();
        } else {
            next();
        }
    });

    Sekarang Anda bisa memproses event.

    
      app.post('*', async (req, res) => {
        console.log('New event received:');
        console.log(req.body);
        res.end();
    });
    
    app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`));

    Hubungi Dukungan kami jika ada pertanyaan tambahan apa pun. Anda juga bisa mempelajari selengkapnya tentang API layanan kami di dokumentasi developer.