BAGIAN I
ARSITEKTUR WEB SERVICE BIOS
Arsitektur web service BIOS :
Secara umum, cara kerja Webservice BIOS adalah sebagai berikut :
1. BIOS akan request token dengan username dan password yang telah diberikan.
2. Dengan token yang sudah ada, BIOS akan request data berikutnya sebagaimana terlampir. 3. Data yang di Request adalah Data Layanan dan Data Keuangan
4. Jika terjadi kegagalan, BIOS akan memberikan log.
Requirement
Penggunaan Arsitektur Teknologi : RESTFul (Representational state transfer) MVC (Client/Server)
Stateless
format data representation : Array Steps JSON (JavaScript Object Notation) Element Data (HTTP atau HTTPS) : Resources Oriented Services dengan URI (Uniform
Resource Identifier) atau URL
Keamanan
• Authentifikasi (Oauth): : JWT (shortened from JSON Web Token) : RFC • Transport Security (TLS) : JOSE (JSON Object Signatures & Encryption) : Web Key
atau Web Signature
Methods : GET data BLU
PUSH referensi kamus data dan trigger update data, serta tanggal update
Status Code & Response : Trigger data dengan code response
Error Handling : Error code, contoh : 5xx Server Error
REST Framework : Bebas :
• Rails Framework for Ruby (Ruby on Rails) • Django (Python)
• Jersey /JAX-RS (Java) • Restlet (Java) • Sinatra (Ruby) • Express.js (JavaScript/Node.js), dll
JSON
BIOS
Aplikasi Satker
Dashboard
Database
JSON
BAGIAN II
REQUEST TOKEN
Request token bersifat optional (pilihan) bagi satuan kerja BLU yang mengembangkan web service dengan
memerlukan autentifikasi saat melakukan requset dari BIOS (JWT). Request ini digunakan untuk mendapatkan token untuk autentikasi request-request selanjutnya. Methode yang digunakan adalah POST. Request ini memiliki format sebagai berikut :
No Nama Type Status Deskripsi
1 username String Wajib Diisi dengan username
2 password String Wajib Diisi dengan password
Jika sukses, format data sebagai berikut :
No Nama Type Status Deskripsi
1 access_token String Wajib Diisi dengan session ID
2 refresh_token String Wajib Diisi dengan session yang akan digunakan untuk request access_token kembali Contoh Response : {"id":"https://xxx.com", "refresh_token":"5Aep8614iLM.Dq661ePDmPEgaAW9Oh_L3JKkDpB4xReb54_ pZebnUG0h6Sb4KUVDpNtWEofWM39yg==","access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0R NBaT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4"} Format access_token : Header : { "typ": "JWT", "alg": "HS256" } Payload Data : { "iat": 1440386575, "iss": "xxxxxxxxx", "data": “kode satker” }
Keterangan :
iat : issued date, Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970). iss : issued.
BAGIAN III
DATA LAYANAN
Data layanan pada BIOS dapat disi menggunakan metode web service. Dibagi menjadi tiga ketegori yaitu sebagai berikut :
1. Layanan Kesehatan diperuntukan bagi satuan kerja BLU rumpun kesehatan; 2. Layanan Pendidikan diperuntukan bagi satuan kerja BLU rumpun pendidikan; 3. Layanan Lainnya diperuntukan bagi seluruh satuan kerja BLU sesuai indikator. Format data untuk masing-masing rumpun dapat dijelaskan sebagai berikut
1. Layanan Kesehatan
Digunakan untuk mengisi data layanan kesehatan. Metode yang digunakan adalah POST.
Parameter :
No Nama Type Status Deskripsi
1 tanggal_update Date Wajib Diisi tanggal update posisi data layanan kesehatan. Menggunakan format tanggal (yyyy/mm/dd).
Request ini memiliki format sebagai berikut :
No Nama Type Status Deskripsi
1 kode_satker string Wajib Diisi oleh kode satker BLU (terdiri dari 6 digit). kode satker dapat dilihat dari menu referensi->Satker BLU pada aplikasi BIOS
2 tahun string Wajib Diisi oleh tahun layanan (terdiri dari 4 digit) 3 bulan string Wajib Diisi oleh bulan layanan (terdiri dari 2 digit)
4 kelas string Wajib Diisi oleh kode kelas layanan. Referensi kelas layanan dapat dilihat melalui link :
http://bios.djpbn.kemenkeu.go.id/web_services/ref_kel as
5 jumlah_pasien string Wajib Diisi oleh jumlah pasien 6 Jumlah_hari string Wajib Diisi oleh jumlah hari layanan
7 tgl_update Datetime Wajib Diisi tanggal update data layanan menggunkan format tanggal (yyyy/mm/dd hh:mi:ss)
Contoh response : {"layanan_kesehatan":[ { "kode_satker":"415423", "tahun":"2012", “bulan”:”12”, "kelas":"01", "jumlah_pasien":"5", "jumlah_hari":"6", “tgl_update”:”2014/31/12 00:00:00”}] }
2. Layanan Pendidikan
Digunakan untuk mengisi data layanan pendidikan. Metode yang digunakan adalah POST. Parameter :
No Nama Type Status Deskripsi
1 tanggal_update Date Wajib Diisi tanggal update posisi data layanan. Menggunakan format tanggal (yyyy/mm/dd).
Request ini memiliki format sebagai berikut :
No Nama Type Status Deskripsi
1 kode_satker string Wajib Diisi oleh kode satker BLU (terdiri dari 6 digit). kode satker dapat dilihat dari menu referensi->Satker BLU pada aplikasi BIOS
2 tahun string Wajib Diisi oleh tahun layanan (terdiri dari 4 digit) 3 bulan string Wajib Diisi oleh bulan layanan (terdiri dari 2 digit)
4 kode_fakultas string Wajib Diisi oleh kode fakultas. Referensi dapat dilihat melalui link :
http://bios.djpbn.kemenkeu.go.id/web_services/ref_f akultas
5 kode_program_ studi
string wajib Diisi oleh kode program studi. Referensi dapat dilihat melalui link :
http://bios.djpbn.kemenkeu.go.id/web_services/ref_p rgram_studi
6 kode_akreditasi string Wajib Diisi oleh kode akreditasi. Referensi dapat dilihat melalui link :
http://bios.djpbn.kemenkeu.go.id/web_services/ref_a kreditasi
7 kode_jurusan string wajib Diisi oleh kode jurusan. Referensi dapat dilihat melalui link :
http://bios.djpbn.kemenkeu.go.id/web_services/ref_j urusan
8 tgl_update Datetime Wajib Diisi tanggal update data layanan menggunkan format tanggal (yyyy/mm/dd hh:mi:ss)
Contoh response : { "layanan_pendidikan":[{ "kode_satker":"189662", "tahun":"2016", “bulan” : “12”, "kode_fakultas":"01", "kode_program_studi":"09", "kode_akreditasi":"B", "kode_jurusan":"188", “tanggal_update”: “2014/31/12 00:00:00”}] }
3. Layanan Lainnya
Digunakan untuk mengisi data layanan pendidikan. Metode yang digunakan adalah POST. Parameter :
No Nama Type Status Deskripsi
1 tanggal_update Date Wajib Diisi tanggal update posisi data layanan. Menggunakan format tanggal (yyyy/mm/dd).
Request ini memiliki format sebagai berikut :
No Nama Type Status Deskripsi
1 kode_satker string Wajib Diisi oleh kode satker BLU (terdiri dari 6 digit). kode satker dapat dilihat dari menu referensi->Satker BLU pada aplikasi BIOS
2 tahun string Wajib Diisi oleh tahun layanan (terdiri dari 4 digit) 3 bulan string Wajib Diisi oleh bulan layanan (terdiri dari 2 digit)
4 indikator string Wajib Diisi oleh indikator. Referensi dapat dilihat melalui link :
http://bios.djpbn.kemenkeu.go.id/web_services/ref_i ndikator
7 jumlah string Wajib Diisi jumlah pengguna layanan pada bulan dan tahun layanan
8 tgl_update Datetime Wajib Diisi tanggal update data layanan menggunkan format tanggal (yyyy/mm/dd hh:mi:ss)
Contoh response : { "layanan_lainnya":[ { "kode_satker":"539060", "tahun":"2009", “bulan” : “12”, "indikator":"0062", "jumlah":"30", “tanggal_update”: “2014/31/12 00:00:00” } ] }
BAGIAN IV
DATA KEUANGAN
1. Request Data Penerimaan
Request ini digunakan untuk melakukan request data penerimaan. Methode yang digunakan adalah POST.
Parameter :
No Nama Type Status Deskripsi
1 TanggalUpdate Datetime Wajib Diisi tanggal update posisi saldo data penerimaan. Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970).
Request ini memiliki format sebagai berikut :
No Nama Type Status Deskripsi
1 tanggal string Wajib Diisi tanggal posisi saldo data penerimaan.
Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970).
2 kodeAkun string Wajib Diisi dengan kode akun.
Referensi kode akun penerimaan dapat dilihat di :
http://lk.bios.djpbn.kemenkeu.go.id/api/services/getReferensiAkunPe nerimaan
3 Saldo number Wajib Diisi dengan jumlah akumulasi saldo penerimaan per kode akun dari tanggal 1 januari sampai dengan tanggal pada field tanggal
4 TanggalUpdate Datetime Wajib Diisi tanggal update posisi saldo data penerimaan. Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970). Contoh Response: [{ "Penerimaan": [], "Tanggal": "2017-01-24T00:00:00", "KodeAkun": "424919", "Saldo": 987654321, "TanggalUpdate": "2017-01-23T00:00:00" }, { "Penerimaan": [], "Tanggal": "2017-01-24T00:00:00", "KodeAkun": "424914", "Saldo": 987654321, "TanggalUpdate": "2017-01-23T00:00:00" }, { "Penerimaan": [], "Tanggal": "2017-01-24T00:00:00", "KodeAkun": "424913", "Saldo": 987654321, "TanggalUpdate": "2017-01-23T00:00:00" }]
2. Request Data Pengeluaran
Request ini digunakan untuk melakukan request data pengeluaran. Methode yang digunakan adalah POST.
Parameter :
No Nama Type Status Deskripsi
1 TanggalUpdate Datetime Wajib Diisi tanggal update posisi saldo data pengeluaran. Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970).
Request ini memiliki format sebagai berikut :
No Nama Type Status Deskripsi
1 tanggal string Wajib Diisi tanggal posisi saldo data pengeluaran.
Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970).
2 kodeAkun string Wajib Diisi dengan kode akun.
Referensi kode akun pengeluaran dapat dilihat di :
http://lk.bios.djpbn.kemenkeu.go.id/api/services/getReferensiAkunPe ngeluaran
3 Saldo number Wajib Diisi dengan jumlah akumulasi saldo pengeluaran per kode akun dari tanggal 1 januari sampai dengan tanggal pada field tanggal
4 TanggalUpdate Datetime Wajib Diisi tanggal update posisi saldo data pengeluaran. Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970). Contoh: [{ "Pengeluaran": [], "Tanggal": "2017-01-24T00:00:00", "KodeAkun": "424919", "Saldo": 987654321, "TanggalUpdate": "2017-01-23T00:00:00" }, { "Pengeluaran": [], "Tanggal": "2017-01-24T00:00:00", "KodeAkun": "424914", "Saldo": 987654321, "TanggalUpdate": "2017-01-23T00:00:00" }, { "Pengeluaran": [], "Tanggal": "2017-01-24T00:00:00", "KodeAkun": "424913", "Saldo": 987654321, "TanggalUpdate": "2017-01-23T00:00:00" }]
3. Request Data Saldo
Request ini digunakan untuk melakukan request data saldo rekening per Bank per Jenis Rekening. Methode yang digunakan adalah POST.
Parameter :
No Nama Type Status Deskripsi
1 TanggalUpdate Datetime Wajib Diisi tanggal update posisi saldo. Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970).
Request ini memiliki format sebagai berikut :
No Nama Type Status Deskripsi
1 tanggal string Wajib Diisi tanggal posisi saldo. Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970).
Referensi kode Jenis Rekening dapat dilihat di :
http://lk.bios.djpbn.kemenkeu.go.id/api/services/getReferensiJeni sRekening
3 NamaBank String Wajib Diisi dengan nama Bank
4 Saldo number Wajib Diisi dengan jumlah akumulasi saldo Jenis Rekening per Bank, dari tanggal 1 januari sampai dengan tanggal pada field tanggal
5 TanggalUpdate Datetime Wajib Diisi tanggal update posisi saldo. Menggunakan Unix epoch (00:00:00 UTC on 1 January 1970).
Contoh Response:
[{
"SaldoBLU": [],
"Tanggal": "2017-01-24T00:00:00", "KodeJenisRekening": "1", "NamaBank": "Bank ABC", "Saldo": 987654321, "TanggalUpdate": "2017-01-23T00:00:00" }, { "SaldoBLU": [], "Tanggal": "2017-01-24T00:00:00", "KodeJenisRekening": "1", "NamaBank": "Bank DEF", "Saldo": 987654321,
"TanggalUpdate": "2017-01-23T00:00:00" },]
BAGIAN V
LOG
Log merupakan summary hasil proses web service seperti pesan gagal saat proses. Log akan di sediakan oleh BIOS melalui uri http://bios.djpbn.kemenkeu.go.id/web_services/log. Methode yang digunakan adalah POST. Parameter :
No Nama Type Status Deskripsi
1 Tanggal Datetime Wajib Diisi tanggal log.
2 Username String Wajib Diisi username aplikasi bios.djpbn.kemenkeu.go.id 3 Password String Wajib Diisi username aplikasi bios.djpbn.kemenkeu.go.id
Contoh response yang akan didapatkan :
[{
"log": [],
“Tanggal": "2017-01-24T00:00:00", "summary": "authenticate failed", "errordetail": server error 500 }, {
"log": [],
"Tanggal": "2017-01-24T00:00:00", "summary": "authenticate failed", "errordetail": server error 403 }, {
" log ": [],
"Tanggal": "2017-01-24T00:00:00", "summary": "authenticate failed", "errordetail": access denied }]
LIST REFERENSI
No Uraian Link Keterangan
1 Kode Fakultas http://bios.djpbn.kemenkeu.go.id/web_services/ref_fakultas
2 Kode Akreditasi http://bios.djpbn.kemenkeu.go.id/web_services/ref_akreditasi
3 Kode Jurusan http://bios.djpbn.kemenkeu.go.id/web_services/ref_jurusan
4 Kode Kelas http://bios.djpbn.kemenkeu.go.id/web_services/ref_kelas
5 Kode Indikator http://bios.djpbn.kemenkeu.go.id/web_services/ref_indikator
6 Akun Penerimaan http://lk.bios.djpbn.kemenkeu.go.id/api/services/getReferensiAkunPenerimaan 7 Akun Pengeluaran http://lk.bios.djpbn.kemenkeu.go.id/api/services/getReferensiAkunPengeluaran