# Integrasi akun dan pembelian Licentivo

Panduan ini menjelaskan penyedia Licentivo saat ini. Pedagang yang menggunakan sistem lisensi lain dapat memilih [penyedia HTTP kustom](/id/launch-documents/external-licensing/); mode tersebut tidak memanggil Licentivo atau memerlukan kunci API-nya.

## Konfigurasi administrator

1. Buat produk dan kebijakan di Licentivo.
2. Konfigurasikan kunci manajemen baca/tulis di **System settings → Licentivo** Launch. Origin Licentivo ditetapkan ke `https://www.licentivo.com`.
3. Pilih kebijakan untuk setiap versi paket penjualan Launch. Launch membaca produk, versi kebijakan, dan pengaturan tampilan runtime.
4. Launch mendaftarkan koneksi kepercayaan akun sandbox/live terpisah di bawah satu koneksi manajemen Licentivo, termasuk kunci publik penandatanganan identitas dan origin pedagang.

Kunci manajemen tetap terenkripsi pada server pedagang. File instalasi klien hanya berisi informasi rute publik dan kunci produk publik yang dipatok.

## Urutan API sisi server

Semua path berikut berada di Licentivo dan dipanggil Launch dengan kredensial manajemennya:

| Endpoint | Tujuan |
| --- | --- |
| `GET /api/v1/products` | Penemuan produk |
| `GET /api/v1/policies`, `GET /api/v1/policies/{id}` | Penemuan kebijakan dan pemeriksaan versi |
| `GET /api/v1/launch/connections` | Temukan koneksi kepercayaan origin/lingkungan |
| `POST /api/v1/launch/connections`, `PUT /api/v1/launch/connections/{id}` | Daftarkan/perbarui kunci identitas publik dan perutean |
| `PUT /api/v1/launch/connections/{id}/plans/{plan}` | Daftarkan versi paket penjualan yang tidak dapat diubah dan pemetaan kebijakan Licentivo |
| `POST /api/v1/launch/connections/{id}/events` | Kirim snapshot pembelian absolut berversi |
| `GET /api/v1/launch/connections/{id}/events/{event}` | Pulihkan/periksa hasil asli |
| `POST /api/v1/launch/connections/{id}/events/{event}/retry` | Coba ulang peristiwa yang sama setelah peninjauan |
| `POST /api/v1/launch/connections/{id}/session-revocations` | Beri tahu pencabutan akun/sesi |
| `GET /api/v1/launch/connections/{id}/session-revocations/{event}` | Verifikasi tanda terima pencabutan |

Launch mencatat pembayaran terverifikasi, cakupan berbayar yang tidak dapat diubah, dan tugas keluar dalam satu transaksi lokal. Worker mengirim tanggal pembelian absolut lengkap dan ID peristiwa stabil. Hanya tanda terima `applied` yang mengonfirmasi sinkronisasi; penerimaan HTTP saja tidak.

Pengembalian dana dan pembalikan yang dikonfirmasi menghapus cakupan pesanan terkait. Snapshot lengkap berikutnya dapat mempertahankan pembelian dasar aktif, mempersingkat masanya, memulihkan paket lebih rendah, atau menghentikan seluruh cakupan. Percobaan ulang tidak pernah menambahkan sejumlah hari lagi. Pengikatan lisensi lama yang diterbitkan menggunakan peristiwa migrasi eksplisit, bukan replay otomatis perintah manajemen lama.

## Alur aplikasi pelanggan

1. Aplikasi masuk ke Launch menggunakan sesi akun desktop.
2. `POST /api/v1/software/products/{id}/identity` di Launch mengembalikan assertion identitas yang berlaku maksimal 120 detik, terikat pada sesi nyata, produk, lingkungan, issuer, dan audience.
3. Paket Launch meneruskannya dalam memori ke SDK resmi, yang menukarkannya dengan Licentivo di `POST /api/v1/launch/exchange`.
4. Licentivo menerbitkan kredensial perangkat dan izin bertanda tangan. SDK memeriksa setiap tindakan yang dilindungi, kebijakan perangkat, status runtime, dan aturan offline.

Login Launch, pesanan berbayar, atau pembelian tersinkronisasi bukan izin runtime. Endpoint `/credential` lama mengembalikan HTTP 410. Penyampaian penyedia kustom adalah API terpisah bercakupan pemilik dan tidak memulihkan endpoint tersebut.

Daftar perangkat, kuota pelepasan, generasi pengikatan, dan pemulihan logout tetap menjadi tanggung jawab Licentivo. Pencabutan sesi/akun menggunakan pemberitahuan persisten dengan tanda terima per lingkungan; pencabutan offline tetap dibatasi oleh grant SDK yang sudah diterbitkan.

Lihat [integrasi aplikasi](/id/launch-documents/software-sdk-integration/), [batas pembelian/akun](/id/launch-documents/account-purchase-boundary/), [integrasi manual](/id/launch-documents/manual-integration/), dan [penerimaan](/id/launch-documents/acceptance/). Implementasi berada di `internal/adapters/licentivo/launch_bridge.go`, `internal/app/launch_trust.go`, `internal/app/purchase_sync.go`, dan `internal/app/identity.go`.
