Lewati ke konten utama

Endpoint HTTP


Peta ruteโ€‹

๐Ÿ” perlu login ยท ๐ŸŒ publik ยท ๐Ÿ”“ publik tapi diverifikasi signature/token


Webhook masukโ€‹

POST /webhook/duitkuโ€‹

Callback pembayaran dari Duitku.

Nama rutewebhook.duitku
CSRFDikecualikan
VerifikasiMD5(merchantCode + amount + merchantOrderId + apiKey) dibanding field signature
BalasanSelalu 200 โ€” OK bila diproses, IGNORED bila signature salah

Field payload yang dibaca:

FieldKegunaan
merchantOrderIdHarus RESV-{payment_id}
resultCode00 = lunas
paymentCodeDipetakan ke payments.payment_method
merchantCode, amount, signatureVerifikasi

Seluruh payload disimpan ke payments.webhook_payload.

Selalu balas 200

Non-200 membuat Duitku mengulang callback tanpa henti untuk pembayaran yang sudah selesai. Semua kegagalan di jalur ini ditelan dan dilog.

GET /api/webhooks/whatsapp/{account}โ€‹

Verifikasi kepemilikan webhook.

GayaPerilaku
MetaKembalikan nilai hub_challenge apa adanya (text/plain)
Token sederhanaKembalikan OK
Token salah403 Forbidden

Token dibaca dari hub_verify_token, verify_token, atau token.

POST /api/webhooks/whatsapp/{account}โ€‹

Penerima pesan masuk dari gerbang WhatsApp.

Nama rutewebhooks.whatsapp.handle
VerifikasiHeader X-Webhook-Token โ†’ body token โ†’ query ?token=
Sumber token yang diharapkanwhatsapp_business_accounts.webhook_verify_token, fallback WHATSAPP_WEBHOOK_VERIFY_TOKEN
Balasan sukses200 {"ok": true}
Payload tak dikenali200 {"ok": true, "ignored": true}
Token salah403 {"ok": false, "error": "invalid token"}

Perilaku: langsung menitipkan pesan ke antrean pekerjaan dan menjawab 200 โ€” tidak menunggu AI selesai.

URL yang didaftarkan ke Jasnita:

{APP_URL}/api/webhooks/whatsapp/{id_akun}?token={verify_token}
Kenapa token di query string

Toschat tidak mengirim header autentikasi apa pun pada callback-nya.


Halaman publikโ€‹

GET /antrianโ€‹

Kios ambil nomor. Menampilkan form pilih Poli + Dokter (hanya yang is_active), dengan gambar latar dari Pengaturan.

POST /antrianโ€‹

Membuat nomor antrian.

FieldValidasi
poly_idwajib, integer, harus ada di polyclinics
doctor_idwajib, integer, harus ada di doctors

Balasan: redirect ke /antrian dengan session queue_ticket berisi number (3 digit) dan date.

GET /dashboard-antrianโ€‹

Papan tayang untuk TV. Menampilkan panggilan terbaru, semua loket aktif, video YouTube opsional, teks berjalan, dan gambar latar.

GET /booking/thanksโ€‹

Halaman terima kasih; dibuka Duitku setelah pembayaran (DUITKU_RETURN_URL).


Rute panelโ€‹

GET /admin/chat/media?p={path}โ€‹

Proksi media Chat Rooms.

Nama ruteadmin.chat.media
PenjagaanCek login + izin halaman Chat Rooms
PerilakuUnduh berkas dari Jasnita dengan Bearer token server-side, alirkan ke browser

Bearer token tidak pernah menyentuh browser.

GET /admin/queue-dashboardโ€‹

Redirect permanen ke /dashboard-antrian.

Halaman Filamentโ€‹

PathHalamanPermission
/adminDashboardโ€”
/admin/chat-roomsChat RoomsView:ChatRoomsPage
/admin/simrs-syncSIMRS SyncView:SimrsSync
/admin/queue-boardAntrian LoketView:QueueBoardPage
/admin/api-sdkAPI & SDKView:ApiSdkPage

Resource Filamentโ€‹

Semua mengikuti pola /admin/{plural-kebab}:

PathResourceGrup menu
/admin/patientsPasienIntegrasi SIMRS
/admin/doctorsDokterIntegrasi SIMRS
/admin/polyclinicsPoliklinikIntegrasi SIMRS
/admin/doctor-schedulesJadwal DokterIntegrasi SIMRS
/admin/appointmentsJanji TemuIntegrasi SIMRS
/admin/billingsTagihanIntegrasi SIMRS
/admin/hospital-queuesAntrian RSIntegrasi SIMRS
/admin/contactsKontakCRM
/admin/chat-labelsChat LabelsCRM
/admin/ai-agentsAI AgentsCRM
/admin/whatsapp-business-accountsWhatsApp BusinessCRM
/admin/booking-requestsBooking Requests (baca-saja)CRM
/admin/packagesPackagesCRM
/admin/token-pricesToken PricesCRM
/admin/token-usagesToken UsageCRM
/admin/follow-up-managementsFollow-up ManagementCRM
/admin/usersUserPengaturan
/admin/settingsPengaturanPengaturan
/admin/shield/rolesPeran UserPengaturan

Endpoint keluarโ€‹

Ke Duitkuโ€‹

EndpointHeader
POST {base}/api/merchant/createInvoicex-duitku-signature (SHA-256), x-duitku-timestamp, x-duitku-merchantcode

Base: https://api-sandbox.duitku.com atau https://api-prod.duitku.com.

Ke Jasnita Toschatโ€‹

Semua ber-Bearer token, timeout 30 detik, retry sekali kalau HTTP 401.

EndpointFungsi
POST /api/v1/oauth/tokenAmbil access token (form-urlencoded)
POST /api/v1/chat/sendKirim teks / media / template
GET /api/v1/message-template/getDaftar template
POST /api/v1/chat/mark-as-readTandai satu pesan dibaca
POST /api/v1/chat/mark-as-read-by-conversation-idTandai percakapan dibaca
GET /api/v1/file?p=Unduh media
POST /api/v1/webhook/updateDaftarkan URL webhook
GET /api/v1/subscriptionsDaftar channel (uji koneksi)
GET /api/v1/contactDaftar kontak (paginasi)
GET /api/v1/chatpanel/get-with-filter/{status}/{filter}Daftar percakapan
POST /api/v1/chatpanel/get-detailIsi thread
GET /api/v1/chatpanel/get-status-count-with-status-filter/...Jumlah per status

Base URL disimpan per akun di gateway_base_url.

Ke penyedia LLMโ€‹

Endpoint mengikuti API masing-masing provider; kredensial per AI Agent.

Ke Inimediaโ€‹

Base: INIMEDIA_API_BASE_URL, autentikasi client_id + client_secret.