> ## Documentation Index
> Fetch the complete documentation index at: https://docs.moove.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Moove API Keys

> Buat kunci API yang dibatasi untuk Moove API, salin sekali, dan cabut secara permanen ketika Anda selesai.

Buat kunci, salin sekali, pakai untuk memanggil Moove API.

<Info>
  **Hanya web**, di [moove.xyz/dashboard/api-keys](https://www.moove.xyz/dashboard/api-keys). Tidak ada padanan selulernya.
</Info>

## Bagaimana membuat kunci API?

<Steps>
  <Step title="Buka Kelola → Kunci API">
    Di dasbor web.
  </Step>

  <Step title="Beri nama">
    Sesuatu yang akan Anda kenali enam bulan lagi — layanan atau lingkungan tujuannya.
  </Step>

  <Step title="Pilih agen">
    **Moove Receive Agent** adalah yang tersedia. Agen itu membuka scope yang dibutuhkannya.
  </Step>

  <Step title="Salin kuncinya">
    <Warning>
      Kunci dalam teks biasa ditampilkan **sekali**, saat pembuatan. Salin sekarang dan simpan di pengelola rahasia Anda. Tutup dialognya tanpa menyalin dan kuncinya tidak bisa dipakai — buat yang lain.
    </Warning>
  </Step>
</Steps>

URL dasarnya adalah `https://api.moove.xyz`.

## Moove Agents, bukan scope mentah

Anda memilih **agen**, bukan untai izin. "Moove Receive Agent" adalah satuan yang bisa dipahami seorang pedagang; `payment_link:create` tidak.

| Agen                    | Status       | Scope yang diberikan                       |
| ----------------------- | ------------ | ------------------------------------------ |
| **Moove Receive Agent** | **Aktif**    | `payment_link:create`, `payment_link:read` |
| Moove Send Agent        | Segera hadir | —                                          |
| Moove Swap Agent        | Segera hadir | —                                          |
| Moove Ramp Agent        | Segera hadir | —                                          |

Ketiga agen yang segera hadir tampil nonaktif. Memilih salah satunya akan mencetak kunci yang tidak memberi apa-apa, jadi pemilihnya tidak mengizinkannya.

## Apa yang bisa & tidak bisa dilakukan kunci API

<Note>
  Sebuah kunci adalah **versi terbatas dari Anda**. Ia bertindak sebagai akun Anda dan hanya bisa melakukan sebagian dari apa yang bisa Anda lakukan.

  **Tidak ada endpoint yang memindahkan dana.** Tautan pembayaran selalu diselesaikan ke dompet bawaan Anda sendiri, dalam token dompet itu — pemanggilnya tidak bisa menentukan tujuan. Kunci yang bocor bisa membuat permintaan yang membayar *Anda*. Ia tidak bisa membayar orang lain.
</Note>

Sebuah kunci juga tidak bisa mencetak kunci lain. Pengelolaan kunci hanya terautentikasi lewat sesi, jadi kunci yang disusupi tidak bisa menaikkan haknya sendiri.

## Bagaimana menjaga kunci tetap aman?

<Warning>
  * Simpan di pengelola rahasia atau variabel lingkungan. Jangan pernah di kontrol versi.
  * Jangan pernah menempelkannya ke prompt, obrolan, isu atau tangkapan layar.
  * Pakai kunci terpisah per layanan, agar mencabut satu tidak menjatuhkan yang lain.
  * Cabut kunci mana pun yang Anda ragukan. Membuat yang baru hanya butuh hitungan detik.
</Warning>

## Berapa banyak kunci yang boleh saya punya?

Hingga **10 kunci aktif** per akun. Buat yang kesebelas dan permintaannya ditolak dengan `TOO_MANY_API_KEYS` — cabut dulu satu yang tak lagi Anda pakai.

<Tip>
  Batas itu adalah alasan untuk membatasi kunci per integrasi alih-alih per penerapan. Satu kunci per layanan yang benar-benar Anda jalankan lebih mudah dipahami, dan lebih mudah dicabut ketika ada yang berubah.
</Tip>

## Bagaimana mencabut kunci?

<Steps>
  <Step title="Buka menu kuncinya">
    Di **Kelola → Kunci API**, buka menu **…** pada baris kunci itu lalu pilih **Cabut**.
  </Step>

  <Step title="Konfirmasi">
    Klik **Cabut** sekali lagi untuk mengonfirmasi. Kuncinya langsung berhenti bekerja.
  </Step>
</Steps>

<Warning>
  **Pencabutan bersifat permanen.** Tidak ada pembatalan pencabutan. Teks biasanya tidak pernah disimpan, jadi kunci yang dicabut tidak akan pernah bisa dipakai lagi bahkan seandainya catatannya dipulihkan. Terbitkan kunci baru saja.
</Warning>

## Bagaimana memakai kunci?

Kirimkan di header `X-API-Key` pada setiap permintaan.

```bash theme={null}
curl -sS -X POST "https://api.moove.xyz/v1/payment-link" \
  -H "X-API-Key: $MOOVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "toAmount": "49.99" }'
```

[Authentication →](/api-reference/authentication)

## Sebelum panggilan pertama Anda

API menolak membuat tautan untuk akun yang tidak bisa menerima pembayaran. Pastikan Anda sudah mengklaim [Moove Handle](/id-id/brand/moove-handle) dan menetapkan dompet bawaan dengan [token settlement](/id-id/concepts/settlement-and-auto-routing) — jika tidak, Anda akan mendapat `409`.

## Apa yang bisa dibaca berikutnya

<CardGroup cols={3}>
  <Card title="Authentication" icon="lock" href="/api-reference/authentication">
    Cara kerja header-nya.
  </Card>

  <Card title="Moove Agentic Payments" icon="sparkles" href="/id-id/transact/moove-agentic-payments">
    Biarkan perkakas AI yang mengintegrasikan.
  </Card>

  <Card title="API Moove Payment Links" icon="link" href="/api-reference/moove-receive/moove-payment-links">
    Endpoint selengkapnya.
  </Card>
</CardGroup>

Dibatasi, bisa dicabut, milik Anda. Uang Anda. Gerakan Anda.
