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"
}
]
}
B. Tenure options: 1 & 3 months will be displayed
{
"status": "OK",
"payments": [
{
"downPayment": 0,
"paymentType": "Bayar dalam 30 hari",
"amount": 892500,
"installmentAmount": 928500,
"rate": 4,
"monthlyInstallment": 928500,
"discountedMonthlyInstallment": 0,
"tenure": 1,
"id": "30_days"
},
{
"downPayment": 0,
"paymentType": "Bayar dalam 3 bulan",
"amount": 892500,
"installmentAmount": 1000500,
"rate": 4,
"monthlyInstallment": 333500,
"discountedMonthlyInstallment": 0,
"tenure": 3,
"id": "3_months"
}
]
}
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"
}
]
}
C. Tenure options: 1, 3, & 6 months will be displayed
{
"status": "OK",
"payments": [
{
"downPayment": 0,
"paymentType": "Bayar dalam 30 hari",
"amount": 1155000,
"installmentAmount": 1201500,
"rate": 4,
"monthlyInstallment": 1201500,
"discountedMonthlyInstallment": 0,
"tenure": 1,
"id": "30_days"
},
{
"downPayment": 0,
"paymentType": "Bayar dalam 3 bulan",
"amount": 1155000,
"installmentAmount": 1294500,
"rate": 4,
"monthlyInstallment": 431500,
"discountedMonthlyInstallment": 0,
"tenure": 3,
"id": "3_months"
},
{
"downPayment": 0,
"paymentType": "Bayar dalam 6 bulan",
"amount": 1155000,
"installmentAmount": 1434000,
"rate": 4,
"monthlyInstallment": 239000,
"discountedMonthlyInstallment": 0,
"tenure": 6,
"id": "6_months"
}
]
}
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"
}
]
}
D. Tenure options: 1, 3, 6, & 12 months will be displayed
{
"status": "OK",
"payments": [
{
"downPayment": 0,
"paymentType": "Bayar dalam 30 hari",
"amount": 7875000,
"installmentAmount": 8190000,
"rate": 4,
"monthlyInstallment": 8190000,
"discountedMonthlyInstallment": 0,
"tenure": 1,
"id": "30_days"
},
{
"downPayment": 0,
"paymentType": "Bayar dalam 3 bulan",
"amount": 7875000,
"installmentAmount": 8820000,
"rate": 4,
"monthlyInstallment": 2940000,
"discountedMonthlyInstallment": 0,
"tenure": 3,
"id": "3_months"
},
{
"downPayment": 0,
"paymentType": "Bayar dalam 6 bulan",
"amount": 7875000,
"installmentAmount": 9765000,
"rate": 4,
"monthlyInstallment": 1627500,
"discountedMonthlyInstallment": 0,
"tenure": 6,
"id": "6_months"
},
{
"downPayment": 0,
"paymentType": "Bayar dalam 12 bulan",
"amount": 7878000,
"installmentAmount": 11658000,
"rate": 4,
"monthlyInstallment": 971500,
"discountedMonthlyInstallment": 0,
"tenure": 12,
"id": "12_months"
}
]
}
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"
}
{
"status": "OK",
"redirectUrl": "https://sandbox01.indodana.com/product-installment/payment?purchaseTransactionId=4a2db845-e026-11e9-985b-25dbf1f1ba1a&tenure=3&pid=wat&c=checkout&utm_source=wat&utm_campaign=wat",
"transactionId": "4a2db845-e026-11e9-985b-25dbf1f1ba1a"
}
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"
}
{
"status": "OK",
"fraudStatus": "ACCEPT",
"merchantOrderId": "UAT_MERC001",
"originalTransactionAmount": 4500000,
"cancellationAmount": 4500000,
"afterCancellationTransactionAmount": 0,
"transactionStatus": "CANCELLED",
"transactionTime": "2019-09-22T09:01:57+0000",
"paymentType": "3_months"
}
Last updated