Appearance
API Transaction History Detail
API Transaction History Detail is used for clients to retrieve the detail of a specific disbursement transaction.
API Information
| Field | Value |
|---|---|
| Path | /api/{version}/transaction-history-detail |
| HTTP Method | POST |
| Service Code | 13 |
| Version | v1.0 |
| Type | JSON |
| Authentication | OAuth 2.0 with Access Token |
Request Structure
Request Header
Details
| Parameter / Field | Mandatory | Type | Description |
|---|---|---|---|
Content-Type | M | String | Indicates the media type of the resource. Use: application/json |
Authorization | M | String | Represents the access_token. Starts with "Bearer" followed by the access token. e.g.: Bearer eyJraWQiOi... |
X-TIMESTAMP | M | String | Client's current local time in yyyy-MM-ddTHH:mm:ss.SSSTZD format |
X-SIGNATURE | M | String | Symmetric signature using HMAC_SHA512. Formula: stringToSign = HTTPMethod + ":" + EndpointUrl + ":" + AccessToken + ":" + Lowercase(HexEncode(SHA256(minify(RequestBody)))) + ":" + TimeStamp. Notes: (1) Use full URL including all parameters. (2) If no Request Body, use empty string. |
X-PARTNER-ID | M | String | Unique partner ID. Use the iFortepay Client ID obtained after onboarding. |
X-EXTERNAL-ID | M | String | Numeric String. A unique reference number you generate. Must be unique on the same day. |
ORIGIN | O | String | Origin domain registered on the iFortepay system. |
CHANNEL-ID | M | String | Device identification on which the API services are being accessed. Use value: api |
M = Mandatory, O = Optional
Request Body
Details
| Parameter / Field | Mandatory | Type | Length | Description |
|---|---|---|---|---|
originPartnerReferenceNo | M | String | 64 | Original transaction identifier on service consumer system |
additionalInfo | O | Object | - | Additional information. See Additional Info Object Detail. |
Additional Info Object Detail (Request)
| Parameter / Field | Mandatory | Type | Length | Description |
|---|---|---|---|---|
type | O | String | - | Transaction type. Possible values: SEND_MONEY, INQUIRY |
Example Request
Details
artifact
id: transaction-history-detail-request
name: Example Request - API Transaction History Detail
type: code.bash
content: |-
curl --location --request POST 'https://api-stage.senmo.id/api/v1.0/transaction-history-detail' \
--header 'Content-Type: application/json' \
--header 'X-TIMESTAMP: 2023-02-14T15:40:22+07:00' \
--header 'X-SIGNATURE: 8mvtKKjcO0tdJJ4TJDNNYnSrn3wY7L+84Xwyw8blqq4SDI3S/YMxRb9SA/nvaqXugU1eaL+ArW7czDDbaB37AQ==' \
--header 'X-PARTNER-ID: MCPD00000006' \
--header 'X-EXTERNAL-ID: 1676364022879' \
--header 'CHANNEL-ID: api' \
--header 'origin: https://www.finalunion.co.id' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
--data-raw '{
"originalPartnerReferenceNo": "20230126-001",
"additionalInfo": {}
}'Response Structure
Response Header
Details
| Parameter / Field | Mandatory | Type | Description |
|---|---|---|---|
Content-Type | M | String | Value: application/json |
X-TIMESTAMP | M | String | Client's current local time in yyyy-MM-ddTHH:mm:ss.SSSTZD format |
Response Body
Details
| Parameter / Field | Mandatory | Type | Length | Description |
|---|---|---|---|---|
responseCode | M | String | 7 | Response code |
responseMessage | M | String | 150 | Response message/description based on responseCode |
referenceNo | O | String | 64 | Transaction identifier on service provider system. Filled upon successful transaction. |
partnerReferenceNo | O | String | 64 | Transaction identifier on service consumer system |
amount | O | Object | - | Amount object of transaction. See Amount Object Detail. |
cancelledTime | O | String | 25 | Transaction cancelled time. Only filled if transaction is failed. |
dateTime | O | String | 25 | Date and time of created transaction in ISO 8601 format |
refundAmount | O | Object | - | Refund amount of the transaction |
remark | O | String | 256 | Transaction remark |
sourceOfFunds | O | Array | - | Source of funds used for this transaction. Defined as the registered client account number at iFortepay. |
status | M | String | 32 | Transaction status: INIT (in progress), SUCCESS (money sent), CANCELLED (failed — balance refunded) |
type | M | String | 32 | Transaction type: SEND_MONEY or INQUIRY |
additionalInfo | O | Object | - | Additional information from detail data |
Source of Fund Detail
| Parameter / Field | Mandatory | Type | Length | Description |
|---|---|---|---|---|
source | O | String | - | Source of fund number registered at onboarding |
amount | O | Object | - | Total amount (transfer amount + admin fee). See Amount Object Detail. |
Amount Object Detail
| Parameter / Field | Mandatory | Type | Length | Description |
|---|---|---|---|---|
value | O | String | - | Amount value |
currency | O | String | - | Currency of the amount value |
Additional Info Detail
| Parameter / Field | Mandatory | Type | Length | Description |
|---|---|---|---|---|
transactionReferenceNo | M | String | - | Disbursement transaction identifier on service provider system |
beneficiaryAccountNo | M | String | - | Transaction beneficiary account number |
beneficiaryAccountName | M | String | - | Transaction beneficiary account name |
bankCode | M | String | - | Transaction beneficiary bank code |
bankName | O | String | - | Transaction beneficiary bank name |
beneficiaryEmail | O | String | - | Beneficiary email |
senderCountry | C | String | - | Sender country. Mandatory for PJP Disbursement. |
senderPlaceOfBirth | O | String | - | City/country code of sender's place of birth. Use city code if in Indonesia, country code if abroad. |
senderDateOfBirth | O | String | - | Sender's date of birth in YYYY-MM-DD format |
senderIdentityType | O | String | - | Sender's ID type |
senderName | C | String | 50 | Sender name. Mandatory for PJP Disbursement. |
senderAddress | C | String | 255 | Sender address. Mandatory for PJP Disbursement. |
senderIdentityNo | O | String | 50 | Sender ID number |
senderJob | C | String | - | Sender job. Mandatory for PJP Disbursement. Values: housewife, entrepreneur, private_employee, government_employee, foundation_board, indonesian_migrant_worker, company, others |
cancelledReason | O | String | - | Reason provided if transaction status is CANCELLED |
direction | M | String | - | Disbursement direction |
fee | M | Object | - | Fee object. See Amount Object Detail. |
timeServed | O | String | - | Date and time the transaction was processed |
createdFrom | O | String | - | Transaction creation source. Value: API (created via Open API) |
M = Mandatory, O = Optional, C = Conditional
Example Responses
Details
⏳ Pending Transaction
json
{
"responseCode": "2001300",
"responseMessage": "Successful",
"referenceNo": "20777",
"partnerReferenceNo": "transfer20240318-ozie0006",
"amount": { "value": "12000.00", "currency": "IDR" },
"cancelledTime": "",
"dateTime": "2024-03-18T16:20:09+07:00",
"refundAmount": {},
"remark": "Payroll Mar 24",
"sourceOfFunds": [{ "source": "BALANCE", "amount": { "value": "16500.00", "currency": "IDR" } }],
"status": "INIT",
"type": "SEND_MONEY",
"additionalInfo": {
"transactionReferenceNo": "STI24031800000000168",
"beneficiaryAccountNo": "19191919",
"beneficiaryAccountName": "LIGHT YAGAMI",
"bankCode": "014",
"bankName": "BCA",
"beneficiaryEmail": "irham*******ay.id",
"senderName": "Jojo Bizzare",
"senderIdentityType": "BANK ACCOUNT",
"cancelledReason": "",
"direction": "DOMESTIC",
"originCountryOfTransaction": "ID",
"beneficiaryCountry": "ID",
"sourceOfFund": "Balance",
"transactionPurpose": "Pemindahan Dana",
"senderGender": "Male",
"senderNickName": "Jojo Bizzare",
"fee": { "value": "4500.00", "currency": "IDR" },
"timeServed": "2024-03-18T16:20:09+07:00",
"createdFrom": "API"
}
}✅ Success Transaction
json
{
"responseCode": "2001300",
"responseMessage": "Successful",
"referenceNo": "20770",
"partnerReferenceNo": "transfer20240122-ozie0002",
"amount": { "value": "11000.00", "currency": "IDR" },
"cancelledTime": "",
"dateTime": "2024-01-22T11:53:38+07:00",
"refundAmount": {},
"remark": "Payroll Jun 23",
"sourceOfFunds": [{ "source": "BALANCE", "amount": { "value": "15500.00", "currency": "IDR" } }],
"status": "SUCCESS",
"type": "SEND_MONEY",
"additionalInfo": {
"transactionReferenceNo": "STI24012200000000002",
"beneficiaryAccountNo": "18181818",
"beneficiaryAccountName": "GOJO SATORU",
"bankCode": "008",
"bankName": "Mandiri",
"beneficiaryEmail": "mer*******com",
"beneficiaryCity": "3173",
"senderName": "Jojo Bizzare",
"senderIdentityType": "BANK ACCOUNT",
"senderCity": "3173",
"cancelledReason": "",
"direction": "DOMESTIC",
"originCountryOfTransaction": "ID",
"beneficiaryCountry": "ID",
"sourceOfFund": "Balance",
"transactionPurpose": "Pemindahan Dana",
"senderGender": "Male",
"senderNickName": "Jojo Bizzare",
"fee": { "value": "4500.00", "currency": "IDR" },
"timeServed": "2024-01-22T11:53:39+07:00",
"createdFrom": "API"
}
}❌ Failed / Cancelled Transaction
json
{
"responseCode": "2001300",
"responseMessage": "Successful",
"referenceNo": "20774",
"partnerReferenceNo": "transfer20240318-ozie0005",
"amount": { "value": "13000.00", "currency": "IDR" },
"cancelledTime": "2024-03-18T16:16:00+07:00",
"dateTime": "2024-03-18T16:16:00+07:00",
"refundAmount": {},
"remark": "Payroll Mar 24",
"sourceOfFunds": [{ "source": "BALANCE", "amount": { "value": "17500.00", "currency": "IDR" } }],
"status": "CANCELLED",
"type": "SEND_MONEY",
"additionalInfo": {
"transactionReferenceNo": "STI24031800000000167",
"beneficiaryAccountNo": "17171717",
"beneficiaryAccountName": "SDR EREN JEAGER",
"bankCode": "009",
"bankName": "BNI / BNI Syariah",
"beneficiaryEmail": "irham*******ay.id",
"senderName": "Jojo Bizzare",
"senderIdentityType": "BANK ACCOUNT",
"cancelledReason": "External Server Error",
"direction": "DOMESTIC",
"originCountryOfTransaction": "ID",
"beneficiaryCountry": "ID",
"sourceOfFund": "Balance",
"transactionPurpose": "Pemindahan Dana",
"senderGender": "Male",
"senderNickName": "Jojo Bizzare",
"fee": { "value": "4500.00", "currency": "IDR" },
"timeServed": "2024-03-18T16:16:00+07:00",
"createdFrom": "API"
}
}❌ Error Response
json
{
"responseCode": "4011301",
"responseMessage": "Invalid Token B2B"
}