> For the complete documentation index, see [llms.txt](https://payana-saas.gitbook.io/payana-saas-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://payana-saas.gitbook.io/payana-saas-docs/lainnya/faq.md).

# FAQ & Troubleshooting

## Pertanyaan umum

### Apakah karyawan perlu tahu cara pakai wallet crypto?

Tidak. Login memakai email atau Google lewat Privy, dan Smart Account dibuatkan otomatis di baliknya. Karyawan tidak pernah melihat seed phrase, alamat wallet mentah (kecuali ingin melihatnya di halaman pengaturan), atau perlu memegang ETH.

### Kenapa saya harus bayar gas untuk aktivasi vault, tapi karyawan tidak pernah bayar gas?

Aktivasi vault (deploy `CompanyVault`) adalah transaksi satu kali yang dilakukan HR sebagai pemilik perusahaan, memakai wallet mereka sendiri. Setelah aktif, vault itu sendiri menjadi Paymaster untuk karyawannya — jadi HR membayar sekali di awal, karyawan tidak pernah membayar sama sekali untuk transaksi rutin.

### Apa bedanya EWA dan kasbon?

EWA menarik gaji yang **sudah dihasilkan** (bagian dari stream yang sudah berjalan), instan tanpa persetujuan. Kasbon adalah uang muka dari **estimasi gaji bulanan** (belum tentu sudah dihasilkan penuh), butuh persetujuan HR sebelum cair, dan dilunasi otomatis dari klaim gaji berikutnya. Detail: [Kasbon](/payana-saas-docs/produk/kasbon.md).

### Kenapa harus di blockchain? Apa nggak lebih rumit dari database biasa?

Kompleksitas teknis itu memang ada, tapi disembunyikan sepenuhnya dari pengguna akhir — karyawan dan HR tidak pernah berinteraksi langsung dengan blockchain. Yang mereka dapat sebagai gantinya: aturan yang tidak bisa diubah sepihak, jejak audit yang permanen, dan bukti kerja yang bisa diverifikasi tanpa perantara. Detail alasan lengkap: [Apa itu Payana?](/payana-saas-docs/pengenalan/pengenalan.md).

***

## Troubleshooting teknis

### "Data saya tidak muncul" di frontend

Penyebab paling umum: mismatch antara alamat EOA (login) dan Smart Account. Pastikan kode yang membaca data karyawan memakai `smartAccountAddress ?? address`, bukan `address` saja. Lihat [Konvensi Kunci](/payana-saas-docs/arsitektur/konvensi-kunci.md).

### Data ada di satu layanan tapi tidak di layanan lain

Kemungkinan besar `payana-contract`, `payana-backend`, dan `payana-indexer` menunjuk ke generasi alamat kontrak yang berbeda. Periksa `PAYROLL_FACTORY_ADDRESS`/`PAYROLL_CONTRACT_ADDRESS` di ketiga `.env` — harus identik.

### App Service Azure menampilkan "Application Error"

Buka **Log stream** di Portal Azure untuk App Service terkait — penyebab paling umum adalah environment variable yang belum diset, membuat container crash sebelum sempat listen di port manapun.

### Error CORS di console browser

`FRONTEND_URL` di backend tidak cocok persis dengan origin yang dikirim browser — periksa skema (`https://`), tanpa garis miring di akhir. Restart App Service backend setelah mengubah App Settings; perubahan tidak berlaku otomatis tanpa restart.

### Backend/indexer tidak bisa konek ke database

Periksa rule firewall Azure PostgreSQL — "Allow public access from any Azure service" harus aktif. Ini terpisah dari rule allowlist IP yang dipakai untuk akses dari mesin lokal.

### Kasbon yang diajukan karyawan tidak kunjung cair

Kasbon butuh persetujuan HR (`approveAdvance`) sebelum dana ditransfer — ini bukan bug, tapi memang bagian dari alur. Periksa halaman `/hr/kasbon` untuk pengajuan yang masih menunggu.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://payana-saas.gitbook.io/payana-saas-docs/lainnya/faq.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
