iPay88 Indonesia - Core API

Selamat datang di laman Core API iPay88 Indonesia.
Segera integrasikan API ini dengan situs Anda untuk memulai transaksi dengan gerbang pembayaran iPay88 Indonesia.

Catatan Penting
  1. iPay88 Indonesia belum menyediakan fitur iFrame untuk payment page di laman merchant.
  2. Metode CURL tidak dapat digunakan untuk seluruh API iPay88 Indonesia.
  3. Lakukan uji transaksi pada fase development atau sandbox terlebih dahulu sebelum memasuki fase production.
  4. Pastikan seluruh kode yang Anda tulis telah memenuhi standar pemrograman dan keamanan data.

Online Payment System Gateway Versi 2.1.0

Welcome to iPay88 Indonesia Online Payment Switching Gateway 2.0.X. We provide e-payment services and reports that are integrated with your business site. Merchants can provide various payment methods to customers to make payments directly using our API through iPay88 Indonesia.


Download OPSG Versi 2.1.0 PDF Documentations

Payment Request

1 Sandbox https://sandbox.ipay88.co.id/ePayment/WebService/PaymentAPI/Checkout
2 Production https://payment.ipay88.co.id/ePayment/WebService/PaymentAPI/Checkout

Request Parameter

Merchants send parameters via JSON as a request to iPay88 Indonesia. Here are some parameters as a request:


No. Field Name Type (Size) Sample M/O Description
1. ApiVersion string(5) 2.0 M Version API
2. MerchantCode string(20) ID00001 M Merchant code assigned by iPay88
3. PaymentId string(4) 70 M Payment method identifier, see Payment Method list
4. Currency string(5) IDR M Supported currencies: IDR, USD, THB, MYR
5. RefNo string(30) 920201930925AM M Unique merchant transaction number / Order ID
6. Amount decimal 100000 M The amount must only contain the exact amount without 2 digits after.
For example:
100.50 is expressed as 100,50
10 is expressed as 10
0.50 is expressed as 0.50
Amount = Sum of Each transaction + Amount Of Shipping + Amount Of Discount
7. ProdDesc string(100) Alat Elektronik M Product description
8. UserName string(100) John Doe M Customer name
9. UserEmail string(100) [email protected] M Customer email for receiving receipt
10. UserContact string(100) 08123123123 M Bank(Principle) + Phone No. Example: Prefix 2112, Phone No 08123123123, VA Number 21128123123123. See Virtual Account Static for VA payment methods that provide Static VA.
11. RequestType string(20) REDIRECT O Request type identifier, see Request Type List for the list.
12. Remark string(100) M Merchant remarks
13. Lang string(20) ISO-8859-1 M Encoding type:
  • ISO-8859-1 (English)
  • UTF-8 (Unicode)
  • GB2312 (Chinese Simplified)
  • GD18030 (Chinese Simplified)
  • BIG5 (Chinese Traditional)
14. ResponseURL string(200) https://store.co.id/resp.asp M Response page URL at the merchant website to receive payment status from iPay88 OPSG.
15. BackendURL string(200) https://store.co.id/backend.asp M Backend response page URL.
16. Signature string(100) M SHA256 signature
17. FullTransactionAmount decimal 10000000 O Mandatory for BCA KlikPay
18. MiscFee decimal 10000000 O For BCA KlikPay
19. xfield1 string(200) O To enable installment and discount payment
20. ItemTransactions List (n) M Only for installment details with multiple products
1. Id string(50) 001 M Product ID
2. Name string(100) Smartphone M Name of item
3. Quantity integer 2 M Quantity of item
4. Amount integer 5000 M Total amount of item product
5. Type string(100) O Type of product
6. Url string(100) O URL of the product in the merchant site/platform
7. ImageUrl string(256) O URL of the image of the product in the merchant site/platform
8. Tenor string(100) O For BCA KlikPay
9. CodePlan string(100) O For BCA KlikPay
10. MerchantId string(100) O For BCA KlikPay
11. ParentType string(100) SELLER or ITEM M Possible values: SELLER, ITEM
12. ParentId string(100) SELLER88 M It corresponds to the SELLER ID if the ParentType is SELLER, or ITEM ID if ParentType is ITEM
22. BillingAddress M Billing Address detail
1. FirstName string(100) M Billing FirstName
2. LastName string(100) M Billing LastName
3. Address string(100) JL. Letjen S. Parman No. 22-24 M Billing Address
4. City string(100) Jakarta Barat M Billing City
5. State string(20) Jakarta M Billing State
6. PostalCode string(20) 11480 M Billing Postal Code
7. Phone string(20) 087888888888 M Billing Phone
8. CountryCode string(20) ID M Billing Country Code
23. Sellers M Only For Seller Detail
1. Id string(100) Your-seller-id M Seller’s ID
2. Name string(100) Your-seller-name M Seller’s Name
3. SelleridNumber string(100) Your-seller-id-number M Seller's identifier number (KTP / SIM / etc)
4. Email string(100) [email protected] M Seller’s Email
5. URL string(100) www.sunrise.com M Seller’s Website
6. Address M Seller’s Shop
6.1 FirstName string(100) Seller First Name M Seller’s Shop FirstName
6.2 LastName string(100) Seller Last Name M Seller’s Shop LastName
6.3 Address string(100) JL. Letjen S. Parman No. 22-24 M Seller’s Shop Address
6.4 City string(100) DKI Jakarta M Seller’s Shop City
6.5 State string(20) Jakarta Barat M Seller’s Shop State
6.6 PostalCode string(20) 11480 M Seller’s Shop Postal Code
6.7 Phone string(20) 087888888888 M Seller’s Shop Phone
6.8 CountryCode string(16) ID M Seller’s Shop Country Code
24. SettingField List (n)
1. Name string(100) TenorInstallment, or NoStaticVA O For other: example installment or static virtual account
2. Value string(100) O For other: example installment

Request Signature

This signature must be included in the request of every transaction and is encrypted using SHA256. This hash signature for a request is a hash of the following five fields:

  1. MerchantKey (Provided by iPay88 Indonesia and shared between iPay88 and the merchant only)
  2. MerchantCode
  3. RefNo
  4. Amount
  5. Currency

The fields must be set in the following order:
|| MerchantKey || MerchantCode || RefNo || Amount || Currency ||
Example:
MerchantKey = "apple"
MerchantCode = "ID00001"
RefNo = "A00000001"
Amount = "3000" (Note: 3000 represents amount as Rp 3.000)
Currency = "IDR"

The hash would be calculated based on the following string:
||apple||ID00001||A00000001||3000||IDR||
The resulting hash signature value, calculated using SHA256, is:
3ee767e49d29c46b6187db2fe511287ccd986e874a057fa2e1bb222442b68f63

To ensure the signature generated is correct, visit the link below for signature comparison:
Test Signature Comparison



Signature Sample Code

            
              $sha256hex = hash('sha256', "||" . MerchantKey . "||" . MerchantCode . "||" . RefNo . "||" . Amount . "||" . Currency . "||");
            
          
            
              String sha256hex = org.apache.commons.codec.digest.DigestUtils.sha256Hex("||" + MerchantKey + "||" + MerchantCode + "||" + RefNo + "||" + Amount + "||" + Currency + "||");
            
          


Request Sample

            
              {
                "APIVersion": "2.0",
                "MerchantCode": "ID00001",
                "PaymentId": "71",
                "Currency": "IDR",
                "RefNo": "10182019103003AM",
                "Amount": "500000",
                "ProdDesc": "Alat Elektronik",
                "UserName": "Technical Support",
                "UserEmail": "[email protected]",
                "UserContact": "081234567890",
                "Remark": "",
                "Lang": "iso-8859-1",
                "RequestType": "REDIRECT",
                "ResponseURL": "https://sandbox.ipay88.co.id/epayment/fujipaystatusv2.asp",
                "BackendURL": "http://sandbox.ipay88.co.id/ePayment/testing/RequestForm_savetemp.asp",
                "Signature": "b469c7da241554364e55b65ca807ffc501bdf981126c248c636ac9e38592fc12",
                "ItemTransactions": [
                    {
                        "Id": "00001",
                        "Name": "Smartphone Wireless Charger",
                        "Quantity": "1",
                        "Amount": "300000",
                        "Type": null,
                        "Url": null,
                        "ImageUrl": null,
                        "ParentType": "SELLER",
                        "ParentId": "SELLER123"
                    },
                    {
                        "Id": "00002",
                        "Name": "Powerbank 10000maH",
                        "Quantity": "1",
                        "Amount": "200000",
                        "Type": null,
                        "Url": null,
                        "ImageUrl": null,
                        "ParentType": "SELLER",
                        "ParentId": "SELLER123"
                    },
                    {
                        "Id": "shippingfee",
                        "Name": "Shipping Fee",
                        "Quantity": "1",
                        "Amount": "5000",
                        "Type": null,
                        "Url": null,
                        "ImageUrl": null,
                        "ParentType": null,
                        "ParentId": null
                    },
                    {
                        "Id": "discount",
                        "Name": "Discount",
                        "Quantity": "1",
                        "Amount": "5000",
                        "Type": null,
                        "Url": null,
                        "ImageUrl": null,
                        "ParentType": null,
                        "ParentId": null
                    }
                ],
                "ShippingAddress": {
                    "FirstName": "Techsupp",
                    "LastName": "Alpha",
                    "Address": "Jl. Test Blok R No.1",
                    "City": "Jakarta",
                    "State": "DKI Jakarta",
                    "PostalCode": "18800",
                    "Phone": "08123456789",
                    "CountryCode": "1"
                },
                "BillingAddress": {
                    "FirstName": "Techsupp",
                    "LastName": "Alpha",
                    "Address": "Jl. Test Blok R No.1",
                    "City": "Jakarta",
                    "State": "DKI Jakarta",
                    "PostalCode": "18800",
                    "Phone": "08123456789",
                    "CountryCode": "1"
                },
                "Sellers": [
                    {
                        "Id": "SELLER123",
                        "Name": "Sellername",
                        "LegalId": "3274011001900001",
                        "SellerIdNumber": 3274011001900002,
                        "Email": "[email protected]",
                        "Url": "www.sunrise.com",
                        "address": {
                            "FirstName": "Seller",
                            "LastName": "Alpha",
                            "Address": "Jalan Tentara Pelajar no 49",
                            "City": "Jakarta Utara",
                            "State": "DKI Jakarta",
                            "PostalCode": "12960",
                            "Phone": "08123456789",
                            "CountryCode": "IDN"
                        }
                    }
                ],
                "SettingField": [
                    {
                        "Name": "TenorInstallment",
                        "Value": "3"
                    }
                ]
              }
            
          


Response Format

iPay88 Indonesia sends parameters via JSON as a response to Merchant. Here are some parameters as a response:


No. Field Name Type Sample Description
1. RefNo string 920201930925AM Unique merchant transaction number / Order ID
2. Signature string b469c7da241554364e55b65ca807ffc501bdf981126c248c636ac9e38592fc12 Signature generated with SHA256 (see Request Signature)
3. VirtualAccountAssigned string 00001234561226610016ID.CO.SHOPEE.WWW01189360091800202690420208202690420303UMI522233123455360540820000.005802ID5920iPay88DummyStore-web6015KOTA JAKARTA PU61051021062150511T03152635123T4C5F11 Virtual Account Number. For QRIS Static, iPay88 will return the same response for registered TerminalID and MerchantCode.
4. TransactionExpiryDate string 18-08-2020 07:57 Expiry date for Virtual Account (DD-MM-YYYY HH:MM)
5. CheckoutID string T0036521900 iPay88 OPSG Transaction ID
6. Code string 1 - Payment Request Received
0 - Fail
Transaction Status
7. Message string Data received Transaction Message

Response Sample


{
    "RefNo": "920201930925AM",
    "Signature": "b469c7da241554364e55b65ca807ffc501bdf981126c248c636ac9e38592fc12",
    "CheckoutID": "T0036521900",
    "Code": "1",
    "Message": "CheckoutURL generated"
}

    

Response Sample (Virtual Account)


{
    "RefNo": "10182019103003AM",
    "Signature": "b469c7da241554364e55b65ca807ffc501bdf981126c248c636ac9e38592fc12",
    "VirtualAccountAssigned": "21128123123123",
    "TransactionExpiryDate": "18-08-2020 07:57",
    "CheckoutID": "T0036521900",
    "Code": "1",
    "Message": "CheckoutURL generated"
}

    

Response Sample (QRIS)


{
    "RefNo": "920201930911AM",
    "Signature": "6f7a5e4386438adf494feecbdc582d9c81e69e2e5fae747fe9a7dc98ef9fe7f1",
    "VirtualAccountAssigned": "00001234561226610016ID.CO.SHOPEE.WWW01189360091800202690420208202690420303UMI52233123455360540820000.005802ID5920iPay88DummyStore-web6015KOTA JAKARTA PU61051021062150511T03152635123T4C5F11",
    "CheckoutID": "5da812906e2bc26babf28e957c918468d87d34f021cadc66e6bb65c73f9276331",
    "Code": "1",
    "Message": "CheckoutURL generated"
}

    

Payment Redirect

After getting a response from iPay88, merchants need to redirect using the form method POST using CheckoutID from the payment response.

1 Sandbox https://sandbox.ipay88.co.id/PG/
2 Production https://payment.ipay88.co.id/PG/

Payment Redirect Parameter

Merchant should configure their server to send Referrer HTTP request header in all their Payment Redirect process to iPay88 payment page. iPay88 will do system verification to make sure that the request is valid from matching Merchant Code and merchant domain URL.
Reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer

No. Field Name Type (Size) Sample Description
1. CheckoutID string(20) 3acf947c2e40b975d07d60906aff9
ef832357ba573b933faa007140d84492cb2
Unique ID iPay88 generated from payment response
2. Signature integer b469c7da241554364e55b65ca807ffc
501bdf981126c248c636ac9e38592fc12
Signature generated with SHA256 (see Request Signature)

Payment Redirect Sample


<form method="POST" name="redirect" action="{redirect url}">
    <input type="hidden" name="CheckoutID" value="{CheckoutID}" />
    <input type="hidden" name="Signature" value="{Signature}" />
</form>
<script language="javascript">
    document.redirect.submit();
</script>

            


Payment Response

HTTPS POST redirect response to responseURL (refer to Request Parameter No. 14) from iPay88 OPSG after performing payment.

No. Field Name Type (Size) Sample Description
1. MerchantCode string(20) ID00001 Merchant code assigned by iPay88
2. RefNo string(30) 920201930925AM Unique merchant transaction number / Order ID

Payment Response Sample


<%
MerchantCode = Request.Form("MerchantCode")
RefNo = Request.Form("RefNo")
%>
<Add your programming code here>

            

<?PHP
$merchantcode = $_REQUEST["MerchantCode"];
$refno = $_REQUEST["RefNo"];
PHP?>
<Add your programming code here>

            


BackendPost

Backendpost will be sent after a user payment attempt using method POST with type application/json. iPay88 will send a backendpost with 3 times retry until merchant response with Code 1.

For QRIS Static Integration you need to register the merchant BackendURL with iPay88 team in order to receive callback notification.


BackendPost Parameter

No. Field Name Type Description
1. MerchantCode string Merchant code assigned by iPay88
2. PaymentID string Payment method identifier
3. Refno string Merchant Reference Number
4. Amount string Transaction Amount, with .00
5. Currency string Transaction Currency
6. Remark string Additional Value
7. TransId string iPay88 transaction ID
8. AuthCode string Code from Bank
9. TransactionStatus string Transaction Status
“1” – Success
“0” – Fail
“6” – Pending (Only available for ATM Transfer payment)
10. ErrDesc string Transaction Error Description
11. Signature string Signature generated using SHA256
12. TransactionExpiryDate string Date expiry distributed by iPay88
13. VirtualAccountAssigned string Assigned and Distributed by iPay88
13. PaymentDate string Transaction Date
14. QRISResponse Only available on QRIS Static
RRN string Unique number generated by QRIS issuer
TID string Registered merchant terminal ID

BackendPost Signature

This signature must be included in the request of every transaction and encrypted using SHA256. This hash signature for a request is a hash of the following fields:

  1. MerchantKey (Provided by iPay88 OPSG and shared between iPay88 and merchant only)
  2. MerchantCode (Provided by iPay88 OPSG and shared between iPay88 and merchant only)
  3. PaymentID (see References for the list)
  4. RefNo
  5. Amount
  6. Currency
  7. TransactionStatus (the status of the transaction can be obtained from iPay88)

The fields must be set in the following order:
|| MerchantKey || MerchantCode || PaymentID || RefNo || Amount || Currency || TransactionStatus ||

Example:
MerchantKey = “apple”
MerchantCode = “ID00001”
PaymentID = “1”
RefNo = “A00000001”
Amount = “3000.47” (Note: 3000.47 represents an amount of Rp 3.000,47)
Currency = “IDR”
TransactionStatus = “1”

The hash would be calculated on the following string:
||apple||ID00001||1||A00000001||3000.47||IDR||1||

The resulting hash signature value (using SHA256 algorithm) is:
ed14e9c0373a1e1f887c29929fd8d063a402f6b1924d78df0763e03bae025ee0

To ensure the signature generated is correct, visit the link below for signature comparison:
https://payment.ipay88.co.id/epayment/testing/TestSignaturev2.asp

BackendPost Signature Sample Code


<?php
$sha256hex = hash('sha256', "||" . MerchantKey . "||" . MerchantCode . "||" . PaymentId . "||" . RefNo . "||" . Amount . "||" . Currency . "||" . TransactionStatus . "||");
?>

            

String sha256hex = org.apache.commons.codec.digest.DigestUtils.sha256Hex("||" + MerchantKey + "||" + MerchantCode + "||" + PaymentId + "||" + RefNo + "||" + Amount + "||" + Currency + "||" + TransactionStatus + "||");

            

BackendPost Sample


{
    "MerchantCode": "ID00001",
    "PaymentId": "118",
    "RefNo": "224202234712AM",
    "Amount": "30000.00",
    "Currency": "IDR",
    "Remark": "",
    "TransId": "T0057525100",
    "AuthCode": "1411600000038796",
    "TransactionStatus": "1",
    "ErrDesc": "",
    "Signature": "e111ac4fae7eeeb07e7b07f0e0b0e6515d3040fe8ac62e0cad5cbe55a48c3fb2",
    "IssuerBank": "",
    "TransactionExpiryDate": "25-02-2022 10:48",
    "VirtualAccountAssigned": "1411600000038796",
    "PaymentDate": "24-02-2022 10:48",
    "Xfield1": "",
    "DCCConversionRate": "0",
    "OriginalAmount": "0.00",
    "DiscountAmount": "",
    "DiscountCode": "",
    "OriginalCurrency": "",
    "SettlementAmount": "0",
    "SettlementCurrency": "",
    "Binbank": ""
}

    

BackendPost Response

Merchant must respond with a specific value of backendpost that is being sent to the merchant's BackendURL.

No. Field Name Type Description
1. Code string 0 for Failed, 1 for Success
2. Message string
1. Indonesia string Message in Indonesia
2. English string Message in English

BackendPost Response Sample


{
    "Code":"1",
    "Message": {
        "English":"Status Received",
        "Indonesian":"Pembayaran diterima"
    }
}

    

Requery Payment Status

No Environment URL
1 Sandbox https://sandbox.ipay88.co.id/epayment/enquiry.asp
2 Production https://payment.ipay88.co.id/epayment/enquiry.asp

Request Parameter

Field Name Type (Size) M/O Description
MerchantCode string(20) M Merchant Code assigned by iPay88
RefNo string(30) M Unique merchant transaction number / Order ID
Amount decimal M The amount must contain 2 digits after the decimal.
For example:
100.50 is expressed as 100,50
10 is expressed as 10,00
0.50 is expressed as 0,50

Legend:
M: Mandatory field
O: Optional field, value can be empty but the parameter must exist


Requery Sample


<%
Function SendToiPayInq(byval MerchantCode, byval RefNo, byval Amount)
    Dim TryNo, thenQString, URL, strReturn
    TryNo = 0
    QString = "MerchantCode=" & MerchantCode & "&RefNo=" & RefNo & "&Amount=" & Amount
    URL = "https://payment.ipay88.co.id/epayment/enquiry.asp"
    On Error Resume Next
    Do
        Set xobj = Server.CreateObject ("Msxml2.ServerXMLHTTP.3.0")
        xobj.setTimeouts 30000, 60000, 60000, 60000
        xobj.open "POST", URL, false
        xobj.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xobj.send QString
        TryNo = TryNo + 1
    Loop While xobj.status <> 200 and TryNo < 3
    If xobj.status <> 200 Then
        SendToiPayInq = Err.Description & "(" & Err.Number & ")"
    Else
        SendToiPayInq = xobj.responseText
    End If
    set xobj = nothing
End Function
%>

        

<?PHP
function Requery($MerchantCode, $RefNo, $Amount)
{
    $query = "https://payment.ipay88.co.id/epayment/enquiry.asp?MerchantCode=" . $MerchantCode . "&RefNo=" . $RefNo . "&Amount=" . $Amount;
    $url = parse_url($query);
    $host = $url["host"];
    $path = $url["path"] . "?" . $url["query"];
    $timeout = 1;
    $fp = fsockopen($host, 443, $errno, $errstr, $timeout);
    if ($fp)
    {
        fputs($fp, "GET $path HTTP/1.0\nHost: " . $host . "\n\n");
        while (!feof($fp))
        {
            $buf .= fgets($fp, 128);
        }
        $lines = split("\n", $buf);
        $Result = $lines[count($lines) - 1];
        fclose($fp);
    }
    else
    {
        # enter error handling code here
    }
    return $Result;
}
?>

        

Response Format

Below is iPay88 requery response parameter:

Response iPay88 OPSG Description
00 Successful payment
Invalid parameters Parameters pass in incorrect
Record not found Cannot found the record
Incorrect amount Amount different
Payment fail Payment fail
Payment Pending Payment is pending and need customer to pay at the ATM Machine
Payment In Progress Payment is not paid yet or idle on iPay88 payment page or Bank page


Request Parameter

No Field Name Type (Size) Description
1 RefNo string(30) Unique merchant transaction number / Order ID
2 MerchantCode string(20) Merchant Code assigned by iPay88
3 Amount string The amount must only contain the exact number without 2 digits after and without point/comma.
Example:
10.000 is expressed as 10000
100.000 is expressed as 1000000
4 Signature string(100) SHA256 signature
5 Currency string(5) IDR only

Requery Sample


{
    "RefNo": "1031202241537AM",
    "MerchantCode": "ID00001",
    "Amount": "10000",
    "Signature": "622cbd6690e265cda0371140ee4f21fead6e0ed875f711da28cf08026a0a5617",
    "Currency": "IDR"
}

Response Parameter

No. Field Name Type Description
1 Status string Data received status
"200" – Success
"404" – Merchant Not Found
"401" – Transaction signature is not match
"400" – Record not found / Cannot requery more than 100 times / Incorrect amount
2 Message string Transaction message, see requery response message.
3 MerchantCode string Merchant code assigned by iPay88
4 PaymentID string Payment method identifier
5 Refno string Merchant Reference Number
6 Amount string The amount must only contain the exact amount without 2 digits after and without point/comma.
Example
10.000 is expressed as 10000
100.000 is expressed as 1000000
7 Currency string Transaction Currency
8 Remark string Additional Value
9 TransId string iPay88 transaction ID
10 AuthCode string Code from Bank
11 TransactionStatus string Transaction Status
"1" – Success
"0" – Fail
"3" – Payment in Progress
"6" – Pending (Only available for Virtual Account)
12 ErrDesc string Transaction Error Description from Principle/Bank
13 Signature string Signature generated using SHA256
14 PaymentDate string Transaction Date
15 xfield1 string To enable installment and discount payment

Response Sample


{
    "Status": "200",
    "Message": "00",
    "Data": {
        "MerchantCode": "ID00001",
        "PaymentId": "103",
        "RefNo": "113202224101AM",
        "Amount": "10000",
        "Currency": "IDR",
        "Remark": "",
        "TransId": "T0061540600",
        "AuthCode": "879558",
        "TransactionStatus": "1",
        "ErrDesc": "",
        "Signature": "",
        "IssuerBank": "P.T. BANK CIMB NIAGA TBK.",
        "PaymentDate": "03-11-2022 09:43",
        "Xfields1": ""
    }
}


Requery Response Message

Response iPay88 OPSG Description
00 Successful payment
Payment fail Payment is failed or not successful
Payment Pending Payment is pending and customer needs to pay and complete the payment on their mobile banking or ATM Machine
Payment In Progress Payment is not paid yet or customer idle on iPay88 payment page or Bank page
Invalid parameters Incorrect request parameter
Record not found Transaction not found or not recorded in iPay88 system
Merchant not found Incorrect merchant code
Transaction signature is not match Incorrect request signature
Incorrect amount Incorrect request amount

Referensi

Kami berusaha memberikan informasi selengkap mungkin untuk Anda. Adanya informasi tersebut menjadikan proses integrasi Anda dengan iPay88 Indonesia menjadi mudah dan cepat. Untuk itu, kami meyediakan referensi sebagai informasi tambahan untuk Anda. Berikut ini adalah referensi dari iPay88 Indonesia.


Testing Credentials

Uji transaksi dengan metode pembayaran kartu kredit melalui sandbox memerlukan data sampel kartu. Berikut ini adalah testing credentials yang dapat digunakan untuk uji transaksi dengan metode pembayaran kartu kredit.


1. Pengujian Data

Card Number
CVV/CVV2
EXP Date (MM/YY)
Card Status
4000000000000044
123
03/33
Good card
5500000000000004
123
03/33
Good card

2. Pengujian Data Eksespsi

Card Number
CVV/CVV2
EXP Date (MM/YY)
Card Status
Error Message
4000000000000028
223
03/33
Bad card
Bank declined transaction
5200000000000007
223
03/33
Bad card
Bank declined transaction
5200000000000015
223
03/33
Bad card
Bank declined transaction


Payment ID

Berikut ini adalah daftar Payment ID iPay88 Indonesia berdasarkan metode pembayaran yang tersedia.

Credit/Debit Card

PaymentID Name Currency Remark Available Seamless
101 Credit Card (BCA) IDR
102 Credit Card (BCA 2D) IDR
105 Credit Card (BRI) IDR
106 Credit Card (BRI 2D) IDR 2D Payment
103 Credit Card (CIMB) IDR
104 Credit Card (CIMB 2D) IDR
116 Credit Card (CIMB Authorization) IDR PreAuth Payment
34 Credit Card (CIMB IPG) IDR
44 Credit Card (CIMB IPG 2D) IDR 2D Payment
88 Credit Card (Danamon) IDR
49 Debit Card (GPN) IDR
54 Credit Card (UnionPay) IDR

Online Banking

PaymentID Name Currency Remark Available Seamless
81 CIMB Clicks IDR
23 D-Bank Pro IDR
80 Jenius Pay IDR

Virtual Account

PaymentID Name Currency Remark Available Seamless
9 Maybank VA IDR Yes
112 Permata VA IDR Yes
119 Mandiri VA IDR Yes
140 BCA VA IDR Yes
118 BRI VA IDR Yes
83 BNI VA IDR Yes
135 CIMB VA IDR Yes
111 Danamon VA IDR Yes

Virtual Account Static

PaymentID Name Remark Available Seamless
118 BRI VA Yes
119 Mandiri VA Yes
9 Maybank VA Yes
112 Permata VA Yes
140 ALTO BCA VA Yes

E-Wallet

PaymentID Name Currency Remark Available Seamless
63 OVO IDR
77 DANA IDR
13 LinkAja IDR
76 ShopeePay JumpApp IDR

QRIS

PaymentID Name Currency Remark Available Seamless
120 QRIS IDR Yes
141 QRIS Static IDR Yes

Over The Counter

PaymentID Name Currency Available Seamless
60 Alfamart IDR Yes
65 Indomaret IDR Yes

Online Credit

PaymentID Name Currency Available Seamless
71 Akulaku IDR
70 Indodana IDR
55 Kredivo IDR
73 Atome IDR

Request Type List

Request Type Description
REDIRECT Default method using checkout form
SEAMLESS Seamless method using API
QRCustomerScan Seamless method for QR customer scan payment


Mata Uang

Berikut ini adalah mata uang yang diharuskan untuk integrasi dengan iPay88 Indonesia.

Deskripsi Mata Uang
Simbol
Indonesia Rupiah
IDR


Deskripsi Error

Berikut ini adalah daftar pesan dan deskripsi error dari iPay88 Indonesia saat integrasi dengan merchant.

Pesan Error
Deskripsi Error
Duplicate transaction reference number. Nomor referensi digunakan kembali setelah nomor tersebut digunakan untuk pembayaran yang terlah sukses.
Merchant identifier is missing or unregistered. Merchant code tidak terdaftar atau merchant code salah.
Transaction exceeds maximum allowed amount. Kelebihan nilai total per transaksi.
Unregistered merchant callback URL. Request url milik merchant yang terdaftar di iPay88 tidak tepat. Silahkan registrasi request url situs Anda ke iPay88.
Transaction signature is not match. Signature yang dihasilkan merchant tidak tepat.
Merchant account is suspended or inactive. Akun telah disuspend atau tidak aktif.
Invalid transaction amount format. Format value pada parameter Amount tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Invalid transaction currency format. Format value pada parameter Currency tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Invalid merchant identifier. Format value pada parameter MerchantCode tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Invalid transaction channel identifier. Format value pada parameter PaymentId tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Invalid purchased item description format. Format value pada parameter ProdDesc tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Invalid transaction reference number. Format value pada parameter RefNo tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Invalid customer email format. Format value pada parameter UserEmail tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Invalid customer name format. Format value pada parameter UserName tidak sesuai atau tidak ada value pada parameter tersebut ketika merchant request ke iPay88.
Transaction time has expired when receiving authorization response. Respon dari Issuer/Acquirer melebihi waktu transaksi (timeout).
Payment method or channel is not subscribed. Merchant menggunakan metode pembayaran yang tidak didaftarkan ke iPay88.
Transaction does not pass all fraud security check. Transaksi ditolak oleh parameter Fraud Detection System (FDS).