Daftar tagihan pasien
Cabang aktif, terbaru dulu. Status: draft → finalized → partially_paid → paid, atau void. Item daftar tanpa lines, discounts, payments.
- Scope
invoices:read- Izin RBAC
- cashier.bill · cashier.close · cashier.pay · cashier.void · invoice.read
- Modul
cashier
Parameter
| Nama | Lokasi | Tipe | Keterangan |
|---|---|---|---|
| X-Branch-ID | header | string (uuid) | Cabang aktif (opsional). Nilai di luar cabang klien diabaikan. |
| patient_id | query | string (uuid) | |
| encounter_id | query | string (uuid) | |
| payer_id | query | string (uuid) | |
| status | query | string | Dipisah koma |
| from | query | string (date) | |
| to | query | string (date) | |
| limit | query | integer | |
| cursor | query | string | Nilai next_cursor dari halaman sebelumnya |
Contoh kode
curl -X GET "https://api.medivana.cloud/api/v1/billing/invoices" \
-H "Authorization: Bearer $MEDIVANA_TOKEN"const res = await fetch("https://api.medivana.cloud/api/v1/billing/invoices", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.MEDIVANA_TOKEN}`,
},
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
const data = await res.json();import os
import requests
resp = requests.get(
"https://api.medivana.cloud/api/v1/billing/invoices",
headers={"Authorization": f"Bearer {os.environ['MEDIVANA_TOKEN']}"},
timeout=30,
)
resp.raise_for_status()
data = resp.json()Respons
200Tagihanapplication/json
{
"items": [
{
"id": "3f0c2a10-5b7e-4c1d-9a2e-00000001b001",
"branch_id": "3f0c2a10-5b7e-4c1d-9a2e-0000000000b1",
"patient_id": "3f0c2a10-5b7e-4c1d-9a2e-0000000a0001",
"patient_name": "Pasien Contoh",
"patient_mrn": "RM-000123",
"encounter_id": "3f0c2a10-5b7e-4c1d-9a2e-0000000e0001",
"payer_id": "3f0c2a10-5b7e-4c1d-9a2e-0000000f0001",
"payer_name": "Pasien Umum",
"payer_kind": "umum",
"number": "INV-202610-00042",
"status": "paid",
"subtotal": 195000,
"discount": 0,
"total": 195000,
"patient_amount": 195000,
"payer_amount": 0,
"paid_amount": 195000,
"outstanding": 0,
"payer_outstanding": 0,
"finalized_at": "2026-10-29T11:02:00+07:00",
"paid_at": "2026-10-29T11:03:10+07:00",
"created_at": "2026-10-29T10:58:00+07:00",
"version": 3
}
]
}Skema 200
| Nama | Tipe | Keterangan |
|---|---|---|
| itemswajib | array<object> | |
| items[].id | string (uuid) | |
| items[].branch_id | string (uuid) | |
| items[].patient_id | string (uuid) | |
| items[].patient_name | string | |
| items[].patient_mrn | string | |
| items[].encounter_id | string (uuid) | null | |
| items[].payer_id | string (uuid) | |
| items[].payer_name | string | |
| items[].payer_kind | umum | bpjs | insurance | company | |
| items[].number | string | null | |
| items[].status | draft | finalized | partially_paid | paid | void | |
| items[].subtotal | number | |
| items[].discount | number | |
| items[].total | number | |
| items[].patient_amount | number | |
| items[].payer_amount | number | |
| items[].package_amount | number | |
| items[].paid_amount | number | |
| items[].credit_patient_amount | number | |
| items[].credit_payer_amount | number | |
| items[].payer_paid_amount | number | |
| items[].payer_adjusted_amount | number | |
| items[].outstanding | number | |
| items[].payer_outstanding | number | |
| items[].notes | string | null | |
| items[].finalized_at | string (date-time) | null | |
| items[].paid_at | string (date-time) | null | |
| items[].voided_at | string (date-time) | null | |
| items[].void_reason | string | null | |
| items[].created_at | string (date-time) | |
| items[].version | integer | |
| items[].lines | array<object> | |
| items[].lines[].id | string (uuid) | |
| items[].lines[].line_no | integer | |
| items[].lines[].charge_id | string (uuid) | null | |
| items[].lines[].service_id | string (uuid) | null | |
| items[].lines[].item_id | string (uuid) | null | |
| items[].lines[].practitioner_id | string (uuid) | null | |
| items[].lines[].revenue_key | string | |
| items[].lines[].category | string | |
| items[].lines[].description | string | |
| items[].lines[].quantity | number | |
| items[].lines[].unit_price | number | |
| items[].lines[].gross | number | |
| items[].lines[].discount | number | |
| items[].lines[].total | number | |
| items[].lines[].payer_share | number | |
| items[].lines[].patient_share | number | |
| items[].lines[].coverage | payer | excluded | none | package | |
| items[].discounts | array<object> | |
| items[].payments | array<object> | |
| items[].payments[].id | string (uuid) | |
| items[].payments[].branch_id | string (uuid) | |
| items[].payments[].invoice_id | string (uuid) | |
| items[].payments[].patient_id | string (uuid) | |
| items[].payments[].number | string | |
| items[].payments[].method | cash | debit | credit | qris | transfer | deposit | |
| items[].payments[].amount | number | |
| items[].payments[].tendered | number | null | |
| items[].payments[].change_amount | number | |
| items[].payments[].reference | string | null | |
| items[].payments[].status | pending | completed | refunded | expired | failed | |
| items[].payments[].paid_at | string (date-time) | null | |
| items[].payments[].cash_session_id | string (uuid) | null | |
| items[].payments[].gateway_provider | string | null | |
| items[].payments[].external_id | string | null | |
| items[].payments[].settlement_id | string (uuid) | null | |
| items[].payments[].refunded_at | string (date-time) | null | |
| items[].payments[].refund_reason | string | null | |
| items[].payments[].created_at | string (date-time) | |
| next_cursor | string |
Galat
- 401
unauthorizedToken tidak ada, tidak valid, kedaluwarsa, atau dicabut - 402
module-lockedModul tidak aktif di paket organisasi - 403
forbiddenScope token tidak memberi izin (forbidden), atau langganan klinik baca-saja untuk operasi tulis (read-only) - 429
rate-limitedBatas laju klien (rate_limit_per_min) terlampaui; coba lagi pada menit berikutnya