V1 09102023 - Petunjuk Teknis Implementasi KYC Di Fasyankes
V1 09102023 - Petunjuk Teknis Implementasi KYC Di Fasyankes
Petunjuk Teknis
Implementasi
Verifikasi Profil /
KYC di Fasyankes
1. Diari Kesehatan
2. Pengingat Minum Obat
3. Pustaka Kesehatan
4. Berita & Artikel Kesehatan
2. Pustaka Kesehatan
Berisi informasi obat dan Tenaga Edit
Kesehatan yang sudah terdaftar di
Kemenkes RI
3. Diari Kesehatan
Catatan Kesehatan untuk BMI, Gula Verifikasi
Darah dan Tensi Darah dengan (KYC) Profil
indikator resmi Kemenkes RI
5. Resume Medis
Akses data riwayat kunjungan rawat
jalan berisi data kunjungan, tindakan, Profil Anggota
diagnosis dan Obat Keluarga
Download versi terbaru dan Login mengunakan Email
atau HP yang terdaftar di PeduliLindungi
Fitur Rekam Medis adalah data rekam medis elektronik yang sudah
Rudy Hartono
dikirim oleh Fasyankes ke SATUSEHAT Platform yang dapat diakses
langsung oleh masyarakat melalui menu Resume Medis dalam
Aplikasi SATUSEHAT Mobile.
PENTING
https://satusehat.kemkes.g
o.id/platform/docs/id/ssm/
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 Know
Your Customer (KYC) ini telah melakukan pengajuan, terdaftar, serta mendapatkan persetujuan dari Pusat Data dan Teknologi
Informasi - Digital Transformation Office (DTO) Kementerian Kesehatan Republik Indonesia.
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
Pada bagian ini akan dijelaskan spesifikasi untuk ReST API Know Your Customer (KYC) Terkait Autentikasi, yang mempunyai tiga
endpoint berdasarkan jenis lingkungan pengembangannya (development environment) yaitu:
● Development https://api-satusehat-dev.dto.kemkes.go.id/oauth2/v1
● Staging https://api-satusehat-stg.dto.kemkes.go.id/oauth2/v1
● Production https://api-satusehat.kemkes.go.id/oauth2/v1
Mendapatkan token
Melakukan proses autentikasi untuk mendapatkan akses token yang akan dipakai pada setiap request ReST API SATUSEHAT
selanjutnya.
*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 Parameter Tipe Data Keterangan
*grant_type string Tipe permintaan akses (grant) Oauth2, WAJIB diisi dengan client_credentials.
Body (application/x-www-form-urlencoded)
Nama Parameter Tipe Data Keterangan
*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 dan Verifikasi Akses pada website
https://satusehat.kemkes.go.id/platform, 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 dan Verifikasi Akses pada website
https://satusehat.kemkes.go.id/platform, WAJIB diisi. Nilai ini bisa disamakan seperti kata sandi (password) yang akan
digunakan untuk akses aplikasi.
Request
*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.
*Content-Type string Mime type dari payload data yang akan dikirimkan di dalam body dalam format Text, WAJIB diisi dengan text/plain.
Body (text/plain)
1. Request teks WAJIB diawali dengan -----BEGIN ENCRYPTED MESSAGE----- pada baris
paling awal yang diakhiri dengan Escape character yaitu \r\n.
-----BEGIN ENCRYPTED MESSAGE-----(1)
2. Payload yang akan dikirim berada pada bagian ini, dan harus dalam bentuk terenkripsi
... (2)
dengan format Base64 sesuai ketentuan semantik RFC 2045. -----END ENCRYPTED MESSAGE-----(3)
3. Request teks WAJIB diakhiri dengan -----END ENCRYPTED MESSAGE----- pada baris
paling akhir.
Body (text/plain)
Body (application/json)
{
"agent_name": "Bambang Wisanggeni",
"agent_nik": "1171022809990001",
"public_key": "-----BEGIN PUBLIC
KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqoicEXIYWYV3PvLIdvB\nqFkHn2IMhPGKTiB
2XA56enpPb0UbI9oHoetRF41vfwMqfFsy5Yd5LABxMGyHJBbP\n+3fk2/PIfv+7+9/dKK7h1CaRTeT4lzJBiUM81hkC
FlZjVFyHUFtaNfvQeO2OYb7U\nkK5JrdrB4sgf50gHikeDsyFUZD1o5JspdlfqDjANYAhfz3aam7kCjfYvjgneqkV8\
npZDVqJpQA3MHAWBjGEJ+R8y03hs0aafWRfFG9AcyaA5Ct5waUOKHWWV9sv5DQXmb\nEAoqcx0ZPzmHJDQYlihPW4FI
vb93fMik+eW8eZF3A920DzuuFucpblWU9J9o5w+2\noQIDAQAB\n-----END PUBLIC KEY-----"
}
Response
Body (text/plain)
1. Respon teks diawali dengan -----BEGIN ENCRYPTED MESSAGE----- pada baris paling awal yang diakhiri dengan Escape character yaitu \r\n.
2. Isi dari respon yang akan diterima berada pada bagian ini, dalam bentuk terenkripsi dengan format Base64 sesuai ketentuan semantik RFC
2045.
3. Respon teks diakhiri dengan -----END ENCRYPTED MESSAGE----- pada baris paling akhir.
Body (text/plain)
Body (application/json)
{
"metadata": {
"code": "200",
"message": "OK"
},
"data": {
"agent_name": "Bambang Wisanggeni",
"agent_nik": "1171022809990001",
"token": "7ccec781-ce5c-4200-bcad-a5cae8ff2588",
"url":
"https://api-satusehat-dev.dto.kemkes.go.id/kyc/v1/validation-web/7ccec781-ce5c-4200-bcad-a5cae8ff2588"
}
}
Struktur Data
Body (application/json)
{
"fault": {
"faultstring" : "Invalid Access Token" ,
"detail" : {
"errorcode" : "keymanagement.service.invalid_access_token"
}
}
}
Struktur Data
Body (application/json)
{
"metadata" : {
"code": "400",
"message" : "Bad Request"
},
"data": {
//data.terkait.error.response
}
}
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
Contoh Penggunaan/Kode
cURL (Windows)
Example Script
curl --location ^
--header "Content-Type: text/plain" ^
--header "Authorization: Bearer {bearer_token}" ^ Setiap nilai yang
--request POST ^
dicontohkan atau
--data "-----BEGIN ENCRYPTED MESSAGE-----
imR0er0J0xjdlqFi+0D148UN54vyid+h5NGz8/vB5sChiPUVtS+72Ancyqcj22l5/UihwNCXG35N ditampilkan di
rSj21rNVFPWzSXT1tJE7a76MBhcSBs/mDS2dWJDaWVLTbqwFibO31b5kzNPNeunP7SlruwDfsoz8 dokumentasi ini adalah
FzJtRAomRNf5XhnS4UnjI/532JnbbLlFhuOtzQbgbvCcuHWJjTzR+oDyL1O5q6FgABkbLjWYdcyq nilai yang tidak
eAxU7MWBa60uwroIDqDhL+TkxFlqUN0R+Ag7Pza5kJ9oOlPRACAVYm88bzoJOYjMG3K25KVWKSB8 sebenarnya dan tidak
LdQu78NiQrYKTSsHxe6v4XOsZrKc++XR5ob5iw821vcqI6KkxBzK1sLB5q7Pv2cprW6wioHRpbH6 dapat dipakai.
q8PcSXs+7FLQUdduxKV7hchc7XhCzPJwn021YrAaRJ/FgAqk3bNa1JFGdg7N552JRZJsarBqjP8z
RcOhaMdHOwR+pZF4snfMB8t7Uj2hXp14c/bZJTVaME5XaLSdivRm5KqCFdhP4H59n2dj6mQdkgY0
Nilai-nilai tersebut hanya
QKuV81XsKbEEZ+kj5FSQDIB+QBm1DXxpi4IEpSodeOmp07twbH5ahRFvzulf+UsHo94BJRzpEDLr
uU6/Wzr540mgJpml38oWAj2j4qyf3ukclvL/yrfebT5uBDqmmqtskhAOI7NJAuNLisiyo8Ulfs2m untuk keperluan contoh
IOqutu51IpLphzjuzkzRR5Bscm/vmVVZE1uv3tDQY1EVCZcXKgIOrMdxoCZLppqzX/Nx9sOFrCwF saja, tidak untuk dipakai.
ydBxEe9DYrL4vUStxDMVPvaIDN8p/3w2f+KYnHZMN5Fh9xp0MLVk9FvO+C3QoaEDSK0rh941owbR
ccuF+zMm+a9VIr+ss5Y2DM8zxQqpOf6YEWCqA7A0XFXW9VfVBst/SPYo96v4pYHimo67G+f1qhdV
7y0yw6cXHjYF/EU7gptBryAWR6uNulepXIbtYuhoWrGbNEhTDsORlCrOmmBkzcavkWfOXZJcgLtT
HGZHCNXh3+nCOncRsLL9NNdyG7/I7q6wc8EzLPpzsUWqn2Uv/tfOxj3TooGUvG5VPNBTnXSqjXpK
iCdFKSyAx2K52yIZ0Ek/ItswNS1r97Y1HWUZoAT9hq4= -----END ENCRYPTED MESSAGE-----"^
"https://api-satusehat-dev.dto.kemkes.go.id/kyc/v1/generate-url"
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
Contoh Penggunaan/Kode
cURL (Linux)
Example Script
curl --location \
--header 'Content-Type: text/plain' \
--header 'Authorization: Bearer {bearer_token}' \ Setiap nilai yang
--request POST \
dicontohkan atau
--data '-----BEGIN ENCRYPTED MESSAGE-----
imR0er0J0xjdlqFi+0D148UN54vyid+h5NGz8/vB5sChiPUVtS+72Ancyqcj22l5/UihwNCXG35N ditampilkan di
rSj21rNVFPWzSXT1tJE7a76MBhcSBs/mDS2dWJDaWVLTbqwFibO31b5kzNPNeunP7SlruwDfsoz8 dokumentasi ini adalah
FzJtRAomRNf5XhnS4UnjI/532JnbbLlFhuOtzQbgbvCcuHWJjTzR+oDyL1O5q6FgABkbLjWYdcyq nilai yang tidak
eAxU7MWBa60uwroIDqDhL+TkxFlqUN0R+Ag7Pza5kJ9oOlPRACAVYm88bzoJOYjMG3K25KVWKSB8 sebenarnya dan tidak
LdQu78NiQrYKTSsHxe6v4XOsZrKc++XR5ob5iw821vcqI6KkxBzK1sLB5q7Pv2cprW6wioHRpbH6 dapat dipakai.
q8PcSXs+7FLQUdduxKV7hchc7XhCzPJwn021YrAaRJ/FgAqk3bNa1JFGdg7N552JRZJsarBqjP8z
RcOhaMdHOwR+pZF4snfMB8t7Uj2hXp14c/bZJTVaME5XaLSdivRm5KqCFdhP4H59n2dj6mQdkgY0
Nilai-nilai tersebut hanya
QKuV81XsKbEEZ+kj5FSQDIB+QBm1DXxpi4IEpSodeOmp07twbH5ahRFvzulf+UsHo94BJRzpEDLr
uU6/Wzr540mgJpml38oWAj2j4qyf3ukclvL/yrfebT5uBDqmmqtskhAOI7NJAuNLisiyo8Ulfs2m untuk keperluan contoh
IOqutu51IpLphzjuzkzRR5Bscm/vmVVZE1uv3tDQY1EVCZcXKgIOrMdxoCZLppqzX/Nx9sOFrCwF saja, tidak untuk dipakai.
ydBxEe9DYrL4vUStxDMVPvaIDN8p/3w2f+KYnHZMN5Fh9xp0MLVk9FvO+C3QoaEDSK0rh941owbR
ccuF+zMm+a9VIr+ss5Y2DM8zxQqpOf6YEWCqA7A0XFXW9VfVBst/SPYo96v4pYHimo67G+f1qhdV
7y0yw6cXHjYF/EU7gptBryAWR6uNulepXIbtYuhoWrGbNEhTDsORlCrOmmBkzcavkWfOXZJcgLtT
HGZHCNXh3+nCOncRsLL9NNdyG7/I7q6wc8EzLPpzsUWqn2Uv/tfOxj3TooGUvG5VPNBTnXSqjXpK
iCdFKSyAx2K52yIZ0Ek/ItswNS1r97Y1HWUZoAT9hq4= -----END ENCRYPTED MESSAGE-----'\
'https://api-satusehat-dev.dto.kemkes.go.id/kyc/v1/generate-url'
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
Contoh Penggunaan/Kode
cURL (Windows) Tidak Terenkripsi
Example Script
curl --location ^
--header "Content-Type: application/json" ^ Setiap nilai yang
--header "Authorization: Bearer {bearer_token}" ^
dicontohkan atau
--request POST ^
--data "{ ditampilkan di
\"agent_name\": \"Bambang Wisanggeni\", dokumentasi ini adalah
\"agent_nik\": \"1171022809990001\" nilai yang tidak
\"public_key\": \"-----BEGIN PUBLIC sebenarnya dan tidak
KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqoicEXIYWYV3PvLIdvB\nqFkHn2 dapat dipakai.
IMhPGKTiB2XA56enpPb0UbI9oHoetRF41vfwMqfFsy5Yd5LABxMGyHJBbP\n+3fk2/PIfv+7+9/dKK7h1C
aRTeT4lzJBiUM81hkCFlZjVFyHUFtaNfvQeO2OYb7U\nkK5JrdrB4sgf50gHikeDsyFUZD1o5JspdlfqDj
Nilai-nilai tersebut hanya
ANYAhfz3aam7kCjfYvjgneqkV8\npZDVqJpQA3MHAWBjGEJ+R8y03hs0aafWRfFG9AcyaA5Ct5waUOKHWW
V9sv5DQXmb\nEAoqcx0ZPzmHJDQYlihPW4FIvb93fMik+eW8eZF3A920DzuuFucpblWU9J9o5w+2\noQID untuk keperluan contoh
AQAB\n-----END PUBLIC KEY-----\" saja, tidak untuk dipakai.
}" ^
"https://api-satusehat-dev.dto.kemkes.go.id/kyc/v1/generate-url"
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
Contoh Penggunaan/Kode
cURL (Linux) Tidak Terenkripsi
Example Script
curl --location \
--header 'Content-Type: application/json' \ Setiap nilai yang
--header 'Authorization: Bearer {bearer_token}' \ dicontohkan atau
--request POST \ ditampilkan di
--data '{ dokumentasi ini adalah
"agent_name": "Bambang Wisanggeni", nilai yang tidak
"agent_nik": "1171022809990001", sebenarnya dan tidak
"public_key": "-----BEGIN PUBLIC dapat dipakai.
KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqoicEXIYWYV3PvLI
dvB\nqFkHn2IMhPGKTiB2XA56enpPb0UbI9oHoetRF41vfwMqfFsy5Yd5LABxMGyHJBbP\n Nilai-nilai tersebut hanya
+3fk2/PIfv+7+9/dKK7h1CaRTeT4lzJBiUM81hkCFlZjVFyHUFtaNfvQeO2OYb7U\nkK5Jr
untuk keperluan contoh
drB4sgf50gHikeDsyFUZD1o5JspdlfqDjANYAhfz3aam7kCjfYvjgneqkV8\npZDVqJpQA3
saja, tidak untuk dipakai.
MHAWBjGEJ+R8y03hs0aafWRfFG9AcyaA5Ct5waUOKHWWV9sv5DQXmb\nEAoqcx0ZPzmHJDQ
YlihPW4FIvb93fMik+eW8eZF3A920DzuuFucpblWU9J9o5w+2\noQIDAQAB\n-----END
PUBLIC KEY-----"
}' \
'https://api-satusehat-dev.dto.kemkes.go.id/kyc/v1/generate-url'
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
POSTMAN
1. Buat request baru menggunakan New > HTTP Request, atau klik [+] untuk buat tab request baru.
2. Masukkan request URL
Request URL
https://api-satusehat-dev.dto.kemkes.go.id/kyc/v1/generate-url
3. Lalu pilih request method POST.
4. Pada tab Auth:
a. pada pilihan Type, pilih Bearer Token,
b. lalu masukkan nilai akses token yang sudah didapatkan pada saat autentikasi pada kotak inputan Token.
5. Pada tab Body bentuk Request pada Body (text/plain) terenkripsi:
a. pilih raw,
b. kemudian di samping nilai tadi pilih Text,
c. terakhir masukkan Text yang akan diproses ke kotak masukkan di bawah pilihan tadi.
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
POSTMAN
6. Pada tab Body bentuk Request pada Body (application/json) tidak terenkripsi:
a. pilih raw,
b. kemudian di samping nilai tadi pilih JSON,
c. Atau masukkan JSON yang akan diproses ke kotak masukkan di bawah pilihan tadi. Contoh:
{
"agent_name" : "Bambang Wisanggeni" ,
"agent_nik" : "1171022809990001" ,
"public_key" : "-----BEGIN PUBLIC
KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqoicEXIYWYV3PvLIdvB\nqFkHn2IMhPGKTiB2XA56en
pPb0UbI9oHoetRF41vfwMqfFsy5Yd5LABxMGyHJBbP\n+3fk2/PIfv+7+9/dKK7h1CaRTeT4lzJBiUM81hkCFlZjVFyHUFtaNf
vQeO2OYb7U\nkK5JrdrB4sgf50gHikeDsyFUZD1o5JspdlfqDjANYAhfz3aam7kCjfYvjgneqkV8\npZDVqJpQA3MHAWBjGEJ+
R8y03hs0aafWRfFG9AcyaA5Ct5waUOKHWWV9sv5DQXmb\nEAoqcx0ZPzmHJDQYlihPW4FIvb93fMik+eW8eZF3A920DzuuFucp
blWU9J9o5w+2\noQIDAQAB\n-----END PUBLIC KEY-----"
}
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
Generate - Kode Verifikasi
Fungsi dari ReST API ini adalah untuk melakukan proses Generate - Kode Verifikasi di mana nilai tersebut akan
muncul di SATUSEHAT Mobile (SSM) dan digunakan oleh pasien untuk proses validasi
Request
*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.
*Content-Type string Mime type dari payload data yang akan dikirimkan di dalam body dalam format JSON, WAJIB diisi dengan application/json.
PRIVATE
Petunjuk
Petunjuk & CONFIDENTIAL
Teknis
Teknis Implementasi
Know | INTERNAL
Verifikasi
Your Customer ONLY / KYC di Fasyankes
Profil
(KYC) SATUSEHAT PUBLIK :: FASKES satusehat.kemkes.go.id
ONLY | dto.kemkes.go.id
Bentuk Request pada Body (application/json) tidak terenkripsi
Contoh Data
Body (application/json)
{
"metadata" : {
"method" : "request_per_nik"
},
"data": {
"nik": "3171022809990001" ,
"name": "Budi Santoso"
}
}
dtokemkes
@dtokemkes
DTO Kemkes
@dtokemkes
https://dto.kemkes.go.id