Online Transaction API
HTTP Response Code
All the APIs here are based on the HTTP request. The following are the response codes of an HTTP request that the Indodana Paylater API may response.
HTTP Response Code
Remarks
200
Everything work as expected
400
Bad request
401
Unauthorized
422
Validation Error
404
Not found
409
Conflict
429
Too many requests
50X
Server errors
API Method References
In this section, {base_url}
will correspond to https://sandbox01-api.indodanafinance.co.id/chermes/merchant
for sandbox
environment. Subsequently, the {base_url}
will correspond to https://api.indodanafinance.co.id/chermes/merchant
for production
environment.
You can find our IP list here.
Get Payment Calculation
POST
https://{base_url}/v2/payment_calculation
This endpoint is used when you want to display the list of eligible payment types on your page to calculate and display the installment breakdown on your checkout page. It is recommended to show this calculation in your website to provide a better experience to the Customer.
*
means the parameter is required
Headers
Authorization*
string
The generated Authentication signature with format Bearer {api_key}:{nonce}:{signature}
Request Body
amount*
string
Total amount of the transaction. Should be equal to the sum of all the <Item>s' costs below.
items*
array
Array of <Item>. Details of the shopping items in the transaction.
Purchase Transaction Checkout
POST
https://{base_url}/v2/checkout_url
This endpoint is used once the customer has confirmed their installment option and you want to initiate checkout through Paylater by Indodana as the payment method.
*
means the parameter is required
Headers
Authorization*
string
The generated Authentication signature with format Bearer {api_key}:{nonce}:{signature}
Request Body
transactionDetails*
object
<Transaction> - Detail of the transaction.
customerDetails*
object
<Customer> - Detail of the customer.
sellers*
object
Array of <Seller> - Detail of the sellers involved in the transaction. May contain more than 1 seller.
billingAddress*
object
<Address> - Billing address of the customer for the transaction.
shippingAddress*
string
(Required only for goods, for service / digital product is not required) <Address> - Shipping address of the customer for the transaction.
paymentType
string
Installment options / payment terms chosen by the customer. Possible values: 30_days
, 3_months
, 6_months
, 12_months
, 15_months
, 18_months
approvedNotificationUrl*
string
The URL that will be called by Indodana when the transaction is approved and successful.
cancellationRedirectUrl
string
backToStoreUrl
string
expirationAt
string
metadata
object
Key-value pair contains additional information about the transaction.
Check Transaction Status
GET
https://{base_url}/v1/transactions/check_status
You can use this endpoint to check the transaction status on Indodana.
*
means the parameter is required
Query Parameters
merchantOrderId*
string
The transaction order ID that is sent by merchant on the checkout
Headers
Authorization*
string
The generated Authentication signature with format Bearer {api_key}:{nonce}:{signature}
QRIS Check Transaction Status
GET
https://{base_url}/v1/transactions/qris/check_status
You can use this endpoint to check the transaction status on Indodana.
*
means the parameter is required
Query Parameters
merchantOrderId*
string
The transaction order ID that is sent by merchant on the checkout
Headers
Authorization*
string
The generated Authentication signature with format Bearer {api_key}:{nonce}:{signature}
QRIS Transaction Metadata Callback
POST
https://{base_url}/v1/transactions/qris/metadata
Headers
Authorization*
string
The generated authentication signature with format
Bearer {api_key}:{nonce}:{signature}
Request Body
merchantOrderId*
string
The same merchant order id given by Merchant Partner when generating Quickpay URL.
paidAt*
string
Timestamp of the successful transaction on Merchant Partner side. ISO-8601 date format.
customerPan*
string
QRIS customer PAN.
acquirer*
string
Name of QRIS acquirer.
referenceNumber*
string
QRIS transaction reference number from switcher.
Transaction Cancellation / Refund
POST
https://{base_url}/v3/order_cancellation
*
means the parameter is required
Headers
Authorization*
string
The generated Authentication signature with format Bearer {api_key}:{nonce}:{signature}
Request Body
merchantOrderId*
string
Merchant Order Id from Purchase Transactions
refundId*
string
Refund Id for each unique Refund Request
cancellationAmount*
number
If cancellation amount > transaction amount, OR cancellation amount <= 0, will return ERROR
cancelationReason*
string
Reason why cancellation happens
cancelledBy*
string
Who requested the cancellation
cancellationDate*
string
Timestamp of cancellation. Please follow ISO 8601 (ex: 2020-05-15) for timestamp format.
Object Type References
Payment
Name
Type
Length
Remarks
id
string
64
Payment type / installment option identifier. Possible values : 30_days
, 3_months
, 6_months
, 12_months
tenure
integer
4
Installment option tenure
rate
decimal
16, 2
Interest rate
transitionTermRate
decimal
16, 2
Special case interest rate
amount
decimal
16, 2
Total amount for the transaction
monthlyInstallment
decimal
16, 2
Amount of monthly installment need to be paid
discountedMonthlyInstallment
decimal
16, 2
Amount of monthly installment after taking into account the discounts
installmentAmount
decimal
16, 2
Total installment amount
downPayment
decimal
16, 2
Total down payment amount
Transaction
Name
Type
Length
Remarks
merchantOrderId
string
32
Required. The ID of the transaction that should be generated by merchant.
Allowed characters: a-z, A-Z, 0-9, =, ., -, _, +, @, :, &, ^, %, !, $
amount
decimal
16, 2
Required. Total amount of transaction
items
Array<Item>
Required. Detail of items in the transaction
Item
Name
Type
Length
Remarks
id
string
64
Required. Can be product SKU. For item fee such as: shipping fee, admin fee etc you have to use one of these: shippingfee
, adminfee
, taxfee
, discount
, additionalfee
, insurancefee
.
name
string
128
Required. Product name
price
decimal
16, 2
Required. Price for the product
url
string
256
URL of the product in the merchant site / platform
imageUrl
string
256
URL of the image of the product in the merchant site / platform
category
enum
256
Required. Category of the product, one of these:
airlines
arts-crafts-and-collectibles
automotive
baby
beauty-and-fragrances
biller
books-and-magazines
business-to-business-including-mlm
charity-and-non-profit
clothing
community
digital-content
electronics-and-telecom
entertainment-and-media
financial-services-and-products
financial-services-and-technology
food-and-beverage
food-retail-and-service
games-voucher
gifts-and-flowers
government
health-and-personal-care
home-and-garden
hotel-and-travel
insurance
marketplace
nonprofit
offline-store
others
over-the-air
overseas
overseas
pets-and-animals
property
public-services
religion-and-spirituality
retail
services
sports-and-outdoors
telco
ticketing
toys-and-hobbies
transportation
travel
vehicle-sales
vehicles-service-and-accessories
quantity
integer
8
Required. Quantity of the product / item bought
parentType
string
16
Required. Possible values: SELLER
parentId
string
32
Required. It will correspond to the SELLER ID
if the parentType
is SELLER
Customer
Name
Type
Length
Remarks
firstName
string
16
Required. First name of the customer
lastName
string
16
Last name of the customer
string
64
Required. Email of the customer that is registered in the merchant site / platform
phone
string
16
Required. Phone number of the customer that is registered in the merchant site / platform
Seller
Name
Type
Length
Remarks
id
string
16
Required. Seller's ID
name
string
16
Required. Seller's name
url
string
256
Required. Seller's shop URL
sellerIdNumber
string
32
Seller's identifier number (KTP / SIM / etc)
string
64
Required. Seller's email
address
Address
Seller's shop address
officialSeller
boolean
Whether Seller is if official or not. Non Mandatory
Address
Name
Type
Length
Remarks
firstName
string
16
Required. First name of customer
lastName
string
16
Last name of customer
address
string
256
Required. Address for billing or shipping activity
city
string
32
Required. City description for the address
postalCode
string
8
Required. Postal code for the address
phone
string
16
Required. Phone number for billing or shipping activity
countryCode
string
16
Metadata
Name
Type
Length
Remarks
ipAddress
String
45
Ipv4 of user
userAgent
String
256
Browser user agent of user
deviceId
String
256
User device id
imsi
String
15
User international mobile subscriber identity
location
Location
256
Required for QRIS transaction from Merchant Partners. Information about the location of the transaction in Latitude and Longitude.
qrisContent
String
512
Required for QRIS transaction from Merchant Partners. QRIS specific. String of QRIS content
scanQrisLocation
Location
256
Required for QRIS transaction from Merchant Partners. QRIS specific. Information about the location of scan QRIS location in Latitude and Longitude.
transactionPurpose
String
128
The purpose of transactions. Value must be: BUSINESS_DEVELOPMENT / PRODUCTIVE / CONSUMPTIVE / OTHERS
tipAmount
Decimal
16, 2
QRIS specific. Fill if QRIS have tip.
Location
lat
decimal
3, 10
Latitude
lng
decimal
3, 10
Longitude
Sample API Request & Response
Get Installment Options
Purchase Transaction Checkout
Handling Transaction Confirmation Notification
Note that for this section, the API Request would be the payload that the merchant receives in their endpoint, and the API Response would be the payload that the merchant expected to send to Indodana as acknowledgement.
Check Transaction Status
Purchase Transaction Cancellation / Refund
Last updated