---
title: Check Status Transaction - API Virtual Account SNAP
slug: nicepay-api-snap-check-status-transaction-virtual-account
description: Informasi tentang Check Status Transaction - API Virtual Account SNAP yang terdapat pada sistem NICEPAY
image: https://archbee-image-uploads.s3.amazonaws.com/ZHvSjR5ZrsoxwKbJa3xmo/UuUQnMCvP_3AiayMIEQ6-_microsoftteams-image.png
icon: {"faIcon":"fa-solid fa-book"}
docTags: 
createdAt: 2023-02-17T10:55:01.000Z
---

# Tentang Check Status Transaction - API Virtual Account SNAP

***

API dengan standar SNAP ini digunakan oleh Merchant untuk mengajukan pemeriksaan status inquiry kepada NICEPAY.



# Check Status Transaction - API Virtual Account SNAP

***

:::hint{type="warning"}
Silakan mengajukan akses token terlebih dahulu untuk melakukan autentikasi melalui bagian [Request Access Token API - SNAP](docId\:GcGqBIYXG1Etcd0Ji9cHX).
:::

| **Service Code** | `26`                                                            |
| ---------------- | --------------------------------------------------------------- |
| **API Endpoint** | `/api/v1.0/transfer-va/status`                                  |
| **Method**       | `HTTP` `POST`                                                   |
| **Description**  | Untuk mengajukan pemeriksaan status inquiry kepada NICEPAY&#xD; |
| **Content-Type** | `application/json`                                              |



## Request Check Status Header Parameter

| **Parameter**   | **Tipe** | **Ukuran** | **Kebutuhan** | **Deskripsi**                                                                                                                                                                     | **Contoh**   |
| --------------- | -------- | ---------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| `Content-Type`  | String   |            | Mandatory     | `Application / JSON`                                                                                                                                                              |              |
| `Authorization` | String   |            | Mandatory     | Bearer “`access_token`”                                                                                                                                                           |              |
| `X-TIMESTAMP`   | String   |            | Mandatory     | Using ISO 8601 as timestamp format.<br />Transaction date time, in format `YYYYMMDDTHH:mm:ss+07:00`.<br />Time must be in GMT+7 (Jakarta time).<br />`2022-03-21T10:11:40+07:00`. |              |
| `X-SIGNATURE`   | String   |            | Mandatory     | Signature will be generated by Merchant.<br />[Panduan X-Signature - Symmetric](docId\:UZex33ReLyENKOgbJJnYp)                                                                     |              |
| `X-PARTNER-ID`  | String   | 20         | Mandatory     | `X-PARTNER-ID` = `CLIENT_ID`                                                                                                                                                      |              |
| `X-EXTERNAL-ID` | String   | 40         | Mandatory     | Unique Reference Number.<br />(`41807553358950093184`)                                                                                                                            |              |
| `CHANNEL-ID`    | String   | 20         | Mandatory     | Unique Channel Merchant Credential ID Number.<br />Client ID + "01" =  Channel ID <br />`"IONPAYTEST" + "01" = "IONPAYTEST01"`                                                    | IONPAYTEST01 |



## Request Check Status Body Parameter

:::hint{type="info"}
Untuk parameter `partnerServiceId` dan `virtualAccountNo` dapat dikirim dengan nilai kosong.
:::

| **Parameter**      | **Tipe** | **Ukuran** | **Kebutuhan** | **Deskripsi**                                                                                                                         |
| ------------------ | -------- | ---------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `partnerServiceId` | String   | 20         | Mandatory     | Partner Service ID / Prefix                                                                                                           |
| `customerNo`       | String   | 40         | Mandatory     | Customer Number                                                                                                                       |
| `virtualAccountNo` | String   | 25         | Mandatory     | Virtual Account Number                                                                                                                |
| `inquiryRequestId` | String   | 128        | Mandatory     | The same value as `X-EXTERNAL-ID`                                                                                                     |
| `additionalInfo`   | Object   |            | Mandatory     | `"additionalInfo": { `<br />`      "totalAmount": {  `<br />`         ... `<br />`     }, `<br />`         ... `<br />`     }  ` |
| `totalAmount`      | Object   |            | Mandatory     | `"totalAmount": { `<br />`         ... `<br />`    }`                                                                               |
| `value`            | String   | 12         | Mandatory     | Transaction Amount                                                                                                                    |
| `currency`         | String   | 3          | Mandatory     | Currency                                                                                                                              |
| `trxId`            | String   | 40         | Mandatory     | Reference Number from Merchant                                                                                                        |
| `tXidVA`           | String   | 30         | Mandatory     | Transaction ID (Generated by NICEPAY)                                                                                                 |



## Response Check Status Parameter

| **Parameter**             | **Tipe** | **Ukuran** | **Kebutuhan** | **Deskripsi**                                                                                                                                                                         |
| ------------------------- | -------- | ---------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `responseCode`            | String   |            | Mandatory     | [General Response Code and Message - API SNAP](docId\:lKqJXSl5CMKdXYXxHYYSs)                                                                                                          |
| `responseMessage`         | String   |            | Mandatory     | Response Message                                                                                                                                                                      |
| `virtualAccountData`      | Object   |            | Mandatory     |                                                                                                                                                                                       |
| `partnerServiceId`        | String   | 20         | Mandatory     | Partner Service ID / Prefix                                                                                                                                                           |
| `customerNo`              | String   | 40         | Mandatory     | Customer Number                                                                                                                                                                       |
| `virtualAccountNo`        | String   | 25         | Mandatory     | Virtual Account Number                                                                                                                                                                |
| `inquiryRequestId`        | String   | 128        | Mandatory     | The same value as `X-EXTERNAL-ID`                                                                                                                                                     |
| `totalAmount`             | Object   |            | Mandatory     | `"totalAmount": {`<br />`             .... `<br />`        }`                                                                                                                       |
| `value`                   | String   | 12         | Mandatory     | Transaction Amount                                                                                                                                                                    |
| `currency`                | String   | 3          | Mandatory     | Currency                                                                                                                                                                              |
| `additionalInfo`          | Object   |            | Mandatory     | `"additionalInfo": {`<br />`             ... `<br />`        }`                                                                                                                     |
| `bankCd`                  | String   | 4          | Mandatory     | [Bank Code - API SNAP](docId:9WOQy5-1hlf_uCwshSDHO)                                                                                                                                   |
| `tXidVA`                  | String   | 30         | Mandatory     | Transaction ID (Generated by NICEPAY)                                                                                                                                                 |
| `goodsNm`                 | String   | 200        | Mandatory     | &#xD;Goods Name&#xD;                                                                                                                                                                  |
| `vacctValidDt`            | String   | 8          | Mandatory     | Virtual Account Valid Date                                                                                                                                                            |
| `vacctValidTm`            | String   | 6          | Mandatory     | Virtual Account Valid Time                                                                                                                                                            |
| `virtualAccountName`      | String   | 100        | Mandatory     | Virtual Account Name                                                                                                                                                                  |
| `trxId`                   | String   | 40         | Mandatory     | Reference Number from Merchant                                                                                                                                                        |
| `transactionStatusDesc`   | String   |            | Mandatory     | [Transaction Status - API SNAP](docId\:XxlWrB0Q8XVkSMaO7ti9a)  Description : <br />`Success `<br />`  Pending  `<br />`  Refunded  `<br />`  Canceled  `<br />` Failed`            |
| `latestTransactionStatus` | String   |            | Mandatory     | [Latest Transaction Status ](docId\:XxlWrB0Q8XVkSMaO7ti9a): <br />`00` - Success&#xD;<br />`03` - Pending&#xD;<br />`04` - Refunded&#xD;<br />`05` - Canceled&#xD;<br />`06` - Failed |
| `hashedSourceAccountNo`   | String   | 32         | Optional      | Source account number in hash or unhash depend on Bank                                                                                                                                |
| `sourceBankCode`          | String   | 11         | Optional      | Source account Bank code                                                                                                                                                              |



# Sample Parameter for Check Status Transaction API Virtual Account SNAP

***

## Request Parameter

:::CodeblockTabs
cURL

```curl
curl --location 'https://dev.nicepay.co.id/nicepay/api/v1.0/transfer-va/status' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJJT05QQVlURVNUIiwiaXNzIjoiTklDRVBBWSIsIm5hbWUiOiJCUklOIiwiZXhwIjoiMjAyNC0wMi0xMVQwODowOTozNVoifQ==.aIybLX36dYwfFvW7dcoenXkOe2EAwIYq84ZtPuIf3K8=' \
--header 'X-TIMESTAMP: 2024-12-31T10:11:40+07:00' \
--header 'X-SIGNATURE: ufBw7R8RhW79IOiV/Hlv607M60qzAYBv8uZmbSrYb6/Thlo/FhQVP4xRyelUehoSS9o+QS6vWTKb/ygtucC+tQ==' \
--header 'X-PARTNER-ID: NORMALTEST' \
--header 'X-EXTERNAL-ID: tXid202402111402271707638094' \
--header 'CHANNEL-ID: NORMALTEST' \
--data '{
   "partnerServiceId": "99123040", 
   "customerNo": "00007307",
   "virtualAccountNo": "9912304000007307", 
   "inquiryRequestId": "tXid202402111402271707638094", 
   "additionalInfo": { 
     "totalAmount": { 
        "value": "10000.00", 
        "currency": "IDR" 
    },
    "trxId": "2024123000000000000001", 
    "tXidVA": "NORMALTEST02202401181001033629"
    } 
}'
```

Node.js

```nodejs
let config = { 
  isProduction: false,
  privateKey: cons.privateKey,
  clientSecret: cons.clientSecret,
  clientId: cons.clientId,
  isCloudServer: false,
};

let paramCheckStatus = {
  body: {
    partnerServiceId: "99123040",
    customerNo: "00007307",
    virtualAccountNo: "9912304000007307",
    inquiryRequestId: "tXid202402111402271707638094",
    additionalInfo: {
      totalAmount: {
        value: "10000.00",
        currency: "IDR",
      },
      trxId: "2024123000000000000001",
      tXidVA: "NORMALTEST02202401181001033629",
    },
  },
  headers: {
    X_EXTERNAL_ID: "tXid202402111402271707638094",
    CHANNEL_ID: cons.clientId,
  },
};

let snap = new Snap(config);
let endPoint = `/api/v1.0/transfer-va/status`;

let response = snap.requestSnapTransaction(paramCheckStatus, endPoint, accessToken, "POST");

```

```java
config = NICEPay.builder()
        .isProduction(false)
        .isCloudServer(false)
        .clientSecret(CLIENT_SECRET)
        .partnerId(PARTNER_ID)
        .externalID("tXid202402111402271707638094")
        .timestamp("2024-12-31T10:11:40+07:00")
        .privateKey(PRIVATE_KEY_CLOUD)
        .build();

var accessToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJJT05QQVlURVNUIiwiaXNzIjoiTklDRVBBWSIsIm5hbWUiOiJCUklOIiwiZXhwIjoiMjAyNC0wMi0xMVQwODowOTozNVoifQ==.aIybLX36dYwfFvW7dcoenXkOe2EAwIYq84ZtPuIf3K8="; 

InquiryStatus requestData = InquiryStatus.builder()
        .partnerServiceId("99123040")
        .customerNo("00007307")
        .virtualAccountNo("9912304000007307")
        .inquiryRequestId("tXid202402111402271707638094")
        .totalAmount("10000.00", "IDR")
        .trxId("2024123000000000000001")
        .tXidVA("NORMALTEST02202401181001033629")
        .build();

NICEPayResponse result = SnapInquiryStatusService.callServiceVACheckStatus(requestData, accessToken, config);

```

```python
bodyCreateToken = (
    builderAccessToken.BuildAccessToken()
    .setGrantType("client_credentials")
    .setAdditionalInfo("")
    .build()
)

totalAmount = {
    "value": "10000.00",
    "currency": "IDR"
}

additionalInfo = {
    "tXidVA": "NORMALTEST02202401181001033629",
    "totalAmount": totalAmount,
    "trxId": "2024123000000000000001",
}

bodyInquiryVA = (
    builderVirtualAccount.BuildInquiryVA()
    .setPartnerServiceId("99123040")
    .setCustomerNo("00007307")
    .setVirtualAccountNo("9912304000007307")
    .setInquiryRequestId("tXid202402111402271707638094")
    .setAdditionalInfo(additionalInfo)
    .build()
)

environment = (builderEnvironment.BuildEnvironment()
               .isCloud(False)
               .isProduction(False)
               .build())

result = SnapService.serviceTransaction(
    bodyCreateToken.jsonAccessToken(),
    bodyInquiryVA.jsonVAInquiry(),
    ConstantsEndpoints.inquiryVA(),
    environment
)

```

C#

```csharp
string clientId = "NORMALTEST";
string privateKey = "_PRIVATE_KEY"; // replace with actual private key
string timestamp = "2024-12-31T10:11:40+07:00";
string clientSecret = "_CLIENT_SECRET"; // replace with actual client secret
string channelId = "NORMALTEST";
bool isProduction = false;
bool isCloudServer = true;

string signature = SignatureGeneratorUtils.GenerateSignature(privateKey, clientId, timestamp);

var tokenRequester = new AccessTokenRequester();
string accessTokenResponse = await tokenRequester.GetAccessTokenAsync(clientId, signature, timestamp, isProduction, isCloudServer);
dynamic accessTokenObject = JObject.Parse(accessTokenResponse);
string accessToken = accessTokenObject.accessToken;

ApiEndpoints apiEndpoints = new ApiEndpoints();
APIService vaService = new APIService(apiEndpoints, clientSecret, clientId, channelId, isProduction, isCloudServer);
SnapVaServices requestBodyGenerator = new SnapVaServices(clientId);

// Values from your provided data
string VA_NO = "9912304000007307";
string trxID = "2024123000000000000001";
string Amount = "10000.00";
string txidVa = "NORMALTEST02202401181001033629";

string inquiryRequestBody = requestBodyGenerator.GenerateInquiryRequest(
    customerNo: "00007307",
    virtualAccountNo: VA_NO,
    inquiryRequestId: "tXid202402111402271707638094",
    value: Amount,
    currency: "IDR",
    trxId: trxID,
    tXidVA: txidVa
);

string externalId = "tXid202402111402271707638094";
string inquiryResponse = await vaService.SendPostRequest(apiEndpoints.InquiryVA, accessToken, timestamp, inquiryRequestBody, externalId);

```

Laravel

```php
protected $useProd = false;
protected $useCloud = false;
protected $inquiry_va_endpoint = "/api/v1.0/transfer-va/status";

// Credential
protected $client_id = "CLIENT_KEY_MERCHANT";
protected $key = "_PRIVATE_KEY_MERCHANT";
protected $client_secret = "_CLIENT_SECRET_MERCHANT";
protected $access_token = "_ACCESS_TOKEN_MERCHANT";

$url = HttpUtil::getNicepayDomain($this->useProd, $this->useCloud) . "/nicepay" . $this->inquiry_va_endpoint;

$helper = new Helpers();
$http_method = "POST";

// Use the timestamp from previous data
$x_time_stamp = "2024-12-31T10:11:40+07:00";
$time_stamp = "20241231101140";

$partner_id = $this->client_id;
$client_secret = $this->client_secret;
$access_token = $helper->generateAccessToken($this->client_id, $this->key);

$external_id = "tXid202402111402271707638094";

$totalAmount = [
    "value" => "10000.00",
    "currency" => "IDR"
];

$additionalInfo = [
    "totalAmount" => $totalAmount,
    "trxId" => "2024123000000000000001",
    "tXidVA" => "NORMALTEST02202401181001033629"
];

$body = [
    "partnerServiceId" => "99123040",
    "customerNo" => "00007307",
    "virtualAccountNo" => "9912304000007307",
    "virtualAccountName" => "TEST VA Status",
    "inquiryRequestId" => "tXid202402111402271707638094",
    "trxId" => "2024123000000000000001",
    "totalAmount" => $totalAmount,
    "additionalInfo" => $additionalInfo
];

$string_to_sign = $helper->generateStringToSign(
    $http_method,
    $this->inquiry_va_endpoint,
    $access_token,
    $body,
    $x_time_stamp
);

$signature = $helper->hmacSHA512Encoded(
    $string_to_sign,
    $client_secret,
    OPENSSL_ALGO_SHA512
);

$header = $helper->generateHeader(
    $access_token,
    $x_time_stamp,
    $signature,
    $partner_id,
    $external_id,
    $partner_id . "01"
);

try {
    $response = HttpUtil::postJsonRequestWithHeader($url, $body, $header);
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}

```

PHP Native

```php
$config = NICEPay::builder()
    ->setIsProduction(false)
    ->setPrivateKey($this->oldKeyFormat)
    ->setClientSecret($this->clientSecret)
    ->setPartnerId($this->iMidTest)
    ->setExternalID("tXid202402111402271707638094")
    ->setTimestamp("2024-12-31T10:11:40+07:00")
    ->build();

$parameter = InquiryStatus::builder()
    ->setPartnerServiceId("99123040")
    ->setCustomerNo("00007307")
    ->setVirtualAccountNo("9912304000007307")
    ->setInquiryRequestId("tXid202402111402271707638094")
    ->setTrxId("2024123000000000000001")
    ->setTxIdVA("NORMALTEST02202401181001033629")
    ->setTotalAmount("10000.00", "IDR")
    ->build();

$accessToken = self::getAccessToken($config);
$snapVAService = new SnapVAService($config);

try {
    $response = $snapVAService->inquiryStatus($parameter, $accessToken);
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}

```

```kotlin
val config: NICEPay = NICEPay.Builder()
    .isProduction(false)
    .clientSecret(TestingConstants.NORMALTEST_CLIENT_SECRET)
    .partnerId(I_MID_NORMALTEST)
    .externalID("tXid202402111402271707638094")
    .timestamp("2024-12-31T10:11:40+07:00")
    .privateKey(TestingConstants.PRIVATE_KEY)
    .build()

val accessToken = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJJT05QQVlURVNUIiwiaXNzIjoiTklDRVBBWSIsIm5hbWUiOiJCUklOIiwiZXhwIjoiMjAyNC0wMi0xMVQwODowOTozNVoifQ==.aIybLX36dYwfFvW7dcoenXkOe2EAwIYq84ZtPuIf3K8="

val reqInquiryVA: SnapCheckStatus = SnapCheckStatus.Builder()
    .partnerServiceId("99123040")
    .customerNo("00007307")
    .virtualAccountNo("9912304000007307")
    .inquiryRequestId("tXid202402111402271707638094")
    .totalAmount("10000.00", "IDR")
    .trxId("2024123000000000000001")
    .tXidVA("NORMALTEST02202401181001033629")
    .build()

val snapVirtualAccountService: SnapVirtualAccountService = SnapVirtualAccountServiceImpl()
val response: NICEPayResponse? = snapVirtualAccountService.checkStatus(reqInquiryVA, accessToken, config)

```

CodeIgniter

```php
$this->clientSecret = $testConst::IMID_TEST_CLIENT_SECRET;
$this->oldKeyFormat = $testConst::IMID_TEST_PRIVATE_KEY;
$this->iMidTest = $testConst::IMID_TEST;
$this->merchantKey = $testConst::IMID_COMMON_MERCHANT_KEY;

$this->v2Config = NICEPay::builder()
    ->setIsProduction(false)
    ->build();

$config = NICEPay::builder()
    ->setIsCloudServer(true)
    ->setPrivateKey($this->oldKeyFormat)
    ->setClientSecret($this->clientSecret)
    ->setPartnerId($this->iMidTest)
    ->setExternalID("tXid202402111402271707638094")
    ->setTimestamp("2024-12-31T10:11:40+07:00") 
    ->build();

$inquiryStatusBuilder = InquiryStatus::builder();
$parameter = $inquiryStatusBuilder
    ->setPartnerServiceId("99123040")
    ->setCustomerNo("00007307")
    ->setVirtualAccountNo("9912304000007307")
    ->setInquiryRequestId("tXid202402111402271707638094")
    ->setTrxId("2024123000000000000001")
    ->setTxIdVA("NORMALTEST02202401181001033629")
    ->setTotalAmount("10000.00", "IDR")
    ->build();

$accessToken = self::getAccessToken($config);
$snapVAService = new SnapVAService();

try {
    $response = $snapVAService->inquiryStatus($parameter, $accessToken, $config);
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}

```
:::



## Response Parameter

:::CodeblockTabs
Sample Response

```json
{
  "responseCode": "2002600",
  "responseMessage": "Successful",
  "virtualAccountData": {
    "partnerServiceId": "86230927",
    "customerNo": "87654321",
    "virtualAccountNo": "8623092787654321",
    "inquiryRequestId": "11032020240313",
    "totalAmount": {
      "value": "10000.00",
      "currency": "IDR"
    }
  },
  "additionalInfo": {
    "virtualAccountName": "John Test",
    "trxId": "2020102900000000000001",
    "transactionStatusDesc": "success",
    "latestTransactionStatus": "00",
    "bankCd": "CENA",
    "tXidVA": "OPENFIX0010220221107161035699",
    "goodsNm": "Test",
    "vacctValidDt": "20221110",
    "vacctValidTm": "161037",
    "hashedSourceAccountNo": "abcdefghijklmnopqrstuvwxyz123456",
    "sourceBankCode": "008"
  }
}
```
:::

