UAT Integration

To make sure our integration process runs well in production, you can refer to these testing scenarios below:

Get Installment Options

This scenario will run in your (re: Merchant) checkout page where Indodana will send back installment options based on transaction amount. These options will then be shown to your customer along with some details like Installment Amount, and Monthly Installment as their purchasing reference.

A. Transaction Amount reach <500k

{ 
    "amount": 450000, 
    "items": [ 
        { 
            "id": "UAT_MERC001", 
            "name": "Wireless Earphone Bass V2.00", 
            "price": 450000, 
            "url": "http://merchant.com/elc/wireless-earphone-bass", 
            "imageUrl": "http://merchant.com/elc/wlearphone/cover.jpg", 
            "type": "Electronic", 
            "quantity": 1, 
            "parentType": "SELLER", 
            "parentId": "UAT_SELL001" 
        } 
    ] 
}

B. Transaction amount reach >= 500k

{ 
    "amount": 850000, 
    "items": [ 
        { 
            "id": "UAT_MERC002", 
            "name": "JeBeeL Super Bass Earphone", 
            "price": 850000, 
            "url": "http://merchant.com/elc/jebeel-spr-bass", 
            "imageUrl": "http://merchant.com/elc/jebeel-spr-bass/cover.jpg", 
            "type": "Electronic", 
            "quantity": 1, 
            "parentType": "SELLER",
            "parentId": "UAT_SELL002" 
        } 
    ] 
}

C. Transaction amount reach >1 million

{ 
    "amount": 1100000, 
    "items": [ 
        { 
            "id": "UAT_MERC003", 
            "name": "JeBeeL Basic Speaker", 
            "price": 550000, 
            "url": "http://merchant.com/elc/jebeel-speaker", 
            "imageUrl": "http://merchant.com/elc/jebeel-speaker/cover.jpg", 
            "type": "Electronic", 
            "quantity": 2, 
            "parentType": "SELLER", 
            "parentId": "UAT_SELL003" 
        } 
    ] 
}

D. Transaction amount reach >1.5 million

{ 
    "amount": 7500000, 
    "items": [ 
        { 
            "id": "UAT_MERC004", 
            "name": "IPhone 7 Black", 
            "price": 7500000, 
            "url": "http://merchant.com/phone/iphone7-black", 
            "imageUrl": "http://merchant.com/phone/iphone7-blk/cover.jpg", 
            "type": "Phone", 
            "quantity": 1, 
            "parentType": "SELLER", 
            "parentId": "UAT_SELL004" 
        } 
    ] 
}

Purchase Transaction Checkout

This scenario will run when your customer choose Indodana as their payment method in your checkout page.

{ 
    "transactionDetails": 
    { 
        "merchantOrderId": "UAT_MERC005", 
        "amount": 9000000, 
        "items": [ 
            { 
                "id": "UAT_ITEM001", 
                "name": "iPhone 6S", 
                "price": 4500000, 
                "url": "http://merchant.com/phone/iphone-6s", 
                "imageUrl": "http://merchant.com/phone/iphone-6s/cover.jpg", 
                "type": "Mobile Phone", 
                "quantity": 2, 
                "parentType": "SELLER", 
                "parentId": "UAT_SELL005" 
            } 
        ] 
    }, 
    "customerDetails": 
        { 
            "firstName": "First", 
            "lastName": "Last", 
            "email": "first.last@gmail.com", 
            "phone": "081212345678" 
        }, 
    "sellers": [ 
        { 
            "id": "UAT_SELL005", 
            "name": "Penjual iPhone", 
            "url": "https://merchant.com/UAT_SELL001", 
            "sellerIdNumber": "SELLER_001", 
            "email": "seller@merchant.com", 
            "address": 
                { 
                    "firstName": "Merchant", 
                    "lastName": "Seller", 
                    "address": "Kelapa Gading", 
                    "city": "Jakarta Utara", 
                    "postalCode": "11240", 
                    "phone": "081812345678", 
                    "countryCode": "ID" 
                } 
        } 
    ], 
    "billingAddress": 
        { 
            "firstName": "First", 
            "lastName": "Last", 
            "address": "Tomang", 
            "city": "Jakarta Barat", 
            "postalCode": "11430", 
            "phone": "081987654321", 
            "countryCode": "ID" 
        }, 
    "shippingAddress": 
        { 
            "firstName": "First", 
            "lastName": "Last", 
            "address": "Tomang", 
            "city": "Jakarta Barat", 
            "postalCode": "11430", 
            "phone": "081987654321", 
            "countryCode": "ID" 
        }, 
    "paymentType": "30_days", 
    "approvedNotificationUrl": "https://payment-notification.merchant.com/transaction-approval-handler", 
    "cancellationRedirectUrl": "http://merchant.com/phone/iphone-6s", 
    "backToStoreUrl": "http://merchant.com/phone/iphone-6s", 
    "expirationAt": "2019-12-31T18:00:00+07:00"
}

After you post transaction to Indodana, you will get a valid Indodana Checkout URL. Then, you should redirect your customer from your checkout page to that Indodana checkout page.

At the end of the process, you should receive a POST notification from Indodana notifying the purchase has been approved by Indodana.

transactionStatus= PROCESSED

Purchase Transaction Cancellation / Refund [Optional]

This is an optional scenario; It will depend on whether the merchant needs transaction refund feature or not.

As for this UAT covers only API-API integration, in this case you are required to POST a full refund request to Indodana.

{
  "refundId":"REF-UAT001",
  "merchantOrderId":"UAT_MERC001",
  "cancellationAmount" : 4500000,
  "cancellationReason":"Out of stock",
  "cancelledBy":"SELLER",
  "cancellationDate": "2019-09-22T18:18:18+07:00"
}

Last updated