PANDUAN API

PENDAHULUAN

Dokumen ini berisi deskripsi semua dan fungsi spesifik dari FasaPay XML API. XML API memungkinkan Anda memproses pengiriman dan penerimaan pembayaran secara otomatis. Mendapatkan informasi transaksi dan riwayat transaksi yang dilakukan. Layanan ini diperlukan untuk semua situs web yang ingin menggunakan FasaPay sebagai salah satu opsi pembayaran dan bisnis yang diharuskan menggunakan transaksi otomatis antar akun FasaPay.

SIAPA SAJA YANG MEMBUTUHKAN DOKUMEN INI

Dokumen ini diperlukan untuk semua pengembang yang mengerjakan antarmuka pemrograman untuk mengintegrasikan FasaPay ke situs web mereka. Untuk menjadi sukses, pengembang akan membutuhkan pengalaman dalam mengikuti:

  • Persiapan dan pengiriman permintaan ke server web
  • Menerima dan menganalisis informasi yang diterima dari web server
  • Bekerja dengan protokol HTTPS
  • Memiliki pengetahuan tentang XML dan tahu cara menggunakan operasi HASH.

INFORMASI MENDASAR TENTANG XML API

XML API adalah kumpulan perintah, yang digunakan sebagai perantara antara FasaPay dan situs web lainnya. Format dan struktur data XML API dikembangkan dari standar XML-1.0

BAGAIMANA ITU BEKERJA

XML API adalah sistem yang menerima dan mengirimkan permintaan informasi. Sistem ini akan memproses permintaan sesuai dengan pesanan kemudian akan menggabungkan data laporan dan mengirimkannya kembali ke permintaan pengirim.
Setiap permintaan terdiri dari perintah tertentu yang kemudian diinterpretasikan oleh API dan kemudian memerintahkan server untuk mengikuti instruksi tersebut. Setelah setiap instruksi dieksekusi, server akan merespon dengan hasil instruksi atau dengan pesan kesalahan yang menjelaskan mengapa kesalahan terjadi.
Setiap permintaan dan tanggapan diatur dengan format tertentu sehingga akan terbentuk data yang spesifik dan dapat dibaca oleh XML API. Beberapa permintaan akan menghasilkan lebih dari satu perintah dan atau lebih dari satu tanggapan. Berikut beberapa langkah agar XML API dapat berjalan dengan lancar.

  • Mengumpulkan dan menyiapkan Data request
  • Membuat format XML yang benar
  • Membuat HTTP GET atau POST Request berdasarkan XML yang telah disiapkan
  • Mengirim HTTP GET atau POST request ke server FasaPay melalui protokol HTTPS
  • Menunggu respon dari server
  • Menganalisa dan mengolah data respon yang dikirimkan oleh server FasaPay

PERSIAPAN

Sebelum memulai menggunakan XML API, Anda perlu mengikuti langkah-langkah di bawah ini:

  • Anda harus membuat API_KEY di FasaPay:
    • Login ke FasaPay
    • Di <<MEMBER AREA>> pilih Akses Akun (API) > Account API dari menu
    • Klik tambah API
    • Masukan API Name dan API Secretword lalu klik buat API
  • Anda akan mendapatkan API_KEY, API_KEY inilah yang akan digunakan sebagai identifikasi request XML API.
    Secretword akan digunakan sebagai bagian dari pembuatan token untuk proses authentikasi.

PENGOPERASIAN XML API

XML API mendukung operasi berikut:

  • Transfer. Memungkinkan anda untuk mentransfer dana dari satu akun ke akun yang lain. Dengan perintah ini Anda dapat mentransfer salah satu mata uang yang tersedia yang didukung oleh FasaPay. Fungsi ini juga memungkinkan anda untuk melakukan banyak transfer (massal).
  • History. Memungkinkan Anda menerima riwayat transaksi akun FasaPay Anda. Perintah ini mendukung banyak parameter tambahan untuk memfilter data yang ingin anda dapatkan rentang tanggal, mata uang, jenis transaksi, target akun, dan sebagainya.
  • Detail. Memungkinkan anda untuk menerima informasi detail dari transaksi tertentu. Anda dapat menyertakan lebih dari satu perintah ini dalam satu permintaan.
  • Balance. Memungkinkan Anda untuk memeriksa saldo akun FasaPay Anda.
  • Account. Memungkinkan Anda untuk memeriksa akun FasaPay tertentu, untuk menunjukkan apakah akun tersebut terdaftar atau tidak.

AUTHENTIKASI

Dokumen XML harus selalu berisi informasi authentikasi dari pengguna. Informasi ini digunakan untuk mengidentifikasi pengguna. Setiap permintaan ke server XML-API harus berisi informasi ini

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

PEMBUATAN AUTHENTIKASI TOKEN

Berikut adalah cara untuk membuat TOKEN

  • Dapatkan dengan menggabungkan data berikut
API_KEY:API_SECRETWORD:DATE UTC di 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
- tanggal = 20 Juli 2011, jam 15:30
Maka akan menghasilkan
11123548cd3a5e5613325132112becf:kata rahasia:2011072015
Dan setelah di hash akan menjadi (ini token Anda)
e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b

IDENTIFIKASI REQUEST DAN RESPONSE

XML API membutuhkan parameter identifikasi tambahan agar response dari setiap request dapat dijalankan secara akurat. Hal ini menjamin bahwa request yang dikirim dapat dijalankan dengan benar oleh sistem. Parameter tambahan ini adalah berupa ID. ID dapat berisikan karakter apa saja namun sebaiknya selalu unik.
Respon dari server nanti juga akan menambahkan ID tersebut dalam attributenya. Sehingga pengguna dapat mencocokkan ID dari request dengan ID dari respon. 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 dikirim ke server, server kemudian akan melakukan pencarian sesuai akun ID dan apabila tidak ditemukan 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 dibatalkan oleh server. Server akan mengirimkan respon sebagai berikut ke pengguna 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 FasaPay 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 = Rupiah Indonesia
USD = Dollar AS

IDR, USD

Date_time

ISO 8601 Date Format

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

 

 

 

KODE ERROR

Kode Error Utama

KODE ERROR PESAN DETAIL CARA MEMPERBAIKI
40000 NOT VALID XML REQUEST XML yang dikirim tidak valid, rusak, atau formatnya salah. Periksa kembali XML apakah ada tag XML yang tidak tertutup, karakter spesial yang salah, dll.
40100 UNAUTHORIZED Otorisasi gagal.
Kesalahan dalam tag autentikasi. Seperti api_key yang salah atau token yang salah.
40600 NOT ACCEPTABLE TRANSFER Ada kesalahan dalam operasi transfer.

Ada kesalahan dalam operasi transfer. Seperti saldo tidak cukup, jumlah banyak, akun target tidak valid, dll.

40700 DETAIL REQUEST ERROR Ada kesalahan dalam operasi detail. Anda telah memasukkan batchnumber yang tidak valid atau tidak ada.
40800 HISTORY REQUEST ERROR Ada kesalahan dalam operasi history. Periksa kode Anda untuk nilai yang tidak valid. Seperti format tanggal tidak valid, nilai halaman tidak valid, dll.
40900 BALANCE REQUEST ERROR Ada kesalahan dalam operasi balance. Anda telah memasukkan kode mata uang yang tidak valid, tidak ada, atau dinonaktifkan.
41000 ACCOUNT REQUEST ERROR Ada kesalahan dalam pengoperasian akun. Anda telah memasukkan Nomor Rekening FasaPay yang tidak valid, tidak ada, atau tidak aktif.
       
       

Kode Error Sekunder

KODE ERROR PESAN DETAIL CARA MEMPERBAIKI
40101 WRONG API_KEY API_KEY tidak menemukannya di database

Periksa kembali api_key Anda dan cocokkan dengan api_key yang Anda buat di akun FasaPay Anda.

40102 WRONG API_SECRET API_SECRET salah Periksa kembali api_secret Anda dan cocokkan dengan api_secret yang Anda buat di akun FasaPay Anda.
40103 WRONG TOKEN TOKEN salah

Periksa kembali token dan hash Anda. Pastikan Anda menggunakan SHA256 dan menggunakan string yang benar.

40104 WRONG API_SECRETWORD API_SECRETWORD salah Periksa kembali api_secret_word Anda dan cocokkan dengan api_secret yang Anda buat di akun FasaPay Anda.
40105 UNAUTHORIZED IP IP Anda tercantum dalam black-list atau tidak tercantum dalam white-list. Periksa setelan Black/White List API Anda.
40106 UNAUTHORIZED TIME Anda menggunakan IP pada waktu black-list atau tidak dalam waktu white-list. Periksa pengaturan Black/White List API Anda untuk waktu penggunaan yang tepat.
40107 UNAUTHORIZED COMMAND Perintah Operasi masuk black-list atau tidak masuk white-list. Periksa setelan Black/White List API Anda.
40108 UNAUTHORIZED METHOD Metode yang digunakan untuk mengakses API termasuk dalam black-list atau tidak dalam white-list. Periksa setelan Black/White List API Anda.
       
40601 INVALID OR NON EXISTENCE DESTINATION ACCOUNT Akun target FasaPay tidak ada atau salah. Periksa kembali <to></to> Anda di tag <transfer>. Dan pastikan itu mengarah ke Akun FasaPay yang benar.
40602 NOT ENOUGH BALANCE Saldo tidak cukup untuk melanjutkan operasi. Tingkatkan saldo Anda. Seperti menggunakan TOPUP.
40603 AMOUNT TO LARGE Jumlahnya lebih besar dari yang diizinkan oleh FasaPay. Kurangi jumlah transfer Anda.
40604 AMOUNT TO SMALL Jumlahnya lebih kecil dari yang diizinkan oleh FasaPay. Tingkatkan jumlah transfer Anda.
40605 INVALID OR NON EXISTENCE SOURCE CURRENCY Mata uang tidak aktif atau nilainya tidak valid. Periksa tag <currency> untuk format mata uang yang tidak valid.
Atau periksa akun Anda untuk mata uang yang dinonaktifkan
       
40701 TRANSACTION NOT FOUND Batchnumber yang diinput tidak ada di database FasaPay. Pastikan Anda memasukkan batchnumber yang valid
       
40801 WRONG OR INACTIVE CURRENCY Mata uang tidak aktif atau nilainya tidak valid. Periksa tag <currency> untuk format mata uang yang tidak valid.
Atau periksa akun Anda untuk mata uang yang dinonaktifkan.
40802 INVALID DATE FORMAT (yyyy-mm-dd) Format <start_date> tidak valid.  Periksa <start_date> Anda untuk format tanggal yang tidak valid.
40803 INVALID DATE FORMAT (yyyy-mm-dd) Format <end_date> tidak valid.  Periksa <end_date> Anda untuk format tanggal yang tidak valid.
40804 INVALID TYPE VALUE Nilai <type> tidak valid. Periksa <type> Anda untuk nilai yang tidak valid. Pastikan itu salah satu dari nilai yang diizinkan.
40805 INVALID ORDER_BY VALUE Nilai <order_by> tidak valid Periksa <order_by> Anda untuk nilai yang tidak valid. Pastikan itu salah satu dari nilai yang diizinkan.
40806 INVALID ORDER VALUE Nilai <order> tidak valid. Periksa <order> Anda untuk nilai yang tidak valid. Pastikan itu salah satu dari nilai yang diizinkan.
40807 INVALID PAGE VALUE Nilai <page> tidak valid. Periksa <page> Anda untuk nilai yang tidak valid. Pastikan itu salah satu dari nilai yang diizinkan.
40808 INVALID PAGE_SIZE VALUE Nilai <page_size> tidak valid. Periksa <page_size> Anda untuk nilai yang tidak valid. Pastikan itu salah satu dari nilai yang diizinkan.
       
40910 REACH MAXIMUM ALLOWED BALANCE REQUEST BATCH COUNT Telah mencapai jumlah permintaan batch maksimum yang diizinkan. Mengurangi jumlah permintaan batch.
40901 WRONG OR INACTIVE CURRENCY Mata uang tidak aktif atau nilainya tidak valid. Format mata uang tidak valid
Atau periksa akun Anda untuk mata uang yang dinonaktifkan.
       
41010 REACH MAXIMUM ALLOWED ACCOUNT REQUEST BATCH COUNT Telah mencapai jumlah permintaan batch maksimum yang diizinkan. Mengurangi jumlah permintaan batch.
41001 ACCOUNT NOT FOUND Nomor Akun tidak valid atau Nomor Akun yang diminta belum didaftarkan atau dinonaktifkan oleh Admin.  

OPERASI XML API

URL XML API

Setiap Request XML API dikirimkan ke URL berikut :

https://api.fasapay.com/

atau

https://www.fasapay.com/xml

Struktur Request Umum

Berikut adalah template dasar XML Request ke server XML API.
Semua operasi memiliki struktur yang sama.
Diawali dengan struktur dasar fasa_request, kemudian blok autentikasi dan diikuti dengan data request

<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 Respon Umum

Berikut adalah template dasar XML Response dari server XML API.
Diawali dengan struktur dasar 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 terjadi error saat menjalankan sebuah operasi maka akan menghasilkan error response dengan format sebagai 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 bahwa error hanya akan membatalkan operasi yang terdapat error, sehingga jika dalam satu request terdapat lebih dari satu operasi dan ada yang error maka hanya perintah yang error itu saja yang batal dikerjakan namun perintah yang tidak error akan tetap dikerjakan.

  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 mentransfer dana dari satu akun ke akun lainnya.
    Berikut data yang di butuhkan untuk transfer
    • required to, adalah nomor akun FasaPay tujuan
      format : FPnnnnn
      contoh : FP123456
    • required amount, adalah jumlah dana yang ingin di transfer berupa angka dan menggunakan tanda titik (.) sebagai pemisah desimal
      format : float
      contoh : 100000.10
    • required currency, adalah mata uang yang digunakan untuk transfer dana
      format : string (IDR | USD)
      contoh : IDR
    • optional fee_mode, adalah mode pembebanan fee yang digunakan dalam transfer. Default ke FiR
      format : string (FiR | FiS)
      contoh : FiR
    • optional note, adalah catatan yang ingin dimasukan ke dalam transaksi
      format : string maksimal 255 karakter
      contoh : Transaksi Pengembalian Dana Pembelian A
    • optional id, id transfer untuk penanda transfer
      format : string maksimal 50 karakter
      contoh : TR1111
    • optional ref, Kode Referensi yang dapat digunakan untuk melacak transaksi
      format : string maksimal 50 karakter
      contoh : ORDER12345

    Berikut adalah format XML untuk request transfer :

    <transfer id="abc">
    <to>AKUN FASAPAY TUJUAN</to>
    <amount>JUMLAH YANG DI TRANSFER</amount>
    <currency>KURENSI YANG DIGUNAKAN</currency>
    <fee_mode>MODE FEE YANG DIGUNAKAN</fee_mode>
    <note>CATATAN Transfer</note>
    </transfer>

    CONTOH FORMAT TRANSFER REQUEST YANG VALID
      <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>
    <fee_mode>FiS</fee_mode>
    <note>standart operation</note>
    </transfer>
    </fasa_request>

    CONTOH FORMAT BATCH TRANSFER REQUEST YANG VALID
      <fasa_request id="1234567">
    <auth><!-- authentication tag. harus ada di tiap 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 DAN RESPONSE

    FasaPay akan merespon menggunakan tag <fasa_response>

    CONTOH RESPONSE TRANSFER
      <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</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 ERROR
          <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


    History Request digunakan untuk mendapatkan riwayat transaksi terbaru di akun FasaPay Anda.
    History Request tidak memerlukan parameter apa pun untuk mendapatkan 10 transaksi terakhir.
    Namun History Request mendukung parameter-parameter sebagai berikut untuk mendapatkan riwayat transaksi yang lebih spesifik :
    • optional start_date, untuk menentukan awal tanggal yang diinginkan.
      format : YYYY-mm-dd
      contoh : 2011-03-01
    • optional end_date, untuk menentukan akhir tanggal yang diinginkan.
      format : YYYY-mm-dd
      contoh : 2011-03-30
    • optional type, untuk menentukan tipe transaksi.
      format : string transfer|topup|redeem|exchange|receive
      contoh : transfer
    • optional order_by, untuk menentukan order/sort berdasarkan parameter tertentu (sorting)
      format : string date|amount|to|from|currency|bank
      contoh : date
    • optional order, untuk menentukan tipe penyortiran
      format : string ASC|DESC
      contoh : asc
    • optional page, untuk mendapatkan halaman tertentu dari riwayat transaksi yang memiliki lebih dari 1 halaman
      format : integer
      contoh : 1
    • optional page_size, untuk menentukan berapa banyak transaksi yang dimunculkan dalam 1 halaman.
      format : integer, max 20
      contoh : 20

    Berikut adalah format dasar XML untuk History Request :

    <history>
    ... parameters ...
    </history>
    CONTOH FORMAT DASAR HISTORY REQUEST YANG VALID
      <fasa_request id="1234567">
    <auth><!-- authentication tag. harus ada di tiap request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <history>
    </history>
    </fasa_request>
    CONTOH FORMAT HISTORY REQUEST YANG VALID BESERTA PARAMETERNYA
    <fasa_request id="1234567">
    <auth><!-- authentication tag. harus ada di tiap 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 untuk mendapatkan detail informasi transaksi.
    Detail Request hanya membutuhkan BATCHNUMBER dari transaki yang ingin dilihat.

    Detail Request juga dapat menggunakan parameter berikut untuk mencari transaksi tertentu :

    • ref, parameter REF digunakan untuk mencari data dari fp_merchant_ref yang disimpan oleh FasaPay saat transaksi menggunakan SCI.
    • note, parameter NOTE digunakan untuk mencari data dari kolom keterangan transaksi. Namun hanya transaksi paling baru saja yang dimunculkan.


    Berikut adalah format XML untuk Detail Request :

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

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

    CONTOH FORMAT BATCH DETAIL REQUEST YANG VALID
      <fasa_request id="1234567">
    <auth><!-- authentication tag. harus ada di tiap 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>

    ERROR DAN RESPONSE

    FasaPay akan merespon menggunakan tag <fasa_response>

    CONTOH RESPONSE DETAIL
    <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 RESPONSE ERROR
    <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 untuk mendapatkan jumlah saldo di akun Anda.
    Balance Request hanya membutuhkan kode mata uang yang ingin dilihat. Untuk saat ini kode kurensi yang didukung adalah IDR dan USD

    Berikut adalah format XML untuk Balance Request :

    <balance>IDR</balance>

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

    CONTOH FORMAT BATCH BALANCE REQUEST YANG VALID
      <fasa_request id="1234567">
    <auth><!-- authentication tag. harus ada di tiap request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <balance>IDR</balance>
    <balance>USD</balance> </fasa_request>

    ERROR DAN RESPONSE

    FasaPay akan merespon menggunakan tag <fasa_response>

    CONTOH RESPONSE BALANCE
    <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 untuk mendapatkan informasi dari pengguna FasaPay tertentu melalui nomor akun mereka.
    Account Request hanya membutuhkan nomor akun FasaPay yang ingin Anda lihat.

    Berikut adalah format xml untuk Account Request :

    <account>FP00001</account>

    CONTOH FORMAT ACCOUNT REQUEST YANG VALID
      <fasa_request id="1234567">
    <auth>
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <account>FP00001</account>
    </fasa_request>

    CONTOH FORMAT BATCH ACCOUNT REQUEST YANG VALID
      <fasa_request id="1234567">
    <auth><!-- authentication tag. harus ada di tiap request -->
    <api_key>11123548cd3a5e5613325132112becf</api_key>
    <token>e910361e42dafdfd100b19701c2ef403858cab640fd699afc67b78c7603ddb1b</token>
    </auth>
    <account>FP00001</account>
    <account>FP00002</account> </fasa_request>

    ERROR DAN RESPONSE

    FasaPay akan merespon menggunakan tag <fasa_response>

    CONTOH RESPONSE ACCOUNT
    <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 RESPONSE ERROR
    <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>

Cuplikan Fungsi XML API PHP

CREATE TOKEN

Fungsi ini digunakan untuk membuat 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 auth tag

                    /**
                    * 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 tag xml permintaan transfer

                    /**
                    * 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 membuat dokumen permintaan xml yang nantinya akan dikirim ke server XML API

                /**
                * 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 mengirimkan request xml menggunakan CURL ke FasaPay XML API Server. Fungsi ini akan mengembalikan respon dari FasaPay XML API Server.

                    /**
* 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;
}