ReST API

1. Autentikasi

Untuk melakukan transaksi data dari Kamus Farmasi dan Alat Kesehatan (KFA), perlu dilakukan proses autentikasi terlebih dahulu agar mendapatkan akses yang tersedia. Autentikasi yang digunakan oleh KFA mengikuti standar protokol OAuth 2 dengan tipe pemberian akses (grant type) adalah client_credentials.

Autentikasi menggunakan grant type client_credentials adalah proses autentikasi yang dilakukan antara server to server, sehingga tidak ada proses registrasi atau log in di sini. Autentikasi dengan tipe tersebut hanya memerlukan data berupa client_id dan client_server, di mana nilai tersebut didapatkan ketika pihak yang ingin menggunakan atau mengakses KFA ini telah melakukan pengajuan, terdaftar, serta mendapatkan persetujuan dari Pusat Data dan Teknologi Informasi - Digital Transformation Office (DTO) Kementerian Kesehatan Republik Indonesia.

Cara Mendapatkan Nilai dari client_id dan client_secret

Silakan terlebih dahulu melakukan Pengajuan dan Verifikasi Akses pada website https://satusehat.kemkes.go.id/platform melalui web browser Anda. Untuk informasi lebih lanjut dapat dilihat pada Panduan Registrasi

Berikut ini ketentuan Kode Akses API:

  1. Client ID (Client Secret) hanya dapat digunakan oleh 1 Organization ID.

  2. Terdapat validasi apabila Client ID (Client Secret) mengirimkan data Organization ID yang berbeda. Response error sebagai berikut:

    "text": "resource cannot be accessed due to business rule"
  3. Kode Akses API bersifat RAHASIA di mana unik, personal, dan khusus disediakan hanya untuk Partner Interoperabilitas SATUSEHAT yang telah terverifikasi di SATUSEHAT Platform (SSP).

  4. Partner Interoperabilitas SATUSEHAT, DILARANG menduplikasi, mempublikasi, dan/atau mendistribusikan dalam bentuk apapun, sebagian/keseluruhan informasi kode akses API kepada pihak yang tidak sah dan tidak berkepentingan.

Setiap teks yang berwarna biru muda, dapat diklik untuk melompat ke bagian yang direferensikan.

Pada bagian ini akan dijelaskan spesifikasi untuk ReST API Kamus Farmasi dan Alat Kesehatan (KFA), yang mempunyai endpoint berdasarkan jenis lingkungan pengembangannya (development environment) yaitu:

Autentikasi

API KFA Versi 1

API KFA Versi 2

Semua penerapan, penjelasan, dan contoh yang akan dibahas akan menggunakan environment sandbox.

Untuk melakukan beberapa request ke ReST API SATUSEHAT yang akan dijelaskan atau dicontohkan di bagian ini, WAJIB melakukan proses autentikasi terlebih dahulu.

Setiap request diperlukan sebuah nilai token bertipe Bearer yang akan dimasukkan pada header Authorization: Bearer <access_token>.

Nilai <access_token> didapatkan dari properti access_token dari hasil response yang secara detail dijelaskan di artikel terkait Akses Token.

2. Postman Collection

Silakan mengunduh Postman Collection untuk melihat contoh/melakukan workshop secara mandiri pada website Postman Collection KFA melalui web browser Anda.

3. Akses Token

Mendapatkan Token

Melakukan proses autentikasi untuk mendapatkan akses token yang akan dipakai pada setiap request ReST API SATUSEHAT selanjutnya.

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken

HTTP Verb/Method

POST

Header

Nama ParameterTipe DataKeterangan

*Content-Type

string

Mime type dari payload data yang akan dikirimkan di dalam body dalam bentuk URL Encoded, WAJIB diisi dengan application/x-www-form-urlencoded

Query String

Nama ParameterTipe DataKeterangan

*grant_type

string

Tipe permintaan akses (grant) Oauth2, WAJIB diisi dengan client_credentials.

Body (application/x-www-form-urlencoded)

Nama ParameterTipe DataKeterangan

*client_id

string

Nilai client ID yang telah didapatkan dari Pusat Data dan Teknologi Informasi - Digital Transformation Office (DTO) Kementerian Kesehatan Republik Indonesia setelah melakukan pengajuan via email, WAJIB diisi. Nilai ini bisa disamakan seperti username yang akan digunakan untuk akses aplikasi.

*client_secret

string

Nilai client secret yang telah didapatkan dari Pusat Data dan Teknologi Informasi - Digital Transformation Office (DTO) Kementerian Kesehatan Republik Indonesia setelah melakukan pengajuan via email, WAJIB diisi. Nilai ini bisa disamakan seperti kata sandi (password) yang akan digunakan untuk akses aplikasi.

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
client_id: <client-id>
client_secret: <client-secret>

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Dari hasil response ini, PERLU disimpan nilai akses token yang didapat dari properti access_token, di mana tipe token (lihat properti token_type) tersebut adalah BearerToken. Nilai akses token tersebut WAJIB selalu digunakan sebagai nilai dari header Authorization: Bearer <access_token> saat melakukan request lainnya dari ReST API SATUSEHAT.

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "refresh_token_expires_in": "0",
  "api_product_list": "[api-sandbox]",
  "api_product_list_json": [
        "api-sandbox"
  ],
  "organization_name": "ihs-prod-1",
  "developer.email": "<email-dev>",
  "token_type": "BearerToken",
  "issued_at": "1671109805593",
  "client_id": "<client-id>",
  "access_token": "<access-token>",
  "application_name": "992291b8-a613-40aa-b27c-41e480c7585f",
  "scope": "",
  "expires_in": "3599",
  "refresh_count": "0",
  "status": "approved"
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "resourceType": "OperationOutcome",
  "issue": [{
    "severity": "invalid",
    "code": "value",
    "details": {
      "text": "The user or system was not able to be authenticated (either client_id or client_secret combination is unacceptable)"
      }
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Penggunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location \
  --header "Content-Type: application/x-www-form-urlencoded" ^
  --data-urlencode "client_id=<client-id>" ^
  --data-urlencode "client_secret=<client-secret>" ^
  --request POST ^
  "https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken?grant_type=client_credentials"

cURL (Linux)

curl --insecure --location \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'client_id=<client-id>' \
  --data-urlencode 'client_secret=<client-secret>' \
  --request POST \
  'https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken?grant_type=client_credentials'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1/accesstoken
  3. Lalu pilih request method POST.

  4. Pada tab Params, di bagian Query Params:

    1. masukkan nilai grant_type pada kotak masukkan pada kolom KEY,

    2. lalu masukkan nilai client_credentials` pada kotak masukkan pada kolom VALUE.

  5. Pada tab Body:

    1. pilih x-www-form-urlencoded,

    2. masukkan nilai client_id pada kotak masukkan pada kolom KEY,

    3. lalu masukkan nilai client ID yang sudah didapatkan dari Pusat Data dan Teknologi Informasi - Digital Transformation Office (DTO) Kementerian Kesehatan Republik Indonesia pada kotak masukkan pada kolom VALUE,

    4. selanjutnya masukkan nilai client_secret pada kotak masukkan pada kolom KEY,

    5. terakhir masukkan nilai client secret yang sudah didapatkan dari Pusat Data dan Teknologi Informasi - Digital Transformation Office (DTO) Kementerian Kesehatan Republik Indonesia pada kotak masukkan pada kolom VALUE.

  6. Klik tombol Send.

  7. Hasil response akan ditampilkan di bagian Response.

4. API KFA Versi 1

4.1. Price - Mendapatkan Harga Produk JKN

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/farmalkes-price-jkn

HTTP Verb/Method

GET

Header

Nama ParameterTipe DataKeterangan

*Authorization

string

Header ini WAJIB diisi dengan nilai sesuai format: Bearer <access_token>. Nilai dari variabel <access_token> didapatkan dari properti access_token pada object dari hasil response JSON setelah proses autentikasi.

Query String

Nama ParameterTipe DataKeterangan

*page

number

Isi dengan nomor halaman (page) yang diinginkan.

Contoh: 1.

*limit

number

Isi dengan banyaknya data yang ingin ditampilkan dalam satu halaman (page).

Contoh: 50.

*kfa_code

string

Isi dengan kode produk KFA yang diinginkan.

Contoh: 93004418.

region_code

string

Isi dengan kode regional JKN yang diinginkan.

  • regional1: Bali, Banten, Jawa Barat, Jawa Timur, Jakarta, Jawa Tengah, Lampung, Yogyakarta

  • regional2: Bangka Belitung, Bengkulu, Jambi, Nusa Tenggara Barat, Riau, Sumatra Barat, Sumatra Selatan, Sumatra Utara

  • regional3: Aceh, Kalimantan Barat, Kalimantan Timur, Kepulauan Riau, Kalimantan Tengah, Sulawesi Utara, Sulawesi Selatan, Sulawesi Tengah

  • regional4: Gorontalo, Kalimantan Tengah, Kalimantan Utara, Sulawesi Tenggara, Sulawesi Barat

  • regional5: Maluku, Maluku Utara, Nusa Tenggara Timur, Papua Barat

  • regional6: Papua Pegunungan, Papua Selatan, Papua Tengah

Contoh: regional1

document_ref

string

Isi dengan dokumen referensi atau dasar hukum yang berlaku.

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "total": 6,
  "page": 1,
  "limit": 10,
  "items": {
      "data": [
          {
              "product_template_name": "Acarbose 100 mg Tablet",
              "kfa_code": "92000372",
              "document_ref": "HK.01.07/MENKES/1905/2023",
              "active": true,
              "region_name": "Regional 1",
              "region_code": "regional1",
              "start_date": "2023-08-23",
              "end_date": null,
              "price_unit": 848.0,
              "uom_name": "Tablet",
              "updated_at": "2023-08-29 04:11:02",
              "uom_pack": [
                  "Blister",
                  "Strip"
              ],
              "province": [
                  {
                      "province_code": "51",
                      "province_name": "Bali"
                  },
                  {
                      "province_code": "36",
                      "province_name": "Banten"
                  },
                  {
                      "province_code": "32",
                      "province_name": "Jawa Barat"
                  },
                  {
                      "province_code": "35",
                      "province_name": "Jawa Timur"
                  },
                  {
                      "province_code": "31",
                      "province_name": "DKI Jakarta"
                  },
                  {
                      "province_code": "33",
                      "province_name": "Jawa Tengah"
                  },
                  {
                      "province_code": "18",
                      "province_name": "Lampung"
                  },
                  {
                      "province_code": "34",
                      "province_name": "Yogyakarta"
                  }
              ]
          },
          /* lompat beberapa data */
          {
              "product_template_name": "Acarbose 100 mg Tablet",
              "kfa_code": "92000372",
              "document_ref": "HK.01.07/MENKES/1905/2023",
              "active": true,
              "region_name": "Regional 6",
              "region_code": "regional6",
              "start_date": "2023-08-23",
              "end_date": null,
              "price_unit": 1060.0,
              "uom_name": "Tablet",
              "updated_at": "2023-08-29 04:11:02",
              "uom_pack": [
                  "Blister",
                  "Strip"
              ],
              "province": [
                  {
                      "province_code": "95",
                      "province_name": "Papua Pegunungan"
                  },
                  {
                      "province_code": "93",
                      "province_name": "Papua Selatan"
                  },
                  {
                      "province_code": "94",
                      "province_name": "Papua Tengah"
                  }
              ]
          }
      ]
  }
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "detail": [{
      "loc": [
        "query",
        "code"
      ],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Penggunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location ^
  --header "Authorization: Bearer <access-token>" ^
  --header "Accept: application/json" ^
  --request GET ^
  "https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/farmalkes-price-jkn?{path-code}"

cURL (Linux)

curl --insecure --location \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Accept: application/json' \
  --request GET \
  'https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/farmalkes-price-jkn?{path-code}'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/farmalkes-price-jkn
  3. Lalu pilih request method GET.

  4. Pada tab Auth:

  5. Pada tab Headers:

  6. Pada tab Params, di bagian Query Params:

  7. Klik tombol Send.

  8. Hasil response akan ditampilkan di bagian Response.

4.2. Products - Pencarian Produk Sesuai ATC dengan Paginasi

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/atc

HTTP Verb/Method

GET

Header

Nama ParameterTipe DataKeterangan

*Authorization

string

Header ini WAJIB diisi dengan nilai sesuai format: Bearer <access_token>. Nilai dari variabel <access_token> didapatkan dari properti access_token pada object dari hasil response JSON setelah proses autentikasi.

Query String

Nama ParameterTipe DataKeterangan

*page

number

Isi dengan nomor halaman (page) yang diinginkan.

Contoh: 1.

*size

number

Isi dengan banyaknya data yang ingin ditampilkan dalam satu halaman (page).

Contoh: 50.

*atc_code

string

Isi dengan kode Anatomical Therapeutic Chemical (ATC). Kode unik yang ditetapkan untuk obat menurut organ atau sistem tempat obat bekerja dan cara kerjanya. Sistem klasifikasi dikelola oleh Organisasi Kesehatan Dunia (WHO).

  1. Saluran pencernaan (A)

  2. Darah dan organ pembentuk darah (B)

  3. Sistem kardiovaskular (C)

  4. Kulit (D)

  5. Sistem reproduksi (G)

  6. Sistem endokrin (H)

  7. Anti-infeksi untuk penggunaan sistemik (J)

  8. Penyakit ganas dan sistem imun (L)

  9. Otot, tulang, dan sendi (M)

  10. Otak dan sistem saraf (N)

  11. Produk antiparasitik, insektisida, dan repelan (P)

  12. Sistem pernafasan (R)

  13. Organ sensorik (S)

  14. Aneka ragam (V)

referensi: Daftar Kode ATC [atc-code]

Contoh: L.

*level

number

Dalam sistem klasifikasi Anatomical Therapeutic Chemical (ATC), zat aktif dibagi ke dalam kelompok yang berbeda sesuai dengan organ atau sistem tempat mereka bekerja dan sifat terapeutik, farmakologis, dan kimianya. Obat diklasifikasikan dalam kelompok pada lima tingkat yang berbeda.

  1. ATC tingkat 1: Sistem ini memiliki empat belas kelompok anatomis atau farmakologis utama (tingkat 1).

  2. ATC tingkat 2: Subkelompok Farmakologis atau Terapi

  3. ATC tingkat 3 & 4: Subkelompok Kimia, Farmakologi atau Terapi

  4. ATC tingkat 5: Substansi kimia

referensi: Daftar Level ATC [atc-level]

Contoh: 1.

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "atc_code": "L",
  "total": 978,
  "page": 1,
  "size": 50,
  "items": {
      "data": [
          {
              "name": "Leuprorelin Acetate 1,88 mg Serbuk Injeksi (TAPROS, VIAL + AMPUL PELARUT)",
              "kfa_code": "/",
              "active": true,
              "state": "draft",
              "image": null,
              "updated_at": "2022-12-16 07:13:01",
              "farmalkes_type": {
                  "code": "medicine",
                  "name": "Obat",
                  "group": "farmasi"
              },
              "produksi_buatan": "import",
              "nie": "DKI0870700244C1",
              "nama_dagang": "TAPROS",
              "manufacturer": "TAKEDA PHARMACEUTICAL COMPANY",
              "registrar": "TAKEDA INDONESIA",
              "generik": null,
              "rxterm": "leuprolide",
              "dose_per_unit": 1,
              "fix_price": 578067.0,
              "het_price": null,
              "farmalkes_hscode": null,
              "tayang_lkpp": true,
              "kode_lkpp": "48347184",
              "net_weight": null,
              "net_weight_uom_name": "g",
              "volume": null,
              "volume_uom_name": "mL",
              "uom": {
                  "name": "Prefilled Syringe"
              },
              "product_template": {
                  "kfa_code": "92000732",
                  "name": "Leuprorelin Acetate 1,88 mg Serbuk Injeksi",
                  "state": "valid",
                  "active": true,
                  "display_name": "Leuprorelin Acetate 1,88 mg Serbuk Injeksi",
                  "updated_at": "2023-08-29 04:33:05"
              },
              "replacement": {
                  "product": null,
                  "template": null
              }
          },
          /*lompat beberapa data*/
          {
              "name": "Epirubicin Hydrochloride 2 mg/mL Larutan Injeksi (SANBE FARMA, 25 mL)",
              "kfa_code": "93000220",
              "active": true,
              "state": "valid",
              "image": null,
              "updated_at": "2023-09-01 03:56:41",
              "farmalkes_type": {
                  "code": "medicine",
                  "name": "Obat",
                  "group": "farmasi"
              },
              "produksi_buatan": "lokal",
              "nie": "GKL1222251043A1",
              "nama_dagang": "EPIRUBICIN HCL",
              "manufacturer": "SANBE FARMA (UNIT IV)",
              "registrar": "SANBE FARMA",
              "generik": true,
              "rxterm": "epirubicin",
              "dose_per_unit": 1,
              "fix_price": null,
              "het_price": 1096360.0,
              "farmalkes_hscode": "30049089",
              "tayang_lkpp": null,
              "kode_lkpp": null,
              "net_weight": null,
              "net_weight_uom_name": "g",
              "volume": 25.0,
              "volume_uom_name": "mL",
              "uom": {
                  "name": "Vial"
              },
              "product_template": {
                  "kfa_code": "92000231",
                  "name": "Epirubicin Hydrochloride 2 mg/mL Larutan Injeksi",
                  "state": "valid",
                  "active": true,
                  "display_name": "Epirubicin Hydrochloride 2 mg/mL Larutan Injeksi",
                  "updated_at": "2023-08-29 00:49:25"
              },
              "replacement": {
                  "product": null,
                  "template": null
              }
          }
      ]
  }
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "detail": [{
      "loc": [
        "query",
        "atc_code"
      ],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Penggunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location ^
  --header "Authorization: Bearer <access-token>" ^
  --header "Accept: application/json" ^
  --request GET ^
  "https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/atc?page=1&size=50&atc_code=L&level=1"

cURL (Linux)

curl --insecure --location \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Accept: application/json' \
  --request GET \
  'https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/atc?page=1&size=50&atc_code=L&level=1'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/atc
  3. Lalu pilih request method GET.

  4. Pada tab Auth:

  5. Pada tab Headers:

  6. Pada tab Params, di bagian Query Params:

  7. Klik tombol Send.

  8. Hasil response akan ditampilkan di bagian Response.

4.3. Products - Mendapatkan ATC Metadata

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/kfa/atc

HTTP Verb/Method

GET

Header

Nama ParameterTipe DataKeterangan

*Authorization

string

Header ini WAJIB diisi dengan nilai sesuai format: Bearer <access_token>. Nilai dari variabel <access_token> didapatkan dari properti access_token pada object dari hasil response JSON setelah proses autentikasi.

Query String

Nama ParameterTipe DataKeterangan

*page

number

Isi dengan nomor halaman (page) yang diinginkan.

Contoh: 1.

*size

number

Isi dengan banyaknya data yang ingin ditampilkan dalam satu halaman (page).

Contoh: 50.

*tag_code

string

Isi dengan kode tag produk yang diinginkan.

  • ginjal

  • jantung

  • kanker

  • stroke

  • uronefrologi

  • leukemia

Contoh: kanker.

*level

number

Dalam sistem klasifikasi Anatomical Therapeutic Chemical (ATC), zat aktif dibagi ke dalam kelompok yang berbeda sesuai dengan organ atau sistem tempat mereka bekerja dan sifat terapeutik, farmakologis, dan kimianya. Obat diklasifikasikan dalam kelompok pada lima tingkat yang berbeda.

  1. ATC tingkat 1: Sistem ini memiliki empat belas kelompok anatomis atau farmakologis utama (tingkat 1).

  2. ATC tingkat 2: Subkelompok Farmakologis atau Terapi

  3. ATC tingkat 3 & 4: Subkelompok Kimia, Farmakologi atau Terapi

  4. ATC tingkat 5: Substansi kimia

referensi: Daftar Level ATC [atc-level]

Contoh: 1.

*parent_code

string

Isi dengan kode parent produk yang diinginkan.

  1. Saluran pencernaan (A)

  2. Darah dan organ pembentuk darah (B)

  3. Sistem kardiovaskular (C)

  4. Kulit (D)

  5. Sistem reproduksi (G)

  6. Sistem endokrin (H)

  7. Anti-infeksi untuk penggunaan sistemik (J)

  8. Penyakit ganas dan sistem imun (L)

  9. Otot, tulang, dan sendi (M)

  10. Otak dan sistem saraf (N)

  11. Produk antiparasitik, insektisida, dan repelan (P)

  12. Sistem pernafasan (R)

  13. Organ sensorik (S)

  14. Aneka ragam (V)

referensi: Daftar Kode ATC [atc-code]

Contoh: A.

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "result": [
      {
          "code": "A",
          "name": "ALIMENTARY TRACT AND METABOLISM",
          "level": "1",
          "schedule_code": "3013",
          "parent": null
      },
      /*lompat beberapa data*/
      {
          "code": false,
          "name": false,
          "level": false,
          "schedule_code": null,
          "parent": null
      }
  ]
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "detail": [
    {
      "loc": [
        "Ut nisi amet",
        "velit nulla quis minim"
      ],
      "msg": "cupidatat Excepteur enim in",
      "type": "voluptate laborum reprehenderit velit"
    },
    {
      "loc": [
        "id ad",
        "ad"
      ],
      "msg": "cillum",
      "type": "esse sit"
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Penggunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location ^
  --header "Authorization: Bearer <access-token>" ^
  --header "Accept: application/json" ^
  --request GET ^
  "https://api-satusehat-stg.dto.kemkes.go.id/kfa/atc?{path-code}"

cURL (Linux)

curl --insecure --location \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Accept: application/json' \
  --request GET \
  'https://api-satusehat-stg.dto.kemkes.go.id/kfa/atc?{path-code}'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/kfa/atc
  3. Lalu pilih request method GET.

  4. Pada tab Auth:

  5. Pada tab Headers:

  6. Pada tab Params, di bagian Query Params:

  7. Klik tombol Send.

  8. Hasil response akan ditampilkan di bagian Response.

4.4. Products - Pencarian Produk Sesuai Tag dengan Paginasi

Unresolved directive in products-tag.adoc - include::{dir-directive}/section-reset.adoc[]

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/tag

HTTP Verb/Method

GET

Header

Nama ParameterTipe DataKeterangan

*Authorization

string

Header ini WAJIB diisi dengan nilai sesuai format: Bearer <access_token>. Nilai dari variabel <access_token> didapatkan dari properti access_token pada object dari hasil response JSON setelah proses autentikasi.

Query String

Nama ParameterTipe DataKeterangan

*page

number

Isi dengan nomor halaman (page) yang diinginkan.

Contoh: 1.

*size

number

Isi dengan banyaknya data yang ingin ditampilkan dalam satu halaman (page).

Contoh: 50.

*tag_code

string

Isi dengan kode tag produk yang diinginkan.

  1. Saluran pencernaan (A)

  2. Darah dan organ pembentuk darah (B)

  3. Sistem kardiovaskular (C)

  4. Kulit (D)

  5. Sistem reproduksi (G)

  6. Sistem endokrin (H)

  7. Anti-infeksi untuk penggunaan sistemik (J)

  8. Penyakit ganas dan sistem imun (L)

  9. Otot, tulang, dan sendi (M)

  10. Otak dan sistem saraf (N)

  11. Produk antiparasitik, insektisida, dan repelan (P)

  12. Sistem pernafasan (R)

  13. Organ sensorik (S)

  14. Aneka ragam (V)

referensi: Daftar Kode ATC [atc-code]

Contoh: {qs-code-tag}.

*level

number

Dalam sistem klasifikasi Anatomical Therapeutic Chemical (ATC), zat aktif dibagi ke dalam kelompok yang berbeda sesuai dengan organ atau sistem tempat mereka bekerja dan sifat terapeutik, farmakologis, dan kimianya. Obat diklasifikasikan dalam kelompok pada lima tingkat yang berbeda.

  1. ATC tingkat 1: Sistem ini memiliki empat belas kelompok anatomis atau farmakologis utama (tingkat 1).

  2. ATC tingkat 2: Subkelompok Farmakologis atau Terapi

  3. ATC tingkat 3 & 4: Subkelompok Kimia, Farmakologi atau Terapi

  4. ATC tingkat 5: Substansi kimia

referensi: Daftar Level ATC [atc-level]

Contoh: kanker.

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "tag_code": "kanker",
  "total": 1324,
  "page": 1,
  "size": 50,
  "items": {
      "data": [
          {
              "name": "Foscarnet 24 mg/mL Injeksi (Umum)",
              "kfa_code": "/",
              "active": true,
              "state": "draft",
              "image": null,
              "updated_at": "2023-03-14 13:30:02",
              "farmalkes_type": {
                  "code": "medicine",
                  "name": "Obat",
                  "group": "farmasi"
              },
              "produksi_buatan": null,
              "nie": null,
              "nama_dagang": null,
              "manufacturer": null,
              "registrar": null,
              "generik": null,
              "rxterm": "foscarnet",
              "dose_per_unit": 1,
              "fix_price": 1.0,
              "het_price": null,
              "farmalkes_hscode": null,
              "tayang_lkpp": null,
              "kode_lkpp": null,
              "net_weight": null,
              "net_weight_uom_name": "g",
              "volume": null,
              "volume_uom_name": "mL",
              "uom": {
                  "name": "Botol"
              },
              "product_template": {
                  "kfa_code": "92004216",
                  "name": "Foscarnet 24 mg/mL Injeksi",
                  "state": "valid",
                  "active": true,
                  "display_name": "Foscarnet 24 mg/mL Injeksi",
                  "updated_at": "2023-03-14 13:30:17"
              },
              "replacement": {
                  "product": null,
                  "template": null
              }
          },
          /*lompat beberapa data*/
          {
              "name": "ECG 12 Channel (BTL, Wireless, Trolley + Spiro upgrade)",
              "kfa_code": "83004842",
              "active": true,
              "state": "valid",
              "image": null,
              "updated_at": "2022-11-28 03:14:41",
              "farmalkes_type": {
                  "code": "device",
                  "name": "Alat Kesehatan",
                  "group": "alkes"
              },
              "produksi_buatan": "lokal",
              "nie": "AKD 20502220148",
              "nama_dagang": "BTL-08 MT Plus",
              "manufacturer": "PT. BOLD TECHNOLOGIES LEADING INDONESIA",
              "registrar": "PT. BOLD TECHNOLOGIES LEADING INDONESIA",
              "generik": null,
              "rxterm": null,
              "dose_per_unit": 1,
              "fix_price": 101500000.0,
              "het_price": null,
              "farmalkes_hscode": null,
              "tayang_lkpp": true,
              "kode_lkpp": "1437299",
              "net_weight": null,
              "net_weight_uom_name": "g",
              "volume": null,
              "volume_uom_name": "mL",
              "uom": {
                  "name": "Units"
              },
              "product_template": {
                  "kfa_code": "82000160",
                  "name": "ECG 12 Channel",
                  "state": "valid",
                  "active": true,
                  "display_name": "ECG 12 Channel",
                  "updated_at": "2023-08-29 00:49:25"
              },
              "replacement": {
                  "product": null,
                  "template": null
              }
          }
      ]
  }
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "detail": [
    {
      "loc": [
        "Ut nisi amet",
        "velit nulla quis minim"
      ],
      "msg": "cupidatat Excepteur enim in",
      "type": "voluptate laborum reprehenderit velit"
    },
    {
      "loc": [
        "id ad",
        "ad"
      ],
      "msg": "cillum",
      "type": "esse sit"
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Pengunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location ^
  --header "Authorization: Bearer <access-token>" ^
  --header "Accept: application/json" ^
  --request GET ^
  "https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/tag?{path-code}"

cURL (Linux)

curl --insecure --location \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Accept: application/json' \
  --request GET \
  'https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/tag?{path-code}'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/kfa/products/tag
  3. Lalu pilih request method GET.

  4. Pada tab Auth:

  5. Pada tab Headers:

  6. Pada tab Params, di bagian Query Params:

  7. Klik tombol Send.

  8. Hasil response akan ditampilkan di bagian Response.

4.5. Products - Mendapatkan TAG Metadata

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/kfa/tag

HTTP Verb/Method

GET

Header

Nama ParameterTipe DataKeterangan

*Authorization

string

Header ini WAJIB diisi dengan nilai sesuai format: Bearer <access_token>. Nilai dari variabel <access_token> didapatkan dari properti access_token pada object dari hasil response JSON setelah proses autentikasi.

Query String

Nama ParameterTipe DataKeterangan

*page

number

Isi dengan nomor halaman (page) yang diinginkan.

Contoh: 1.

*size

number

Isi dengan banyaknya data yang ingin ditampilkan dalam satu halaman (page).

Contoh: 50.

*tag_code

string

Isi dengan kode tag produk yang diinginkan.

  • ginjal

  • jantung

  • kanker

  • stroke

  • uronefrologi

  • leukemia

Contoh: kanker.

*level

number

Dalam sistem klasifikasi Anatomical Therapeutic Chemical (ATC), zat aktif dibagi ke dalam kelompok yang berbeda sesuai dengan organ atau sistem tempat mereka bekerja dan sifat terapeutik, farmakologis, dan kimianya. Obat diklasifikasikan dalam kelompok pada lima tingkat yang berbeda.

  1. ATC tingkat 1: Sistem ini memiliki empat belas kelompok anatomis atau farmakologis utama (tingkat 1).

  2. ATC tingkat 2: Subkelompok Farmakologis atau Terapi

  3. ATC tingkat 3 & 4: Subkelompok Kimia, Farmakologi atau Terapi

  4. ATC tingkat 5: Substansi kimia

referensi: Daftar Level ATC [atc-level]

Contoh: 1.

*parent_code

string

Isi dengan kode parent dari produk yang diinginkan.

Contoh: kanker.

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "result": [
      {
          "code": "ginjal",
          "name": "Ginjal",
          "level": "1",
          "description": false,
          "parent": null
      },
      /*lompat beberapa data*/
      {
          "code": "leukemia",
          "name": "Leukemia",
          "level": "2",
          "description": false,
          "parent": {
              "code": "kanker",
              "name": "Kanker",
              "level": "1"
          }
      }
  ]
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "detail": [
    {
      "loc": [
        "Ut nisi amet",
        "velit nulla quis minim"
      ],
      "msg": "cupidatat Excepteur enim in",
      "type": "voluptate laborum reprehenderit velit"
    },
    {
      "loc": [
        "id ad",
        "ad"
      ],
      "msg": "cillum",
      "type": "esse sit"
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Penggunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location ^
  --header "Authorization: Bearer <access-token>" ^
  --header "Accept: application/json" ^
  --request GET ^
  "https://api-satusehat-stg.dto.kemkes.go.id/kfa/tag?{path-code}"

cURL (Linux)

curl --insecure --location \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Accept: application/json' \
  --request GET \
  'https://api-satusehat-stg.dto.kemkes.go.id/kfa/tag?{path-code}'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/kfa/tag
  3. Lalu pilih request method GET.

  4. Pada tab Auth:

  5. Pada tab Headers:

  6. Pada tab Params, di bagian Query Params:

  7. Klik tombol Send.

  8. Hasil response akan ditampilkan di bagian Response.

5. API KFA Versi 2

5.1. Products - Mendapatkan Detail Produk

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products

HTTP Verb/Method

GET

Header

Nama ParameterTipe DataKeterangan

*Authorization

string

Header ini WAJIB diisi dengan nilai sesuai format: Bearer <access_token>. Nilai dari variabel <access_token> didapatkan dari properti access_token pada object dari hasil response JSON setelah proses autentikasi.

Query String

Nama ParameterTipe DataKeterangan

*identifier

string

Isi sumber data yang ingin digunakan, seperti: kfa, nie, atau lkpp.

  • nie: Data Nomor Izin Edar (NIE) yang bersumber dari BPOM.

  • lkpp: Data inventaris, distribusi, pengelolaan, dan harga obat yang beredar bersumber dari Lembaga Kebijakan Pengadaan Barang/Jasa Pemerintah (LKPP).

  • kfa: Data kode unik produk farmasi dan alat kesehatan yang bersumber pada Kamus Farmasi dan Alat Kesehatan (KFA).

Contoh: kfa.

*code

string

Isi kode dari produk yang akan dicari.

Contoh: 93004418.

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "search_code": "93015993",
  "search_identifier": "kfa",
  "result": {
      "name": "Abacavir Sulfate 300 mg Tablet Salut Selaput (KIMIA FARMA)",
      "kfa_code": "93015993",
      "active": true,
      "state": "valid",
      "image": null,
      "updated_at": "2023-09-21 07:17:24",
      "farmalkes_type": {
          "code": "medicine",
          "name": "Obat",
          "group": "farmasi"
      },
      "ucum": {
          "cs_code": "mg",
          "name": "milligram"
      },
      "dosage_form": {
          "code": "BS077",
          "name": "Tablet Salut Selaput"
      },
      "controlled_drug": {
          "code": "3",
          "name": "Obat Keras"
      },
      "rute_pemberian": {
          "code": "O",
          "name": "Oral"
      },
      "uom": {
          "name": "Tablet"
      },
      "produksi_buatan": "lokal",
      "nie": "GKL2012431917A1",
      "nama_dagang": "ABACAVIR SULFATE",
      "manufacturer": "KIMIA FARMA TBK",
      "registrar": "KIMIA FARMA Tbk.",
      "generik": true,
      "rxterm": "abacavir",
      "dose_per_unit": 1,
      "fix_price": 7215.0,
      "het_price": 13297.0,
      "farmalkes_hscode": null,
      "tayang_lkpp": true,
      "kode_lkpp": "45463910",
      "score_tkdn": null,
      "score_bmp": null,
      "score_tkdn_bmp": null,
      "med_dev_jenis": null,
      "med_dev_subkategori": null,
      "med_dev_kategori": null,
      "med_dev_kelas_risiko": null,
      "klasifikasi_izin": null,
      "net_weight": null,
      "net_weight_uom_name": "g",
      "volume": null,
      "volume_uom_name": "mL",
      "atc_ddd": {
          "name": "0.6 g - O"
      },
      "atc_l1": {
          "name": "ANTIINFECTIVES FOR SYSTEMIC USE",
          "code": "J",
          "level": "1",
          "parent_code": false,
          "comment": null
      },
      "atc_l2": {
          "name": "ANTIVIRALS FOR SYSTEMIC USE",
          "code": "J05",
          "level": "2",
          "parent_code": "J",
          "comment": null
      },
      "atc_l3": {
          "name": "DIRECT ACTING ANTIVIRALS",
          "code": "J05A",
          "level": "3",
          "parent_code": "J05",
          "comment": null
      },
      "atc_l4": {
          "name": "Nucleoside and nucleotide reverse transcriptase inhibitors",
          "code": "J05AF",
          "level": "4",
          "parent_code": "J05A",
          "comment": null
      },
      "atc_l5": {
          "name": "Abacavir",
          "code": "J05AF06",
          "level": "5",
          "parent_code": "J05AF",
          "comment": null
      },
      "description": "<p>Abacavir secara kompetitif menghambat reverse transcriptase retrovirus, mengganggu DNA polimerase yang bergantung pada RNA virus HIV yang mengakibatkan penghambatan replikasi virus.<br></p>",
      "indication": "<p>Infeksi HIV</p><p>Dewasa: Dikombinasikan dengan antiretroviral lain: 300 mg dua kali sehari atau 600 mg sekali sehari.</p><p><br></p><p>Anak: 3 bln, berat badan 14 kg sampai &lt;20 kg: 150 mg dua kali sehari atau 300 mg sekali sehari; 20 kg sampai &lt;25 kg: 150 mg di pagi hari dan 300 mg di malam hari atau 450 mg sekali sehari; &gt;25 kg: Sama seperti dosis dewasa.</p>",
      "warning": "<p>Pasien dengan faktor risiko penyakit hati (misalnya obesitas) dan mereka yang memiliki faktor risiko penyakit jantung koroner (misalnya hipertensi, DM, merokok). Gangguan ginjal atau hati ringan. Kehamilan.<br></p>",
      "side_effect": "<p>Demam, ruam, batuk, sesak, lesu, malaise, sakit kepala, mialgia, gangguan GI, terutama mual, muntah, diare dan sakit perut; pankreatitis dan peningkatan nilai enzim hati, osteonekrosis, sindrom pemulihan kekebalan, MI, sindrom lipodistrofi. Jarang, eritema multiforme, sindrom Stevens-Johnson, nekrolisis epidermal toksik.</p><p>Berpotensi Fatal: Reaksi hipersensitivitas yang serius dan fatal dengan keterlibatan beberapa organ, asidosis laktat, dan hepatomegali berat dengan steatosis.</p>",
      "identifier_ids": [
          {
              "name": "ABACAVIR SULFATE",
              "code": "GKL2012431917A1",
              "source_name": "NIE BPOM",
              "url": null
          },
          {
              "name": "Abacavir Sulfate 300 mg Tablet Salut Selaput",
              "code": "93015993",
              "source_name": "Kamus Farmalkes (KFA – IHS)",
              "url": null
          }
      ],
      "packaging_ids": [
          {
              "name": "Dus isi 60",
              "kfa_code": "94021264",
              "pack_price": 0.0,
              "uom_id": "Tablet",
              "qty": 60.0
          }
      ],
      "product_template": {
          "kfa_code": "92000888",
          "name": "Abacavir Sulfate 300 mg Tablet Salut Selaput",
          "state": "valid",
          "active": true,
          "display_name": "Abacavir Sulfate 300 mg Tablet Salut Selaput",
          "updated_at": "2023-08-29 00:49:25"
      },
      "active_ingredients": [
          {
              "kfa_code": "91000651",
              "active": true,
              "state": "valid",
              "zat_aktif": "Abacavir",
              "kekuatan_zat_aktif": "300 mg",
              "updated_at": "2022-11-17 10:56:16"
          }
      ],
      "dosage_usage": [],
      "cvx_info": {},
      "replacement": {
          "product": null,
          "template": null
      },
      "tags": []
  }
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "detail": [{
      "loc": [
        "query",
        "identifier"
      ],
      "msg": "field required",
      "type": "value_error.missing"
    }, {
      "loc": [
        "query",
        "code"
      ],
      "msg": "field required",
      "type": "value_error.missing"
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Penggunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location ^
  --header "Authorization: Bearer <access-token>" ^
  --header "Accept: application/json" ^
  --request GET ^
  "https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products?identifier=kfa&code=93004418"

cURL (Linux)

curl --insecure --location \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Accept: application/json' \
  --request GET \
  'https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products?identifier=kfa&code=93004418'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products
  3. Lalu pilih request method GET.

  4. Pada tab Auth:

  5. Pada tab Headers:

  6. Pada tab Params, di bagian Query Params:

  7. Klik tombol Send.

  8. Hasil response akan ditampilkan di bagian Response.

5.2. Products - Pencarian Produk dengan Paginasi

Setiap terdapat simbol asterik * sebelum nama variabel atau parameter yang disebutkan, maka variabel atau parameter tersebut bersifat WAJIB , harus ada, atau pasti selalu ada, contoh: *variabel.

Request

URL

https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products/all

HTTP Verb/Method

GET

Header

Nama ParameterTipe DataKeterangan

*Authorization

string

Header ini WAJIB diisi dengan nilai sesuai format: Bearer <access_token>. Nilai dari variabel <access_token> didapatkan dari properti access_token pada object dari hasil response JSON setelah proses autentikasi.

Query String

Nama ParameterTipe DataKeterangan

*page

number

Isi dengan nomor halaman (page) yang diinginkan.

Contoh: 1.

*size

number

Isi dengan banyaknya data yang ingin ditampilkan dalam satu halaman (page).

Contoh: 100.

*product_type

string

Isi dengan kategori/jenis produk yang diinginkan.

Contoh: farmasi.

from_date

string

Isi dengan waktu mulai dengan format YYYY-MM-DD

Contoh: 2023-06-26.

to_date

string

Isi dengan waktu selesai dengan format YYYY-MM-DD

Contoh: 2023-06-26.

farmalkes_type

string

Isi dengan kategori/jenis farmalkes yang diinginkan.

Contoh: vaccine.

keyword

string

Isi dengan kategori/jenis produk yang diinginkan.

Contoh: glove.

template_code

string

Isi dengan kode produk virtual/template (PAV) KFA yang diinginkan.

Contoh: 92xxxxxx untuk farmasi atau 82xxxxxx untuk alkes.

packaging_code

string

Isi dengan kode kemasan (PAK) KFA yang diinginkan.

Contoh: 94xxxxxx untuk farmasi atau 84xxxxxx untuk alkes.

Response

Hasil response, dengan HTTP Status Code berpola 2xx atau 4xx, yang dikembalikan dari server mempunyai parameter Content-Type dengan nilai application/json di salah satu parameter header-nya.

2xx Success

Contoh Data

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.
{
  "total": 66227,
  "page": 1,
  "size": 10,
  "items": {
      "data": [
          {
              "name": "IV Catheter With Vialon Material (VIECARE, Non Injection Port Non Wing / 18 G, 20 G, 22 G, 24 G, 18 G, 20 G, 22 G, 24 G)",
              "kfa_code": "/",
              "active": true,
              "state": "valid",
              "image": null,
              "updated_at": "2023-07-11 08:46:13",
              "farmalkes_type": {
                  "code": "device",
                  "name": "Alat Kesehatan",
                  "group": "alkes"
              },
              "produksi_buatan": "lokal",
              "nie": null,
              "nama_dagang": "VieCare IV Catheter",
              "manufacturer": null,
              "registrar": null,
              "generik": null,
              "rxterm": null,
              "dose_per_unit": 1,
              "fix_price": 8000.0,
              "het_price": null,
              "farmalkes_hscode": null,
              "tayang_lkpp": true,
              "kode_lkpp": null,
              "net_weight": null,
              "net_weight_uom_name": "g",
              "volume": null,
              "volume_uom_name": "mL",
              "uom": {
                  "name": "Units"
              },
              "dosage_form": {
                  "code": false,
                  "name": false
              },
              "product_template": {
                  "kfa_code": "82002082",
                  "name": "IV Catheter With Vialon Material",
                  "state": "valid",
                  "active": true,
                  "display_name": "IV Catheter With Vialon Material",
                  "updated_at": "2023-07-11 08:39:06"
              },
              "active_ingredients": [],
              "replacement": {
                  "product": null,
                  "template": null
              },
              "tags": []
          },
          /*lompat beberapa data*/
          {
              "name": "ECG Monitor (Umum)",
              "kfa_code": "/",
              "active": true,
              "state": "valid",
              "image": null,
              "updated_at": "2023-05-11 05:00:56",
              "farmalkes_type": {
                  "code": "device",
                  "name": "Alat Kesehatan",
                  "group": "alkes"
              },
              "produksi_buatan": "lokal",
              "nie": null,
              "nama_dagang": "MIKI Electrocardiograph CSN-1212A",
              "manufacturer": null,
              "registrar": null,
              "generik": true,
              "rxterm": null,
              "dose_per_unit": 1,
              "fix_price": 40499000.0,
              "het_price": null,
              "farmalkes_hscode": null,
              "tayang_lkpp": true,
              "kode_lkpp": null,
              "net_weight": null,
              "net_weight_uom_name": "g",
              "volume": null,
              "volume_uom_name": "mL",
              "uom": {
                  "name": "Units"
              },
              "dosage_form": {
                  "code": false,
                  "name": false
              },
              "product_template": {
                  "kfa_code": "82000161",
                  "name": "ECG Monitor",
                  "state": "valid",
                  "active": true,
                  "display_name": "ECG Monitor",
                  "updated_at": "2023-08-29 00:49:25"
              },
              "active_ingredients": [],
              "replacement": {
                  "product": null,
                  "template": null
              },
              "tags": []
          }
      ]
  }
}

4xx Client Error

Sistem akan mengembalikan pesan error bila client belum melakukan autentikasi, tidak memiliki akses, menggunakan HTTP method yang tidak tepat, atau mengirimkan data dengan format atau ketentuan yang tidak sesuai.

Contoh Data

{
  "detail": [
    {
      "loc": [
        "Ut nisi amet",
        "velit nulla quis minim"
      ],
      "msg": "cupidatat Excepteur enim in",
      "type": "voluptate laborum reprehenderit velit"
    },
    {
      "loc": [
        "id ad",
        "ad"
      ],
      "msg": "cillum",
      "type": "esse sit"
    }
  ]
}

5xx Server Error (Content-Type: text/plain)

Sistem akan mengembalikan pesan error bila terjadi kesalahan pada sisi server saat memproses data yang telah dikirimkan.

Contoh Data

Gateway Timeout

Contoh Penggunaan/Kode

Setiap nilai yang dicontohkan atau ditampilkan di dokumentasi ini adalah nilai yang tidak sebenarnya dan tidak dapat dipakai. Nilai-nilai tersebut hanya untuk keperluan contoh saja, tidak untuk dipakai.

cURL (Windows)

curl --insecure --location ^
  --header "Authorization: Bearer <access-token>" ^
  --header "Accept: application/json" ^
  --request GET ^
  "https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products/all?page=1&size=100&product_type=farmasi"

cURL (Linux)

curl --insecure --location \
  --header 'Authorization: Bearer <access-token>' \
  --header 'Accept: application/json' \
  --request GET \
  'https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products/all?page=1&size=100&product_type=farmasi'

Postman

  1. Buat request baru menggunakan New  HTTP Request, atau klik tombol + untuk buat tab request baru.

  2. Masukkan request URL

    https://api-satusehat-stg.dto.kemkes.go.id/kfa-v2/products/all
  3. Lalu pilih request method GET.

  4. Pada tab Auth:

  5. Pada tab Headers:

  6. Pada tab Params, di bagian Query Params:

  7. Klik tombol Send.

  8. Hasil response akan ditampilkan di bagian Response.

6. Unduh Dokumen

Dokumentasi ReST API Kamus Farmasi dan Alat Kesehatan (KFA) dibuat untuk kebutuhan ReST API yang tersedia dari Kamus Farmasi dan Alat Kesehatan (KFA) yang telah dikembangkan oleh tim developer SATUSEHAT. Penjelasan ReST API Kamus Farmasi dan Alat Kesehatan (KFA) di dokumentasi ini hanya terbatas dari spesifikasi dari ReST API itu sendiri. Penjelasan lengkap terkait Kamus Farmasi dan Alat Kesehatan (KFA), akan dijelaskan pada dokumentasi tersendiri.

Dokumentasi Teknis SATUSEHAT Kamus Farmasi dan Alat Kesehatan (KFA) ReST API