TingeeBox devices
Manage TingeeBox devices: read the security code, show QR codes, and manage device–shop links.
Read security code
API: POST /v1/device/read-security-code
- Node.js
- Java
- C#
- PHP
const result = await client.device.readSecurityCode({ uuid: 'DEVICE_UUID' });
var req = new OpenApiReadSecurityCodeDto();
req.setUuid("DEVICE_UUID");
var result = client.device.readSecurityCode(req);
var result = await client.Device.ReadSecurityCodeAsync(new OpenApiReadSecurityCodeDto { Uuid = "DEVICE_UUID" });
$result = $client->device->readSecurityCode(uuid: 'DEVICE_UUID');
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
uuid | string | ✓ | Device UUID |
Response
Returns the standard { code, message } response, without data.
Read amount
API: POST /v1/device/read-amount
- Node.js
- Java
- C#
- PHP
const result = await client.device.readAmount({
uuid: 'DEVICE_UUID',
transactionId: 'TXN_001',
amount: 500000,
bankBin: '970418',
});
var req = new BIDVOpenApiReadAmountDto();
req.setUuid("DEVICE_UUID");
req.setTransactionId("TXN_001");
req.setAmount(500000);
req.setBankBin("970418");
var result = client.device.readAmount(req);
var result = await client.Device.ReadAmountAsync(new BIDVOpenApiReadAmountDto
{
Uuid = "DEVICE_UUID",
TransactionId = "TXN_001",
Amount = 500000,
BankBin = "970418",
});
$result = $client->device->readAmount(
uuid: 'DEVICE_UUID',
transactionId: 'TXN_001',
amount: 500000,
bankBin: '970418',
);
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
uuid | string | ✓ | Device UUID |
transactionId | string | ✓ | Transaction ID |
amount | number | ✓ | Amount |
bankBin | string | ✓ | Bank BIN. Use BankBinEnum |
firstDisplayText | string | ✕ | Display line 1 |
secondDisplayText | string | ✕ | Display line 2 |
thirdDisplayText | string | ✕ | Display line 3 |
playSound | boolean | ✕ | Turn sound on/off |
Response
Returns the standard { code, message } response, without data.
Show QR code
API: POST /v1/device/show-qr-code
- Node.js
- Java
- C#
- PHP
const result = await client.device.showQrCode({
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
amount: 500000,
qrCode: 'QR_STRING...',
bankBin: '970418',
});
var req = new OpenApiShowQRCodeDto();
req.setUuid("DEVICE_UUID");
req.setVaAccountNumber("V1T199988811");
req.setAmount(500000);
req.setQrCode("QR_STRING...");
req.setBankBin("970418");
var result = client.device.showQrCode(req);
var result = await client.Device.ShowQrCodeAsync(new OpenApiShowQRCodeDto
{
Uuid = "DEVICE_UUID",
VaAccountNumber = "V1T199988811",
Amount = 500000,
QrCode = "QR_STRING...",
BankBin = "970418",
});
$result = $client->device->showQrCode(
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
amount: 500000,
qrCode: 'QR_STRING...',
bankBin: '970418',
);
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
uuid | string | ✓ | Device UUID |
amount | number | ✓ | Amount to display |
qrCode | string | ✓ | QR code string |
vaAccountNumber | string | ✕ | Virtual account number |
bankBin | string | ✕ | Bank BIN. Use BankBinEnum |
bankName | string | ✕ | Bank name. Use BankNameEnum |
deviceType | string | ✕ | Device type |
firstText | string | ✕ | Display line 1 |
secondText | string | ✕ | Display line 2 |
thirdText | string | ✕ | Display line 3 |
showTime | number | ✕ | Display duration (seconds) |
isStaticQr | boolean | ✕ | Whether the QR is static |
playSound | boolean | ✕ | Turn sound on/off |
merchantId | number | ✕ | Merchant ID |
Response
Returns the standard { code, message } response, without data.
Generate and show dynamic QR
API: POST /v1/device/generate-and-show-dynamic-qr-code
- Node.js
- Java
- C#
- PHP
const result = await client.device.generateAndShowDynamicQrCode({
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
qrCodeType: 'dynamic-one-time-payment',
amount: 500000,
expireInMinute: 30,
});
var req = new OpenApiGenerateAndShowDynamicQrCodeDto();
req.setUuid("DEVICE_UUID");
req.setVaAccountNumber("V1T199988811");
req.setQrCodeType("dynamic-one-time-payment");
req.setAmount(500000);
req.setExpireInMinute(30);
var result = client.device.generateAndShowDynamicQrCode(req);
var result = await client.Device.GenerateAndShowDynamicQrCodeAsync(
new OpenApiGenerateAndShowDynamicQrCodeDto
{
Uuid = "DEVICE_UUID",
VaAccountNumber = "V1T199988811",
QrCodeType = "dynamic-one-time-payment",
Amount = 500000,
ExpireInMinute = 30,
});
$result = $client->device->generateAndShowDynamicQrCode(
uuid: 'DEVICE_UUID',
vaAccountNumber: 'V1T199988811',
qrCodeType: 'dynamic-one-time-payment',
amount: 500000,
expireInMinute: 30,
);
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
uuid | string | ✓ | Device UUID |
vaAccountNumber | string | ✓ | Virtual account number |
qrCodeType | string | ✓ | dynamic-one-time-payment or dynamic-recurring-payment |
amount | number | ✕ | Amount |
bankBin | string | ✕ | Bank BIN. Use BankBinEnum |
purpose | string | ✕ | Payment description |
expireInMinute | number | ✕ | Expires after N minutes |
extraInfo | string | ✕ | Additional information |
deviceType | string | ✕ | Device type |
firstText | string | ✕ | Display line 1 |
secondText | string | ✕ | Display line 2 |
thirdText | string | ✕ | Display line 3 |
showTime | number | ✕ | Display duration (seconds) |
playSound | boolean | ✕ | Turn sound on/off |
readAmountAfterPay | boolean | ✕ | Read out the amount after payment |
merchantId | number | ✕ | Merchant ID |
Add device to shop
API: POST /v1/device/add-device-to-shop
- Node.js
- Java
- C#
- PHP
const result = await client.device.addDeviceToShop({
uuid: 'DEVICE_UUID',
securityCode: '123456',
appType: 'tingee-web',
shopIds: [1001],
});
var req = new OpenApiAddDeviceToShop();
req.setUuid("DEVICE_UUID");
req.setSecurityCode("123456");
req.setAppType("tingee-web");
req.setShopIds(List.of(1001));
var result = client.device.addDeviceToShop(req);
var result = await client.Device.AddDeviceToShopAsync(new OpenApiAddDeviceToShop
{
Uuid = "DEVICE_UUID",
SecurityCode = "123456",
AppType = "tingee-web",
ShopIds = new[] { 1001 },
});
$result = $client->device->addDeviceToShop(
uuid: 'DEVICE_UUID',
securityCode: '123456',
appType: 'tingee-web',
shopIds: [1001],
);
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
uuid | string | ✓ | Device UUID |
securityCode | string | ✓ | Device security code |
appType | string | ✓ | App type (e.g. tingee-web) |
shopIds | number[] | ✕ | List of shop IDs |
vaAccountNumbers | string[] | ✕ | List of VA numbers to link |
merchantId | number | ✕ | Merchant ID |
masterMerchantId | number | ✕ | Master Merchant ID |
Response
{
"code": "00",
"message": "Success",
"data": [
{ "type": "tingee-box-3pro", "uuid": "DEVICE_UUID" }
]
}
| Field | Type | Description |
|---|---|---|
data[].type | string | Device type |
data[].uuid | string | Device UUID |
List devices
API: POST /v1/device/get-paging
- Node.js
- Java
- C#
- PHP
const result = await client.device.getPaging({
skipCount: 0,
maxResultCount: 10,
merchantId: 12345,
});
var req = new OpenApiGetPagingDeviceInputDto();
req.setSkipCount(0);
req.setMaxResultCount(10);
req.setMerchantId(12345);
var result = client.device.getPaging(req);
var result = await client.Device.GetPagingAsync(new OpenApiGetPagingDeviceInputDto
{
SkipCount = 0,
MaxResultCount = 10,
MerchantId = 12345,
});
$result = $client->device->getPaging(
skipCount: 0,
maxResultCount: 10,
merchantId: 12345,
);
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
skipCount | number | ✓ | Number of records to skip |
maxResultCount | number | ✓ | Maximum number of records |
merchantId | number | ✓ | Merchant ID |
filter | string | ✕ | Filter by keyword |
sorting | string | ✕ | Sort order |
type | string | ✕ | Filter by device type |
Response
Returns PagedResultDto<DeviceDto> with totalCount and an items array.
Devices linked to a Shop/VA
API: POST /v1/device/get-devices-link-to-shop-or-va
- Node.js
- Java
- C#
- PHP
const result = await client.device.getDevicesLinkToShopOrVa({
merchantId: 12345,
shopId: 1001,
vaAccountNumber: 'V1T199988811',
});
var req = new OpenApiGetDevicesLinkToShopOrVA();
req.setMerchantId(12345);
req.setShopId(1001);
req.setVaAccountNumber("V1T199988811");
var result = client.device.getDevicesLinkToShopOrVa(req);
var result = await client.Device.GetDevicesLinkToShopOrVaAsync(
new OpenApiGetDevicesLinkToShopOrVA
{
MerchantId = 12345,
ShopId = 1001,
VaAccountNumber = "V1T199988811",
});
$result = $client->device->getDevicesLinkToShopOrVa(
merchantId: 12345,
shopId: 1001,
vaAccountNumber: 'V1T199988811',
);
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
merchantId | number | ✓ | Merchant ID |
shopId | number | ✓ | Shop ID |
vaAccountNumber | string | ✓ | Virtual account number |
Response
{
"code": "00",
"message": "Success",
"data": [
{ "type": "tingee-box-3pro", "uuid": "DEVICE_UUID" }
]
}
Other methods
| Method | Description |
|---|---|
showDynamicQrCode(body) | Show a dynamic QR on the device (same parameters as showQrCode) |
showStaticQrCode(body) | Show a static QR on the device (same parameters as showQrCode) |
readPartnerSecurityCode(body) | Read the partner security code (uuid, securityCode, merchantId?) |
readAmountLinkToMerchant(body) | Read the amount for a linked Merchant (same parameters as readAmount + merchantId) |
updateShopDeviceLinkStatus(body) | Update the device–shop link status |
reset(query) | Reset the device (uuid) — API docs |