> ## 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.

# Rekomi

> Jalankan program afiliasi di toko Dodo Payments Anda dengan Rekomi. Satu API key yang ditempelkan menghubungkan keduanya, dan Rekomi melacak penjualan serta membayar afiliasi Anda.

## Pendahuluan

[Rekomi](https://rekomi.com) adalah platform pelacakan dan manajemen afiliasi dengan integrasi native Dodo Payments. Seorang afiliasi membagikan tautan, dan Rekomi mencatat klik tersebut. Saat pengunjung itu membeli, Dodo Payments mengirimkan penjualan tersebut ke Rekomi, yang memberikan kredit kepada afiliasi yang tepat. Rekomi menghitung komisi dan membayar afiliasi Anda untuk Anda, di lebih dari 150 negara, termasuk formulir pajak.

Untuk menghubungkan, Anda menempelkan satu Dodo Payments API key dengan akses write ke Rekomi. Rekomi memvalidasi key tersebut, membuat endpoint webhook di akun Dodo Payments Anda, dan mengambil signing secret endpoint tersebut. Anda tidak perlu mengisi formulir webhook atau menempelkan apa pun kembali ke Dodo Payments.

<Info>
  Rekomi memberikan kredit penjualan kepada afiliasi saat pelanggan yang dirujuk menyelesaikan pembayaran satu kali, memulai langganan berbayar, atau membayar perpanjangan. Refund dan sengketa secara otomatis menarik kembali komisi tersebut.
</Info>

## Cara Kerjanya

Dodo Payments meng-host checkout di domainnya sendiri, sehingga rujukan afiliasi masuk ke penjualan sebagai metadata checkout:

1. Pengunjung mengeklik tautan afiliasi dan membuka situs Anda, tempat skrip Rekomi menyimpan referral di browser mereka.
2. Saat checkout, Anda melampirkan referral tersebut ke pembayaran sebagai metadata `rekomi_ref`.
3. Dodo Payments memproses pembayaran dan mengirimkan webhook bertanda tangan `payment.succeeded` ke endpoint yang dibuat Rekomi.
4. Rekomi mencocokkan referral dengan afiliasi, menghitung komisi berdasarkan jumlah penjualan sebelum pajak, dan mencatatnya.

Perpanjangan langganan tiba dengan cara yang sama, sehingga komisi berulang tidak memerlukan pekerjaan tambahan. Refund dan sengketa juga tiba melalui endpoint yang sama.

## Prasyarat

Sebelum menyiapkan integrasi ini, Anda memerlukan:

1. [Akun Dodo Payments](https://app.dodopayments.com) dalam mode live
2. [Akun Rekomi](https://app.rekomi.com/sign-up)
3. Dodo Payments API key dengan **akses write** yang diaktifkan, karena key read-only tidak dapat membuat webhook

## Memulai

<Steps>
  <Step title="Create an API Key with Write Access">
    <Warning>
      Aktifkan akses write pada key. Key read-only berhasil melewati validasi, tetapi tidak dapat membuat endpoint webhook, sehingga koneksi gagal di tengah proses.
    </Warning>

    Di dashboard Dodo Payments, buka **Developer → API Keys** dan klik **Add API Key**. Beri nama key tersebut `Rekomi` dan pastikan **Enable write access** tetap dicentang. Untuk detailnya, lihat [Authentication](/api-reference/introduction#authentication).
  </Step>

  <Step title="Paste the Key into Rekomi">
    Di Rekomi, buka **Setup → Connect payment processor**, pilih Dodo Payments, lalu tempelkan key tersebut. Rekomi memvalidasinya, membuat endpoint webhook di akun Anda, dan mengambil signing secret endpoint tersebut.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/ic2bWXoH5_Rw-GN5/images/integrations/rekomi/connect.png?fit=max&auto=format&n=ic2bWXoH5_Rw-GN5&q=85&s=2271768fc16cecec3196c8006e0c73ab" alt="Halaman penyiapan Dodo Payments Rekomi dengan satu kolom API key dan tombol koneksi" style={{ maxHeight: '500px', width: 'auto' }} width="1280" height="690" data-path="images/integrations/rekomi/connect.png" />
    </Frame>

    <Info>
      Setelah terhubung, Rekomi menggunakan key tersebut hanya untuk mengelola endpoint webhook dan menjalankan pemeriksaan kesehatan berkala. Penjualan Anda tiba melalui webhook bertanda tangan, bukan melalui API.
    </Info>
  </Step>

  <Step title="Install the Rekomi Script">
    Tambahkan skrip pelacakan Rekomi ke situs marketing Anda untuk menangkap klik afiliasi. Rekomi menampilkan snippet Anda, dengan ID program yang sudah diisi, di **Setup → Install**.

    ```html theme={null}
    <script
      async
      src="https://api.rekomi.com/api/v1/r/loader.js"
      data-program-id="YOUR_PROGRAM_ID"
    ></script>
    ```
  </Step>

  <Step title="Pass the Referral into Checkout">
    Lampirkan referral yang ditangkap ke setiap pembayaran sebagai metadata `rekomi_ref`. [Implementation Guide](#implementation-guide) menunjukkan caranya untuk setiap jenis checkout.
  </Step>

  <Step title="Done">
    Penjualan, perpanjangan, refund, dan sengketa kini secara otomatis memberikan dan menarik kembali kredit komisi afiliasi, dan Rekomi membayar afiliasi Anda.
  </Step>
</Steps>

## Panduan Implementasi

### Checkout Sessions melalui API

Di frontend, baca referral menggunakan `window.Rekomi.getReferral()` dan kirimkan ke backend bersama permintaan checkout. Di backend, tetapkan referral tersebut di `metadata`:

```typescript Node.js theme={null}
import DodoPayments from 'dodopayments';

// Reads DODO_PAYMENTS_API_KEY from the environment and defaults to live mode.
const client = new DodoPayments();

export async function createCheckout(productId: string, rekomiRef?: string) {
  const session = await client.checkoutSessions.create({
    product_cart: [{ product_id: productId, quantity: 1 }],
    customer: {
      email: 'customer@example.com',
      name: 'John Doe',
    },
    return_url: 'https://yoursite.com/success',
    metadata: {
      ...(rekomiRef ? { rekomi_ref: rekomiRef } : {}),
    },
  });

  return session.checkout_url;
}
```

Field `metadata.rekomi_ref` yang sama juga berfungsi pada produk langganan, sehingga tagihan pertama dan setiap perpanjangan memberikan kredit kepada afiliasi yang sama.

### Payments API

<Note>
  Contoh di bawah menggunakan `POST /payments`, yang **deprecated**. Contoh tersebut masih berfungsi untuk integrasi yang sudah ada. Integrasi baru sebaiknya menggunakan [Checkout Sessions](/developer-resources/checkout-session) (`POST /checkouts`), yang menerima `metadata` dengan cara yang sama.
</Note>

```typescript Node.js theme={null}
import DodoPayments from 'dodopayments';

// Reads DODO_PAYMENTS_API_KEY from the environment and defaults to live mode.
const client = new DodoPayments();

export async function createPayment(productId: string, rekomiRef?: string) {
  const payment = await client.payments.create({
    billing: {
      city: 'New York',
      country: 'US',
      state: 'NY',
      street: '123 Main St',
      zipcode: '10001',
    },
    customer: {
      email: 'customer@example.com',
      name: 'John Doe',
    },
    product_cart: [{ product_id: productId, quantity: 1 }],
    payment_link: true,
    metadata: {
      ...(rekomiRef ? { rekomi_ref: rekomiRef } : {}),
    },
  });

  return payment;
}
```

### Tautan Pembayaran Statis

Tambahkan referral ke tautan sebagai parameter query `metadata_rekomi_ref` datar, bukan dalam bentuk tanda kurung siku:

```javascript theme={null}
const ref = window.Rekomi?.getReferral?.();
let url = 'https://checkout.dodopayments.com/buy/YOUR_PRODUCT_ID';
if (ref) url += `?metadata_rekomi_ref=${encodeURIComponent(ref)}`;
// use url as the href on your Buy button
```

Dodo Payments menambahkan parameter query `metadata_*` ke metadata pembayaran, tempat Rekomi membacanya.

## Yang Dilacak

Rekomi menangani setiap jenis event penjualan sebagai berikut:

| Event | Yang terjadi |
| - | - |
| Pembayaran satu kali | Komisi diberikan berdasarkan jumlah penjualan sebelum pajak |
| Perpanjangan langganan | Komisi berulang, setiap tagihan tiba sebagai event pembayaran tersendiri |
| Refund | Komisi secara otomatis ditarik kembali, hingga sejumlah kredit yang diberikan |
| Sengketa | Komisi ditarik kembali segera setelah sengketa dibuka |

<Tip>
  Rekomi menghitung komisi berdasarkan jumlah penjualan sebelum pajak. Dodo Payments adalah Merchant of Record dan memungut pajak, sehingga afiliasi Anda mendapatkan penghasilan dari penjualan itu sendiri, bukan dari pajak yang ditambahkan oleh negara pembeli.
</Tip>

## Catatan Penting

* Rekomi mendaftarkan endpoint webhook hanya dengan event yang diperlukan. Jangan mengedit daftar event endpoint tersebut di dashboard Dodo Payments: pemeriksaan kesehatan Rekomi akan menandai koneksi jika ada event yang dihapus.
* Uji coba gratis tidak membuat pembayaran hingga masa uji coba berakhir, sehingga tidak ada komisi sampai tagihan pertama. [Uji coba berbayar](/features/subscription#paid-trials) menagihkan jumlah uji coba di muka.
* Memutuskan koneksi di Rekomi akan menghapus endpoint webhook dari akun Dodo Payments Anda.

## Sumber Daya Tambahan

<CardGroup cols={2}>
  <Card title="Rekomi's Dodo Payments Guide" icon="book-open" href="https://rekomi.com/docs/brands/install/dodo">
    Panduan penyiapan lengkap, pemecahan masalah, dan detail keamanan dalam dokumentasi Rekomi.
  </Card>

  <Card title="Affiliates Feature Guide" icon="users" href="/features/affiliates">
    Semua opsi integrasi afiliasi untuk Dodo Payments.
  </Card>
</CardGroup>

<Info>
  Untuk bantuan terkait integrasi, hubungi dukungan Rekomi di [support@rekomi.com](mailto:support@rekomi.com) atau dukungan Dodo Payments di [support@dodopayments.com](mailto:support@dodopayments.com).
</Info>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.