# Integrasi

TIP

Dokumentasi API dapat Anda akses melalui https://developers.purwantara.id (opens new window)

# 1. Membuat Token

Buat token pada halaman Settings > API.

# 2. Membuat Channel Pembayaran

Parameter Deskripsi
TOKEN Token yang telah dibuat seperti pada langkah #1
PAYLOAD Data yang dibutuhkan untuk permintaan ke Purwantara. Selengkapnya dapat dilihat pada halaman API (opens new window).
CHANNEL Endpoint channel (virtual-account, qris, ewallet/ovo, ewallet/shopeepay, payment-link dan counter).
  • cURL
  • Nodejs
  • Go
  • Python
  • PHP
curl -X POST https://api.purwantara.id/v1/CHANNEL
  -H "Accept: application/json"
  -H "Authorization: Bearer TOKEN"
  -d 'PAYLOAD'

# 3. Menampilkan Respon pada Aplikasi Anda

Setiap respon dari permintaan diatas, dapat langsung digunakan pada aplikasi yang Anda buat dan digunakan untuk metode pembayaran kepada pelanggan Anda.

# 4. Webhook / Callback

Setiap kali terjadi perubahan pada suatu transaksi yang telah dibuat, Purwantara akan mengirimkan notifikasi pada URL yang bisa Anda daftarkan di Settings > Team > Callback URL.

Setiap notifikasi akan menyertakan tanda tangan yang menggunakan HMAC (opens new window). Dengan memverifikasi tanda tangan ini, Anda mengonfirmasi bahwa notifikasi tersebut dikirim oleh Purwantara.

# Langkah 1: Mengambil Data dari Permintaan HTTP

Anda perlu mengambil data dari permintaan HTTP, yaitu bagian headers dan payload, untuk digunakan dalam proses verifikasi tanda tangan. Contoh data headers dan payload adalah sebagai berikut:

# HEADERS
[
    "Accept" => "*/*",
    "Signature" => "8ba2b42168c2493e2bab000c1e00563fde688b6651f924f6ad9586e73ae66261",
    "User-Agent" => "PPN-WH",
    "Content-Type" => "application/json",
    "X-PPN-Delivery" => "a656aff8-e8e8-40bb-a6a1-8321dc51f02b"
]

# PAYLOAD
$payload = [
    "uuid" => "9cb83507-a0ab-4d59-ae53-123456789012",
    "event" => [
        "meta" => [
            "customer_phone" => "08123456789"
        ],
        "type" => "payment-link",
        "channel" => "OVO"
    ],
    "title" => "Demo",
    "amount" => "10000.0000",
    "status" => "ACTIVE",
    "paid_at" => null,
    "settle_at" => null,
    "channel_id" => 8,
    "created_at" => "2023-07-26T03:04:05.000000Z",
    "expires_at" => "2023-08-31T05:00:00.000000Z",
    "return_url" => null,
    "description" => "Demo",
    "external_id" => null,
    "payment_link_url" => "http://purwantara.id/share/payment-links/9cb83507-a0ab-4d59-ae53-123456789012"
];

# Langkah 2: Membuat Signature yang Diverifikasi

Dalam langkah ini, Anda akan menggunakan fungsi hash_hmac() untuk membuat tanda tangan (signature) dari payload yang diberikan dan menggunakan secret key yang telah ditentukan. Selanjutnya, Anda akan membandingkan tanda tangan yang dihitung dengan tanda tangan yang dikirimkan dalam headers.

$secret               = 'S3CRE7'; // Dari pengaturan Team
$payloadJson          = json_encode($payload);
$calculatedSignature  = hash_hmac('sha256', $payloadJson, $secret);
$receivedSignature    = $headers['Signature'];

if ($calculatedSignature === $receivedSignature) {
    // Tanda tangan valid, request berasal dari Purwantara
    // Lanjutkan dengan proses yang diperlukan
} else {
    // Tanda tangan tidak valid, request mungkin tidak sah
    // Lakukan tindakan yang sesuai, seperti menolak permintaan
}

# Sandbox

Kami telah menyediakan mode sandbox sehingga Anda dapat bermain dengan API tanpa membebankan biaya atau mentransfer uang sungguhan. Dalam mode sandbox, interaksi Anda tidak memengaruhi data langsung atau mengirim transaksi nyata melalui jaringan kami. Ini memberi Anda kesempatan untuk menguji integrasi Anda secara menyeluruh sebelum Live.

Platform URL
Platform utama https://sandbox.purwantara.id
API https://sandbox-api.purwantara.id
Simulator Pembayaran https://simulator.purwantara.id