Merchant Boarding API Sample Responses (Classic Portal)

Provides example success and error responses to help understand the merchant boarding API response structure and handling.

Merchant Add

Onboard a new merchant with a surcharge program configuration under a TSYS processor.


Response — 200 OK

{
  "status": true,
  "message": "User Added Successfully",
  "Mp_id": 140276,
  "newUserId": 194849,
  "StoreID": {
    "154586": [
      "2319977712"
    ]
  },
  "data": "Success"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringUser Added Successfully on success
Mp_idintegerUnique merchant portal ID assigned to the new merchant
newUserIdintegerUnique user ID assigned to the new merchant account
StoreIDobjectMap of store IDs to their associated EPI numbers. Key = store ID, value = array of EPI identifiers
datastringSuccess on success

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "Invalid Password",
  "data": "Invalid Password"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message
datastringMirrors the message field

Error code reference

statusMeaningTypical cause
trueSuccessMerchant created
falseErrorInvalid password or missing required fields

Merchant Update

Update the details of an existing merchant account.


Response — 200 OK

{
  "status": true,
  "message": "Merchant Updated Successfully",
  "Mp_id": "140276",
  "newUserId": "194849",
  "StoreID": {
    "154586": [
      "2319977712"
    ]
  },
  "data": "Success"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringMerchant Updated Successfully on success
Mp_idstringMerchant portal ID of the updated merchant
newUserIdstringUser ID of the updated merchant account
StoreIDobjectMap of store IDs to their associated EPI numbers
datastringSuccess on success

Note: On update, Mp_id and newUserId are returned as strings rather than integers as in the Add response.


Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "The provided epi or id does not correspond to the specified merchant."
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant updated
falseErrorEPI or merchant ID does not match the specified merchant

Merchant Delete

Delete an existing merchant account.


Response — 200 OK

{
  "status": true,
  "message": "Success"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "User already deleted or username not found"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant deleted
falseErrorMerchant is already deleted or username not found

Merchant View

Retrieve the full configuration details for a merchant, including store and EPI data.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "data": {
    "id": 53109,
    "userId": 83655,
    "parentId": 52323,
    "dbaName": "Valor Store LLC",
    "legalName": "Valor Store",
    "firstName": "MERCHANT",
    "lastName": "PORTAL",
    "ownerName": "Valor ISO LLC",
    "emailId": "[email protected]",
    "mobile": "8327287578",
    "legalAddress": "Test Address",
    "legalCity": "CLIFFSIDE PARK",
    "legalState": "28",
    "selectedState": "28",
    "legalCountry": "US",
    "legalZipCode": "07010",
    "legalTimezone": "EST",
    "logo": "MERCHANT",
    "role": 10,
    "userType": 4,
    "isTxnAllowed": 1,
    "businessType": "10",
    "storeData": [
      {
        "id": 58887,
        "storeName": "EL TRI MX RESTA Add",
        "storeAddress": "4100 JOHNSTON ST",
        "storeCity": "LAFAYETTE",
        "storeState": "16",
        "selectedState": "LA - Louisiana",
        "storeCountry": "US",
        "storeZipCode": "70503",
        "storeTimezone": "EST",
        "superVisorName": "EL TRI MX RESTA",
        "superVisorEmail": "[email protected]",
        "superVisorContact": "3377040344",
        "mccCode": "5812",
        "selectedMCC": "5812 - EATING PLACES-RESTAURANTS",
        "epiData": [
          {
            "id": 93807,
            "epi": "2319936375",
            "device": 139,
            "deviceType": "Soft Pos",
            "processor": 1,
            "epiLabel": "Virtual Terminal",
            "features": {
              "tip": { "enabled": false, "value": [5, 10, 15, 20] },
              "surcharge": { "enabled": false, "value": "4.00" },
              "tax": { "enabled": false, "value": "0" }
            },
            "last_txn_date": null,
            "serialNoLockStatus": 0,
            "app_download": 1,
            "param_download": 1,
            "assigned_app_version": "1.0.0",
            "valorConnect": "0",
            "processorData": [
              {
                "mid": "887000003193",
                "vNumber": "75021674",
                "storeNo": "5999",
                "termNo": "1515",
                "association": "949006",
                "chain": "111111",
                "agent": "0001",
                "binnumber": "999991",
                "agentBank": "000000",
                "industry": "Retail",
                "EBTcash": 0,
                "EBTfood": 0,
                "surchargeIndicator": 1,
                "surchargePercentage": "4.00",
                "label": "MERCHANT PORTAL LOGIN",
                "programType": "surcharge",
                "vendor": 2,
                "status": 1,
                "app_key": "yPmCz8MMnO*******y7d7G2GVc4",
                "auth_token": "jQGF6gvGxw*******Ep0FkXcd",
                "name_on_account": "Abu",
                "id": 95943
              }
            ]
          }
        ]
      }
    ]
  }
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
dataobjectFull merchant details object

data — merchant fields

FieldTypeDescription
idintegerInternal merchant record ID
userIdintegerMerchant's user account ID
parentIdintegerParent ISO or sub-ISO user ID
dbaNamestringMerchant doing-business-as name
legalNamestringMerchant legal entity name
firstNamestringFirst name on the merchant account
lastNamestringLast name on the merchant account
ownerNamestringName of the owning ISO
emailIdstringMerchant contact email
mobilestringMerchant contact phone number
legalAddressstringMerchant legal street address
legalCitystringMerchant legal city
legalStatestringMerchant legal state code
legalCountrystringMerchant legal country code (e.g. US)
legalZipCodestringMerchant legal ZIP code
legalTimezonestringMerchant timezone (e.g. EST)
roleintegerRole identifier
userTypeintegerUser type identifier
isTxnAllowedinteger1 if transactions are permitted; 0 otherwise
businessTypestringBusiness type code
storeDataarrayArray of store objects (see below)

storeData — store fields

FieldTypeDescription
idintegerInternal store record ID
storeNamestringStore name
storeAddressstringStore street address
storeCitystringStore city
storeStatestringStore state code
selectedStatestringState label (e.g. LA - Louisiana)
storeCountrystringStore country code
storeZipCodestringStore ZIP code
storeTimezonestringStore timezone
superVisorNamestringSupervisor or DBA name for the store
superVisorEmailstringSupervisor email address
superVisorContactstringSupervisor contact number
mccCodestringMerchant category code
selectedMCCstringMCC with description (e.g. 5812 - EATING PLACES-RESTAURANTS)
epiDataarrayArray of EPI (terminal) objects (see below)

epiData — EPI / terminal fields

FieldTypeDescription
idintegerInternal EPI record ID
epistringTerminal EPI identifier
deviceintegerDevice model code
deviceTypestringDevice type description (e.g. Soft Pos)
processorintegerProcessor identifier
epiLabelstringTerminal display label
features.tip.enabledbooleantrue if tip collection is enabled
features.tip.valuearrayPreset tip percentage options
features.surcharge.enabledbooleantrue if surcharge is enabled
features.surcharge.valuestringSurcharge percentage value
features.tax.enabledbooleantrue if tax is enabled
features.tax.valuestringTax percentage value
last_txn_datestring | nullDate of the last transaction on this terminal
serialNoLockStatusinteger1 if serial number lock is active; 0 otherwise
app_downloadinteger1 if app download is enabled
param_downloadinteger1 if parameter download is enabled
assigned_app_versionstringCurrently assigned app version
valorConnectstringValorConnect status flag
processorDataarrayArray of processor configuration objects (see below)

processorData — processor configuration fields

FieldTypeDescription
midstringMerchant ID
vNumberstringTerminal ID (V-number)
storeNostringStore number
termNostringTerminal number
associationstringAssociation number
chainstringChain number
agentstringAgent number
binnumberstringBIN number
agentBankstringAgent bank number
industrystringIndustry type (e.g. Retail)
EBTcashinteger1 if EBT cash is enabled; 0 otherwise
EBTfoodinteger1 if EBT food is enabled; 0 otherwise
EbtNostringEBT number, if applicable
surchargeIndicatorinteger1 if surcharge is enabled; 0 otherwise
surchargePercentagestringSurcharge percentage rate
labelstringTerminal label
programTypestringProcessing program type (e.g. surcharge, traditional)
vendorintegerVendor identifier
statusinteger1 if active; 0 if inactive
app_keystringPartially masked App Key for this terminal
auth_tokenstringPartially masked authentication token
name_on_accountstringName on the merchant account
idintegerInternal processor record ID

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "Please Enter Mp_id or Epi_id"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant details returned
falseErrorNeither Mp_id nor Epi_id was provided in the request

Merchant Status

Update the active or inactive status of a merchant account.


Response — 200 OK

{
  "status": true,
  "message": "Success"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success

Response — 400 (Validation Error)

{
  "status": false,
  "message": "merchantIds is not iterable"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant status updated
falseErrormerchantIds parameter is missing or not provided as an iterable value

Merchant List

Retrieve a paginated list of merchants under an ISO or sub-ISO account.


Response — 200 OK

{
  "code": 200,
  "status": "OK",
  "message": "SUCCESS",
  "data": [
    {
      "DEVICE_COUNT": 1,
      "MTD_VOLUME": 0,
      "STORE_COUNT": 1,
      "PROCESSOR_LIST": "1",
      "LAST_TXN_DATE": null,
      "USER_ID": 52331,
      "USER_TYPE": 4,
      "PARENT_ID": 52323,
      "UPDATED_DATE": "2026-04-27T10:05:08.000Z",
      "MERCHANT_NAME": "MERCHANT PORTAL",
      "ROLE_ID": 10,
      "MOBILE_NO": "8327287578",
      "EMAIL_ID": "[email protected]",
      "STATUS": 1,
      "CREATED_DATE": "2024-05-02T06:52:13.000Z",
      "DBA_NAME": "Valor Store LLC",
      "MP_ID": 29162,
      "CRM_BOARDING": 1,
      "SUBISO_NAME": null,
      "ISO_NAME": "Valor ISO LLC",
      "BOARDED_ON": "05/02/24 02:52 AM (EST)"
    }
  ],
  "number_of_records": 1,
  "page_number": 1,
  "total_pages": 923,
  "total_count": 923,
  "page_size": 1
}

Response fields — top level

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringOK on success
messagestringSUCCESS on success
dataarrayArray of merchant summary objects
number_of_recordsintegerNumber of records returned on this page
page_numberintegerCurrent page number
total_pagesintegerTotal number of pages available
total_countintegerTotal number of merchants
page_sizeintegerNumber of records per page

data — merchant summary fields

FieldTypeDescription
DEVICE_COUNTintegerNumber of terminals (EPIs) assigned to this merchant
MTD_VOLUMEnumberMonth-to-date transaction volume in cents
STORE_COUNTintegerNumber of stores under this merchant
PROCESSOR_LISTstringComma-separated list of processor IDs assigned
LAST_TXN_DATEstring | nullDate of the most recent transaction; null if none
USER_IDintegerUser account ID
USER_TYPEintegerUser type identifier
PARENT_IDintegerParent ISO user ID
UPDATED_DATEstringLast updated timestamp (ISO 8601)
MERCHANT_NAMEstringMerchant account name
ROLE_IDintegerRole identifier
MOBILE_NOstringMerchant contact phone number
EMAIL_IDstringMerchant contact email
STATUSinteger1 if active; 0 if inactive
CREATED_DATEstringAccount creation timestamp (ISO 8601)
DBA_NAMEstringMerchant doing-business-as name
MP_IDintegerMerchant portal ID
CRM_BOARDINGinteger1 if boarded via CRM; 0 otherwise
SUBISO_NAMEstring | nullSub-ISO name, if applicable
ISO_NAMEstringISO name
BOARDED_ONstringBoarding timestamp in MM/DD/YY HH:MM AM/PM (TZ) format

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "Invalid User",
  "data": "Invalid User"
}

Response fields

FieldTypeDescription
statusbooleanfalse when authentication fails
codestringHTTP status code as a string ("400")
messagestringrror message
datastringMirrors the message field

Error code reference

statusMeaningTypical cause
OKSuccessMerchant list returned
falseAuthentication errorUser credentials are invalid

Store Add

Add a new store to an existing merchant account.


Response — 200 OK

{
  "status": true,
  "message": "Merchant Store Updated Successfully",
  "Mp_id": "140276",
  "newUserId": "194849",
  "StoreID": {
    "154592": [
      "2319977714"
    ]
  },
  "data": "Success"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringMerchant Store Updated Successfully on success
Mp_idstringMerchant portal ID
newUserIdstringUser ID of the merchant
StoreIDobjectMap of the new store ID to its associated EPI numbers
datastringSuccess on success

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "Invalid Password",
  "data": "Invalid Password"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message
datastringMirrors the message field

Error code reference

statusMeaningTypical cause
trueSuccessStore created and added to the merchant
falseErrorInvalid password or missing required fields

Store Delete

Remove a store from an existing merchant account.


Response — 200 OK

{
  "status": true,
  "message": "Deleted Sucessfully"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringDeleted Sucessfully on success

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "This merchant does not belong to this ISO"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessStore deleted
falseErrorMerchant does not belong to the requesting ISO

Copy Parameter API

Copy device parameters from one terminal (EPI) to another.


Response — 200 OK

{
  "code": 200,
  "status": "OK",
  "message": "SUCCESS"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringOK on success
messagestringSUCCESS on success

Response — 400 (Validation Error)

{
  "code": 400,
  "status": "FAILED",
  "errors": "The given EPI has been wrong."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
errorsstringError message describing the reason for failure

Error code reference

statusMeaningTypical cause
OKSuccessParameters copied to the target EPI
FAILEDErrorSource or target EPI is invalid

Fetch APP ID & APP Keys

Retrieve the App ID and App Keys associated with a merchant's terminals.


Response — 200 OK

{
  "code": 200,
  "status": "OK",
  "message": "SUCCESS",
  "data": {
    "APP_ID": "Vw7RdW******iqeahSonN",
    "devices": [
      {
        "EPI": "2319916062",
        "DEVICE_NAME": "VT #4",
        "DEVICE_TYPE": "Virtual Terminal",
        "APP_KEY": "Tv26Mi******2XwQE58jU"
      }
    ]
  }
}

Response fields — top level

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringOK on success
messagestringSUCCESS on success
dataobjectApp credentials object

data fields

FieldTypeDescription
APP_IDstringPartially masked App ID shared across all terminals for this merchant
devicesarrayArray of device credential objects

devices — device credential fields

FieldTypeDescription
EPIstringTerminal EPI identifier
DEVICE_NAMEstringTerminal display name (e.g. VT #4)
DEVICE_TYPEstringTerminal type (e.g. Virtual Terminal)
APP_KEYstringPartially masked App Key unique to this terminal

Response — 400 (Validation Error)

{
  "code": 400,
  "status": "FAILED",
  "errors": "APP ID does not exist. Please generate an APP ID from the Valor Portal."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
errorsstringError message describing the reason for failure

Error code reference

statusMeaningTypical cause
OKSuccessApp ID and App Keys returned
FAILEDErrorApp ID has not yet been generated — create one in the Valor Portal first

EPI Add

Add a new terminal (EPI) to an existing merchant store.


Response — 200 OK

{
  "status": true,
  "message": "Merchant EPI Updated Successfully",
  "Mp_id": "140279",
  "newUserId": "194852",
  "StoreID": {
    "154595": [
      "2319977717"
    ]
  },
  "data": "Success"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringMerchant EPI Updated Successfully on success
Mp_idstringMerchant portal ID
newUserIdstringUser ID of the merchant
StoreIDobjectMap of the store ID to the newly added EPI numbers
datastringSuccess on success

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "Invalid Password",
  "data": "Invalid Password"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message
datastringMirrors the message field

Error code reference

statusMeaningTypical cause
trueSuccessEPI added to the merchant store
falseErrorInvalid password or missing required fields

EPI Status Update

Update the active or inactive status of a terminal (EPI).


Response — 200 OK (Already Active)

Returned when the EPI is already in the requested status state.

{
  "status": true,
  "message": "Success",
  "data": "Device is already in active status."
}

Response — 200 OK (Merchant Inactive)

Returned when the EPI status cannot be changed because the parent merchant is inactive.

{
  "status": true,
  "message": "Success",
  "data": "Merchant is In-Active. Could not update the EPI."
}

Response fields

FieldTypeDescription
statusbooleantrue for both informational states
messagestringSuccess on both
datastringInformational message describing the current state or reason the update was not applied

Note: Both responses return status: true. Use the data field to determine whether the status was actually changed or if a blocking condition was encountered.


Error code reference

data valueMeaning
Device is already in active status.EPI is already in the requested state; no change made
Merchant is In-Active. Could not update the EPI.Parent merchant is inactive; EPI status cannot be updated

EPI Delete

Delete a terminal (EPI) from a merchant account.


Response — 200 OK (Deleted)

{
  "status": true,
  "message": "EPI Deleted Successfully"
}

Response — 200 OK (Already Deleted)

{
  "status": true,
  "message": "EPI ALREADY DELETED"
}

Response fields

FieldTypeDescription
statusbooleantrue for both states
messagestringOutcome message — either EPI Deleted Successfully or EPI ALREADY DELETED

Note: Both responses return status: true. Check message to determine whether the deletion was newly applied or the EPI was already in a deleted state.


Error code reference

messageMeaning
EPI Deleted SuccessfullyEPI was active and has now been deleted
EPI ALREADY DELETEDEPI was already in a deleted state

EPI View

Retrieve the full configuration details for a specific terminal (EPI), including store and processor data.


Response — 200 OK

The response schema for EPI View is identical to Merchant View. Refer to the Merchant View field reference for full field descriptions.

{
  "status": true,
  "message": "Success",
  "data": {
    "id": 53109,
    "userId": 83655,
    "dbaName": "Valor Store LLC",
    "storeData": [
      {
        "epiData": [
          {
            "epi": "2319936375",
            "epiLabel": "Virtual Terminal",
            "processorData": [
              {
                "mid": "887000003193",
                "surchargeIndicator": 1,
                "surchargePercentage": "4.00",
                "app_key": "yPmCz8MMn*******d7G2GVc4",
                "auth_token": "jQGF6gvGxw6*******p0FkXcd"
              }
            ]
          }
        ]
      }
    ]
  }
}

Response — 400 (Validation Error)

{
  "status": false,
  "message": "Login User Not Belongs to this Mp_Id",
  "data": {
    "message": "Login User Not Belongs to this Mp_Id"
  }
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
messagestringError message
dataobjectContains a nested message field mirroring the top-level message

Error code reference

statusMeaningTypical cause
trueSuccessEPI details returned
falseErrorThe authenticated user does not have access to the specified Mp_Id

EPI Status

Retrieve the current activation status of a terminal (EPI).


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "data": "Device Already In Active Status"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
datastringDescription of the current EPI status

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "Invalid Password",
  "data": "Invalid Password"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message
datastringMirrors the message field

Error code reference

statusMeaningTypical cause
trueSuccessEPI status returned
falseErrorInvalid password or authentication failure

EPI — Generate API Keys

Generate or retrieve the App ID and App Key for a specific terminal (EPI).


Response — 200 OK

{
  "code": 200,
  "status": "OK",
  "message": "App Key already associated with EPI",
  "data": {
    "epi": "2412333540",
    "Mp_Id": 29156,
    "UserId": 52326,
    "device_model": "Virtual Terminal",
    "device_name": "VT #2",
    "appkey": "zOKj0LU*******xQEpSMm",
    "appid": "h6tSvf0C*******15AsWYo"
  }
}

Response fields — top level

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringOK on success
messagestringInformational message (e.g. App Key already associated with EPI if keys already existed)
dataobjectAPI key details object

data fields

FieldTypeDescription
epistringTerminal EPI identifier
Mp_IdintegerMerchant portal ID
UserIdintegerUser ID of the merchant
device_modelstringDevice model description (e.g. Virtual Terminal)
device_namestringTerminal display name (e.g. VT #2)
appkeystringPartially masked App Key for this terminal
appidstringPartially masked App ID for this merchant

Response — 400 (Validation Error)

{
  "code": 400,
  "status": "FAILED",
  "errors": "Invalid EPI."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
errorsstringError message describing the reason for failure

Error code reference

statusMeaningTypical cause
OKSuccessAPI keys generated or retrieved
FAILEDErrorEPI is invalid or not found

EPI Detail

Retrieve the processor parameters and configuration details for a specific terminal (EPI).


Response — 200 OK

{
  "status": true,
  "code": "200",
  "Mp_id": 29156,
  "StoreID": 33168,
  "epi": "2412333540",
  "SerialNo": null,
  "processor_params": {
    "mid": "887000003193",
    "vNumber": "75021674",
    "storeNo": "5999",
    "termNo": "1515",
    "binnumber": "999991",
    "industry": "Retail",
    "agentBank": "000000",
    "chain": "111111",
    "agent": "0001",
    "EBTcash": 0,
    "EBTfood": 0,
    "EbtNo": "",
    "surchargeIndicator": 1,
    "surchargePercentage": "2.00",
    "mid1": "",
    "vNumber1": "",
    "storeNo1": "",
    "termNo1": "",
    "binnumber1": "",
    "industry1": "",
    "agentBank1": "",
    "chain1": "",
    "agent1": "",
    "EBTcash1": 0,
    "EBTfood1": 0,
    "EbtNo1": "",
    "vendor": 2,
    "client_id": "0",
    "status": 1,
    "app_key": "yPmCz8MMnO*******7d7G2GVc4",
    "auth_token": "jQGF6gvG*******p0FkXcd",
    "name_on_account": "Abu"
  },
  "message": "epi Data Exits",
  "StatusUser": 1
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
codestringHTTP status code as a string ("200")
Mp_idintegerMerchant portal ID
StoreIDintegerStore ID this EPI belongs to
epistringTerminal EPI identifier
SerialNostring | nullDevice serial number; null for virtual terminals
processor_paramsobjectProcessor configuration parameters (see below)
messagestringepi Data Exits on success
StatusUserinteger1 if the user/merchant is active; 0 otherwise

processor_params fields

FieldTypeDescription
midstringPrimary merchant ID
vNumberstringPrimary terminal ID (V-number)
storeNostringPrimary store number
termNostringPrimary terminal number
binnumberstringPrimary BIN number
industrystringIndustry type (e.g. Retail)
agentBankstringAgent bank number
chainstringChain number
agentstringAgent number
EBTcashinteger1 if EBT cash is enabled; 0 otherwise
EBTfoodinteger1 if EBT food is enabled; 0 otherwise
EbtNostringEBT number, if applicable
surchargeIndicatorinteger1 if surcharge is enabled; 0 otherwise
surchargePercentagestringSurcharge percentage rate
mid1stringSecondary merchant ID, if applicable
vNumber1stringSecondary terminal ID, if applicable
vendorintegerVendor identifier
client_idstringClient ID
statusinteger1 if active; 0 if inactive
app_keystringPartially masked App Key
auth_tokenstringPartially masked authentication token
name_on_accountstringName on the merchant account

Response — 400 (Validation Error)

{
  "status": false,
  "message": "This epi does not belong to this iso"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessEPI detail returned
falseErrorEPI does not belong to the requesting ISO

EPI Txn Date

Retrieve transaction volume statistics and date information for a specific terminal (EPI).


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "data": [
    {
      "MTD_VOLUME": "18354.53",
      "LTD_VOLUME": "16883214.00",
      "last_txn_date": "2026-04-25",
      "first_txn_Date": "2024-05-06"
    }
  ],
  "epi_status": [
    {
      "is_deleted": 0,
      "status": 1
    }
  ]
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
dataarrayArray containing transaction volume statistics
epi_statusarrayArray containing the current EPI status flags

data fields

FieldTypeDescription
MTD_VOLUMEstringMonth-to-date transaction volume in decimal format
LTD_VOLUMEstringLifetime-to-date transaction volume in decimal format
last_txn_datestringDate of the most recent transaction in YYYY-MM-DD format
first_txn_DatestringDate of the first transaction in YYYY-MM-DD format

epi_status fields

FieldTypeDescription
is_deletedinteger1 if the EPI is deleted; 0 otherwise
statusinteger1 if the EPI is active; 0 if inactive

Response — 400 (No Records)

{
  "status": false,
  "message": "No Record Found",
  "data": []
}

Response fields

FieldTypeDescription
statusbooleanfalse when no records are found
messagestringNo Record Found
dataarrayEmpty array

Error code reference

statusMeaningTypical cause
trueSuccessTransaction statistics returned
falseNot foundNo transaction records exist for this EPI

Check EPI

Verify that a terminal (EPI) exists and retrieve its full configuration details.


Response — 200 OK

{
  "status": true,
  "code": "200",
  "Mp_id": 29156,
  "newUserId": 52326,
  "StoreID": 33168,
  "epi": "2412333540",
  "SerialNo": null,
  "processor_params": {
    "mid": "887000003193",
    "vNumber": "75021674",
    "surchargeIndicator": 1,
    "surchargePercentage": "2.00",
    "app_key": "yPmCz8********7G2GVc4",
    "auth_token": "jQGF6gv********IV3Ep0FkXcd",
    "name_on_account": "Abu"
  },
  "optStatus": 1,
  "statusEpi": 1,
  "createdDate": "2024-05-02",
  "createdBy": 52323,
  "isDeleted": 0,
  "deletedOn": null,
  "deletedBy": null
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
codestringHTTP status code as a string ("200")
Mp_idintegerMerchant portal ID
newUserIdintegerUser ID of the merchant
StoreIDintegerStore ID this EPI belongs to
epistringTerminal EPI identifier
SerialNostring | nullDevice serial number; null for virtual terminals
processor_paramsobjectProcessor configuration (see EPI Detail for full field reference)
optStatusintegerOptional feature status flag
statusEpiinteger1 if the EPI is active; 0 if inactive
createdDatestringEPI creation date in YYYY-MM-DD format
createdByintegerUser ID of the account that created this EPI
isDeletedinteger1 if deleted; 0 otherwise
deletedOnstring | nullDeletion timestamp; null if not deleted
deletedByinteger | nullUser ID of the account that deleted this EPI; null if not deleted

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "epi Data Not Exits"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
codestringHTTP status code as a string ("400")
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessEPI found and details returned
falseErrorEPI does not exist

Credential

Validate a user's credentials and retrieve their user ID.


Response — 200 OK

{
  "status": true,
  "code": "200",
  "UserId": 4389
}

Response fields

FieldTypeDescription
statusbooleantrue on successful authentication
codestringHTTP status code as a string ("200")
UserIdintegerAuthenticated user's unique ID

Response — 400 (Validation Error)

{
  "status": false,
  "code": "400",
  "message": "Invalid User",
  "data": "Invalid User"
}

Response fields

FieldTypeDescription
statusbooleanfalse when authentication fails
codestringHTTP status code as a string ("400")
messagestringError message
datastringMirrors the message field

Error code reference

statusMeaningTypical cause
trueSuccessCredentials valid; user ID returned
falseErrorUsername or password is invalid

EPI Deactivate

Deactivate a terminal (EPI) to prevent it from processing transactions.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "data": "Merchant is In-Active. Could not update the EPI."
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
datastringInformational message about the deactivation outcome

Note: A status: true response with a data message of "Merchant is In-Active. Could not update the EPI." indicates that the parent merchant is already inactive and the EPI state could not be changed. Check data to confirm the deactivation was applied.


Response — 400 (Validation Error)

{
  "status": false,
  "message": "This epi does not belong to this ISO"
}

Response fields

FieldTypeDescription
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccess (or blocked)EPI deactivated, or parent merchant is already inactive
falseErrorEPI does not belong to the requesting ISO

Device Parameter API

Push updated device parameters to a terminal.


Response — 200 OK

{
  "code": 200,
  "status": "OK",
  "message": "SUCCESS"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringOK on success
messagestringSUCCESS on success

Response — 400 (Validation Error)

{
  "code": 400,
  "status": "FAILED",
  "errors": "The 'descriptor_enabled' depends on the 'generate_pay_now_link'."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
errorsstringError message describing the dependency or validation failure

Error code reference

statusMeaningTypical cause
OKSuccessDevice parameters updated
FAILEDValidation errordescriptor_enabled requires generate_pay_now_link to be set first