IPay88

Introduction

iPay88 is a payment company that offers e-commerce, retail, online banking, e-wallets solutions and more to its merchants.
iPay88 offers merchants comprehensive online payment options such as credit/debit cards, bank transfers and alternative online payments. The payment process uses a redirect approach, customers will be redirected to a secure iPay88 page where they will make a payment and then be returned to your store.


Supported Countries

  • Indonesia 🇮🇩
  • Thailand 🇹🇭

Available Payment Methods

Payment TypePayment Method KeyCurrencyStatusSandbox Availability
Ovo WalletIPAY88_OVOIDR✅❌
Dana WalletIPAY88_DANAIDR✅✅
LinkAja WalletIPAY88_LINKAJAIDR✅❌
ShopeePay WalletIPAY88_SHOPEEPAYIDR✅❌
Maybank Virtual AccountIPAY88_MAYBANK_VAIDR✅✅
Permata Virtual AccountIPAY88_PERMATA_VAIDR✅✅
Mandiri Virtual AccountIPAY88_MANDIRI_ATMIDR✅✅
AkulakuIPAY88_AKULAKUIDR✅❌
GPNIPAY88_GPNIDR✅❌
Nobubank QRIPAY88_NOBUBANK_QRIDR✅❌
ShopeePay QRIPAY88_SHOPEEPAY_QRIDR✅❌
Credit CardsIPAY88_CREDIT_CARDTHB✅✅
KBankIPAY88_KBANKTHB✅❌
SCB BankIPAY88_SCBTHB✅❌
BAY BankIPAY88_BAYTHB✅❌
BBL BankIPAY88_BBLTHB✅❌
PromptPayIPAY88_PROMPT_PAYTHB✅❌
Rabbit LinePay WalletIPAY88_RABBIT_LINE_PAYTHB✅✅
ShopeePay WalletIPAY88_SHOPEEPAY_JUMPAPPTHB✅❌
TrueMoney WalletIPAY88_TRUE_MONEYTHB✅❌

Miscellaneous Details

Indonesia
  • Merchant needs to register Referer Domain https://portone.io/ with iPay88
  • Amount in Decimal value not supported for IDR currency
  • Description is mandatory
  • In Order details following fields are mandatory:
    • Id
    • Name
    • Quantity
    • Price
  • In Billing details and Shipping details following fields are mandatory:
    • Name
    • Surname
    • Phone
    • Email
    • Address - Line 1
    • Address - City
    • Address - State
    • Address - Postal Code
    • Address - Country Code

Thailand
  • Description is mandatory
  • In Billing details following fields are mandatory:
    • Name
    • Phone
    • Email

Sandbox

Use following values in embedded JS code to pay via iPay88 channel

    "pmt_channel": "IPAY88",
    "pmt_method": { Any of above given payment method keys },

Credentials

countrymerchantCodemerchantKey
IndonesiaID01829pNaUOCSyP4
ThailandTH000104SLxHL1j2Y

Test card data for Thailand Credit Card payment method

TypeCard numberNameValid throughCVV/OTP
Credit Card4000 0000 0000 0002TEST CARD12/22123

Test Phone details for Dana wallet

Mobile NumberSMSPassword
812202020208888082020

Test Virtual Account ATM Simulator

ATM Simulator


Sample payload for initiatePayment

{
    "key": {portone_key},
    "merchant_order_id": {merchant_order_id},
    "amount": 40000,
    "currency": "IDR",
    "signature_hash": {signature_hash},
    "billing_details": {
        "billing_name": "Test Customer",
        "billing_surname":"Something",
        "billing_email": "[email protected]",
        "billing_phone": "+7467345493",
        "billing_address": {
            "city": "Jakarta",
            "country_code": "ID",
            "locale": "vi",
            "line_1":"Address line 1",
            "line_2":"Address line 2",
            "postal_code": "400202",
            "state": "Mah",
            "country_name":"Indonesia"
        }
    },
    "shipping_details": {
        "shipping_name": "Test Customer",
        "shipping_surname":"Something",
        "shipping_email": "[email protected]",
        "shipping_phone": "+4875867484",
        "shipping_address": {
            "city": "abc",
            "country_code": "ID",
            "locale": "vn",
            "line_1": "address_1",
            "line_2": "address_2",
            "postal_code": "400202",
            "state": "Bac Giang"
        }
    },
    "order_details": [
        {
            "id": "1",
            "name": "abc",
            "quantity": 1,
            "price": 40000
        }
    ],
    "success_url": "https://dev-checkout.portone.cloud/success.html",
    "failure_url": "https://dev-checkout.portone.cloud/failure.html",
    "pmt_channel": "IPAY88",
    "pmt_method": { Any of above given payment method keys },
    "description":"Payment for the order #42140324",
    "environment":"sandbox"
}

Sample payload for paymentLink

{
    "portone_key": {portone_key},
    "merchant_details": {
        "name": "Test company",
        "back_url": "https://dev-admin.portone.io",
        "promo_code": "NA",
        "promo_discount": 0,
        "shipping_charges": 0
    },
    "signature_hash": {signature_hash},
    "amount": 20000,
    "currency": "IDR",
    "country_code": "ID",
    "merchant_order_id": {merchant_order_id},
    "billing_details": {
        "billing_name": "Test Customer",
        "billing_surname":"Something",
        "billing_email": "[email protected]",
        "billing_phone": "+4534283293",
        "billing_address": {
            "city": "Jakarta",
            "country_code": "ID",
            "locale": "vi",
            "line_1":"Address line 1",
            "line_2":"Address line 2",
            "postal_code": "400202",
            "state": "Mah",
            "country_name":"Indonesia"
        }
    },
    "shipping_details": {
        "shipping_name": "Test Customer",
        "shipping_surname":"Something",
        "shipping_email": "[email protected]",
        "shipping_phone": "+5454934232",
        "shipping_address": {
            "city": "abc",
            "country_code": "ID",
            "locale": "vi",
            "line_1": "address_1",
            "line_2": "address_2",
            "postal_code": "400202",
            "state": "Bac Giang"
        }
    },
    "success_url": "https://dev-checkout.portone.cloud/success.html",
    "failure_url": "https://dev-checkout.portone.cloud/failure.html",
    "expiry_hours": 48,
    "source": "api",
    "description": "Payment for the order #42140324",
    "show_shipping_details": false,
    "show_back_button": true,
    "default_guest_checkout": false,
    "is_checkout_embed": false,
    "environment": "sandbox",
    "order_details": [
        {
            "id": "1",
            "name": "abc",
            "quantity": 2,
            "price": 10000
        }
    ]
}

Sample additional data response for initiatePayment (Thailand)

{
"additional_data": {
        "Amount": "40000.00",
        "BackendURL": "https://api.portone.cloud/webhook/ipay88/"{portone_key}"?country=TH",
        "Currency": "THB",
        "MerchantCode": {Merchant_code},
        "PaymentId": 82,
        "PostingURL": "https://sandbox.ipay88.co.th/epayment/entry.asp",
        "ProdDesc": "Payment for the order #42140324",
        "RefNo": {Order_ref},
        "ResponseURL": "https://api.portone.cloud/api/handleShopperRedirect/IPAY88?country=TH",
        "Signature": "5506cd211a6ac76cca90ab385057fdb70a287c2f434c3ae9f3bd5a9ca1822d68",
        "SignatureType": "SHA256",
        "UserContact": "+7467345493",
        "UserEmail": "[email protected]",
        "UserName": "Firstname Surname"
    }
}

Payment Redirect (Thailand)

In the response of initiatePayment API with additional data but no redirect URl or deep link, then the merchants needs to submit the form using form method post.

Payment Redirect Sample
<FORM method="post" name="ePayment" action={PostingURL}>
    <INPUT type="hidden" name="MerchantCode" value={MerchantCode}>
    <INPUT type="hidden" name="PaymentId" value={PaymentId}>
    <INPUT type="hidden" name="RefNo" value={RefNo}>
    <INPUT type="hidden" name="Amount" value={Amount}>
    <INPUT type="hidden" name="Currency" value={Currency}>
    <INPUT type="hidden" name="ProdDesc" value={ProdDesc}>
    <INPUT type="hidden" name="UserName" value=USERNAME>
    <INPUT type="hidden" name="UserEmail" value=USEREMAIL>
    <INPUT type="hidden" name="UserContact" value=USERCONTACT>
    <INPUT type="hidden" name="Remark" value="">
    <INPUT type="hidden" name="Lang" value="ISO-8859-1">
    <INPUT type="hidden" name="SignatureType" value={SignatureType}>
    <INPUT type="hidden" name="Signature" value={Signature}>
    <INPUT type="hidden" name="ResponseURL" value={ResponseURL}>
    <INPUT type="hidden" name="BackendURL" value={BackendURL}>
    <INPUT type="submit" value="Proceed with Payment" name="Submit">
</FORM>

Sample additional data response for initiatePayment (Indonesia)

{
"additional_data": {
        "CheckoutID": "7758028124035bd7baaa33b8d5a3b11803c8b0997a5d2a733affce6f1504f729",
        "Code": "1",
        "PostingURL": "https://sandbox.ipay88.co.id/PG/",
        "RefNo": {Order_ref},
        "Signature": "aa5134dee1343cfaec465f6134d4ce2b57fd92db5ea1cdb7e5321ee007b7d263"
    }
}

Payment Redirect (Indonesia)

In the response of initiatePayment API with additional data but no redirect URl or deep link, then the merchants needs to submit the form using form method post.

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

Reference links


Did this page help you?