🔗

SSPAY - TECHNOLOGY OF PAYMENT GATEWAY PLATFORM.

SSPAY TIP : SSPAY ensures that every transaction is protected and confidential, providing peace of mind to both merchants and customers. Whether it's e-commerce, gaming, or financial services, SSPAY streamlines the payment process, enhancing efficiency and reliability.

FOR DEVELOPMENT

READ ME

The reference is your key to a comprehensive understanding of the SSPAY API.

You need an integration token to interact with the SSPAY API. The token code will be provided to the merchant upon connection establishment. Please note that you will also need to provide the IP address of the data sending server for us to authorize access before establishing the connection.
The system uses VNDK (VN2) for all payments. You send 1 point, and we will automatically convert it to 1,000 VND for your customers to pay for their orders.

Conventions

The base URL to send all API requests is https://api.sspay.pro. HTTPS is required for all API requests.

The SSPAY API follows RESTful conventions when possible, with most operations performed via GETPOST, requests. Request and response bodies are encoded as JSON.

WARNING !

DO NOT USE “window.open” TO JUMP TO CALLBACK LINK, as this may be blocked on Safari iOS. Instead, use “location.href” or create a window beforehand and then point the callback command to the correct URL.
  • Example :
var mywin = window.open(“about:blank”, “redirect”);
var someCallback = function(url) {
mywin.open(url, “redirect”);
};

Paymethod in SSPAY

PaymethodCodeDescriptionPayinWithdrawalCurrency used
BANK001BANK TRANFERSYESYESVNDK ( VN2 )
QR PAY002BANK QRPAYYES-VNDK ( VN2 )
MOMO003MoMoYES-VNDK ( VN2 )
ZaloPay004ZaloPayYES-VNDK ( VN2 )
VTPAY005VIETTELPAYYES-VNDK ( VN2 )
USDT006USDTYES-VNDK ( VN2 )
USDT WITHDRAWAL007USDT WITHDRAWAL-YESUSDT

shortName of Bank used in SSPAY

NamebankCodeshortName
1Ngân hàng TMCP Công thương Việt NamICBVietinBank
2Ngân hàng TMCP Ngoại Thương Việt NamVCBVietcombank
3Ngân hàng TMCP Đầu tư và Phát triển Việt NamBIDVBIDV
4Ngân hàng Nông nghiệp và Phát triển Nông thôn Việt NamVBAAgribank
5Ngân hàng TMCP Phương ĐôngOCBOCB
6Ngân hàng TMCP Quân độiMBMBBank
7Ngân hàng TMCP Kỹ thương Việt NamTCBTechcombank
8Ngân hàng TMCP Á ChâuACBACB
9Ngân hàng TMCP Việt Nam Thịnh VượngVPBVPBank
10Ngân hàng TMCP Tiên PhongTPBTPBank
11Ngân hàng TMCP Sài Gòn Thương TínSTBSacombank
12Ngân hàng TMCP Phát triển Thành phố Hồ Chí MinhHDBHDBank
13Ngân hàng TMCP Bản ViệtVCCBVietCapitalBank
14Ngân hàng TMCP Sài GònSCBSCB
15Ngân hàng TMCP Quốc tế Việt NamVIBVIB
16Ngân hàng TMCP Sài Gòn - Hà NộiSHBSHB
17Ngân hàng TMCP Xuất Nhập khẩu Việt NamEIBEximbank
18Ngân hàng TMCP Hàng HảiMSBMSB
19Ngân hàng số CAKE by VPBankCAKECAKE
20Ngân hàng số Ubank by VPBankUbankUbank
21Ngân hàng số Timo by Ban Viet Bank (Timo by Ban Viet Bank)TIMOTimo
22Ngân hàng TMCP Sài Gòn Công ThươngSGICBSaigonBank
23Ngân hàng TMCP Bắc ÁBABBacABank
24Ngân hàng TMCP Đại Chúng Việt NamPVCBPVcomBank
25Ngân hàng Thương mại TNHH MTV Đại DươngOceanbankOceanbank
26Ngân hàng TMCP Quốc DânNCBNCB
27Ngân hàng TNHH MTV Shinhan Việt NamSHBVNShinhanBank
28Ngân hàng TMCP An BìnhABBABBANK
29Ngân hàng TMCP Việt ÁVABVietABank
30Ngân hàng TMCP Nam ÁNABNamABank
31Ngân hàng TMCP Xăng dầu PetrolimexPGBPGBank
32Ngân hàng TMCP Việt Nam Thương TínVIETBANKVietBank
33Ngân hàng TMCP Bảo ViệtBVBBaoVietBank
34Ngân hàng TMCP Đông Nam ÁSEABSeABank
35Ngân hàng Hợp tác xã Việt NamCOOPBANKCOOPBANK
36Ngân hàng TMCP Bưu Điện Liên ViệtLPBLienVietPostBank
37Ngân hàng TMCP Kiên LongKLBKienLongBank
38Ngân hàng Chính sách Xã hộiVBSPVBSP
39Ngân hàng TNHH MTV Woori Việt NamWVNWoori
40Ngân hàng TNHH MTV HSBC (Việt Nam)HSBCHSBC
41Ngân hàng Thương mại TNHH MTV Dầu Khí Toàn CầuGPBGPBank
42Ngân hàng TMCP Đông ÁDOBDongABank
43DBS Bank Ltd - Chi nhánh Thành phố Hồ Chí MinhDBSDBSBank
44Ngân hàng TNHH MTV CIMB Việt NamCIMBCIMB
45Ngân hàng Thương mại TNHH MTV Xây dựng Việt NamCBBCBBank
46USDT - ERC20USDT-ERC20USDT-ERC20
47USDT - TRC20USDT-TRC20USDT-TRC20
48USDT - BEP20USDT-BEP20USDT-BEP20

You can download full JSON fomat banklist here : DOWNLOAD ( 4.22 KB )

CREAT PAYMENT DEPOSIT ( PAYIN )

A • CREATE PAYIN

Before you can initiate an order, you must provide the IP address of the data sending server for us to grant access. Without access authorization, you will be unable to send data to create an order.

https://api.sspay.pro/pay/payIn

Call methodData fomat
POSTJSON

CONTENT REQUIRED

Authorization token will transfer in header for verification merchan.

Authorization: 'Bearer ${jwtToken}',
FieldTypeRequiredDescription
accountStringNO / CAN SKIPIf you want display account name customer deposit money ,added this value.
outTradeNoStringYESOrder ID from partners
payMethodStringYESPayment method code: 001BANK,002 QR PAY, 003 MOMO ,004 ZaloPay, 005 ViettelPay, 006 USDT.
totalAmountNumberYESMin : 100 VNDK | Max : 500.000 VNDK
signStringYESMerchant passes encrypted parameter value, currently limited to MD5 encryption.

Example :

{
"account":"abcd1234",
"outTradeNo": "orderid001",
"payMethod": "002",
"totalAmount": 3000,
"sign": "md5(outTradeNo=...&payMethod=...&totalAmount=...&key=...)"
}

DATA RESPONSE

FieldTypeHTTP Status QuoteDescription
code200Successfully processed request.all others is failed
statusStringsuccess, failed , error
data.payUrlStringPayment URL. When the order is successfully created, the payment URL will be returned.
msg StringReason for failure: When the order creation fails, the reason for the failure will be displayed.

Example :

res.status(200).json({
      status: "success",
      data: {
        payUrl: `https://client.sspay.pro/pay/payIn/${outTradeNo}`,
      },
      message: "Deposit was created!",
    });

CONTENT PAYMENT RESULTS ( CALLBACK )

FieldTypeDescription
outTradeNoStringOrder ID from partners
payMethodNumberPayment method code: 001BANK,002 QR PAY, 003 MOMO ,004 ZaloPay, 005 ViettelPay, 006 USDT.
stateNumberPayment status: 0 for unpaid, 1 for paid , 2 for failed.
totalAmountNumberOrder amount.
signStringMerchant passes encrypted parameter value, currently limited to MD5 encryption.

Example :

sign= md5(outTradeNo=...&payMethod=...&state=...&totalAmount=...&key=...)

CONTENT FOR CUSTOMERS CHECK TRANSACTION PAYIN STATUS

https://api.sspay.pro/pay/payIn/status

Call methodData fomat
GETJSON

CONTENT REQUIRED

https://api.sspay.pro/pay/payIn/status/{outTradeNo}

Authorization: 'Bearer ${jwtToken}',

CONTENT REPONSE

FieldTypeDescription
outTradeNoStringOrder ID for checking status
codeNumber200 Successfully processed request.all others is failed
messageStringReason for failure: When the request fails, the reason will be displayed.
statusNumberPayment status: 0 for unpaid/processing, 1 for paid , 2 for failed.

CREAT PAYMENT WITHDRAWAL ( PAYOUT )

B • CREATE PAYOUT

Before you can initiate an order, you must provide the IP address of the data sending server for us to grant access. Without access authorization, you will be unable to send data to create an order.

https://api.sspay.pro/pay/payout

Call methodData fomat
POSTJSON

CONTENT REQUIRED

Authorization: 'Bearer ${jwtToken}',
FieldType001Both RequiredDescription
accountStringaccount gameNOIf you want display account name customer deposit money ,added this value.
accountNameStringBankowner nameYESRecipient's name, used for verification.
accountNumberStringBank account numberYESNumber of bank account withdrawal, in payout method 007 USDT . accountNumber is USDT Address
billIdStringwithdrawIDYESWithdrawal ID from partners
payMethodNumberVNDKYESPayment method code: 001BANK, 007 USDT.
shortNameStringShortname of BankYES List shortName of method 001BANK view driectly HERE . in payout method 007 USDT .

shortName is Network USDT ( USDT-TRC20, USDT-ERC20, USDT-BEP20 )
totalAmountNumberamount VNDKYESWithdrawal payment amount. 007 method required USDT value, 001 is VNDK value
signStringYESMerchant passes encrypted parameter value, currently limited to MD5 encryption.

Example : 001

	{
		"account":"abc1234", // Can skip
		"accountName": "NGUYEN VAN BAC",
		"accountNumber": "6281268888",
		"billId": "orderid126886",
		"payMethod": "001",
		"shortName": "VPBank", 
		"totalAmount": 1000,
		"sign": "md5(accountName=...&accountNumber=...&billId=...&payMethod=...&shortName=...&totalAmount=...&key=...)"
	}

Example : 007

{   
		"account":"abc1234", // Can skip
		"accountName": "NGUYEN VAN BAC", //SAME BANK ACCOUNT
		"accountNumber": "TFDc8b3YYWj6mEKSzHwuhnQ8UkkW38zA6z",
		"billId": "wd8862112341",
		"payMethod": "007",
		"shortName": "USDT-TRC20",  // Network USDT ( USDT-TRC20, USDT-ERC20, USDT-BEP20 )
		"totalAmount": 42.53, // USDT value
		"sign": "md5(accountName=...&accountNumber=...&billId=...&payMethod=...&shortName=...&totalAmount=...&key=...)"
}

DATA RESPONSE

FieldTypeHTTP Status QuoteDescription
codeHTTP200Successfully processed request.all others is failed
msgStringReason for failure: When the order creation fails, the reason for the failure will be displayed.

CONTENT WITHDRAWAL RESULTS( CALLBACK )

The system will automatically return the result when the transaction is approved, please provide the webhook to receive the return result so that the order can be completed automatically, or you can call the API yourself to check the transaction result.
FieldTypeDescription
billIdStringWithdrawal ID from partners
isRefundbooleanWhether it is canceled. true for success, failse for failure.
payMethodStringPayment method code: 001BANK, 007 USDT.
state boolean true for success, failse for failure
totalAmountNumberSettlement amount.
signStringMerchant passes encrypted parameter value, currently limited to MD5 encryption.

Example :

{
    "billId": "202501095885140",
    "isRefund": false,
    "payMethod": "001",
    "state": true,
    "totalAmount": 500,
    "sign": "153deb5147944487eaeb78c78a88c4b9"
}

sign= md5(billId=...&isRefund=...&payMethod=...&state=...&totalAmount=...&key=...)

CONTENT FOR CUSTOMERS CHECK WITHDRAWAL STATUS

https://api.sspay.pro/pay/payout/status

Call methodData fomat
GETJSON

CONTENT REQUIRED

https://api.sspay.pro/pay/payout/status/{billId}

Authorization: 'Bearer ${jwtToken}',

DATA REPONSE

FieldTypeDescription
codeHTTP200 Successfully processed request.all others is failed
billIdStringWithdrawal ID from partners
messageStringReason for failure: When the request fails, the reason will be displayed.
statusNumberPayment status: 0 for unpaid/processing, 1 for paid , 2 for failed.

CONTENT FOR CHECK BALANCE

This for query the balance before sending a withdrawal request on the SSPAY system.

https://api.sspay.pro/pay/balance

Call methodData fomat
GETJSON

CONTENT REQUIRED

https://api.sspay.pro/pay/balance

Authorization: 'Bearer ${jwtToken}',

DATA REPONSE

FieldTypeDescription
codeHTTP200 Successfully processed request.all others is failed
balanceNumberAvailable balance for settlement.

COMMON ERRORS

DATA REPONSE

FieldDescription
method maintainMaintenance payment method.
BANK maintainAll banks in system are not available this time.
IP not allowYour server IP has not been whitelisted.
UnauthorizedAPI KEY has expired, incorrect or not been used for a long time, need to be provided with a new API key.