Singkatan yang digunakan pada dokumen ini
NA Tidak tersedia
M Harus ada
ME Mengembalikan data yang sama
C Hanya pada kondisi tertentu
Fmt Format data (Tipe, Panjang)
Req Permintaan
Res Respons
n Numerik
an Alfabet, numerik
ans Alfabet, numerik, spasi, tanda baca
h Heksadesimal
.. Panjang data bervariasi dari 1 hingga 99, kecuali dinyatakan lain. Lihat ‘Fmt’.
Panjang data bervariasi dari 1 hingga 999, kecuali dinyatakan lain. Lihat ‘Fmt’.

 

Informasi pada methodName dan fungsi
RPC.Inquiry permintaan informasi tagihan
RPC.Payment permintaan pembayaran tagihan
RPC.Saldo permintaan informasi saldo

 

Informasi pada XML-RPC fault (internal)
faultCode 9xxx
faultString ERROR: <penjelasan ringkas>

 

Infomasi pada ‘status’
S Berhasil
G Gagal
P Tunda

 

Informasi pada ‘code’
0 Berhasil
1 Gagal
2 Tunda
9xxx Terdapat atau terjadi kesalahan. Lihat informasi lanjutan.

 

Informasi pada ‘pesan’
Gagal GAGAL: <penjelasan ringkas> ERROR: <penjelasan ringkas>
Tunda PENDING: <penjelasan ringkas>
Berhasil Kecuali pada informasi Saldo, mengandung beberapa komponen informasi yang dipisahkan dengan tanda garis tegak lurus (|). Misal: infoA|infoB|infoC|…infoZ Lihat komponen informasi dibawah.
RPC.Inquiry Produk, ID Pelanggan, Nama Pelanggan, Periode Tagihan, Jumlah Tagihan, Nomor/Kode Referensi, Tarif/Daya (PLN), Posisi Meter (PLN), Bea Administrasi, Jumlah Bayar
RPC.Payment Produk, ID Pelanggan, Nama Pelanggan, Periode Tagihan, Jumlah Tagihan, Nomor/Kode Referensi, Tarif/Daya (PLN), Posisi Meter (PLN), Bea Administrasi, Jumlah Bayar
RPC.Beli Produk, ID Pelanggan, Nama Pelanggan, Tarif/Daya (PLN), Nomor Meter, Receipt, Token, Nomor/Kode Referensi, Jumlah Bayar
RPC.Saldo Informasi saldo dalam rupiah, misal: Sisa saldo Rp 1.234.567,00

 

Catatan khusus
1

• Proses Inquiry, Payment, dan Beli dapat diulangi bilamana hasil sebelumnya adalahTunda.• Pengulangan dengan menggunakan ‘refid’ yang sama akan dianggap sebagai permintaan untuk melakukan cek hasil terkini dari proses sebelumnya.

• Bila hasil terkini dari pengulangan permintaan menggunakan ‘refid’ yang sama adalah Gagal, maka permintaan ulang tersebut akan dianggap sebagai sebuah permintaan baru yang akan diproses secara lengkap. Harap perhatikan perbedaan ‘rpcid’.

• Sistem akan memproses secara lengkap sebagaimana sebuah permintaan baru apabila didapati sebuah permintaan ulang yang menggunakan ‘refid’ berbeda.

2

• Pada saat proses Inquiry atau Payment dinyatakan Berhasil, perlu diperhatikan bahwa tidak semua komponen informasi pembentuk ‘pesan’ akan selalu tersedia sebagaimana diharapkan.• Komponen informasi yang diketahui terkadang tidak lengkap tersebut adalah sebagai berikut;1. periode tagihan

2. tarif / daya (PLN)

3. posisi meter (PLN)

3 • Nilai pemotong saldo yang digunakan pada saat Payment atau Beli dan menjadi acuan adalah nilai yang tercantum pada ‘jumlahbayar’ bila Payment atau Beli dinyatakan Berhasil.
4 • Satu sesi lengkap proses dilakukan secara searah atau lazim disebut synchronous.• Tipe payload XML-RPC adalah struct.
5 • Batas waktu timeout (proses) dari server adalah 70 detik. Tidak termasuk bilamana terdapat atau terjadi gangguan komunikasi antara server dan klien.• Kecuali pada saat Payment dan Beli, klien dapat mengasumsikan sebuah proses yang melewati waktu timeout adalah Gagal. Namun pada kasus seperti ini, sangat dianjurkan untuk berasumsi bahwa hasil sementara proses adalah Tunda, dan klien melakukan permintaan ulang dengan menggunakan ‘refid’ yang sama untuk mendapatkan hasil terkini.

 

Kode pada ‘produk’
TEL Telepon tetap TELKOM
SPEEDY TELKOM Speedy
FLEXI TELKOM Flexi
PLN Listrik PLN

 

Informasi pada ‘code’ (lanjutan)
9001 Akses melalui Web-Proxy tidak diperkenankan
9002 Request-Method bukan ‘POST’
9003 Content-Type bukan ‘text/xml’
9004 Content-Length lebih kecil dari batas minimum atau lebih besar dari batas maksimum
9050, 9051 Host tidak terdaftar
9511, 9521,9531 Parameter tidak tersedia atau data tidak sesuai format (Tipe, Panjang)
9512, 9522,9190 Produk tidak tersedia atau tidak dikenal
9583, 9803 Jumlah tagihan melebihi sisa saldo atau saldo dibawah batas minimum

9180, 9181,9182, 9188,9189, 9800,

9801, 9802

‘custid’ atau ‘pin’ tidak sesuai.
9200 Data Inquiry/Payment tidak ditemukan.
9999 Kegagalan proses pada sistem.

 

9xxx Silahkan menghubungi Customer Service atau Technical Support kami.

9xxx Untuk Payment, harap diulang kembali dengan ‘refid’ yang sama.

 

Spesifikasi Teknis Pertukaran Data, methodName: RPC.Inquiry

RPC.Inquiry
Nama Req Res Fmt Tipe
custid M NA n20 string
pin M NA an..6 string
refid M ME an..20 string
produk M ME an..8 string
idpelanggan M ME an..20 string
namapelanggan NA M ans..64 string
jumlahtagihan NA M n..10 int
jumlahadm NA M n..10 int
jumlahbayar NA M n..10 int
pesan NA M ans…255 string
status NA M a1 string
code NA M n..4 int
rpcid NA M n20 string

 

Spesifikasi Teknis Pertukaran Data, methodName: RPC.Payment

RPC.Payment
Nama Req Res Fmt Catatan
custid M NA n20 string
pin M NA an..6 string
refid M ME an..20 string
produk M ME a..8 string
idpelanggan M ME an..20 string
namapelanggan NA M ans..64 string
jumlahtagihan NA M n..10 int
jumlahadm NA M n..10 int
jumlahbayar M ME n..10 int
refnumber NA M ans..32 string
pesan NA M ans…255 string
status NA M a1 string
code NA M n..4 int
rpcid NA M n20 string

 

Spesifikasi Teknis Pertukaran Data, methodName: RPC.Beli

RPC.Beli
Nama Req Res Fmt Catatan
custid M NA n20 string
pin M NA an..6 string
refid M ME an..20 string
produk M ME a..8 string
produksub M ME an..16 string
idpelanggan* M ME an..20 string
namapelanggan NA M ans..64 string
jumlahbayar NA M n..10 int
refnumber NA M ans..32 string
pesan NA M ans…255 string
status NA M a1 string
code NA M n..4 int
rpcid NA M n20 string

* dapat menggunakan ID Pelanggan atau Nomor Meter Pelanggan

 

Spesifikasi Teknis Pertukaran Data, methodName: RPC.Saldo

RPC.Saldo
Nama Req Res Fmt Tipe
custid M NA n20 string
pin M NA an..6 string
refid M ME an..20 string
saldo NA M n..10 int
pesan NA M ans…255 string
status NA M a1 string
code NA M n..4 int
rpcid NA M n20 string

 

Contoh Permintaan

RPC.Inquiry

<?xml version=”1.0″?>

<methodCall><methodName>RPC.Inquiry</methodName>

<params><param><value><struct>

<member><name>custid</name><value><string>[custid]</string></value></member>

<member><name>pin</name><value><string>[pin]</string></value></member>

<member><name>refid</name><value><string>[refid]</string></value></member>

<member><name>produk</name><value><string>[produk]</string></value></member>

<member><name>idpelanggan</name><value><string>[idpelanggan]</string></value></member>

</struct></value></param></params>

</methodCall>

 

RPC.Payment

<?xml version=”1.0″?>

<methodCall><methodName>RPC.Payment</methodName>

<params><param><value><struct>

<member><name>custid</name><value><string>[custid]</string></value></member>

<member><name>pin</name><value><string>[pin]</string></value></member>

<member><name>refid</name><value><string>[refid]</string></value></member>

<member><name>produk</name><value><string>[produk]</string></value></member>

<member><name>idpelanggan</name><value><string>[idpelanggan]</string></value></member>

<member><name>jumlahbayar</name><value><int>[jumlahbayar]</int></value></member>

</struct></value></param></params>

</methodCall>

 

RPC.Beli

<?xml version=”1.0″?>

<methodCall><methodName>RPC.Beli</methodName>

<params><param><value><struct>

<member><name>custid</name><value><string>[custid]</string></value></member>

<member><name>pin</name><value><string>[pin]</string></value></member>

<member><name>refid</name><value><string>[refid]</string></value></member>

<member><name>produk</name><value><string>[produk]</string></value></member>

<member><name>produksub</name><value><string>[produk]</string></value></member>

<member><name>idpelanggan</name><value><string>[idpelanggan]</string></value></member>

</struct></value></param></params>

</methodCall>

 

RPC.Saldo

<?xml version=”1.0″?>

<methodCall><methodName>RPC.Saldo</methodName>

<params><param><value><struct>

<member><name>custid</name><value><string>[custid]</string></value></member>

<member><name>pin</name><value><string>[pin]</string></value></member>

<member><name>refid</name><value><string>[refid]</string></value></member>

</struct></value></param></params>

</methodCall>

 

Contoh Respons

Fault

<methodResponse>

<fault><value><struct>

<member><name>faultCode</name><value><int>[code]</int></value></member>

<member><name>faultString</name><value><string>[ERROR: penjelasan ringkas]</string></value></member>

</struct></value></fault>

</methodResponse>

 

Gagal

<methodResponse>

<params><param><value><struct>

<member><name>refid</name><value><string>[refid]</string></value></member>

<member><name>produk</name><value><string>[produk]</string></value></member>

<member><name>idpelanggan</name><value><string>[id pelanggan]</string></value></member>

<member><name>namapelanggan</name><value><string>[nama pelanggan]</string></value></member>

<member><name>jumlahtagihan</name><value><int>[jumlah tagihan]</int></value></member>

<member><name>jumlahadm</name><value><int>[jumlah adm]</int></value></member>

<member><name>jumlahbayar</name><value><int>[jumlah bayar]</int></value></member>

<member><name>refnumber</name><value><string>[ref number]</string></value></member>

<member><name>pesan</name><value><string>[GAGAL: penjelasan ringkas]</string></value></member>

<member><name>status</name><value><string>[status]</string></value></member>

<member><name>code</name><value><int>[code]</int></value></member>

<member><name>rpcid</name><value><string>[rpc id]</string></value></member>

</struct></value></param></params>

</methodResponse>

 

Berhasil atau Tunda

<methodResponse>

<params><param><value><struct>

<member><name>refid</name><value><string>[ref id]</string></value></member>

<member><name>produk</name><value><string>[produk]</string></value></member>

<member><name>idpelanggan</name><value><string>[id pelanggan]</string></value></member>

<member><name>namapelanggan</name><value><string>[nama pelanggan]</string></value></member>

<member><name>jumlahtagihan</name><value><int>[jumlah tagihan]</int></value></member>

<member><name>jumlahadm</name><value><int>[jumlah adm]</int></value></member>

<member><name>jumlahbayar</name><value><int>[jumlah bayar]</int></value></member>

<member><name>refnumber</name><value><string>[ref number]</string></value></member>

<member><name>pesan</name><value><string>[infoA|infoB|

infoC|…infoZ]</string></value></member>

<member><name>status</name><value><string>[status]</string></value></member>

<member><name>code</name><value><int>[code]</int></value></member>

<member><name>rpcid</name><value><string>[rpc id]</string></value></member>

</struct></value></param></params>

</methodResponse>