Skip to main content

Web Services Detail

Product

Product will be used to get the list of products that you are eligible for (currently active). There are 2 cases for the Product List API with details a`s follow:

Get all active product

This API will return all the products that are active and eligible for the partner.

Here's a Markdown table for the given data:

FieldValue
Endpoint/v2/product-list/
HTTP MethodGET
Response
{
"data": [
{
"type": "product",
"id": "t25k",
"attributes": {
"is_inquiry": false,
"price": 369,
"product_name": "telkomsel 25k",
"status": 1
}
}
]
}

Product List Response Description

PropertyData FormatDescription
typeString-
idStringProduct code for the product
attributesObjectObject wrapper for response data
is_inquiryBooleanMark if the product needs to do inquiry or not
product_nameStringThe name of the product
priceintThe price that Tokopedia sells to the client. The value will be based on the business arrangement
statusintStatus of the product:
1 = Active
2 = Inactive (if the product is toggled off intentionally due to a specific use case, e.g., no longer available from the operator)
3 = Temporarily Inactive (if the product is temporarily unavailable due to issues from the operator or supplier)

Inquiry

Inquiry will be used only for checking user bills for specific products such as PDAM, PLN, etc. Products that need to use the Inquiry API are defined in the response of Product List API on the is_inquiry field.

FieldValue
Endpoint/v2/inquiry
HTTP MethodPOST
Request Payload
{
"data": {
"type": "inquiry",
"attributes": {
"product_code": "pln-postpaid",
"client_number": "2121212",
"fields": [
{
"name": "optional",
"value": "optional"
}
]
}
}
}
Response Payload
{
"data": {
"type": "inquiry",
"id": "2121212",
"attributes": {
"admin_fee": 2500,
"base_price": 10000,
"client_name": "User Default",
"client_number": "2121212",
"fields": null,
"inquiry_result": [
{
"name": "ID Pelanggan",
"value": "2121212"
},
{
"name": "Nama",
"value": "User Default"
},
{
"name": "Total Bayar",
"value": "Rp 12.500"
},
{
"name": "IDPEL",
"value": "2121212"
},
{
"name": "NAMA",
"value": "User Default"
},
{
"name": "TOTAL TAGIHAN",
"value": "1 BULAN"
},
{
"name": "BL/TH",
"value": "MAR20"
},
{
"name": "RP TAG PLN",
"value": "Rp 10.000"
},
{
"name": "ADMIN BANK",
"value": "Rp 2.500"
},
{
"name": "TOTAL BAYAR",
"value": "Rp 12.500"
}
],
"meter_id": "2121212",
"product_code": "pln-postpaid",
"sales_price": 12500
}
}
}
ParameterData FormatDescriptionRequired
product_codeString-Mandatory
client_numberString-Mandatory
fieldsArrayFields that contain extra parameters for specific products that need bills amount checking before transactionOptional

Checkout

Checkout will be used for creating new orders, every partner’s checkout request needs to generate request_id as identifier and. A signature header is required

The request_id is an identifier that uniquely identifies the transaction and will be used globally as an identifier for that specific transaction.

*Please note that SATRIAN does not responsible for duplicate transactions request generated by client.
FieldValue
Endpoint/v2/order
HTTP MethodPOST
Request Payload
{
"data": {
"type": "order",
"id": "12345"
"attributes": {
"product_code": "pln-postpaid",
"client_number": "2121212",
"amount": 12500,
"fields": [
{
"name": "optional",
"value": "optional"
}
]
}
}
}
Response Payload
{
"data": {
"type": "order",
"id": "12345",
"attributes": {
"client_number": "2121212",
"error_code" : "",
"error_detail" : ""
"fields": [
{
"name": "optional",
"value": "optional"
}
],
"fulfilled_at": null,
"partner_fee": 500,
"product_code": "pln-postpaid",
"sales_price": 12500,
"status": "Pending",

}
}
}
ParameterData FormatDescriptionRequired
typeStringAPI type. Fill with "order" in order APIMandatory
idStringUnique for order request, generated by the client. Max 50 characters (alphanumeric)Mandatory
product_codeStringCode that determines the productMandatory
client_numberStringNumber inputted by the end-userMandatory
amountNumberOrder amount.Non-inquiry: optional
Inquiry: Mandatory
fieldsArrayFields contain extra parameters for specific products.Optional

Order Details

Order Details purpose is to get the current status for a specific order using request_id as an identifier.

Note: we are generating signature at the order detail response header. You can utilize this if you want to

Case 1: Order with Success status (Generate Payment Receipt)

FieldValue
Endpoint/v2/order/<<request_id>>
HTTP MethodGET
Response
{
"data": {
"type": "order",
"id": "1211492",
"attributes": {
"admin_fee": 500,
"client_name": "USER",
"client_number": "2121212",
"error_code": "",
"error_detail": "",
"fields": [
{
"name": "nama",
"value": "nilai"
}
],
"fulfilled_at": "2020-06-03T09:01:36Z",
"fulfillment_result": [
{
"name": "No. Meter/Idpel",
"value": "2121212"
},
{
"name": "Nama",
"value": "USER"
},
{
"name": "Tarif/Daya",
"value": "R1/000001300VA"
},
{
"name": "BL/TH",
"value": "JAN20"
},
{
"name": "Stand Meter",
"value": "01011100-00022222"
},
{
"name": "Rp Tag Tagihan",
"value": "Rp. 10.000"
},
{
"name": "No Ref",
"value": "01012011"
},
{
"name": "Total Tagihan",
"value": "Rp 10.000"
},
{
"name": "Biaya Admin",
"value": "Rp 2.500"
},
{
"name": "Total Bayar",
"value": "Rp 12.500"
}
],
"partner_fee": 100,
"product_code": "pln-postpaid",
"sales_price": 12500,
"serial_number": "01012011",
"status": "Success",
"voucher_code": ""
}
}
}

To generate payment receipt, partner needs to use data from the fulfillment result array. Each product has a different format payment receipt. Please refer to Bukti Bayar Template document that will be provided separate by SATRIAN Team.

Case 2: Order with Pending status

FieldValue
Endpoint/v2/order/<<request_id>>
HTTP MethodGET
Response
{
"data": {
"type": "order",
"id": "1211492",
"attributes": {
"client_number": "2121212",
"error_code": "",
"error_detail": "",
"fulfilled_at": null,
"fulfillment_result": [],
"partner_fee": 0,
"product_code": "pln-postpaid",
"sales_price": 12500,
"status": "Pending"
}
}
}

Case 3: Order with Failed status

FieldValue
Endpoint/v2/order/<<request_id>>
HTTP MethodGET
Response
{
"data": {
"type": "order",
"id": "1211492",
"attributes": {
"client_number": "2121212",
"error_code": "U00",
"error_detail": "User Fault",
"fulfilled_at": null,
"fulfillment_result": [],
"partner_fee": 0,
"product_code": "pln-postpaid",
"sales_price": 12500,
"status": "Failed"
}
}
}

Error_code and error_detail will only be filled for Failed transaction. Error code and error detail will inform the failed reason of a transaction. The description of error_code and error_detail is described in section 4.8 .

Response Description

PropertyData FormatDescription
typeString
idStringIdentifier for order request, generated by user
attributesObjectObject Wrapper for response data
client_numberStringNumber inputted by end user
fieldsArrayFields will contains extra parameter for specific product who need bills amount checking before transaction
fulfilled_atDatetimeTime when order changed to final status with format RFC3339. Value will be filled if the status is success.
partner_feeNumberAmount of fee that will be received by partner
product_codeStringProduct Identifier
sales_priceNumberBill amount that user needs to pay. Sales_price includes admin fee.
statusStringCurrent state of order request, please refer to Order Status Reference
error_codeStringCode that represents the error state
error_messageStringError description
fulfillment_resultArrayBill success information that can be used to generate the user receipt (proof of successful transaction)
admin_feeNumberAmount that charge to user as transaction fee
client_nameStringCustomer name in bill payment product
client_numberStringCustomer number in bill payment product
meter_idStringId meter in PLN Postpaid product

Order List

Order list will contains order history data

FieldValue
Endpoint/v2/order?page=xx&limit=yy
HTTP MethodGET
Response
{
"data": [
{
"type": "order",
"id": "6969",
"attributes": {
"client_number": "08780000000",
"error_code" : "",
"error_detail" : ""
"fulfilled_at": null,
"partner_fee": 0,
"product_code": "FFID5",
"sales_price": 5000,
"status": "Pending"

}
}
],
"meta": {
"current_page": 1,
"limit": 1,
"total_pages": 136
}
}

Order List Response Description

PropertyData FormatDescription
typeString
idStringIdentifier for order request, generated by user
attributesObjectObject Wrapper for response data
client_numberStringNumber inputted by end user
error_codeStringCode that represents the error state
error_messageStringError description
fieldsArrayFields contain extra parameters for specific products. Fields are part of client_number parameters for some products that need more than 1 client number parameter to pay the bill.
fulfilled_atDatetimeTime when order changed to final status with format RFC3339. Value will be filled if the status is success.
partner_feeNumberAmount of fee that will be received by partner
product_codeStringProduct Identifier
sales_priceNumberBill amount that user needs to pay. Sales_price includes admin fee.
statusStringCurrent state of order request, please refer to Order Status Reference

Account Balance

Account will be used for get current saldo can be used for transaction

FieldValue
Endpoint/v2/account
HTTP MethodGET
Response
{
"data": {
"type": "account",
"id": "5510064",
"attributes": {
"saldo": 1000012999
}
}
}

Account Balance Response Description

PropertyData FormatDescription
typeString
attributesObjectObject Wrapper for response data
saldoNumberCurrent Balance can be used for transaction

Order Status

All order status is defined by system, The below ones are used in this API.

Order StatusDescription
PendingOrder accepted and waiting to progress
SuccessOrder has been completed
FailedOrder has been failed

Error Response

If there is something wrong within the process, we generalize error response with this format

FieldValue
Http Code500 or 400
Response
{
"errors": [
{
"code": "U00",
"status": "400",
"detail": "Please top up your account balance first"
}
]
}

Response Description

PropertyData FormatDescription
codeStringError Message code Identifier
statusStringHttp Status
detailStringError message details

Error Code List

Error code will be shown on the order detail API response for failed transaction status.

Http CodeError CodeDescriptionError Case Possibilities
500S00Internal Server ErrorInternal Tokopedia system error
500S01Inquiry Pending. Please try again laterInquiry is still on process due to delay from the biller
500S02Product is not availableProduct is deactivated intentionally in Internal Tokopedia system
500S03Custom error message from AggregatorUnmapped error from the biller / supplier
500S04Product is temporarily unavailableProduct is temporarily on issue from the supplier as Tokopedia detected high failure rate for the product
500S05Biller error. Please try again laterBiller is on issue
500S06Auto failed by system due to biller or operator is not respondingMore than 1 x 24 hour pending, will do auto failed by Tokopedia system
500S07Internal Server Error. Please re-tap the cardEMoney Update balance error due to Tokopedia or biller error
500S08General Card ErrorEMoney Update balance general error (usually due to error that is unidentified)
500S09Out of stock. Please try again later. We will try to find you another source
500S10Biller timeout. Please try again later.
400P01Invalid Request PayloadYour request payload structure to Tokopedia is invalid
400P02Transaction is not foundWhen hitting order detail, the request_id is not found
400P03Duplicate Request ID, please check your systemYou have requested a same request_id previously
400P04Product not found, please check your product codeThe product code requested to Tokopedia system is wrong / does not exist
400P05Product price mismatch, please follow agreed priceThe amount from Inquiry and checkout is different
400P06Insufficient balance, please top-up first or contact SATRIAN Business representativeFor deposit type clients. If Client is using settlement, this error code will not be shown unless it is Tokopedia’s fault
400P07Request ID cannot be null/empty and not allowed a white spaces or symbolsInvalid request_id , may contain invalid character like whitespace, symbol, or null
400P08Invalid or Expired TokenYour token has expired. You need to re-request/refresh the token
400P09Interval limit reachedThis is applied to some products. Which has limitations of the order rule. E.g: You cannot buy Pulsa 10k-simpati with the same number and same product within 5 minutes
400P10Invalid signatureYour digital signature at the request header is invalid
400P11Product is not inquiryYou do inquiry process for non-inquiry product
400P12Invalid Downline ID
400P13Invalid status. Allowed status are 1 or 0For BPJS KS, if the status thrown is not 1 or 0
400P14Some fields are missing. Please check your requestThe required fields are incomplete
400P15Invalid fields value. Please check your requestFor BPJS KS, if the fields value is invalid
400P16Invalid subscription day. Allowed value is between 1 - 28For BPJS KS, if the subscription_day is not between 1 - 28
400P19Promo no longer availableFor Promo feature, if the promo has been ended or not yet started due to Quota / Period rule
400P21Invalid card data Card Info Too Short. Please check your requestEMoney update balance - card data sent to Tokopedia is invalid. Check your system
400P22Invalid inquiry id. Please check your systemEMoney update balance - inquiry id sent to Tokopedia is invalid. Check your system
400P23Invalid card data: Invalid Hex. Please check your requestEMoney update balance - invalid hex sent to Tokopedia. Check your system
400P24Invalid card data: Required Field Empty. Please check your requestEMoney update balance - missing field sent to Tokopedia found. Check your system
400P25Invalid card data: Invalid Payload. Please check your requestEMoney update balance - payload sent to Tokopedia is invalid. Check your system
400P26Void not allowedEMoney Void request - the selected product is not allowed to do void request
400P27Your request has reached limit, please try again later
400P28User is ineligible to buy the productClient number checkout with ineligible MCCM Products
400U00User FaultGeneral user error. E.g: Postpaid number but try to do prepaid top up, etc
400U01Bill already paidUser try to paid for a bill that already been paid before
400U02No BillBill number not found
400U03Nomor yang Anda masukkan tidak validInvalid Phone Number, Phone Number expired, Phone number blocked by operator, etc.
400U04Unregistered userBPJS KS if the user hasn’t been registered yet for Autodebit
400U05Deactivated user. Please update the customer dataDeactivated user for BPJS KS autodebit
400U06User Fault. The user has already been registeredBPJS KS response if the user has already been registered for autodebit
400U07User Fault. Unsupported Card Issuer. Please check your cardEMoney update balance - the card used to update balance is not support / invalid
400U08User Fault. NFC does not supported. Please update on the ATMEMoney update balance - the NFC does not supported. Advise user to update balance on the ATM
400U09Failed by Void request from UserEMoney Void request successfully voided. Hence the product status changed from success to failed
400U10Customer number is blocked by the biller / operator. Please advise customer to reach the operatorCustomer number is blocked by the operator
400U11MSISDN ExpiredCustomer number is expired
400U12User has reached the maximum limit of transactions. Please try again laterCustomer number reached maximum limit of transactions. E.g: KwH over Limit for PLN Prepaid, Data Package exceeding maximum policy, etc.
400U13Exceed maximum void duration policyEMoney Void request has reached the maximum void max time policy
400U14User Fault. Invalid period of paymentInvalid period for PBB payment.
400U15User Fault. Invalid amount of paymentInvalid amount of CC payment.
400U16Invalid Card NumberEMoney card number is invalid
400U17Gen1 card is not eligible for online top upEMoney (specifically for BCA Flazz) gen1 card

Based on the prefix on error codes, we can classify 3 kinds of error:
  • Prefix S (SXX) is an error for server fault or biller fault in SATRIAN.
  • Prefix P (PXX) is an error for partner fault. For this error, the partner needs to check the request sent to SATRIAN. There might be something wrong with the request.
  • Prefix U (UXX) is an error for the end user (customer) fault.

Note:

Error code in this document is still subject to change. If there’s additional error code or change in the code, SATRIAN representative will inform the part.

Error Code Action Map

Error CodeInquiryCheckoutOrder Detail / Callback
S00RetryPendingRetry
S01RetryNot ApplicableNot Applicable
S02FailedFailedFailed
S03FailedNot ApplicableFailed
S04FailedFailedFailed
S05FailedNot ApplicableFailed
S06Not ApplicableNot ApplicableFailed
S07RetryNot ApplicableNot Applicable
S08RetryNot ApplicableNot Applicable
S09Not ApplicableNot ApplicableFailed
P01FailedFailedNot Applicable
P02Not ApplicableNot ApplicableFailed
P03Not ApplicableFailedNot Applicable
P04FailedFailedNot Applicable
P05Not ApplicableFailedFailed
P06Not ApplicableRetryFailed
P07Not ApplicableFailedNot Applicable
P08RetryRetryRetry
P09Not ApplicableRetryFailed
P10Not ApplicableFailedNot Applicable
P11FailedNot ApplicableNot Applicable
P12Not ApplicableFailedNot Applicable
P13Not ApplicableNot ApplicableNot Applicable
P14Not ApplicableNot ApplicableNot Applicable
P15Not ApplicableNot ApplicableNot Applicable
P16Not ApplicableNot ApplicableNot Applicable
P19Not ApplicableFailedFailed
P21Not ApplicableNot ApplicableNot Applicable
P22Not ApplicableNot ApplicableNot Applicable
P23Not ApplicableNot ApplicableNot Applicable
P24Not ApplicableNot ApplicableNot Applicable
P25Not ApplicableNot ApplicableNot Applicable
P26Not ApplicableNot ApplicableNot Applicable
P27RetryNot ApplicableRetry
P28Not ApplicableRetry with eligible promo productNot Applicable
U00FailedFailedFailed
U01FailedFailedFailed
U02FailedFailedFailed
U03FailedFailedFailed
U04Not ApplicableNot ApplicableNot Applicable
U05Not ApplicableNot ApplicableNot Applicable
U06Not ApplicableNot ApplicableNot Applicable
U07Not ApplicableNot ApplicableNot Applicable
U08Not ApplicableNot ApplicableNot Applicable
U09Not ApplicableNot ApplicableFailed
U10FailedFailedFailed
U11FailedFailedFailed
U12FailedFailedFailed
U13Not ApplicableNot ApplicableNot Applicable
Unmap Error CodeFailedPendingPending

Callback for Partner

For partners that need the callback mechanism from SATRIAN, follow these callback requirements below:

  1. Your service should be using SSL (HTTPS)
  2. Your service should whitelist our IP (52.74.35.225/32) to hit your service
  3. Your service should allow method POST
  4. Your service should allow Content-type application/vnd.api+json

We are generating a signature when doing a callback request to your API at the request header for security purposes. Client must validate the signature before processing the callback. See point 2.4.4 for example to verify the signature from SATRIAN Callback.

Order Callback

This callback is to notify the order status after the order has been processed, you can setup the URL through your Developer Console (order_notification).

Please be noted:

  1. Callback might arrive more than one time for the same order
  2. Implementing the check order status is mandatory even though the order callback mechanism has been implemented.

Please ensure your system handles the idempotency case of Tokopedia’s callback. As there is a possibility of Tokopedia giving multiple callbacks for 1 same order.

Callback default request body example:

{"data":{"type":"order","id":"1231231","attributes":{"admin_fee":0,"client_name":"User","client_number":"102111106111","error_code":"","error_detail":"","fields":null,"fulfilled_at":"2020-12-09T10:48:45Z","fulfillment_result":[],"partner_fee":0,"product_code":"pln-prepaid-token-100k","sales_price":102500,"serial_number":"5196 1584 0828 2085 4701","status":"Success","voucher_code":"5196 1584 0828 2085 4701"}}}

Product callback description

PropertyDescription
idProduct code
is_inquiryMark if the product needs to do inquiry or not
price_fromPrevious (original) product price
price_toUpdated (real-time) product price
product_nameProduct name
status_fromPrevious (original) product status
Status: 1 = Active; 2 = Inactive; 3 = Temporarily Inactive
status_toUpdated (real-time) product status
Status: 1 = Active; 2 = Inactive; 3 = Temporarily Inactive
updated_atTime when the update occurred
reference_idEach request will contain our reference id and will also be unique

Other Endpoints

MCCM

Flow:

MCCM Flow

The flow of Request Token(1-2), Checkout - Order Detail (5 - 8) will be the same as other regular products: Request Token, Checkout, Order Detail, Callback.

Example of MCCM features in Tokopedia Main Apps:

MCCM Example

Get MCCM Products

Get MCCM Products is the endpoint to get special product offers for specific users based on client number

FieldValue
Endpoint/v2/promotion-product?client_number=087810114111
Http MethodGET
Response Payload
{
"data": [
{
"type": "product",
"id": "mccm-xtra-combo-35gb+70gb-203200",
"attributes": {
"client_number": "087810114111",
"is_inquiry": false,
"price": 203200,
"product_name": "XTRA Combo Double Youtube 35GB + 70GB, 30hr Rp 203.200"
}
},
{
"type": "product",
"id": "mccm-xtra-combo-5gb+10gb-1733200",
"attributes": {
"client_number": "087810114111",
"is_inquiry": false,
"price": 173200,
"product_name": "XTRA Combo Double Youtube 5GB + 10GB, 30hr Rp 173.200"
}
}
]
}

Response Field Description

PropertyData FormatDescription
dataArray of ObjectWill return the list of MCCM products offered
typeStringAPI Type. Will always return "product"
idStringProduct Code that will be used to do checkout
attributesObjectObject Wrapper for response data
client_numberStringClient number of the customer. E.g: For Telco, use phone number
is_inquiryBooleanFlag the product needs to do re-inquiry or not. If false, hit checkout endpoint directly. If true, hit inquiry endpoint first before checkout. All MCCM products don't need re-inquiry, hence always false
priceIntegerSales Price of the product to Customer. Note: The value interpretation could be different according to the business arrangement
product_nameStringName of the product offered to the customer

Credit Card

Credit card is using PCIDSS environment, client need to comply with PCIDSS standard. Credit card products have an obligation to do these 2 methods(endpoint) before making an inquiry and checkout which is on PCIDSS environment. The first method is to GET one time URL. the method purpose is to to get OTU. OTU will be used to get token. after getting the OTU, we do the POST method with the client data request number cc. The response is token and expired date. the token which will then be used for inquiry and checkout, instead of client_number. Before integration start, please make sure you have filled in SAQ-A-EP (feel free to contact SAT team for more detail).

Flow: CC Flow

Additional PCI DSS Service

EnvironmentBase URLDescription
Playgroundhttps://b2b-playground.tokopedia.com/apiTesting / Development Env
Productionhttps://pay.tokopedia.id/digital-b2b/apiReal / Production Env

One Time URL

To get token for inquiry and checkout, it is required to get one time URL(OTU). The one time URL(OTU) from response will needed to get a token. The endpoint will be secured using OAuth.

FieldValue
Endpoint{{base_url_pcidss}}/v2/credit-card/otu
HTTP MethodGET
Response Payload
{
"data": {
"type": "",
"attributes": {
"url": "https://{{base_url_pcidss}}/v2/credit-card/token?auth_type=onetime&token=8968206f-4940-4e21-970b-920d36848831"
}
}
}
Response Field Description
PropertyData FormatDescription
typeStringAPI Type. Will always return “otu”
attributesObjectObject Wrapper for response data
urlStringOne time url to get token

Get Token

Before doing any inquiry and order a credit card bill, it is required to create a token from a plain credit card number. To get a token, we need to use the url that we get after hit “credit-card/otu” endpoint.

FieldValue
Endpoint{{base_url_pcidss}}/v2/credit-card/token?token?auth_type=onetime&token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
HTTP MethodPOST
Request Payload
{
"data": {
"type": "token",
"attributes": {
"client_number": "4111111111111111"
}
}
}
Response Payload
{
"data": {
"type": "",
"attributes": {
"expired_in": 3600,
"token": "a31a7fe8-25ea-4e90-b1ff-556b446f18b5"
}
}
}
Request Field Description
PropertyData FormatDescription
typeStringAPI Type. Will always return “token”
attributesObjectObject Wrapper for response data
expired_inintExpiry time in seconds
tokenStringAccess token that will be used for inquiry and order

Sandbox Dummy Request Response

RequestResponseDescription
GET
{{base_url_pcidss}}/v2/credit-card/otu
Response payload:
{
"data": {
"type": "token",
"attributes": {
"client_number": "4111111111111111"
}
}
}
Get a one time url. This will help to convert plain credit card number to tokenize version
GET
{{base_url_pcidss}}/v2/credit-card/token?auth_type=onetime&token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Request payload:
{
"data": {
"type": "token",
"attributes": {
"client_number": "4111111234561111"
}
}
}
Response payload:
{
"data": {
"type": "token",
"attributes": {
"expired_in": 3600,
"token": "f8caefde-0749-49cc-b2ce-fee143994cbe"
}
}
}
Dummy Request & Response which returns token and expired_in from client_number
POST
{{base_url}}/v2/inquiry
Request payload:
{
"data": {
"type": "inquiry",
"attributes": {
"client_number": "3a8c01bf-538f-466b-b020-9fabb2611155",
"product_code": "cc-bni"
}
}
}
Response payload:
{
"data": {
"type": "inquiry",
"id": "3a8c01bf-538f-466b-b020-9fabb2611155",
"attributes": {
"admin_fee": 10000,
"base_price": 0,
"client_name": "",
"client_number": "3a8c01bf-538f-466b-b020-9fabb2611155",
"fields": null,
"inquiry_result": [
{
"name": "Client Number Masked",
"value": "111111******1111"
},
{
"name": "Min Payment",
"value": "Rp10.000"
},
{
"name": "Max Payment",
"value": "Rp999.999.999"
},
{
"name": "Bank",
"value": ""
},
{
"name": "Admin Fee",
"value": "Rp"
},
{
"name": "Amount",
"value": "Rp10.000"
},
{
"name": "Due Date",
"value": "02/09/2023"
},
{
"name": "Print Date",
"value": ""
},
{
"name": "Statement Date",
"value": "13/08/2023"
},
{
"name": "Card Holder",
"value": "TOKOP**** US**"
}
],
"max_payment": 999999999,
"meter_id": "",
"min_payment": 10000,
"product_code": "cc-bni",
"sales_price": 10000
}
}
}
Inquiry request and response inside sandbox
POST
{{base_url}}/v2/order
Request payload:
{
"data": {
"type": "order",
"id": "testordercchm4",
"attributes": {
"client_number": "3a8c01bf-538f-466b-b020-9fabb2611155",
"product_code": "cc-bni",
"amount": 5700000
}
}
}
Response payload:
{
"data": {
"type": "order",
"id": "testordercchm4",
"attributes": {
"client_number": "3a8c01bf-538f-466b-b020-9fabb2611155",
"error_code": "",
"error_detail": "",
"fields": [
{
"name": "cc_number_mask",
"value": "111111******1111"
},
{
"name": "cc_client_token_id",
"value": "3a8c01bf-538f-466b-b020-9fabb2611155"
}
],
"fulfilled_at": null,
"partner_fee": 100,
"product_code": "cc-bni",
"sales_price": 5700000,
"serial_number": "",
"status": "Pending"
}
}
}
Submit order request and response inside sandbox
GET
/v2/order/testordercchm4
Response payload:
{
"data": {
"type": "order",
"id": "testordercchm4",
"attributes": {
"admin_fee": 9000,
"client_name": "",
"client_number": "3a8c01bf-538f-466b-b020-9fabb2611155",
"error_code": "",
"error_detail": "",
"fields": [
{
"name": "cc_number_mask",
"value": "1111111111"
},
{
"name": "cc_client_token_id",
"value": "3a8c01bf-538f-466b-b020-9fabb2611155"
}
],
"fulfilled_at": "2024-01-19T03:28:42Z",
"fulfillment_result": [
{
"name": "Bank",
"value": "BNI"
},
{
"name": "Nomor Kartu",
"value": "1111-11******--1111"
},
{
"name": "Nomor Jurnal",
"value": "617126"
},
{
"name": "Nomor Referensi",
"value": "904579999"
},
{
"name": "Biaya Admin",
"value": "Rp9.000"
}
{
"name": "Total Bayar",
"value": "Rp 5.700.000"
}
],
"partner_fee": 100,
"product_code": "cc-bni",
"sales_price": 5700000,
"serial_number": "",
"status": "Success",
"voucher_code": ""
}
}
}
Get order detail request and response inside sandbox