Appearance
Payment Notification SNAP
The Payment Notify feature allows merchants to receive the final transaction status (Success (00) or Failed (06)). However, for the DANA payment channel, only a Success (00) callback is sent.
| Name | API Direct Debit Payment Notify |
|---|---|
| Service Code | 56 |
| Path | /{version}/debit/notify |
| Version | 1.0 |
| HTTP Method | POST |
| Type Format | JSON |
Transaction status later will be sent as payment notification to your provided callback URL. The callback will be sent after the transaction status gets final status. The provided URL must return a HTTP Status Code 200 to iFortepay. Our Notification Callback will retry 3 times if the provided URL did not return HTTP Status Code 200 to iFortepay. We will hit your URL using HTTP Method POST request. The detail of the request header will be in a separate document.
Request Body E-Wallet and Direct Debit
Details
| Field | Type | Mandatory | Length | Description |
|---|---|---|---|---|
| originalPartnerReferenceNo | String | O | 64 | Original transaction identifier on service consumer system |
| originalReferenceNo | String | M | 64 | Original transaction identifier on service provider system |
| merchantId | String | O | 64 | Merchant identifier that is unique per each merchant . Applicable only to BRI Direct Debit. |
| amount | Object | O | ||
| amount.value | String (ISO4217) | M | 16,2 | Net amount of the transaction. If it's IDR then value includes 2 decimal digits. e.g. IDR 10.000,- will be placed with 10000.00 |
| amount.currency | String | M | 3 | Currency |
| latestTransactionStatus | String | M | 2 | 00 - Success 01 - Initiated 03 - Pending 04 - Refunded 06 - Failed 07 - Not Found |
| transactionStatusDesc | String | O | 50 | Description status transaction |
| createdTime | string | O | 25 | Transaction created time. |
| finishedTime | string | O | 25 | Transaction finished time. |
| additionalInfo | Object | O | Additional information. Applicable only to E-Wallet such as DANA, LinkAja, OVO. | |
| additionalInfo.payOptionDetails | Array of Object | O | Payment option used | |
| additionalInfo.payOptionDetails.payMethod | String | M | 64 | Payment Method (e.g., WALLET) |
| additionalInfo.payOptionDetails.payOption | String | M | 64 | Provider (e.g., OVO, DANA, LinkAja,) |
| additionalInfo.accountDetails.id | String | C | 50 | Payer's ID. Mandatory for OVO. |
| additionalInfo.accountDetails.idType | String | C | enum | PHONE, EMAIL, CASHTAG |
| additionalInfo.feeAmount | object | O | Admin fee or Convenience fee | |
| additionalInfo.feeAmount.value | string | M | 16,2 | Fee amount value |
| additionalInfo.feeAmount.currency | string | M | 3 | Fee currency |
| additionalInfo.itemDetails | Array of Objects | O | Explain the items purchased | |
| additionalInfo.itemDetails.itemId | String | M | ID of product. Mandatory if item details is filled | |
| additionalInfo.itemDetails.name | String | M | Name of product. Mandatory if item details is filled | |
| additionalInfo.itemDetails.amount | String | M | ||
| additionalInfo.itemDetails.amount.value | String | M | Price per unit. Mandatory if item details is filled. Accumulation amount should be match with original amount. | |
| additionalInfo.itemDetails.amount.currency | String | M | Mandatory if item details is filled | |
| additionalInfo.itemDetails.qty | Integer | M | Number of product units. Mandatory if item details is filled. Maximum 99999999 | |
| additionalInfo.itemDetails.description | String | M | Description of product | |
| additionalInfo.failedReason | String | O | 255 | Only available for OVO. the value is failed response message |
Sample Request E-Wallet (DANA)
Details
sh
POST .../v1.0/debit/notify HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-23T07:44:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
CHANNEL-ID: 95221
{
"originalPartnerReferenceNo": "QA-20240913-004",
"originalReferenceNo": "0191e99a-c403-7cb2-b653-48a54b3a45d7",
"amount": {
"value": "12500.00",
"currency": "IDR"
},
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success",
"createdTime": "2024-09-13T11:18:40+07:00",
"finishedTime": "2024-09-13T11:18:40+07:00",
"additionalInfo": {
"payOptionDetails": [
{
"payMethod": "WALLET",
"payOption": "OVO"
}
],
"accountDetails": {
"id": "08888999999",
"idType": "PHONE"
},
"feeAmount": {
"value": "1500.00",
"currency": "IDR"
},
"itemDetails": [{
"itemId": "F001",
"name": "Dress",
"amount": "150000",
"qty": "1",
"description": "Dress Wanita Pink"
}]
}
}Sample request Direct Debit (BRI)
Details
sh
{
"originalPartnerReferenceNo": "QA-20240913-004",
"originalReferenceNo": "0191e99a-c403-7cb2-b653-48a54b3a45d7",
"merchantId": "IFP2024078302",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"latestTransactionStatus": "00",
"transactionStatusDesc": "Success",
"createdTime": "2024-09-13T11:18:40+07:00",
"finishedTime": "2024-09-13T11:18:40+07:00"
}Response Header E-Wallet and Direct Debit
Details
| Field | Type | Mandatory | Description |
|---|---|---|---|
| Content-Type | String | M | String represents indicate the media type of the resource (use: application/json) |
| X-TIMESTAMP | String | M | Client's current local time in yyyy-MMddTHH:mm:ss.SSSTZD format |
Response Body E-Wallet and Direct Debit
Details
| Field | Type | Mandatory | Length | Description |
|---|---|---|---|---|
| responseCode | String | M | 7 | Response code |
| responseMessage | String | M | 150 | Response description |
Sample Response E-Wallet and Direct Debit
Details
json
{
"responseCode": "2005600",
"responseMessage": "Successful"
}