Terminal Parameters
Downloads legacy VIPAY terminal_parameters (EMV kernel config, acquirer lists, CA keys, contact/contactless settings). Call this after Config during activation.
The response is MSK-encrypted like other POS payloads. The decrypted inner bytes are gzip-compressed JSON (content_encoding: gzip). Production payloads are large (~17 KB gzipped), so the API returns TR31-DATA-CHUNKED with multiple AES-CBC blocks (one per AWS size limit).
Authentication
POS Attestation Auth — same as Config.
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Attestation {token} from POST /pos/attest |
X-Device-Id | Yes | Device ID (e.g. POS-8F3A2C91) |
Request
No request body.
Response — 200 OK (chunked example)
{
"format": "TR31-DATA-CHUNKED",
"content_encoding": "gzip",
"mode": "CBC",
"key_kcv": "C3D4E5",
"chunks": [
{
"ciphertext": "A1B2C3...",
"initialization_vector": "000102030405060708090A0B0C0D0E0F",
"mode": "CBC"
}
]
}
Small payloads may use a single envelope instead:
{
"format": "TR31-DATA",
"content_encoding": "gzip",
"ciphertext": "A1B2C3...",
"initialization_vector": "000102030405060708090A0B0C0D0E0F",
"mode": "CBC",
"key_kcv": "C3D4E5"
}
| Field | Description |
|---|---|
format | TR31-DATA (single block) or TR31-DATA-CHUNKED (large payloads) |
content_encoding | Always gzip — inner plaintext after decrypt is gzipped JSON |
chunks | Present when format is TR31-DATA-CHUNKED; decrypt each chunk in order |
ciphertext / initialization_vector | Present when format is TR31-DATA |
Decrypt on device
1. MSK-decrypt each chunk (or single ciphertext) → PKCS7-unpad → raw bytes
2. Concatenate chunk bytes in order
3. Gunzip → UTF-8 JSON object
4. Assign to config.terminal_parameters (or equivalent)
Use the same MSK decrypt logic as Config; only the inner payload is gzip instead of plain JSON.
Merge order (server-side)
The JSON inside the gzip layer is built from:
- Server default terminal config
catalog_device.emv_defaults(when the device has a catalog entry)merchant_devices.emv_config(device-specific overrides)
Activation flow
| Step | Endpoint |
|---|---|
| 7a | POST /pos/config — MSK-encrypted core config |
| 7b | POST /pos/terminal-parameters — MSK-encrypted gzip terminal_parameters |
| 8 | POST /pos/activate |
See Overview and End-to-End Example.