PoS 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

Sandbox
Production
Sandbox

https://sandbox01-offline.indodana.com/api

Production

https://offline.indodana.id/api

You can find our IP list here.

post
PoS Checkout

https://base_url/public/v1/qr-checkout
Request
Response
Request
Body Parameters
server_key
required
string
Will be provided by Indodana for your integration.
amount
required
number
Non negative value of grand total of customer's transaction
source
required
string
Please send us static value of "QR" for now
order_id
required
string
Unique order id of your transaction. Never use the same order_id twice or the request will be rejected.
sub_merchant_id
required
string
Will be provided by Indodana for your integration.
push_uri
required
string
Valid url. This will be used by Indodana to perform callback once the payment is complete.
items
required
object
Array of JSON, consist of each customer's transaction details.
Response
200: OK
{
"status": "OK",
"qr_image": "https://indodana-qr-image.com/please/load/from/here",
"transaction_id": "a7d2b836-c429-11eb-887a-b330815b2e37"
}

Please follow this doc to learn about callback

// sample request
{
"server_key": "7F89lL7JIYKqX5UuPhg34lZWhoL54pFm",
"amount": 95000,
"source": "QR",
"order_id": "9YUy8Z5s",
"sub_merchant_id": "19cd5c6c-a24a-11e9-93c5-00163e013bb4",
"push_uri": "https://your.url/any/path/is/ok",
"items": [{
"id": "001",
"name": "Es Teh",
"price": 10000,
"type": "Drink",
"quantity": 2
}, {
"id": "002",
"name": "Nasi Goreng",
"price": 25000,
"type": "Food",
"quantity": 3
}]
}

Object Type References

items

Name

Type

Length

Remarks

id

string

64

Item catalog identifier

name

string

128

Item name

price

number

16,2

Item price per quantity

type

string

64

Item category type

quantity

number

5

Total purchase quantity for this item

422-Error Debugging

MethodArgumentNotValidException
GenericException
MethodArgumentNotValidException

check error.message in the response body, some required field might not be provided in the request body.

GenericException
  1. Check if the order_id is unique or not.

  2. The amount might not be supported for Indodana's Rate Policy such as the value is too small or too big.

  3. Contact Indodana's Developer

‚Äč