PANDUAN API

PENGENALAN

Dokumen ini mengandungi perihalan fungsi dan bahagian tertentu API XML FasaPay. API XML membolehkan Anda memproses penghantaran dan penerimaan pembayaran secara automatik. Dapatkan maklumat transaksi dan senarai rekod transaksi yang telah dibuat melalui FasaPay. Perkhidmatan ini bertujuan untuk semua tapak yang memilih FasaPay sebagai pilihan pembayaran atau semua jenis aktiviti perniagaan yang memerlukan pemindahan antara akaun elektronik melalui akaun FasaPay.

SIAPA YANG MEMERLUKAN DOKUMEN INI

Dokumen ini diperlukan untuk semua pembangun yang bekerja dalam bidang pengaturcaraan yang ingin menyepadukan perkhidmatan pembayaran FasaPay di tapak web mereka. Untuk melaksanakan API XML dengan betul, Anda sepatutnya sudah memahami atau mempunyai pengalaman dalam bidang berikut:

  • Menyediakan data dan menghantar permintaan ke pelayan web
  • Terima dan analisis respons daripada pelayan web
  • Berfungsi dengan protokol HTTPS
  • Mempunyai pengetahuan tentang XML dan boleh menggunakan HASH

MAKLUMAT ASAS TENTANG API XML

XML API ialah koleksi arahan, yang digunakan sebagai perantara antara FasaPay dan tapak web lain. Format dan struktur data API XML dibangunkan daripada standard XML-1.0

CARA KERJA XML API

API XML ialah sistem yang menghantar dan menerima permintaan maklumat. Sistem ini akan memproses permintaan mengikut arahan kemudian akan menggabungkan laporan data yang diperlukan dan menghantarnya semula kepada penghantar permintaan.
Setiap permintaan terdiri daripada arahan tertentu yang kemudiannya akan ditafsirkan (mentafsir) oleh API dan kemudian mengarahkan pelayan untuk mengikuti arahan ini. Selepas setiap arahan dilaksanakan, pelayan akan bertindak balas dengan keputusan yang telah dilaksanakan atau dengan mesej ralat yang menerangkan mengapa ralat itu berlaku.
Setiap permintaan dan respons mesti diatur sedemikian rupa sehingga ia mengikut format yang telah ditetapkan supaya ia akan membentuk data khusus dan boleh dibaca oleh API XML. Sesetengah permintaan akan menghasilkan lebih daripada satu arahan dan/atau lebih daripada satu respons. Berikut ialah beberapa langkah untuk menjadikan API XML berjalan dengan lancar.

  • Pengumpulan permintaan data
  • Pembentukan XML dengan format yang betul
  • Membuat HTTP GET atau POST Request berdasarkan XML yang disediakan.
  • Menghantar permintaan HTTP GET atau POST ke Pelayan FasaPay melalui HTTPS
  • Menunggu jawapan daripada pelayan
  • Menganalisis dan memproses data respons yang dihantar oleh pelayan FasaPay

PERSEDIAAN

Sebelum mula menggunakan XMLAPI, Anda perlu mengikuti langkah-langkah di bawah:

  • Anda perlu membuat API_KEY dalam FasaPay:
    • Log masuk ke FasaPay
    • Di <<MEMBER AREA>> terdapat menu Akses Akaunt (API) > API Akaun
    • Klik tambah API
    • Masukkan Nama API dan Kata Rahsia API kemudian klik buat API
  • Anda akan mendapat API_KEY, api_key ini akan digunakan sebagai pengenalan untuk permintaan API XML.
    Kata rahsia akan digunakan sebagai sebahagian daripada penjanaan token untuk proses pengesahan.

OPERASI API XML

XML API menyokong beberapa pilihan operasi, iaitu seperti berikut:

  • Transfer. Membolehkan Anda memindahkan dana dari satu akaun ke akaun yang lain. Dengan arahan ini Anda boleh memindahkan mana-mana mata wang yang tersedia di FasaPay. Pilihan ini juga membolehkan Anda melakukan pemindahan besar-besaran.
  • History. Pilihan ini membolehkan Anda mendapatkan rekod transaksi yang berlaku dalam akaun FasaPay Anda. Pilihan ini menyokong banyak parameter tambahan untuk menapis data yang Anda ingin dapatkan seperti tarikh, mata wang, akaun destinasi dan sebagainya.
  • Detail. Pilihan ini membolehkan Anda mendapatkan maklumat terperinci tentang transaksi. Dalam satu permintaan, Anda boleh memasukkan lebih daripada satu pilihan ini untuk mendapatkan lebih daripada satu maklumat transaksi.
  • Balance. Pilihan ini membolehkan Anda mengetahui baki dalam akaun FasaPay Anda.
  • Account. Pilihan ini membolehkan Anda menyemak sama ada nombor akaun dalam FasaPay atau tidak.

AUTHENTICATION

XML dokumen harus selalu berisi informasi authentikasi dari user. Informasi ini digunakan untuk mengidentifikasi user. Berikut adalah data yang harus selalu dikirim dalam setiap request XML-API

  • API_KEY, Anda akan mendapatkan api_key setelah membuat API.
    api_key ini digunakan untuk mengidentifikasi user.
  • TOKEN, token adalah sebuah hasil HASH dari rangkaian api_secretword , api_key dan tanggal UTC.

PEMBUATAN AUTHENTIKASI TOKEN

Berikut adalah cara untuk membuat TOKEN

  • Rangkai data sebagai berikut

    API_KEY:API_SECRETWORD:DATE UTC in YYYYMMDDHH
    YYYY = 4 digit Tahun
    MM = 2 Digit Bulan
    DD = 2 digit Hari
    HH = 2 digit Jam (dalam 24 jam)
  • Kemudian di HASH menggunakan SHA256
    Contoh :

    - api_key = 11123548cd3a5e5613325132112becf
    - api_secretword = kata rahasia
    - date = 20 July 2011, 15:30

Maka akan menghasilkan

11123548cd3a5e5613325132112becf:kata rahasia:2011072015
Dan setelah di hash akan menjadi (ini token Anda)
e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b

 

REQUEST AND RESPONSE IDENTIFICATION

XML API membutuhkan parameter identifikasi tambahan agar response dari setiap request dapat di jalankan secara akurat. Hal ini menjamin bahwa request yang di kirim dapat dijalankan dengan benar oleh sistem. Parameter tambahan ini adalah berupa ID. ID dapat berisikan karakter apa saja namun sebaiknya selalu unik. Response dari server nanti juga akan menambahkan ID tersebut dalam attributenya. Sehingga user dapat mencocokan ID dari request dengan ID dari response. Apabila ID tidak sesuai maka anda telah menerima data yang salah atau terjadi kesalahan dengan sistem. Parameter ID juga digunakan untuk mencegah adanya pembayaran ganda melalui API.
Setelah request transfer di kirim ke server, server kemudian akan melakukan pencarian sesuai akun ID dan apabila tidak di temukan kesamaan atau error yang lainnya maka request akan segera diproses. Jika ditemukan ID yang sama maka server kemudian akan membandingkan jumlah nilai mata uang dan data-data lainnya. Apabila ditemukan kesamaan maka request akan di batalkan oleh server. Server akan mengirimkan response sebagai berikut ke user sebagai bentuk pemberitahuan akan adanya error dalam transaksi XML-API.

    <fasa_response id="1107210001"  date_time="2011-08-01T14:15:00+07:00">
<errors id="tr-td-1" mode="transfer" code="40109">
<data>
<attribute>duplication_detected</attribute>
<message>DUPLICATION DATA DETECTED</message>
</data>
</errors>
</fasa_response>

FORMAT DATA

Tabel ini berisi jenis dan format yang digunakan oleh FasaPa XML API

JENIS DATA

FORMAT

CONTOH

ID

Baris teks hingga 20 karakter (varchar(20))

id1234567890, 20110720, abcdefg

API_KEY

32 karakter/digit

1d719cf2f0888c8fbfe41933f884c955

TOKEN

64 karakter/digit

e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b

Amount

FLOAT hingga 4 digit di belakang koma. Menggunakan titik ( . ) sebagai pemisah desimal.

10000
250.51
3000

Currency

3 karakter mata uang
IDR = Indonesia Rupiah
USD = US Dollar

IDR, USD

Date_time

ISO 8601 Date Format

2011-08-01T14:15:00+07:00

 

 

 

KOD SALAH

Kod Ralat Utama

KOD SALAH MESEJ BUTIRAN MENETAPKAN
40000 NOT VALID XML REQUEST XML yang dihantar tidak sah, rosak atau mempunyai format yang salah. Semak semula XML adakah terdapat teg XML yang tidak ditutup, aksara istimewa yang salah, dsb.
40100 UNAUTHORIZED Keizinan gagal.
Ralat dalam teg auth. Seperti api_key yang salah atau token yang salah.
40600 NOT ACCEPTABLE TRANSFER Terdapat ralat dalam operasi pemindahan. Terdapat ralat dalam operasi pemindahan. seperti baki tidak mencukupi, jumlah yang banyak, akaun sasaran tidak sah, dsb.
40700 DETAIL REQUEST ERROR Terdapat ralat dalam operasi terperinci. Anda telah memasukkan nombor kelompok yang tidak sah atau tidak wujud.
40800 HISTORY REQUEST ERROR Terdapat ralat dalam operasi sejarah. Semak kod anda untuk nilai tidak sah. seperti format tarikh tidak sah, nilai halaman tidak sah, dsb.
40900 BALANCE REQUEST ERROR Terdapat ralat dalam operasi imbangan. Anda telah memasukkan kod mata wang yang tidak sah, tidak wujud atau dilumpuhkan.
41000 ACCOUNT REQUEST ERROR Terdapat ralat dalam pengendalian akaun. Anda telah memasukkan Nombor Akaun FasaPay yang tidak sah, tidak wujud atau melumpuhkan.
       
       

Kod Ralat Sekunder

KOD EROR MESSEJ BUTIRAN MENETAPKAN
40101 WRONG API_KEY API_KEY tidak menemuinya pangkalan data. Semak semula api_key Anda dan padankannya dengan api_key yang Anda buat dalam akaun FasaPay Anda.
40102 WRONG API_SECRET API_SECRET salah. Semak semula api_secret Anda dan padankan dengan api_secret yang Anda buat dalam akaun FasaPay Anda.
40103 WRONG TOKEN TOKEN salah. Semak semula token dan cincang Anda. Pastikan Anda menggunakan SHA256 dan menggunakan rentetan yang betul.
40104 WRONG API_SECRETWORD API_SECRETWORD salah.  Semak semula api_secret_word Anda dan padankannya dengan api_secret yang Anda buat dalam akaun FasaPay Anda.
40105 UNAUTHORIZED IP IP Anda disenaraikan dalam senarai hitam atau tidak disenaraikan dalam senarai putih. Semak tetapan Senarai Hitam/Putih API Anda.
40106 UNAUTHORIZED TIME Anda menggunakan IP pada masa senarai hitam atau tidak dalam masa senarai putih. Semak tetapan Senarai Hitam/Putih API Anda untuk masa penggunaan yang betul.
40107 UNAUTHORIZED COMMAND Perintah Operasi disenarai hitam atau tidak dalam senarai putih. Semak tetapan Senarai Hitam/Putih API Anda.
40108 UNAUTHORIZED METHOD Kaedah yang digunakan untuk mengakses API adalah tersenarai hitam atau tidak dalam senarai putih. Semak tetapan Senarai Hitam/Putih API Anda.
       
40601 INVALID OR NON EXISTENCE DESTINATION ACCOUNT Akaun Sasaran FasaPay tidak wujud atau tidak betul. Semak semula anda <to></to> dalam teg <transfer>. Dan pastikan ia menunjuk ke Akaun FasaPay yang betul.
40602 NOT ENOUGH BALANCE Baki tidak mencukupi untuk meneruskan operasi. Tingkatkan baki Anda. Seperti menggunakan TOPUP.
40603 AMOUNT TO LARGE Jumlahnya lebih besar daripada yang dibenarkan oleh FasaPay. Kurangkan jumlah pemindahan Anda.
40604 AMOUNT TO SMALL Jumlahnya lebih kecil daripada yang dibenarkan oleh FasaPay. Tingkatkan jumlah pemindahan Anda.
40605 INVALID OR NON EXISTENCE SOURCE CURRENCY Mata wang itu sama ada tidak aktif atau nilai tidak sah. Semak teg <currency> ntuk format mata wang tidak sah.
Atau semak akaun Anda untuk mata wang yang dilumpuhkan.
       
40701 TRANSACTION NOT FOUND Nombor kelompok yang dimasukkan tiada dalam pangkalan data FasaPay. Pastikan Anda memasukkan nombor kelompok yang sah.
       
40801 WRONG OR INACTIVE CURRENCY Mata wang itu sama ada tidak aktif atau nilai tidak sah. Semak teg <currency> untuk format mata wang tidak sah.
Atau semak akaun anda untuk mata wang yang dilumpuhkan.
40802 INVALID DATE FORMAT (yyyy-mm-dd) Invalid <start_date> Format. Semak <start_date> Anda untuk format tarikh tidak sah.
40803 INVALID DATE FORMAT (yyyy-mm-dd) Invalid <end_date> Format. Semak <end_date> Anda untuk format tarikh yang tidak sah.
40804 INVALID TYPE VALUE Invalid <type> value Semak <type> Anda untuk nilai tidak sah. Pastikan ia salah satu nilai yang dibenarkan.
40805 INVALID ORDER_BY VALUE Invalid <order_by> value Semak <order_by> Anda untuk nilai tidak sah. Pastikan ia salah satu nilai yang dibenarkan.
40806 INVALID ORDER VALUE Invalid <order> value Semak <order> Anda untuk nilai tidak sah. Pastikan ia salah satu nilai yang dibenarkan.
40807 INVALID PAGE VALUE Invalid <page> value Semak <page> Anda untuk nilai tidak sah. Pastikan ia salah satu nilai yang dibenarkan.
40808 INVALID PAGE_SIZE VALUE Invalid <page_size> value Semak <page_size> Anda untuk nilai tidak sah. Pastikan ia salah satu nilai yang dibenarkan.
       
40910 REACH MAXIMUM ALLOWED BALANCE REQUEST BATCH COUNT Telah mencapai kiraan permintaan kelompok maksimum yang dibenarkan.  Kurangkan jumlah permintaan kelompok.
40901 WRONG OR INACTIVE CURRENCY Mata wang itu sama ada tidak aktif atau nilai tidak sah. Format mata wang tidak sah.
Atau semak akaun anda untuk mata wang yang dilumpuhkan.
       
41010 REACH MAXIMUM ALLOWED ACCOUNT REQUEST BATCH COUNT Telah mencapai kiraan permintaan kelompok maksimum yang dibenarkan.  Kurangkan jumlah permintaan kelompok.
41001 ACCOUNT NOT FOUND Nombor Akaun tidak sah atau nombor akaun yang Diminta belum lagi didaftarkan atau dilumpuhkan oleh Pentadbir.  

XML API Operations

URL XML API

Semua permintaan API XML dihantar ke URL berikut:

https://api.fasapay.com/

atau

https://www.fasapay.com/xml

Struktur Permintaan Umum

Berikut ialah templat Permintaan XML asas kepada pelayan API XML.
Semua operasi mempunyai struktur yang sama.
Bermula dengan struktur asas fasa_request, kemudian blok auth dan kemudian permintaan data

<fasa_request id="idrequest">
<auth>
<api_key>API KEY</api_key>
<token>AUTHENTICATION TOKEN</token>
</auth>
<operation name> <!-- operation No.1 -->
... operation data ...
</operation name>
...

<operation name> <!-- operation No.N -->
... operation data ...
</operation name>
</fasa_request>

Struktur Response Umum

Berikut ialah templat Respons XML asas daripada pelayan API XML.
Bermula dengan struktur asas fasa_response

<fasa_response id="idrequest">
<operation name> <!-- operation No.1 -->
... status operation data ...
</operation name>
...
<operation name> <!-- operation No.N -->
... status operation data ...
</operation name>
</fasa_response>

 

Jika ralat berlaku semasa melaksanakan operasi ia akan menghasilkan respons ralat dengan format berikut.

<errors  id="if-operation-has-id" mode="operation name" code="primary-error-code">
<data><!—error data No.1 -->
<code>secondary-error-code</code>
<attribute>affected attribute (attribute which has invalid data)</attribute>
<message>error-message</message>
</data>
....
<data>><!—error data No.N-->
<code>secondary-error-code</code>
<attribute>affected attribute (attribute which has invalid data)</attribute>
<message>error-message</message>
</data>                                                               
</errors>

Perlu diingat bahawa ralat hanya akan membatalkan operasi yang mempunyai ralat, jadi jika dalam satu permintaan terdapat lebih daripada satu operasi dan terdapat ralat, hanya arahan yang mempunyai ralat akan dibatalkan tetapi arahan yang tidak mempunyai ralat masih akan dilaksanakan.

  1. TRANSFER REQUEST

    REQUEST URL :
    https://api.fasapay.com/?req=requestbody
    atau
    https://www.fasapay.com/xml?req=requestbody


    Request transfer digunakan jika anda ingin membuat pemindahan.
    Data berikut diperlukan untuk request transfer:
    • required to, ialah nombor akaun fasapay destinasi.
      format : FPnnnnn
      contoh : FP123456
    • required amount, ialah jumlah yang anda ingin pindahkan dalam bentuk nombor dan menggunakan noktah untuk memisahkan perpuluhan.
      format : float
      contoh : 100000.10
    • required currency, ialah mata wang yang digunakan untuk memindahkan dana.
      format : string (IDR | USD)
      contoh : IDR
    • optional fee_mode, ialah mod pengecasan yuran. lalai kepada FiR.
      format : string (FiR | FiS)
      contoh : FiR
    • optional note, ialah rekod yang anda ingin masukkan dalam urus niaga.
      format : string max 255 character
      contoh : Refund pembelian A
    • optional id, id pemindahan untuk penanda pemindahan.
      format : string max 50 character
      contoh : TR1111
    • optional ref, Kod Rujukan yang boleh digunakan oleh peniaga untuk menandakan transaksi.
      format : string max 50 character
      contoh : ORDER12345

    Berikut ialah format xml untuk transfer request:

    <transfer id="abc">
    <to>TARGET ACCOUNT</to>
    <amount>AMOUNT TO TRANSFER</amount>
    <currency>CURRENCY USED</currency>
    <fee_mode>FiS</fee_mode>
    <note>TRANSFER NOTE</note>
    </transfer>

    FORMAT CONTOH TRANSFER REQUEST YANG SAH
      <fasa_request id="1234567">
    <auth>
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <transfer id="tid">
    <to>FP89680</to>
    <amount>1000.0</amount>
    <currency>idr</currency>
    <note>standart operation</note>
    </transfer>
    </fasa_request>

    FORMAT CONTOH BATCH TRANSFER REQUEST YANG SAH
      <fasa_request id="1234567">
    <auth><!-- authentication tag. required on every request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <transfer id="tid-1"> <!-- transfer tag dan ididentifier -->
    <to>FP00001</to> <!-- akun tujuan-->
    <amount>1000.0</amount> <!-- jumlah yang ditransfer -->
    <currency>idr</currency> <!-- kurensi yang digunakan -->
    <note>note note</note> <!-- catatan -->
    </transfer>
    <transfer id="tid-2">
    <to>FP00002</to>
    <amount>1000.0</amount>
    <currency>idr</currency>
    <note>no note</note>
    </transfer>
    <transfer id="tid-3">
    <to>FP00003</to>
    <amount>1000.0</amount>
    <currency>idr</currency>
    <note></note>
    </transfer>
    </fasa_request>

    ERROR AND RESPONSE

    FasaPay akan bertindak balas menggunakan tag <fasa_response>

    CONTOH RESPON TRANSFER RESPONSE
      <fasa_response id="1311059195" date_time="2011-07-19T14:06:35+07:00">
    <transfer mode="transfer" code="203">
    <batchnumber>TR2011071917277</batchnumber>
    <date>2011-07-19</date>
    <time>14:06:35</time>
    <from>FP12049</from>
    <to>FP89680</to>
    <amount>1000.0</amount>
    <fee>100</fee>
    <total>1100.0</total>
    <fee_mode>FiS</fee_mode>
    <currency>IDR</currency>
    <note>standart operation</note>
    <status>FINISH</status>
    <type>Keluar</type>
    <balance>2815832.00</balance>
    <method>xml_api</method>
    </transfer>
    </fasa_response>

    CONTOH RESPONSE RALAT
          <fasa_response id="1311059195" date_time="2011-07-19T14:06:35+07:00">
    <errors id="tid3" mode="transfer" code="40600">
    <data>
    <code>40605</code>
    <attribute>id_kurensi</attribute>
    <message>Kurensi tidak boleh kosong.</message>
    </data>
    <data>
    <code>40601</code>
    <attribute>to</attribute>
    <message>Tidak ada User dengan Nomor Akun FP89681</message>
    </data>
    <data>
    <code>40602</code>
    <attribute>jumlah</attribute>
    <message>Jumlah melebihi batas yg diijinkan.</message>
    </data>
    </errors>
    </fasa_response>

  2. HISTORY REQUEST

    REQUEST URL :
    https://api.fasapay.com/?req=requestbody
    atau
    https://www.fasapay.com/xml?req=requestbody


    Request history digunakan untuk mendapatkan catatan transaksi yang telah dilakukan di FasaPay.
    Request history dapat dilakukan tanpa parameter apapun didalamnya untuk mendapatkan 10 transaksi terakhir.
    Namun request history mendukung parameter-parameter sebagai berikut untuk mendapatkan catatan transaksi yang lebih spesifik :
    • optional start_date, untuk menentukan tarikh mula yang diingini.
      format : YYYY-mm-dd
      contoh : 2011-03-01
    • optional end_date, untuk menentukan tarikh tamat yang diingini.
      format : YYYY-mm-dd
      contoh : 2011-03-05 2011-03-30
    • optional type, untuk menentukan jenis transaksi.
      format : string transfer|topup|redeem|exchange|receive
      contoh : transfer
    • optional order_by, untuk menentukan pengisihan (pengisihan).
      format : string date|amount|to|from|currency|bank
      contoh : date
    • optional order, untuk menentukan jenis isihan.
      format : string ASC|DESC
      contoh : asc
    • optional page, untuk mendapatkan halaman tertentu daripada rekod transaksi yang mempunyai lebih daripada 1 halaman.
      format : integer
      contoh : 1
    • optional page_size, untuk menentukan bilangan transaksi yang muncul dalam 1 halaman.
      format : integer, max 20
      contoh : 20

    Berikut ialah format xml asas untuk history request :

    <history>
    ... parameters ...
    </history>
    CONTOH FORMAT HISTORY REQUEST YANG SAH
      <fasa_request id="1234567">
    <auth><!-- authentication tag. required on every request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <history>
    </history>
    </fasa_request>
    CONTOH FORMAT HISTORY REQUEST YANG SAH DENGAN PARAMETERNYA
    <fasa_request id="1234567">
    <auth><!-- authentication tag. required on every request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <history>
    <start_date>2011-07-01</start_date>
    <end_date>2011-07-09</end_date>
    <type>transfer</type>
    <order_by>date</order_by>
    <order>DESC</order>
    <page>3</page>
    <page_size>5</page_size>
    </history>
    </fasa_request>

    CONTOH RESPONSE HISTORY
    <fasa_response id="1312342474" date_time="2011-08-03T10:34:34+07:00">
    <history>
    <page>
    <total_item>579</total_item>
    <page_count>58</page_count>
    <current_page>0</current_page>
    </page>
    <detail>
    <batchnumber>TR2011072685119</batchnumber>
    <datetime>2011-07-26 15:44:35</datetime>
    <type>Keluar</type>
    <to>FP10500</to>
    <from>FP12049</from>
    <amount>11160.000</amount>
    <note>Pembayaran untuk pembelian Liberty Reserve</note>
    <status>FINISH</status>
    </detail>
    <detail>
    <batchnumber>TR2011072521135</batchnumber>
    <datetime>2011-07-25 11:38:43</datetime>
    <type>Keluar</type>
    <to>FP89680</to>
    <from>FP12049</from>
    <amount>1000.000</amount>
    <note>standart operation</note>
    <status>FINISH</status>
    </detail>
    </history>
    </fasa_response>

  3. DETAIL REQUEST

    REQUEST URL :
    https://api.fasapay.com/?req=requestbody
    atau
    https://www.fasapay.com/xml?req=requestbody

    Detail-Request digunakan jika anda ingin mendapatkan data transaksi.
    Detail-Request hanya memerlukan BATCHNUMBER transaksi yang anda mahu lihat. 

    Detail-Request juga boleh menggunakan parameter berikut untuk mencari transaksi tertentu:

    • ref, parameter REF digunakan untuk mencari data daripada fp_merchant_ref yang disimpan oleh FasaPay apabila transaksi menggunakan SCI.
    • note, parameter NOTE digunakan untuk mencari data daripada lajur perihalan transaksi. tetapi hanya transaksi terkini dipaparkan.



    Berikut ialah format xml untuk detail request :

    <detail>TR2012092712345</detail>
    <detail><ref>BL12345</ref></detail>
    <detail><note>Pembayaran</note></detail>

    FORMAT CONTOH DETAIL REQUEST YANG SAH
      <fasa_request id="1234567">
    <auth>
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <detail>TR2012092712345</detail>
    </fasa_request>

    FORMAT CONTOH DETAIL REQUEST BATCH YANG SAH
      <fasa_request id="1234567">
    <auth><!-- authentication tag. required on every request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <detail>TU2012092712345</detail>
    <detail>TR2012100265432</detail>
    <detail>TR2012092791234</detail>
    <detail><ref>BL12345</ref></detail>
    <detail><note>Pembayaran</note></detail>
    </fasa_request>

    RALAT DAN RESPONS

    FasaPay akan bertindak balas menggunakan teg <fasa_response>

    CONTOH DETAIL RESPONSE
    <fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
    <detail mode="detail" code="210">
    <batchnumber>TR2012092791234</batchnumber>
    <date>2012-10-20</date>
    <time>10:09:36</time>
    <from>FP00001</from>
    <to>FP00002</to>
    <amount>1000.000</amount>
    <total>1100</total>
    <currency>IDR</currency>
    <note>Payment for something</note>
    <status>FINISH</status>
    <fee>100.000</fee>
    <type>Transfer Out</type>
    <method>api_xml</method>
    <fee_mod>FiS</fee_mod>
    </detail>
    </fasa_response>

    CONTOH ERROR RESPONSE
    <fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
        <errors mode="detail" code="40701">
            <data>
              <message>TRANSACTION NOT FOUND</message>
              <detail>BATCHNUMBER TR2012100291308 NOT FOUND</detail>
            </data>
        </errors>  
    </fasa_response>
                    
  4. BALANCE REQUEST

    REQUEST URL :

    https://api.fasapay.com/?req=requestbody
    atau
    https://www.fasapay.com/xml?req=requestbody

    Balance Request digunakan jika anda ingin mendapatkan jumlah baki yang anda miliki.
    Balance request hanya memerlukan kod mata wang yang ingin anda lihat. (IDR, USD)

    Berikut ialah format xml asas untuk balance request :

    <balance>IDR</balance>

    CONTOH FORMAT VALID BALANCE REQUEST
      <fasa_request id="1234567">
    <auth>
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <balance>IDR</balance>
    </fasa_request>

    FORMAT CONTOH BALANCE REQUEST BATCH YANG SAH
      <fasa_request id="1234567">
    <auth><!-- authentication tag. required on every request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <balance>IDR</balance>
    <balance>USD</balance> </fasa_request>

    RALAT DAN RESPON

    FasaPay akan bertindak balas menggunakan teg <fasa_response>

    CONTOH BALANCE RESPONSE
    <fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
    <balance>
    <IDR>19092587.45</IDR>
    <USD>3987.31</USD>
    </balance>
    </fasa_response>

    CONTOH RESPONSE ERROR
    <fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
    <errors mode="balance" code="40901">
    <data>
    <message>WRONG OR INACTIVE CURRENCY</message>
    <detail>WRONG OR INACTIVE CURRENCY CHY</detail>
    </data>
    </errors>
    </fasa_response>
  5. ACCOUNT REQUEST

    REQUEST URL :

    https://api.fasapay.com/?req=requestbody
    atau
    https://www.fasapay.com/xml?req=requestbody

    Account request digunakan jika anda ingin mendapatkan maklumat akaun pengguna FasaPay.
    Account request hanya membutuhkan nomor akun FasaPay yang ingin dilihat.

    Berikut ialah format xml untuk account request :

    <account>FP00001</account>

    FORMAT CONTOH PERMINTAAN AKAUN SAH
      <fasa_request id="1234567">
    <auth>
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <account>FP00001</account>
    </fasa_request>

    FORMAT CONTOH ACCOUNT REQUEST BATCH SAH
      <fasa_request id="1234567">
    <auth><!-- authentication tag. required on every request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <account>FP00001</account>
    <account>FP00002</account> </fasa_request>

    RALAT DAN RESPONS

    FasaPay akan bertindak balas menggunakan teg <fasa_response>

    CONTOH ACCOUNT RESPONSE
    <fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
    <account>
    <fullname>Budiman</fullname>
    <account>FP00001</account>
    <status>Store</status>
    </account>
    <account>
    <fullname>Ani Permata</fullname>
    <account>FP00002</account>
    <status>Standard</status>
    </account>
    </fasa_response>

    CONTOH ERROR RESPONSE
    <fasa_response id="1234567" date_time="2013-01-01T10:58:43+07:00">
    <errors mode="account" code="41001">
    <data>
    <message>ACCOUNT NOT FOUND</message> <detail>FP ACCOUNT FP12345 NOT FOUND</detail>
    </data>
    </errors>
    </fasa_response>

Coretan Fungsi PHP API XML

CREATE TOKEN

Fungsi ini digunakan untuk menjana token

        /**
        * For creating token used to authenticate xml api request
        *
        * @param	string	$api_key	32 character of api_key
        * @param	string	$api_secretword	secret word used to created xml api
        * @return	string	sha256 hashed token
        **/
        function createToken($api_key, $api_secretword){
            $str = $api_key.":".$api_secretword.":".gmdate("YmdH");
            return hash('sha256',$str);
        }
        
        

BUILD AUTH

Fungsi ini digunakan untuk membuat teg pengesahan

        /**
        * for building xml auth xml tag
        *
        * @param	string	$api_key	32 character of api_key
        * @param	string	$token	token which has created using createToken function
        * @return	string	auth xml tag
        **/
        function buildAuth($api_key, $token){
            $str = '<auth>
                <api_key>'.$api_key.'</api_key>
                <token>'.$token.'</token>
            </auth>';
            
            return $str;
        }
        
        

BUILD TRANSFER

Fungsi ini digunakan untuk membuat teg pengesahan

        /**
        * for building xml transfer tag
        *
        * @param	string	$id	transfer identification string 
        * @param	string	$to	destination FasaPay account (FP12345)
        * @param	float	$amount amount of money to transfer
        * @param	string	$currency	3 character of currency used (IDR|USD|JPY)
        * @param	string	$note	transfer note
        * @return	string	xml formated transfer request
        **/
        function buildTransfer($id, $to, $amount, $currency="IDR", $note=""){
            $str =
            '<transfer id="'.$id.'">
                <to>'.$to.'</to>
                <amount>'.$amount.'</amount>
                <currency>'.$currency.'</currency>
                <note>'.$note.'</note>
            </transfer>
            ';
            
            return $str;
        }
        
        

BUILD XML

Fungsi ini digunakan untuk mencipta dokumen permintaan xml yang kemudiannya akan dihantar ke pelayan API XML

        /**
        * for building xml request document
        *
        * @param	string	$id	request identification string 
        * @param	string	$auth	xml formated auth tag (created with buildAuth)
        * @param	string/array	$request xml formated request body (created with buildTransfer,buildHistory,buildDetail,etc)
        * @return	string	xml formated request xml document
        **/
        public function buildXml($id, $auth, $request){
            $str = '';
                $str .= $auth;
                if(is_array($request)){
                    foreach($request as $value){
                        $str .= $value;
                    }
                } else {
                    $str .= $request;
                }		
            $str .= '';
            return $str;
        }
        
        

GET RESPONSE

Fungsi ini digunakan untuk menghantar permintaan xml ke pelayan API XML dan mendapatkan respons xml. Fungsi ini akan mengembalikan respons daripada Pelayan API XML FasaPay.

        /**
* sending request xml through curl and returning xml response from xml api
* @param string $xml xml request created using buildXml (or manualy)
* @return string xml formated fasa response
**/
function getResponse($xml)
{
$url = "https://www.fasapay.com/xml/";
$handler = curl_init($url);

curl_setopt($handler, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handler, 115, 1);

// Sending request through post
curl_setopt($handler, CURLOPT_POST, true);
curl_setopt($handler, CURLOPT_POSTFIELDS, 'req='.urlencode($xml));

// Some optimization :)
curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);

$content = curl_exec($handler);

curl_close($handler);

return $content;
}