> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docku.mertani.com/llms.txt.
> For full documentation content, see https://docku.mertani.com/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docku.mertani.com/_mcp/server.

# Authentication

## **Base URL**

API dibangun menggunakan **REST API**. Mertani menerapkan `HTTPS `di setiap permintaan untuk meningkatkan keamanan, integritas dan privasi data. API ini tidak mendukung `HTTP`.Semua permintaan menggunakan base URL berikut:

```
https://app.mertani.co.id/external/v1
```

## Authorization

Semua permintaan ke API **wajib** menggunakan **Basic Authentication** melalui header Authorization. Kredensial yang digunakan berupa **Api\_key** dan **Secret\_key**.

```bash
Authorization: Basic <base64(api_key:secret_key)>
```

### Contoh

Jika Anda memiliki kredensial berikut:

* api\_key: `mertani_user`
* secret\_key: `mertani_secret`

Maka string yang diencode:

```
mertani_user:mertani_secret
```

Hasil Base64:

```
bWVydGFuaV91c2VyOm1lcnRhbmlfc2VjcmV0
```

Header yang dikirim:

```bash
Authorization: Basic bWVydGFuaV91c2VyOm1lcnRhbmlfc2VjcmV0
```

## Credential Structure

| **Field**   | **Deskripsi**                                                     |
| ----------- | ----------------------------------------------------------------- |
| api\_key    | Berfungsi sebagai `username` untuk identifikasi client            |
| secret\_key | Berfungsi sebagai `password` untuk autentikasi dan validasi akses |

> API Key dan Secret Key bersifat statis, kecuali dicabut atau diganti oleh pihak Mertani.

API key diberikan berdasarkan kebutuhan integrasi data pada instansi yang menjadi pelanggan Mertani. Setiap API Key digunakan untuk mengidentifikasi sumber permintaan dan memastikan akses API dilakukan secara aman.

API Key dan Secret Key bersifat sangat sensitif. Jangan pernah menyimpan atau mengekspos kredensial ini di sisi frontend (client-side), repository publik, atau tempat yang tidak aman.

***

## Best Practices

* Simpan kredensial di server-side environment variables
* Gunakan secret manager (misalnya: AWS Secrets Manager, GCP Secret Manager)
* Hindari hardcode API key di source code
* Lakukan rotasi API key secara berkala
* Gunakan mekanisme logging untuk mendeteksi penggunaan tidak sah