# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ipaymax.com/api-documentation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
