Skip to main content

Terminal Parameters

POST /pos/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.

HeaderRequiredDescription
AuthorizationYesAttestation {token} from POST /pos/attest
X-Device-IdYesDevice 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"
}
FieldDescription
formatTR31-DATA (single block) or TR31-DATA-CHUNKED (large payloads)
content_encodingAlways gzip — inner plaintext after decrypt is gzipped JSON
chunksPresent when format is TR31-DATA-CHUNKED; decrypt each chunk in order
ciphertext / initialization_vectorPresent 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:

  1. Server default terminal config
  2. catalog_device.emv_defaults (when the device has a catalog entry)
  3. merchant_devices.emv_config (device-specific overrides)

Activation flow

StepEndpoint
7aPOST /pos/config — MSK-encrypted core config
7bPOST /pos/terminal-parameters — MSK-encrypted gzip terminal_parameters
8POST /pos/activate

See Overview and End-to-End Example.