> For the complete documentation index, see [llms.txt](https://docs.ipaymax.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipaymax.com/api-documentation.md).

# Dokumentasi API

Sistem Ipaymax menyediakan beberapa API untuk membuat transaksi pembayaran. Diantaranya Virtual Accounts, QRIS, Retail, E-Wallets, dan Credit Cards.

URL Sandbox:  [https://api-sandbox.ipaymax.com](https://api-sandbox.ipaymax.com/simulator/signature)

URL Production: [https://api.ipaymax.com](https://api-sandbox.ipaymax.com/simulator/signature)

## PERSIAPAN&#x20;

* Pendaftaran akun Ipaymax melalui <https://dashboard.ipaymax.com/auth/register>
* Pada halaman dashboard akan mendapatakan credentials Username dan PIN transaksi
* Authentikasi Headers:
  1. X-CLIENT-ID = Generated by system
  2. X-CLIENT-SECRET = Generated by system
  3. X-SIGNATURE = Signature setiap request transaksi
* Whitelist IP Address
* URL Callback : Support URL Callback untuk menerima status transaksi berhasil / gagal

Anda tetap dapat melakukan development ke server sandbox kami dengan menggunakan credentials yang kami siapkan sebagai berikut :&#x20;

**Sandbox Credentials**

* For Headers
  1. Client ID : 3346754028
  2. Client Secret : sandbox-ipaymax

     &#x20;
* For generate signature
  1. Server Key: Ipaymax\@3346754028

## **SIGNATURE**

Ipaymax akan menambahkan Signature di setiap permintaan transaksi. Signature adalah opsi lain untuk memverifikasi integritas pesan/permintaan. Logika Signature adalah menggabungkan setiap parameter lalu melakukan hash menggunakan Hmac256. Nilai hash menggunakan Server Key, dan berbeda untuk setiap merchant.&#x20;

Server Key akan didapatkan oleh merchant setelah melakukan proses pendaftaran dan sudah diverifikasi oleh admin Ipaymax.

Tahapan untuk membuat signature :

* Nilai pertama : PATH + METHOD
* Nilai kedua : PARAMS\_X + PARAMS Y. Ketika mengganti karakter kecuali alfanumerik, lalu atur ke huruf kecil.
* Rincian tentang nilai kedua diberikan pada bagian selanjutnya.
* Gabungkan nilai pertama dan kedua.
* Nilai akhir Hash menggunakan Hmac SHA256 dan Server Key.

Contoh signature buat transaksi:

{% code title="signature.php" %}

```phpdoc
$regex = '/[^0-9a-zA-Z]/';
$path = "/transaction/create/va";
$method = "POST";
$clientID = "3346754028";
$amount = "10000";
$partnerreff = "INVABCDE1234";
$serverKey = "Ipaymax@3346754028";
$bankcode = "BCAVA";
$expired = "20231223230000"
$secondvalue = strtolower(preg_replace($regex, "", $amount.$expired.$bankcode.$partnerreff.$clientID));
$signToString = $path.$method.$secondvalue;
$signature = hash_hmac('sha256', $signToString , $serverKey);
  
```

{% endcode %}

Contoh signature buat mengambil detail transaksi:

```
$regex = '/[^0-9a-zA-Z]/';
$path = "/transaction/detail/INV12345678";
$method = "GET";
$clientID = "3346754028";
$partnerreff = "INV12345678";
$serverKey = "Ipaymax@3346754028";

$secondvalue = strtolower(preg_replace($regex, "", $partnerreff.$clientID));
$signToString = $path.$method.$secondvalue;
$signature = hash_hmac('sha256', $signToString , $serverKey);
  
```

Periksa Signature menggunakan alat bantu simulasi:

<https://api-sandbox.ipaymax.com/simulator/signature>

List Path URL:

* Create Virtual Account: /transaction/create/va
* Create QRIS : /transaction/create/qris
* Create Retail : /transaction/create/retail
* Create E-Wallets : /transaction/create/ewallet
* Transaction Detail: /transaction/detail/{partner\_reference\_number}
* SNAP Checkout Transaction : /transaction/checkout
