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

# Pendahuluan

> API Dodo Payments menyediakan endpoint yang komprehensif untuk pemrosesan pembayaran, manajemen langganan, dan pengiriman produk digital. API RESTful kami mengikuti standar industri dengan respons terperinci untuk semua operasi.

<Card title="SDKs & Libraries" icon="code" href="/developer-resources/dodo-payments-sdks">
  Percepat integrasi Anda dengan menggunakan SDK resmi untuk <strong>TypeScript</strong>, <strong>Python</strong>, <strong>Go</strong>, <strong>PHP</strong>, <strong>Java</strong>, <strong>Kotlin</strong>, <strong>C#</strong>, <strong>Ruby</strong>, dan <strong>React Native</strong>. Perpustakaan ini menyederhanakan permintaan API, otentikasi, dan penanganan kesalahan, sehingga Anda dapat fokus membangun pengalaman pembayaran yang hebat.
</Card>

## URL Lingkungan

* **Mode Uji**: [`https://test.dodopayments.com`](https://test.dodopayments.com)
* **Mode Langsung**: [`https://live.dodopayments.com`](https://live.dodopayments.com)

<Note>
  Pelajari lebih lanjut tentang [Mode Uji vs Mode Langsung](/miscellaneous/test-mode-vs-live-mode).
</Note>

## Manajemen Kunci API dan Otentikasi

<Steps>
  <Step title="Access API Keys">
    Navigasikan ke **Developer → API Keys** di dasbor Anda untuk mengelola kunci Anda.
  </Step>

  <Step title="Generate a New Key">
    Pilih **Add API Key**, berikan nama deskriptif, dan konfigurasikan akses tulis:

    * **Aktifkan akses tulis** (dicentang): Izin baca dan tulis penuh untuk semua operasi API
    * **Aktifkan akses tulis** (tidak dicentang): Akses hanya baca - hanya dapat mengambil data (pembayaran, langganan, pelanggan, produk). Tidak dapat membuat atau memodifikasi sumber daya.

    <Tip>
      Hapus centang "Enable write access" untuk integrasi dasbor, alat analitik, dan sistem mana pun yang hanya perlu melihat data tanpa membuat perubahan.
    </Tip>
  </Step>

  <Step title="Store Your Key Securely">
    Salin kunci yang dihasilkan segera dan pastikan disimpan dengan aman.
  </Step>

  <Step title="Authenticate Your API Requests">
    Gunakan kunci API Anda untuk mengotentikasi semua permintaan. Terapkan format otorisasi berikut:

    ```bash theme={null}
    Authorization: Bearer YOUR_API_KEY
    ```

    <Warning>
      Jangan pernah mengekspos kunci API rahasia Anda di kode sisi klien atau repositori publik.
    </Warning>
  </Step>
</Steps>

## Format Respons

<CodeGroup>
  ```json Success Response theme={null}
  {
    "id": "pay_1234567890",
    "status": "completed",
    "amount": 2999,
    "currency": "USD",
    "created_at": "2024-01-15T10:30:00Z"
  }
  ```

  ```json Error Response theme={null}
  {
    "code": "INVALID_REQUEST",
    "message": "The request contains invalid parameters"
  }
  ```
</CodeGroup>

## Batasan Laju

API kami menggunakan sistem pembatasan laju dual-window dengan perlindungan lonjakan. Batas diterapkan berdasarkan metode otentikasi dan tingkat bisnis Anda.

### Batas Default (Tier 0)

| Jendela                   | Batas          |
| ------------------------- | -------------- |
| Per Detik (Lonjakan)      | 40 permintaan  |
| Per Menit (Berkelanjutan) | 240 permintaan |

### Tingkatan Bisnis

Batas laju yang lebih tinggi tersedia untuk bisnis dengan kebutuhan API yang meningkat:

| Tier             | Burst (per detik) | Sustained (per menit) |
| ---------------- | ----------------- | --------------------- |
| Tier 0 (Default) | 40                | 240                   |
| Tier 1           | 100               | 1.000                 |
| Tier 2           | 500               | 5.000                 |

<Tip>
  Hubungi dukungan untuk meningkatkan bisnis Anda ke tingkatan batas laju yang lebih tinggi.
</Tip>

### Permintaan Tidak Diautentikasi

Permintaan tanpa header otentikasi yang valid dibatasi berdasarkan alamat IP:

| Jendela              | Batas          |
| -------------------- | -------------- |
| Per Detik (Lonjakan) | 20 permintaan  |
| Per Menit (Bertahap) | 100 permintaan |

### Header Batas Laju

Pantau penggunaan Anda dengan header respons berikut:

* `X-RateLimit-Limit` - Maksimum permintaan yang diizinkan
* `X-RateLimit-Remaining` - Permintaan tersisa dalam jendela saat ini
* `X-RateLimit-Reset` - Waktu saat batas laju direset

<Note>
  Saat Anda melebihi batas laju, API mengembalikan respons `429 Too Many Requests`. Terapkan backoff eksponensial dalam logika percobaan ulang Anda.
</Note>

## Penanganan Kesalahan

Untuk mengelola kesalahan secara efektif, lihat bagian *Kode Kesalahan* dan *Kegagalan Transaksi* untuk panduan terperinci.

<CardGroup cols={2}>
  <Card title="Error Codes" icon="triangle-exclamation" href="/api-reference/error-codes">
    Telusuri detail kesalahan yang komprehensif dan solusinya.
  </Card>

  <Card title="Transaction Failures" icon="circle-exclamation" href="/api-reference/transaction-failures">
    Dapatkan wawasan tentang masalah transaksi umum dan solusinya.
  </Card>
</CardGroup>

## Webhook

Terima pemberitahuan waktu nyata tentang peristiwa pembayaran. Lihat [Panduan Webhook](/developer-resources/webhooks) kami untuk instruksi penyiapan.

<Card title="Webhook Guide" icon="webhook" href="/developer-resources/webhooks">
  Siapkan webhook untuk pemberitahuan waktu nyata dan penanganan peristiwa.
</Card>

## Panduan Pengembang Terkait

Jelajahi panduan komprehensif kami untuk memahami cara mengimplementasikan fitur utama menggunakan API:

Learn how to integrate one-time payments, checkout sessions, and payment links into your application
