Refund Transaction - API E-Wallet (Direct Debit) SNAP
Tentang Refund Transaction - API E-Wallet (Direct Debit) SNAP
API ini digunakan untuk mengajukan proses refund dari transaksi yang dilakukan dengan metode pembayaran E-Wallet dengan Fitur Direct Debit Host to Host yang sesuai standar SNAP.
Refund Transaction - API E-Wallet (Direct Debit) SNAP
Silakan mengajukan akses token terlebih dahulu untuk melakukan autentikasi melalui bagian Request Access Token API - SNAP.
Service Code | 58 |
|---|---|
API Endpoint | |
HTTP Method | POST |
Description | Request refund transaction for authentication |
Content-type | application/json |
Request Header Parameter for Refund Transaction - API E-Wallet (Direct Debit) SNAP
Parameter | Tipe | Ukuran | Kebutuhan | Deskripsi | Contoh |
|---|---|---|---|---|---|
Content-Type | String | 127 | Mandatory | Application/Json | |
Authorization | String | Variable | Mandatory | Bearer “accessToken” | |
X-TIMESTAMP | String | 25 | Mandatory | Using ISO 8601 as timestamp format. Transaction date time, in format YYYYMMDDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time). 2022-03-21T10:11:40+07:00. | |
X-SIGNATURE | String | Variable | Mandatory | Signature will be generated by Merchant. | |
X-PARTNER-ID | String | 20 | Mandatory | X-PARTNER-ID = CLIENT_ID | |
X-EXTERNAL-ID | String | 40 | Mandatory | Unique Reference Number (41807553358950093184) | |
CHANNEL-ID | String | 20 | Mandatory | Unique Channel Merchant Credential ID Number. Client ID + "01" = Channel ID "IONPAYTEST" + "01" = "IONPAYTEST01" | IONPAYTEST01 |
Request Body Parameter for Refund Transaction - API E-Wallet (Direct Debit) SNAP
Parameter | Tipe | Ukuran | Kebutuhan | Deskripsi |
|---|---|---|---|---|
merchantId | String | 10 | Mandatory | Merchant identifier that is unique per each Merchant |
subMerchantId | String | 32 | Optional | Sub Merchant ID |
originalReferenceNo | String | 40 | Mandatory | Original transaction identifier on service provider system |
originalPartnerReferenceNo | String | 40 | Mandatory | Original transaction identifier on consumer system |
partnerRefundNo | String | 40 | Mandatory | Reference number from Merchant for the refund |
refundAmount | Array of JSON Object | Variable | Mandatory | Amount of refund "refundAmount": { "value": "10000.00", "currency": "IDR" } |
value | String | 12 | Mandatory | Value |
currency | String | 3 | Mandatory | Currency |
externalStoreId | String | 32 | Optional | Unique identifier of Shop ID in Client system |
reason | String | 256 | Optional | Refund reason |
additionalInfo | JSON Object | Variable | Optional | Additional information "additionalInfo": { "refundType": "1" } |
refundType | String | 2 | Mandatory | Refund Type: 1: Full Refund 2: Partial Refund |
Response Parameter for Refund Transaction - API E-Wallet (Direct Debit) SNAP
Parameter | Tipe | Ukuran | Kebutuhan | Deskripsi |
|---|---|---|---|---|
responseCode | String | 7 | Mandatory | Refer to General Response Code and Message - API SNAP list |
responseMessage | String | 150 | Mandatory | Refer to General Response Code and Message - API SNAP list |
originalReferenceNo | String | 40 | Mandatory | Original transaction identifier on service provider system |
originalPartnerReferenceNo | String | 40 | Mandatory | Original transaction identifier on service provider system Must be filled upon successful transaction |
refundNo | String | 40 | Mandatory | Refund number identifier on service provider system reference Number |
partnerRefundNo | String | 40 | Mandatory | Reference number from Merchant for the refund |
refundAmount | Array of JSON Object | Variable | Mandatory | Amount of refund "refundAmount": { "value": "10000.00", "currency": "IDR" } |
value | String | 12 | Mandatory | Value |
currency | String | 3 | Mandatory | Currency |
refundTime | String | 25 | Mandatory | Refund time ISO-8601, in format YYYYMMDDTHH:mm:ss+07:00 Time must be in GMT+7 (Jakarta time) |
additionalInfo | JSON Object | Variable | Optional | Additional Information "additionalInfo": { "refundType": "1" } |
refundType | String | 2 | Mandatory | Refund Type: 1: Full Refund 2: Partial Refund |
Sample Parameter for Refund Transaction API E-Wallet (Direct Debit) SNAP
Request Parameter
$config = NICEPay::builder()
->setIsProduction(false)
->setIsCloudServer(isCloudServer: true)
->setPrivateKey($this->oldKeyFormat)
->setClientSecret($this->clientSecret)
->setPartnerId("TNICEEW051")
->setExternalID("tXid202402111402271707638101")
->setTimestamp("2024-12-31T10:11:40+07:00")
->build();
$accessToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJJT05QQVlURVNUIiwiaXNzIjoiTklDRVBBWSIsIm5hbWUiOiJCUklOIiwiZXhwIjoiMjAyNC0wMi0xMVQwODowOTozNVoifQ==.aIybLX36dYwfFvW7dcoenXkOe2EAwIYq84ZtPuIf3K8=";
$requestBody = RefundEwallet::builder()
->setMerchantId("00007100010926")
->setSubMerchantId("310928924949487")
->setOriginalPartnerReferenceNo("2020102900000000000001")
->setOriginalReferenceNO("TNICEEW05105202210141451109841")
->setPartnerRefundNo("239850918204981205970")
->setRefundAmount("10000.00", "IDR")
->setExternalStoreId("124928924949487")
->setReason("Customer complain")
->setAdditionalInfo(["refundType" => "1"])
->build();
$snapEwalletService = new SnapEwalletService();
try {
$response = $snapEwalletService->refundEwallet($requestBody, $accessToken, $config);
} catch (\Exception $e) {
// Handle exception
}Response Parameter
{
"responseCode": "2005800",
"responseMessage": "Successful",
"originalPartnerReferenceNo": "2020102900000000000001",
"originalReferenceNo": "TNICEEW05105202210141451109841",
"refundNo": "REF993883",
"partnerRefundNo": "239850918204981205970",
"refundAmount": {
"value": "10000.00",
"currency": "IDR"
},
"refundTime": "2020-12-21T17:21:41+07:00",
"additionalInfo": {
"refundType": "1"
}
}