Legacy API — deprecated. This page documents the legacy /api/v2 EMV Config endpoints, kept for existing
integrations. New integrations should use the current EMV Config API. Once your PBO group
has been switched over to the current Service API, every endpoint on this page — including reads — returns code: 13310 ("Your group has
open the multi_acquirers;please use the new Service API") instead of working. See the
Service API overview for details.
EMV List
Retrieve the EMV information of a given token bearer.
GET /api/v2/emv
Authorization: Bearer {jwt}Request
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| pageSize | query | number | false | Default 10, query all use -1 |
| pageNumber | query | number | false | Default 1 |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | Example response | Wrapper: Response<T> Data: EmvInfo |
| 401 | Unauthorized | Authentication failed | Data: Response Code |
200 Response
{
"msg": "SUCCESS",
"code": 0,
"data": {
"total": 9,
"current": 1,
"records": [
{
"emvName": "l3-mastercard",
"createdAt": "2024-11-26T02:12:57+0000",
"groupId": "G-15450991",
"paymentMethod": "02",
"id": 1675,
"params": "{\"appVersion\":\"0002\",\"clTransLimit\":99999999,\"defaultDDOL\":\"039F3704\",\"isNewCVMRuleForMC\":true,\"kernelConfiguration\":\"b0\",\"cvmCapabilityCVMRequired\":\"20\",\"clFloorLimit\":0,\"terminalRiskMgmtData\":\"082C00800000000000\",\"defaultTDOL\":\"0F9F02065F2A029A039C0195059F3704\",\"clCVMLimit\":100000,\"cvmCapabilityNoCVM\":\"08\",\"aid\":\"A0000000041010\"}",
"aid": "A0000000041010",
"emvVersion": "v1",
"updatedAt": "2024-11-26T02:12:57+0000"
}
],
"hasNext": false
}
}EMV Create
POST /api/v2/emv
Content-Type: application/json
Authorization: Bearer {jwt}Request
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| params | body | object | true | EMV parameters object containing configuration values |
| emvName | body | string | true | Name of the EMV configuration |
| paymentMethod | body | string | true | Payment method identifier |
EMV Parameters
| Object Key | Type | Comments |
|---|---|---|
| aid | String | List of Application Identifiers (AID) |
| appVersion | String | application version |
| terminalTransactionQualifiers | String | Not available for MC and Amex |
| clFloorLimit | Long | Contactless floor limit, can keep it as 0 for online only |
| clTransLimit | Long | Contactless transaction limit, transaction will be declined if auth amount is exceed this limit |
| clCVMLimit | Long | Contactless CVM limit, If the transaction amount is greater than or equal to the Reader CVM Required Limit, then the reader requires a CVM for the transaction, VISA/UPI/DISCOVER/JCB(greater or equal), MC/Amex(greater) |
| terminalRiskMgmtData | String | Available for MC only |
| defaultDDOL | String | Dynamic Data Authentication Data Object List, Can keep the value in json file as default or "039F3704" |
| defaultTDOL | String | Default Transaction Certificate Data Object List, Can keep the value in json file as default or "0F9F02065F2A029A039C0195059F3704" |
| kernelConfiguration | String | Tag DF811B Available for MC only |
| isNewCVMRuleForMC | boolean | Available for MC only, default is false |
| cvmCapabilityCVMRequired | String | Tag DF8118 |
| cvmCapabilityNoCVM | String | Tag DF8119 |
Body example
{
"params": {
"aid": "A0000000041010",
"appVersion": "0002",
"clCVMLimit": 100000,
"clFloorLimit": 0,
"clTransLimit": 99999999,
"defaultDDOL": "039F3704",
"defaultTDOL": "0F9F02065F2A029A039C0195059F3704",
"isNewCVMRuleForMC": true,
"terminalRiskMgmtData": "082C00800000000000",
"terminalTransactionQualifiers": "36000000"
},
"emvName": "l3-mastercard",
"paymentMethod": "02"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | Example response | Inline |
Response Schema
Status Code 200
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| id | number | false | none | none |
EMV Delete
DELETE /api/v2/emv/{emvId}
Authorization: Bearer {jwt}Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| emvId | path | string | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | OK | None |
Example Response (200)
{
"msg": "SUCCESS",
"code": 0
}EMV Update
Only params is actually persisted by this endpoint, as a merge on top of the existing
params object (top-level keys you send overwrite the matching existing key; keys you omit are left
untouched) — it is not a full replace. emvName and paymentMethod are accepted in the request
body and validated for format, but have no effect on the stored record (the EMV config's name and
payment method can't be changed after creation via this endpoint).
PUT /api/v2/emv/{emvId}
Content-Type: application/json
Authorization: Bearer {jwt}Request
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| params | body | object | true | Keys to merge into the existing EMV parameters — see EMV Parameters for available keys |
| emvName | body | string | false | Validated but not persisted — has no effect on the stored record |
| paymentMethod | body | string | false | Validated but not persisted — has no effect on the stored record |
Params
Request Body Example
Only changing clTransLimit — every other existing key on this EMV config is left untouched:
{
"params": {
"clTransLimit": 50000000
},
"emvName": "l3-mastercard",
"paymentMethod": "02"
}Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK (opens in a new tab) | Example response | Inline |
Example Response (200)
{
"msg": "SUCCESS",
"code": 0
}