Appearance
Check Transaction Status
Information
This API is requested from the Merchant during query payment or check status to Ifortepay.
Path | /v1.0/bnpl/check-transaction-status |
---|---|
HTTP Method | POST |
Service Code | 94 |
Type Format | JSON |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
originalPartnerReferenceNo | String | M | 64 | ID transaction generated by merchant |
originalReferenceNo | String | M | 64 | ID transaction generated by Ifortepay |
serviceCode | String | M | 2 | Transaction type indicator (service code of the original transaction request), e.g. 91 for online transaction, 92 for PoS checkout |
additionalInfo | Object | O |
Example Request
Details
sh
curl --location 'https://api-stage.ifortepay.id/v1.0/bnpl/check-transaction-status' \
--header 'Content-Type: application/json' \
--header 'X-TIMESTAMP: 2020-12-18T10:55:00+07:00' \
--header 'X-SIGNATURE: AFenhbL7QQ6wjA/UbmO7wzxT13X1H54gvIgdl9gZNT4TFGllCeT7GG4w0uUylpXUni0iFC9vILRPgNx622ZjodrJ7x4pf09FY7Emvs1vb7QHk2Xz+8AE6RuiRdGKlWKjv7Qkhw5cEvfJip+qtG7DaLzmXm7p4t96/QXMmkahaJQ2qkifGjkkHYWQGPFYfZEUY/q3IXHFo4m331ju/W9i4Ij4yxKw1kjIUi3rg9lSzUq/LI8VKthDvoDf1znB9ll+j7OQBBcpCvTtBhKmVR+cbrSjwKTp+24iXz0rDJ8rK2l79zV7pdjbeovtWUIV6Z1Xjqu4OYTdlp8RydQu3XSZsA==' \
--header 'X-PARTNER-ID: MC2025059906' \
--header 'X-EXTERNAL-ID: 96758858440652' \
--header 'CHANNEL-ID: PL001' \
--data '{
"originalReferenceNo": "0196f20f-5026-7002-8a01-eae905b67336",
"originalPartnerReferenceNo": "85430867583036",
"serviceCode": "92"
}'
go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-stage.ifortepay.id/v1.0/bnpl/check-transaction-status"
method := "POST"
payload := strings.NewReader(`{
"originalReferenceNo": "0196f20f-5026-7002-8a01-eae905b67336",
"originalPartnerReferenceNo": "85430867583036",
"serviceCode": "92"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
req.Header.Add("X-TIMESTAMP", "2020-12-18T10:55:00+07:00")
req.Header.Add("X-SIGNATURE", "AFenhbL7QQ6wjA/UbmO7wzxT13X1H54gvIgdl9gZNT4TFGllCeT7GG4w0uUylpXUni0iFC9vILRPgNx622ZjodrJ7x4pf09FY7Emvs1vb7QHk2Xz+8AE6RuiRdGKlWKjv7Qkhw5cEvfJip+qtG7DaLzmXm7p4t96/QXMmkahaJQ2qkifGjkkHYWQGPFYfZEUY/q3IXHFo4m331ju/W9i4Ij4yxKw1kjIUi3rg9lSzUq/LI8VKthDvoDf1znB9ll+j7OQBBcpCvTtBhKmVR+cbrSjwKTp+24iXz0rDJ8rK2l79zV7pdjbeovtWUIV6Z1Xjqu4OYTdlp8RydQu3XSZsA==")
req.Header.Add("X-PARTNER-ID", "MC2025059906")
req.Header.Add("X-EXTERNAL-ID", "96758858440652")
req.Header.Add("CHANNEL-ID", "PL001")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
js
const axios = require('axios');
let data = JSON.stringify({
"originalReferenceNo": "0196f20f-5026-7002-8a01-eae905b67336",
"originalPartnerReferenceNo": "85430867583036",
"serviceCode": "92"
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api-stage.ifortepay.id/v1.0/bnpl/check-transaction-status',
headers: {
'Content-Type': 'application/json',
'X-TIMESTAMP': '2020-12-18T10:55:00+07:00',
'X-SIGNATURE': 'AFenhbL7QQ6wjA/UbmO7wzxT13X1H54gvIgdl9gZNT4TFGllCeT7GG4w0uUylpXUni0iFC9vILRPgNx622ZjodrJ7x4pf09FY7Emvs1vb7QHk2Xz+8AE6RuiRdGKlWKjv7Qkhw5cEvfJip+qtG7DaLzmXm7p4t96/QXMmkahaJQ2qkifGjkkHYWQGPFYfZEUY/q3IXHFo4m331ju/W9i4Ij4yxKw1kjIUi3rg9lSzUq/LI8VKthDvoDf1znB9ll+j7OQBBcpCvTtBhKmVR+cbrSjwKTp+24iXz0rDJ8rK2l79zV7pdjbeovtWUIV6Z1Xjqu4OYTdlp8RydQu3XSZsA==',
'X-PARTNER-ID': 'MC2025059906',
'X-EXTERNAL-ID': '96758858440652',
'CHANNEL-ID': 'PL001'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
php
<?php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-stage.ifortepay.id/v1.0/bnpl/check-transaction-status',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"originalReferenceNo": "0196f20f-5026-7002-8a01-eae905b67336",
"originalPartnerReferenceNo": "85430867583036",
"serviceCode": "92"
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'X-TIMESTAMP: 2020-12-18T10:55:00+07:00',
'X-SIGNATURE: AFenhbL7QQ6wjA/UbmO7wzxT13X1H54gvIgdl9gZNT4TFGllCeT7GG4w0uUylpXUni0iFC9vILRPgNx622ZjodrJ7x4pf09FY7Emvs1vb7QHk2Xz+8AE6RuiRdGKlWKjv7Qkhw5cEvfJip+qtG7DaLzmXm7p4t96/QXMmkahaJQ2qkifGjkkHYWQGPFYfZEUY/q3IXHFo4m331ju/W9i4Ij4yxKw1kjIUi3rg9lSzUq/LI8VKthDvoDf1znB9ll+j7OQBBcpCvTtBhKmVR+cbrSjwKTp+24iXz0rDJ8rK2l79zV7pdjbeovtWUIV6Z1Xjqu4OYTdlp8RydQu3XSZsA==',
'X-PARTNER-ID: MC2025059906',
'X-EXTERNAL-ID: 96758858440652',
'CHANNEL-ID: PL001'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Response
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
originalPartnerReferenceNo | String | M | 64 | ID transaction generated by the merchant |
originalReferenceNo | String | M | 64 | ID transaction generated by Ifortepay |
serviceCode | String | M | 2 | Transaction type indicator (e.g. 91 for online transaction, 92 for PoS checkout) |
paymentDetails | Object | M | ||
paymentDetails.amount | Object | Amount of the transaction | ||
paymentDetails.amount.value | String | M | 16,2 | |
paymentDetails.amount.currency | String | M | 3 | |
paymentDetails.totalAmount | Object | |||
paymentDetails.totalAmount.value | String | M | 16,2 | Total amount of the transaction. If IDR, value includes 2 decimal digits (e.g. 10000.00) |
paymentDetails.totalAmount.currency | String | M | 3 | Currency |
paymentChannel | String | M | 30 | Description name of the payment channel |
paymentSystem | String | M | 50 | Channel mode |
itemDetails | Array of Objects | M | ||
itemDetails.itemId | String | M | 64 | Can be product SKU. Use one of these for fees: shippingfee, adminfee, taxfee, discount, additionalfee, insurancefee |
itemDetails.name | String | M | 128 | Product name |
itemDetails.amount | Object | M | Product price | |
itemDetails.amount.value | String | M | 16,2 | If IDR, the value includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00 with 2 decimal |
itemDetails.amount.currency | String | M | 3 | Currency (Format: ISO4217), fixed value: IDR |
itemDetails.url | String | C | 256 | URL of the product on the merchant’s site / platform. For online transaction cannot null |
itemDetails.imageUrl | String | O | 256 | URL of the image product on the merchant’s site / platform. |
itemDetails.category | enum | M | 256 | Category of the product. \nMandatory for payment type checkout URL. |
itemDetails.qty | Integer | M | 8 | Quantity of the product |
itemDetails.parentType | String | M | Possible values: SELLER \nMandatory for payment type checkout URL. | |
itemDetails.parentId | String | C | It will correspond to the SELLER ID if the parentType is SELLER \nMandatory for payment type checkout URL. | |
tenure | String | C | Installment options chosen by the customer. Possible values: 30_days, 3_months, 6_months, 12_months, 15_months, 18_months \nOnly displayed when the transaction has been paid. | |
latestTransactionStatus | String | M | 2 | Refer to Appendix 1 - Transaction Status for specific transaction statuses. |
transactionStatusDesc | String | M | 50 | Description status transaction |
createdAt | String | M | 25 | Created time |
paidTime | String | C | The value will be returned for successful payment. | |
customerDetails | Object | M | Customer details | |
customerDetails.firstName | String | M | 16 | Customer’s first name |
customerDetails.lastName | String | O | 16 | Customer’s last name |
customerDetails.email | String | M | 64 | The customer’s email that is registered in the merchant site/platform |
customerDetails.phone | String | M | 16 | The customer’s phone that is registered in the merchant site/platform |
callbackUrl | String | M | Merchant payment notification URL | |
cancelReturnUrl | String | O | Redirect to the URL merchant if the customer chooses to cancel the payment before completion | |
returnUrl | String | O | Redirect to the URL merchant after the transaction is complete | |
validityPeriod | String | O | The time when the payment is valid. Use format ISO-8601. Maximum expiry time is 1x24 hours | |
totalRefundedAmount | Object | C | The value will be returned for refunded payment | |
totalRefundedAmount.value | String | M | 16,2 | Total amount of the refund. If it's IDR then value includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00 with 2 decimal |
totalRefundedAmount.currency | String | M | 3 | Currency |
refundHistory | Array of object | C | The value will be returned for refunded payment | |
refundHistory.refundAmount | Object | M | 16,2 | |
refundHistory.refundAmount.value | String | M | 16,2 | Total amount of the refund. If it's IDR then value includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00 with 2 decimal |
refundHistory.refundAmount.currency | String | M | 3 | Currency |
refundHistory.refundTime | String | M | ISO-8601 |
Example Response
Details
{
"responseCode": "2009400",
"responseMessage": "Successful",
"originalPartnerReferenceNo": "16038677220953",
"originalReferenceNo": "01984087-3a80-7079-8062-76343f70e304",
"serviceCode": "91",
"paymentDetails": {
"amount": {
"value": "25000.00",
"currency": "IDR"
},
"totalAmount": {
"value": "25000.00",
"currency": "IDR"
}
},
"paymentChannel": "INDODANA",
"paymentSystem": "JUMPAPP",
"itemDetails": [
{
"itemId": "FOOD01",
"name": "RUJAK",
"amount": {
"value": "25000.00",
"currency": "IDR"
},
"url": "https://www.google.com/",
"category": "0017",
"qty": 1,
"parentType": "SELLER",
"parentId": "123"
}
],
"tenure": "1_months",
"latestTransactionStatus": "00",
"createdAt": "2025-07-25T14:41:01+07:00",
"paidTime": "2025-07-25T14:41:33+07:00",
"customerDetails": {
"firstName": "Quality",
"lastName": "Assurance",
"email": "qa@ifortepay.id",
"phone": "089121313131"
},
"callbackUrl": "https://mcpid.proxy.beeceptor.com/BNPL",
"cancelReturnUrl": "https://www.google.com/",
"returnUrl": "https://www.google.com/",
"validityPeriod": "2025-07-25T14:56:00+07:00",
"refundHistory": [],
"transactionStatusDesc": "Success"
}