Skip to content

Payment Collection Business Codes

Order Status Code Description

ValueDescriptionPossible Reasons
ACCEPTSubmittedThe order has been created, but this status does not indicate success or failure.
PENDINGProcessingWaiting for payment channel response due to selected payment method on the checkout page, non-working hours, or T+1 completion reasons. This status does not indicate success or failure.
SUCCESSSuccessThe operation was successful.
FAILFailureThe operation failed.

API Details

INFO

Purpose: Used to retrieve the checkout page or payment page

Request URL: api/payin/desk

Request Method: POST

DANGER

Note:

  1. On the checkout interface, the amount is displayed using a period as the thousands separator, e.g., 10.000 ( indicating IDR 10,000), while in the backend, the amount uses a comma as the thousands separator, e.g., 10,000 ( indicating IDR 10,000).
  2. If only one payment method type is passed in payment_method_types, it will directly redirect to the payment page without opening the checkout page.
  3. When the user selects OVO as the payment method, we will notify the user via the OVO app using the user's phone number (ewallet_phone). The user will receive a push notification to complete the payment.

Request Parameters

ParameterRequiredTypeDescriptionExample
orderYesObject
- idYesStringOrder number123456789
- amountYesLongOrder amount10000
- callbackNoStringRedirect URL after paymenthttp://yourdomain.com/callback_success
- return_urlNoStringNotification callback URL after paymenthttp://yourdomain.com/return_url
- ewallet_phoneNoStringPayer's phone number082652222
- customer_nameNoStringPayer's nameJohn
- customer_emailNoStringPayer's emailtest@gmail.com
paymentNoObject
payment_method_typesYesArrayPayment methods. If not provided, all payment methods are default. Supported payment methods include BRI, MANDIRI, BSI, MAYBANK, BNI, PERMATA, CIMB, DANAMON, OCBC, HANA, DANA, OVO, SHOPEE PAY, LINKAJA, QRIS.["DANA", "BNI"]

Request Example

json
{
  "order": {
    "id": "9bddcb4114b24aceb49daa506b7b406d",
    "amount": 10000,
    "callback": "http://yourdomain.com/callback_success",
    "return_url": "http://yourdomain.com/return_url",
    "ewallet_phone": "0829322222",
    "customer_name": "John",
    "customer_email": "test@gmail.com"
  },
  "payment": {
    "payment_method_types": [
      "BNI",
      "DANA"
    ]
  }
}

Response Parameters

ParameterTypeDescriptionExample
paymentObject
- urlStringPayment linkhttp://payment.com/xxxxx
orderObject
- idStringMerchant order ID1234567890
- orderIdStringPlatform order ID123891203982
- amountLongOrder amount10000

Response Example

json
{
  "status": 1,
  "message": null,
  "data": {
    "payment": {
      "url": "https://test-merchant.hzpay.net/prex/api/payin/desk/1234568457"
    },
    "order": {
      "amount": 10000,
      "orderId": "12109248012123",
      "id": "123456789"
    }
  }
}

Get VA Number API

INFO

Purpose: Used to directly retrieve the VA number for VA payment

Request URL: api/payin/direct

Request Method: POST

Request Parameters

ParameterRequiredTypeDescriptionExample
orderYesObject
- idYesStringOrder number123456789
- amountYesLongOrder amount10000
- callbackNoStringRedirect URL after paymenthttp://yourdomain.com/callback_success
- return_urlNoStringNotification callback URL after paymenthttp://yourdomain.com/return_url
- ewallet_phoneNoStringPayer's phone number082652222
- customer_nameNoStringPayer's nameJohn
- customer_emailNoStringPayer's emailtest@gmail.com
paymentNoObject
payment_method_typeYesStringOnly one payment method is supported. Supported methods: BRI, MANDIRI, BSI, BNI, PERMATA, CIMB, DANAMON, OCBCBRI

Request Example

json
{
  "order": {
    "id": "9bddcb4114b24aceb49daa506b7b406d",
    "amount": 10000,
    "callback": "http://yourdomain.com/callback_success",
    "return_url": "http://yourdomain.com/return_url",
    "ewallet_phone": "0829322222",
    "customer_name": "John",
    "customer_email": "test@gmail.com"
  },
  "payment": {
    "payment_method_type": "BRI"
  }
}

Response Parameters

ParameterTypeDescriptionExample
paymentObject
- payment_method_typeStringPayment methodBRI
- va_numStringVA number123891203982
orderObject
- idStringMerchant order ID1234567890
- orderIdStringPlatform order ID123891203982
- amountLongOrder amount10000

Response Example

json
{
  "status": 1,
  "message": null,
  "data": {
    "payment": {
      "payment_method_type": "BRI",
      "va_num": "12309129082"
    },
    "order": {
      "amount": 10000,
      "orderId": "12109248012123",
      "id": "123456789"
    }
  }
}

Get QRIS Code API

INFO

Purpose: Used to directly retrieve the QRIS payment string code

Request URL: api/payin/qris

Request Method: POST

Request Parameters

ParameterRequiredTypeDescriptionExample
orderYesObject
- idYesStringOrder number123456789
- amountYesLongOrder amount10000
- callbackNoStringRedirect URL after paymenthttp://yourdomain.com/callback_success
- return_urlNoStringNotification callback URL after paymenthttp://yourdomain.com/return_url
- ewallet_phoneNoStringPayer's phone number082652222
- customer_nameNoStringPayer's nameJohn
- customer_emailNoStringPayer's emailtest@gmail.com

Request Example

json
{
  "order": {
    "id": "123456789",
    "amount": 10000,
    "callback": "http://yourdomain.com/callback_success",
    "return_url": "http://yourdomain.com/return_url",
    "ewallet_phone": "0829322222",
    "customer_name": "John",
    "customer_email": "test@gmail.com"
  }
}

Response Parameters

ParameterTypeDescriptionExample
paymentObject
- payment_method_typeStringPayment methodQRIS
- qris_textStringQRIS code0002012165498794017ID.CO.DANAMON.0654984816521
orderObject
- idStringMerchant order ID1234567890
- orderIdStringPlatform order ID123891203982
- amountLongOrder amount10000

Response Example

json
{
  "status": 1,
  "message": null,
  "data": {
    "payment": {
      "payment_method_type": "QRIS",
      "qris_text": "0002012165498794017ID.CO.DANAMON.0654984816521"
    },
    "order": {
      "amount": 10000,
      "orderId": "12109248012123",
      "id": "123456789"
    }
  }
}

Payment Notification API

INFO

Purpose: Used to receive payment notifications upon payment completion

Request URL: The return_url passed in the request or the payment callback URL set in the backend (priority: request URL > backend configuration)

Request Method: POST

DANGER

Note:

  1. After receiving the asynchronous notification, you must respond with the string "SUCCESS" (without quotes). It is not a JSON format. After successful notification, no further notifications will be sent, with a maximum of 5 attempts.
  2. When receiving the notification, check the order status (SUCCESS/FAIL) to determine if the order was successful or failed.

Platform Notification Parameters

ParameterTypeDescriptionExample
statusintOrder status1
orderObject
- idStringMerchant order ID1234567890
- statusStringOrder status: ACCEPT (Submitted)
SUCCESS (Success)
PENDING (Processing)
FAIL (Failure)
SUCCESS
- orderIdStringPlatform order ID128372437618
- amountLongAmount10000
- feeLongFee500
- payMethodStringPayment methodBRI

Notification Data Example

json
{
  "status": 1,
  "data": {
    "order": {
      "id": "9bddcb4114b24aceb49daa506b7b406d",
      "status": "SUCCESS",
      "orderId": "128372437618",
      "amount": 10000,
      "fee": 500,
      "payMethod": "BRI"
    }
  }
}

Order Status Query API

INFO

Purpose: Used to query the status of an order

Request URL: api/payin/status

Request Method: POST

Request Parameters

ParameterRequiredTypeDescriptionExample
orderYesObject
- idYesStringMerchant order ID1234567890

Request Example

json
{
  "order": {
    "id": "1234567890"
  }
}

Response Parameters

ParameterTypeDescriptionExample
statusintOrder status1
orderObject
- idStringMerchant order ID1234567890
- statusStringOrder status: ACCEPT (Submitted)
SUCCESS (Success)
PENDING (Processing)
FAIL (Failure)
SUCCESS
- orderIdStringPlatform order ID123891203982
- amountLongOrder amount10000
- feeLongFee500
payMethodStringPayment methodBRI

Response Example

json
{
  "status": 1,
  "data": {
    "order": {
      "id": "1234567890",
      "status": "SUCCESS",
      "orderId": "128372437618",
      "amount": 10000,
      "fee": 500,
      "payMethod": "BRI"
    }
  }
}

Balance Inquiry API

Same as the Disbursement API documentation, click here to view Balance Inquiry