SCI Sandbox

In this site you can test your SCI or API implementation
Please Remember that every transaction that happen here is for testing purpose

ATTENTION
  • All testing use the subdomain sandbox.fasapay.com and not the main www.fasapay.com
  • All testing use sandbox only account with prefix FPX and not FasaPay account FP

Sandbox Feature :

How to use SCI Sandbox

  1. Go to Sandbox FasaPay WebSite (http://sandbox.fasapay.com/)
  2. Create Account in http://sandbox.fasapay.com/
  3. Create Store with the given STORE account
  4. Use https://sandbox.fasapay.com/sci/ not the https://sci.fasapay.com/

Example :

Before

<form method="POST" action="https://sci.fasapay.com/">
<input type="hidden" name="fp_acc" value="FP00001">
<input type="hidden" name="fp_item" value="2 pieces of Clothes">
<input type="hidden" name="fp_amnt" value="2000">
<input type="hidden" name="fp_currency" value="IDR">
<input type="hidden" name="fp_comments" value="Purchase of 2 pieces of black clothes with white collar">
<input type="hidden" name="fp_merchant_ref" value="BL002883" />
<input type="hidden" name="fp_success_url" value="http://www.domain.com/merchant/result.php" />
<input type="hidden" name="fp_success_method" value="POST" />
<input type="hidden" name="fp_fail_url" value="http://www.domain.com/merchant/cancel.php" />
<input type="hidden" name="fp_fail_method" value="GET" />
<input type="hidden" name="fp_status_url" value="http://www.domain.com/merchant/status.php" />
<input type="hidden" name="fp_status_method" value="POST" />
<!-- additional fields -->
<input type="hidden" name="track_id" value="558421222">
<input type="hidden" name="order_id" value="BJ2993800-">
<input name="" type="submit">
</form>

After changed to sandbox mode

<form method="POST" action="https://sandbox.fasapay.com/sci/">
<input type="hidden" name="fp_acc" value="FPX0001">
<input type="hidden" name="fp_item" value="2 pieces of Clothes">
<input type="hidden" name="fp_amnt" value="2000">
<input type="hidden" name="fp_currency" value="IDR">
<input type="hidden" name="fp_comments" value="Purchase of 2 pieces of black clothes with white collar">
<input type="hidden" name="fp_merchant_ref" value="BL002883" />
<input type="hidden" name="fp_success_url" value="http://www.domain.com/merchant/output.php" />
<input type="hidden" name="fp_success_method" value="POST" />
<input type="hidden" name="fp_fail_url" value="http://www.domain.com/merchant/cancel.php" />
<input type="hidden" name="fp_fail_method" value="GET" />
<input type="hidden" name="fp_status_url" value="http://www.domain.com/merchant/status.php" />
<input type="hidden" name="fp_status_method" value="POST" />
<!-- additional fields -->
<input type="hidden" name="track_id" value="558421222">
<input type="hidden" name="order_id" value="BJ2993800-">
<input name="" type="submit">
</form>

Don't forget to change the url to https://sci.fasapay.com and use FasaPay account (not the Sandbox account) after finish testing

Developer Guide for SCI Integration

REQUEST FORM

Merchant : Store Owner, target Transfer FasaPay Account
User/Buyer : Payer, source Transfer FasaPay Account

Form HTML Simple Mode

            <form  method="POST" action="https://sci.fasapay.com/"> 
<input type="hidden" name="fp_acc" value="FP0001">
<input type="hidden" name="fp_item" value="2 pieces of Clothes">
<input type="hidden" name="fp_amnt" value="2000">
<input type="hidden" name="fp_currency" value="IDR">
<input type="hidden" name="fp_comments" value="Purchase of 2 pieces of black clothes with white collar">
<input type="hidden" name="fp_merchant_ref" value="BL002883" />
<input type="hidden" name="fp_success_url" value="http://www.domain.com/merchant/result.php" />
<input type="hidden" name="fp_success_method" value="POST" />
<input type="hidden" name="fp_fail_url" value="http://www.domain.com/merchant/cancel.php" />
<input type="hidden" name="fp_fail_method" value="GET" />
<!-- additional fields -->
<input type="hidden" name="track_id" value="558421222">
<input type="hidden" name="order_id" value="BJ2993800-">
<input name="" type="submit">
</form>

REQUEST FORM
Variable/Input Information Additional Information Example
fp_acc Merchant FasaPay Account.
If specified it cannot be changed.
Optional FP0003
fp_acc_from User/Buyer FasaPay Account.
If specified it cannot be changed
Optional FP0004
fp_store The store name. if specified it will become the header of the SCI page. If Merchant has create store in his account. it can be used as store name identifier for advance mode. Optional My Store
fp_item Name of the item or its amount.
Will be appear in the left side of transaction summary.
Optional 2 Piece of Apple
fp_amnt Amount of transaction which has to be transfered.

If specified it cannot be changed
Leave it blank if you want to make the user insert it's own amount

Optional Float Number point (.) as a decimal separator 5000 12.5
fp_fee_mode Type Fee used in the transaction
  • FiR = Fee On Recepient
    Fee will be charged to the recepient (Merchant)
  • FiS = Fee On Sender
    Fee will be charged to the sender (buyer)
  • FsC = Fee On Sender Choice (Default)
    Buyer is fee to choose the type of Fee
If not defined it will use FsC as default. if using advance mode it will be overided or automaticaly filled by store fee_mode of the merchant store setting.
Optional String FiR, FiS, FsC FiR
fp_currency Currency used for transaction.

If specified it cannot be changed Make sure merchant account has activate the currency it want to use.
Optional IDR, USD IDR
fp_comments Comment/Not for this transaction. Cannot be changed by user. but user can add their own comment Optional
Max : 100
Payment for 2 pieace of Apple
fp_merchant_ref REFERENCE field. it can be used as identification number from the shoping cart or other use. merchant are free to use this field for its own purpose. Optional
Max: 100
MRC5558689-11230
fp_success_url URL which used as success return button "Return to Merchant" when transaction completed. at the result page. if using advance mode it will be overided or automaticaly filled by store succes_url of the merchant store setting. if no url spesified. there will be no "Return to Merchant" button Don't forget to use https if merchant website using ssl redirection or something alike Optional Must be valid URL http://www.merchant.com/success.html https://www.merchant.com/success.html
fp_success_method Method used as the success form link at the RESULT page. if using advance mode it will be overided or automaticaly filled by store merchant setting. Default to POST Optional POST, GET POST
fp_fail_url URL which used at "Return to Merchant" button. it will send fail form. and will present at LOGIN, TRANSFER, and CONFIRM Page. if Clicked it will cancel the transaction. if using advance mode it will be overided or automaticaly filled by store fail_url of the merchant store setting. if no url spesified. there will be no "Return to Merchant" button Don't forget to use https if merchant website using ssl redirection or something alike Optional Must be valid URL http://www.merchant.com/fail.html https://www.merchant.com/fail.html
fp_fail_method Method used as the fail form link at the LOGIN, TRANSFER, and CONFIRM Page if using advance mode it will be overided or automaticaly filled by store merchant setting. Default to POST Optional POST, GET POST
Additional Field Merchant can add their own field. this fields will be ignored by SCI but will be include in the status form, success form or fail form. OPTIONAL
Max : 50 field, 100 karakter/field
CKCK222
BJ000333


FAIL FORM

Variable/Input Information Additional Information Example
fp_paidto Target FasaPay Account. usually the merchant AccountIf at the request form fp_acc are not empty then fp_paidto will equal to fp_acc string FP0022
fp_amnt The amount that must be paid.If at the request form fp_amnt are empty then this will empty too. float 5000
fp_currency Currency used in the transaction. If at the request form fp_currency are empty then this will empty too. String IDR
fp_store The store name used in the transaction. If at the request form fp_store are empty then this will empty too. String My Store
fp_merchant_ref Has the same content as the fp_merchant_ref. If at the request form fp_store are empty then this will empty too. String BJ202005
additional field Additional field that defined at the request form.   564654
       
 

SUCCESS FORM

This form will be created if the transaction is completed.
This form will be send to SUCCESS_URL if payer send it using the "Back to Merchant" button.

Please avoid using this form to validate a complete transaction. Because this form is rendered to the payer browser before it sent to SUCCESS_URL thus it is vulnerable to data tampering.
If you need to automate process or validate transaction please use STATUS_URL and STATUS_FORM.

Variable/Input Information Additional Information Example
fp_paidto Target FasaPay Account. usually the merchant AccountIf at the request form fp_acc are not empty then fp_paidto will equal to fp_acc string FP0022
fp_paidby Payer/User/Buyer FasaPay Account used to transfer fund to the merchant FasaPay Account. string FP0023
fp_amnt The amount that must be paid.If at the request form fp_amnt are empty then this will empty too. float 5000
fp_fee_amnt The amount of fee that FasaPay cut from the amount of transaction. Float 1000
fp_fee_mode Fee Mode used in the transaction's String FiR, FiS
fp_total The total amount that you receive. float 4900
fp_currency Currency used in the transaction. If at the request form fp_currency are empty then this will empty too. String IDR
fp_batchnumber Unique batchnumber FasaPay String TR2010125596
fp_store The store name used in the transaction. If at the request form fp_store are empty then this will empty too. String My Store
fp_timestamp Date time when the transaction occured. Date time 2010/11/10 12:22:55
fp_merchant_ref Has the same content as the fp_merchant_ref. If at the request form fp_store are empty then this will empty too. String BJ202005
additional field Additional field that defined at the request form.   564654
       
 

Advance mode will automatically used when fp_store and fp_acc in the REQUEST FORM equal to the data at the FasaPay store database.
To use advance mode merchant need to create store at the member area.
Merchant can find this store link at the SCI menu in member Area.

REQUEST FORM
Merchant : Store Owner, target Transfer FasaPay Account
User/Buyer : Payer, source Transfer FasaPay Account
Example :


            <form  method="POST" action="https://sci.fasapay.com/"> 
<input type="hidden" name="fp_acc" value="FP0001">
<input type="hidden" name="fp_store" value="mystore">
<input type="hidden" name="fp_item" value="2 pieces of Clothes">
<input type="hidden" name="fp_amnt" value="2000">
<input type="hidden" name="fp_currency" value="IDR">
<input type="hidden" name="fp_comments" value="Purchase of 2 pieces of black clothes with white collar">
<input type="hidden" name="fp_merchant_ref" value="BL002883" />
<!-- additional fields -->
<input type="hidden" name="track_id" value="558421222">
<input type="hidden" name="order_id" value="BJ2993800-">
<input name="" type="submit">
</form>

REQUEST FORM
Variable/Input Information Additional Information Example
fp_acc Merchant FasaPay Account.
If specified it cannot be changed.
Optional FP0003
fp_acc_from User/Buyer FasaPay Account.
If specified it cannot be changed
Optional FP0004
fp_store The store name. if specified it will become the header of the SCI page. If Merchant has create store in his account. it can be used as store name identifier for advance mode. Optional My Store
fp_item Name of the item or its amount.
Will be appear in the left side of transaction summary.
Optional 2 Piece of Apple
fp_amnt Amount of transaction which has to be transfered.

If specified it cannot be changed
Leave it blank if you want to make the user insert it's own amount

Optional Float Number point (.) as a decimal separator 5000 12.5
fp_fee_mode Type Fee used in the transaction
  • FiR = Fee On Recepient
    Fee will be charged to the recepient (Merchant)
  • FiS = Fee On Sender
    Fee will be charged to the sender (buyer)
  • FsC = Fee On Sender Choice (Default)
    Buyer is fee to choose the type of Fee
If not defined it will use FsC as default. if using advance mode it will be overided or automaticaly filled by store fee_mode of the merchant store setting.
Optional String FiR, FiS, FsC FiR
fp_currency Currency used for transaction.

If specified it cannot be changed Make sure merchant account has activate the currency it want to use.
Optional IDR, USD IDR
fp_comments Comment/Not for this transaction. Cannot be changed by user. but user can add their own comment Optional
Max : 100
Payment for 2 pieace of Apple
fp_merchant_ref REFERENCE field. it can be used as identification number from the shoping cart or other use. merchant are free to use this field for its own purpose. Optional
Max: 100
MRC5558689-11230
fp_success_url URL which used as success return button "Return to Merchant" when transaction completed. at the result page. if using advance mode it will be overided or automaticaly filled by store succes_url of the merchant store setting. if no url spesified. there will be no "Return to Merchant" button Don't forget to use https if merchant website using ssl redirection or something alike Optional Must be valid URL http://www.merchant.com/success.html https://www.merchant.com/success.html
fp_success_method Method used as the success form link at the RESULT page. if using advance mode it will be overided or automaticaly filled by store merchant setting. Default to POST Optional POST, GET POST
fp_fail_url URL which used at "Return to Merchant" button. it will send fail form. and will present at LOGIN, TRANSFER, and CONFIRM Page. if Clicked it will cancel the transaction. if using advance mode it will be overided or automaticaly filled by store fail_url of the merchant store setting. if no url spesified. there will be no "Return to Merchant" button Don't forget to use https if merchant website using ssl redirection or something alike Optional Must be valid URL http://www.merchant.com/fail.html https://www.merchant.com/fail.html
fp_fail_method Method used as the fail form link at the LOGIN, TRANSFER, and CONFIRM Page if using advance mode it will be overided or automaticaly filled by store merchant setting. Default to POST Optional POST, GET POST
Additional Field Merchant can add their own field. this fields will be ignored by SCI but will be include in the status form, success form or fail form. OPTIONAL
Max : 50 field, 100 karakter/field
CKCK222
BJ000333


FAIL FORM

Variable/Input Information Additional Information Example
fp_paidto Target FasaPay Account. usually the merchant AccountIf at the request form fp_acc are not empty then fp_paidto will equal to fp_acc string FP0022
fp_amnt The amount that must be paid.If at the request form fp_amnt are empty then this will empty too. float 5000
fp_currency Currency used in the transaction. If at the request form fp_currency are empty then this will empty too. String IDR
fp_store The store name used in the transaction. If at the request form fp_store are empty then this will empty too. String My Store
fp_merchant_ref Has the same content as the fp_merchant_ref. If at the request form fp_store are empty then this will empty too. String BJ202005
additional field Additional field that defined at the request form.   564654
       
 

SUCCESS FORM

This form will be created if the transaction is completed.
This form will be send to SUCCESS_URL if payer send it using the "Back to Merchant" button.

Please avoid using this form to validate a complete transaction. Because this form is rendered to the payer browser before it sent to SUCCESS_URL thus it is vulnerable to data tampering.
If you need to automate process or validate transaction please use STATUS_URL and STATUS_FORM.

Variable/Input Information Additional Information Example
fp_paidto Target FasaPay Account. usually the merchant AccountIf at the request form fp_acc are not empty then fp_paidto will equal to fp_acc string FP0022
fp_paidby Payer/User/Buyer FasaPay Account used to transfer fund to the merchant FasaPay Account. string FP0023
fp_amnt The amount that must be paid.If at the request form fp_amnt are empty then this will empty too. float 5000
fp_fee_amnt The amount of fee that FasaPay cut from the amount of transaction. Float 1000
fp_fee_mode Fee Mode used in the transaction's String FiR, FiS
fp_total The total amount that you receive. float 4900
fp_currency Currency used in the transaction. If at the request form fp_currency are empty then this will empty too. String IDR
fp_batchnumber Unique batchnumber FasaPay String TR2010125596
fp_store The store name used in the transaction. If at the request form fp_store are empty then this will empty too. String My Store
fp_timestamp Date time when the transaction occured. Date time 2010/11/10 12:22:55
fp_merchant_ref Has the same content as the fp_merchant_ref. If at the request form fp_store are empty then this will empty too. String BJ202005
additional field Additional field that defined at the request form.   564654
       
 

STATUS FORM

This form will only send if transaction is complete successfully.
Please always validate the data of this form using fp_hash or fp_hash_2.
After validation, compare the content of STATUS_FORM with the data you should have received to validate the transaction.
Variable/Input Information Additional Information Example
fp_paidto Target FasaPay Account. usually the merchant Account. If at the request form fp_acc are not empty then fp_paidto will equal to fp_acc string FP0022
fp_paidby Payer/User/Buyer FasaPay Account used to transfer fund to the merchant FasaPay Account. string FP0023
fp_amnt The amount that must be paid.If at the request form fp_amnt are empty then this will empty too. float 5000
fp_fee_amnt The amount of fee that FasaPay cut from the amount of transaction. Float 1000
fp_fee_mode Fee Mode used in the transaction's String FiR, FiS
fp_total The total amount that you receive. float 4900
fp_currency Currency used in the transaction. If at the request form fp_currency are empty then this will empty too. String IDR
fp_batchnumber Unique batchnumber FasaPay String TR2010125596
fp_store The store name used in the transaction. If at the request form fp_store are empty then this will empty too. String My Store
fp_timestamp Date time when the transaction occured. Date time 2010/11/10 12:22:55
fp_merchant_ref Has the same content as the fp_merchant_ref. If at the request form fp_store are empty then this will empty too. String BJ202005
fp_hash The SHA256 HASH string used as verification data. only available at advance mode String 8eb7c0e4854aa51c617408a2cfd385b1712e5c9dcd7941ffde31dff052487acc
fp_hash_2 SHA256 HASH string used as verification data. new version of fp_hash only available at advance mode String 36b72939f557ba56c2516e6970692bc2b011b3c69ad40d218fc487955a32eed1
additional field Additional field that defined at the request form.   564654
       
 

HASH GUIDE

fp_hash and fp_hash_2 are facility to validate the authenticity of STATUS_FORM data.
fp_hash_2 is new version of the fp_hash which include fp_fee_amnt, fp_fee_mode and fp_total in the validation process.
below is the example of how to create the hash.

Example of fp_hash creation :

fp_paidto = FP00001
fp_paidby = FP00002
fp_store = My Store
fp_amnt = 5000
fp_batchnumber = TR201010115555
fp_currency = IDR
Merchant Security Word = Mysecurityword

String to hash :

FP00001:FP00002:My Store:5000:TR201010115555:IDR:Mysecurityword

Hash using sha256 :

b4b8787e767241f7690c1c39e210cbea4fa036a28e434411a3568a3570833142

Example of fp_hash_2 creation :

fp_paidto = FP00001
fp_paidby = FP00002
fp_store = My Store
fp_amnt = 5000
fp_fee_amnt = 100
fp_fee_mode = FiR
fp_total = 4900
fp_batchnumber = TR201010115555
fp_currency = IDR
Merchant Security Word = Mysecurityword

String to hash

FP00001:FP00002:My Store:5000:100:FiR:4900:TR201010115555:IDR:Mysecurityword

Hash using sha256 :

f078677a6be5c47db295887731164b80bc613ca87789883d97203103c1ed54c4