Merchant Boarding API Sample Responses (Online Portal)

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

Merchant — Create Bearer Token

Authenticate and obtain a JWT bearer token for use in subsequent API requests.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "UserId": 52323,
  "userType_id": 2,
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9***********9PIJ4cUlOTR75Sd8hGMIQ"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
UserIdintegerAuthenticated user's unique ID
userType_idintegerUser type identifier
access_tokenstringJWT bearer token. Include in the Authorization: Bearer <token> header for subsequent requests

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Could not find the account"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusbooleanfalse when authentication fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessBearer token issued
falseErrorAccount not found or invalid credentials

Merchant Add

Onboard a new merchant account.


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 ID to associated EPI numbers. Key = store ID, value = array of EPI identifiers
datastringSuccess on success

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "User Name already exist"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant created
falseErrorUsername already exists

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
newUserIdstringUser ID of the merchant
StoreIDobjectMap of store ID to associated EPI numbers
datastringSuccess on success

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "The store is not associated with the merchants under this ISO"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant updated
falseErrorStore does not belong to a merchant under this ISO

Merchant Delete

Delete an existing merchant account.


Response — 200 OK

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

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Given merchant is already deleted"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant deleted
falseErrorMerchant is already deleted

Merchant Get Details

Retrieve a summary of the EPIs and program types associated with a merchant.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "data": [
    {
      "epi": "2319970727",
      "programType": "Surcharge"
    }
  ]
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
dataarrayArray of EPI summary objects

data fields

FieldTypeDescription
epistringTerminal EPI identifier
programTypestringProcessing program type assigned to this terminal (e.g. Surcharge, Traditional)

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Please Enter UserId"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant EPI details returned
falseErrorUserId parameter is missing from the request

Merchant Operator — Create

Create an operator user account under an existing merchant.


Response — 200 OK

{
  "status": 1,
  "message": "Success",
  "code": 200,
  "status_desc": "User has been created sucessfully UserID: 194876"
}

Response fields

FieldTypeDescription
statusinteger1 on success
messagestringSuccess on success
codeintegerHTTP status code (200)
status_descstringDetailed confirmation message including the new user ID

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Merchant not found"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
1SuccessMerchant operator created
FAILEDErrorMerchant not found for the provided ID

Sub-ISO Operator — Create

Create an operator user account under an existing Sub-ISO.


Response — 200 OK

{
  "status": 1,
  "message": "Success",
  "code": 200,
  "status_desc": "Sub ISO operator Boarding successfull."
}

Response fields

FieldTypeDescription
statusinteger1 on success
messagestringSuccess on success
codeintegerHTTP status code (200)
status_descstringDetailed confirmation message

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid Sub ISO username."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
1SuccessSub-ISO operator created
FAILEDErrorSub-ISO username is invalid or not found

Merchant Status

Activate or deactivate one or more merchant accounts.


Response — 200 OK (Success)

{
  "status": true,
  "message": "Status update completed successfully.",
  "code": 200,
  "updatedMerchants": [
    29156
  ],
  "erroredMerchants": []
}

Response — 400 (Partial or Full Failure)

{
  "status": false,
  "message": "Status update failed for all merchants.",
  "code": 400,
  "updatedMerchants": [],
  "erroredMerchants": [
    {
      "statustag": "Pending",
      "merchantId": [
        29159
      ],
      "error": "Merchant is pending. Please activate in the Valor portal"
    }
  ]
}

Response fields

FieldTypeDescription
statusbooleantrue if all updates succeeded; false if any or all failed
messagestringSummary of the update result
codeinteger200 on success; 400 on failure
updatedMerchantsarrayList of merchant IDs that were successfully updated
erroredMerchantsarrayList of error objects for merchants that could not be updated (see below)

erroredMerchants object fields

FieldTypeDescription
statustagstringCurrent status of the merchant that prevented the update (e.g. Pending)
merchantIdarrayList of merchant IDs that failed
errorstringReason for the failure

Note: A code: 400 response may still include successfully updated merchants in updatedMerchants if only some of the submitted merchants failed.


Error code reference

statusMeaningTypical cause
trueSuccessAll merchant statuses updated
falsePartial/full failureOne or more merchants are in Pending status and cannot be activated via API

Merchant View

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


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "data": {
    "id": 43919,
    "userId": 72239,
    "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",
    "legalCountry": "US",
    "legalZipCode": "07010",
    "legalTimezone": "EST",
    "role": 10,
    "userType": 4,
    "isTxnAllowed": 1,
    "businessType": "Direct Marketing",
    "sicCode": "7230 - Beauty and Barber",
    "storeData": [
      {
        "id": 48779,
        "storeName": "Test Store",
        "mccCode": "0742",
        "selectedMCC": "0742 - VETERINARY SERVICES",
        "epiData": [
          {
            "id": 78818,
            "epi": "2319931361",
            "epiLabel": "Virtual Terminal",
            "processorData": [
              {
                "mid": "887000003193",
                "surchargeIndicator": 0,
                "surchargePercentage": "4.00",
                "programType": "surcharge",
                "app_key": "yPmCz8*******d7G2GVc4",
                "auth_token": "jQGF*******0FkXcd"
              }
            ]
          }
        ]
      }
    ]
  }
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
dataobjectFull merchant details. See the Merchant View field reference in the ISO API section for the complete schema

Note: This endpoint returns the same data schema as the ISO Merchant View. Additional fields present in this bearer-auth version include businessType and sicCode.


Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid epi_id"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusbooleanfalse when the request fails
messagestringError message

Error code reference

statusMeaningTypical cause
trueSuccessMerchant details returned
falseErrorEPI ID is invalid

Merchant List

Retrieve a paginated list of merchants under an ISO.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "data": [
    {
      "DEVICE_COUNT": 5,
      "MTD_VOLUME": "1841311",
      "STORE_COUNT": 1,
      "PROCESSOR_LIST": "1,2,4",
      "LAST_TXN_DATE": "2026-04-28 02:44:27",
      "USER_ID": 52326,
      "USER_TYPE": 4,
      "PARENT_ID": 52323,
      "UPDATED_DATE": "2026-04-28 06:45:06",
      "MERCHANT_NAME": "MERCHANT PORTAL",
      "ROLE_ID": 10,
      "MOBILE_NO": "8327287578",
      "EMAIL_ID": "ra******.com",
      "STATUS": 0,
      "CREATED_DATE": "2024-05-02 05:14:18",
      "DBA_NAME": "Valor Store LLC",
      "MP_ID": 29156,
      "CRM_BOARDING": 0,
      "SUBISO_NAME": null,
      "ISO_NAME": "Valor ISO LLC",
      "BOARDED_ON": "05/02/24 01:14 AM (EST)"
    }
  ],
  "number_of_records": 1,
  "page_number": 1,
  "total_pages": 925,
  "total_results": 925,
  "page_size": 1
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
dataarrayArray of merchant summary objects
number_of_recordsintegerNumber of records returned on this page
page_numberintegerCurrent page number
total_pagesintegerTotal number of pages
total_resultsintegerTotal number of merchants
page_sizeintegerNumber of records per page

data — merchant summary fields

FieldTypeDescription
DEVICE_COUNTintegerNumber of terminals (EPIs) assigned
MTD_VOLUMEstringMonth-to-date transaction volume in cents
STORE_COUNTintegerNumber of stores
PROCESSOR_LISTstringComma-separated list of processor IDs
LAST_TXN_DATEstring | nullMost recent transaction timestamp
USER_IDintegerUser account ID
USER_TYPEintegerUser type identifier
PARENT_IDintegerParent ISO user ID
UPDATED_DATEstringLast updated timestamp
MERCHANT_NAMEstringMerchant account name
ROLE_IDintegerRole identifier
MOBILE_NOstringContact phone number
EMAIL_IDstringContact email (may be partially masked)
STATUSinteger1 if active; 0 if inactive
CREATED_DATEstringAccount creation timestamp
DBA_NAMEstringDoing-business-as name
MP_IDintegerMerchant portal ID
CRM_BOARDINGinteger1 if boarded via CRM
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 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid user_id"
}

Error code reference

statusMeaningTypical cause
trueSuccessMerchant list returned
falseErroruser_id is invalid

Copy Parameter API

Copy device parameters from one terminal to another.


Response — 200 OK

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

Response fields

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

Response — 400 (Error)

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

Error code reference

statusMeaningTypical cause
OKSuccessParameters copied
FAILEDErrorSource or target EPI is invalid

Store Add

Add a new store to an existing merchant.


Response — 200 OK

{
  "status": true,
  "message": "Merchant Store Created Successfully",
  "Mp_id": "43919",
  "newUserId": "72239",
  "StoreID": {
    "154628": [
      "2319977735"
    ]
  },
  "data": "Success"
}

Response fields

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

Response — 400 (Validation Error)

{
  "status": "Validation Failed",
  "message": [
    "newUserId Required"
  ],
  "code": 400
}

Response fields

FieldTypeDescription
statusstringValidation Failed when required fields are missing
messagearrayList of validation error messages
codeintegerHTTP status code (400)

Error code reference

statusMeaningTypical cause
trueSuccessStore created
Validation FailedErrorRequired field newUserId missing from the request

Create Ticket

Submit a new support ticket for a terminal.


Response — 200 OK

{
  "status": true,
  "message": "Ticket Created Successfully",
  "code": 200
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringTicket Created Successfully on success
codeintegerHTTP status code (200)

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Unknown Epi"
}

Error code reference

statusMeaningTypical cause
trueSuccessTicket created
falseErrorEPI not found or unrecognised

Update Ticket — ISO

Update an existing support ticket as an ISO user.


Response — 200 OK

{
  "code": 200,
  "status": true,
  "message": "Ticket Updated Successfully."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (200)
statusbooleantrue on success
messagestringTicket Updated Successfully. on success

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "You are not authorized to update tickets."
}

Error code reference

statusMeaningTypical cause
trueSuccessTicket updated
falseErrorAuthenticated user does not have permission to update this ticket

View Ticket

Retrieve support ticket records and available ticket subjects for a terminal.


Response — 200 OK

{
  "message": "success",
  "data": {
    "subjects": [
      { "id": 1, "subject": "HARDWARE", "send_to": "HELPDESK", "created_on": "2020-07-24 07:32:27" },
      { "id": 2, "subject": "TRANSACTION", "send_to": "HELPDESK", "created_on": "2020-07-29 02:56:29" },
      { "id": 4, "subject": "STATEMENT", "send_to": "HELPDESK", "created_on": "2020-07-29 02:56:38" },
      { "id": 6, "subject": "PAYMENT", "send_to": "HELPDESK", "created_on": "2020-07-29 02:57:04" },
      { "id": 8, "subject": "OTHER", "send_to": "ALL", "created_on": "2020-07-29 02:57:10" },
      { "id": 10, "subject": "SALES", "send_to": "SUPPORT", "created_on": "2021-09-22 10:52:57" }
    ],
    "meta": {
      "current_page": 1,
      "total_records": 1,
      "last_page": 1,
      "per_page": 25
    },
    "records": [
      {
        "id": 28285,
        "epi": "2412333540",
        "subject": "SALES",
        "status": "OPEN",
        "description": "Hi there",
        "resolution": null,
        "channel": "CRM",
        "phone": "5247896523",
        "dba_name": "Valor Store LLC",
        "device_type": "Virtual Terminal",
        "created_on": "2025-12-11 13:19:28",
        "created_by_name": "MERCHANT PORTAL",
        "created_at": "12/11/2025 08:19 AM (EST)",
        "total_count": 1,
        "store_id": 33168,
        "mp_id": 29156,
        "last_txn_date": "2026-04-28 02:44:27"
      }
    ]
  }
}

Response fields — top level

FieldTypeDescription
messagestringsuccess on success
dataobjectContains ticket subjects, pagination meta, and ticket records

subjects — ticket subject fields

FieldTypeDescription
idintegerSubject identifier
subjectstringSubject category name (e.g. HARDWARE, TRANSACTION)
send_tostringRouting destination (e.g. HELPDESK, SUPPORT, ALL)
created_onstringSubject creation timestamp

meta object

FieldTypeDescription
current_pageintegerCurrent page number
total_recordsintegerTotal number of ticket records
last_pageintegerLast available page number
per_pageintegerRecords per page

records — ticket record fields

FieldTypeDescription
idintegerUnique ticket ID
epistringTerminal EPI this ticket is associated with
subjectstringTicket subject category
statusstringTicket status (e.g. OPEN, CLOSED)
descriptionstringTicket description submitted by the user
resolutionstring | nullResolution notes; null if unresolved
channelstringSubmission channel (e.g. CRM)
phonestringContact phone number
dba_namestringMerchant DBA name
device_typestringTerminal type
created_onstringTicket creation timestamp in YYYY-MM-DD HH:MM:SS format
created_by_namestringName of the user who created the ticket
created_atstringFormatted creation timestamp in MM/DD/YYYY HH:MM AM/PM (TZ)
total_countintegerTotal number of tickets matching the query
store_idintegerStore ID associated with the ticket
mp_idintegerMerchant portal ID
last_txn_datestringLast transaction date for the associated terminal

Store Sync

Trigger a synchronisation of store data for a merchant.


Response — 200 OK

{
  "code": 200,
  "status": "SUCCESS",
  "message": "Store data synced successfully. You'll be notified by email once processing is complete"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringSUCCESS on success
messagestringConfirmation message. Email notification will be sent when processing completes

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Store sync is already in progress. You'll be notified by email once it's complete."
}

Error code reference

statusMeaningTypical cause
SUCCESSSuccessStore sync initiated
FAILEDErrorA sync is already running for this store

Store Delete

Delete a store from an existing merchant.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "result": "Deleted Successfully"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
resultstringDeleted Successfully on success

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Store is already deleted."
}

Error code reference

statusMeaningTypical cause
trueSuccessStore deleted
falseErrorStore is already in a deleted state

EPI Add

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


Response — 200 OK

{
  "status": true,
  "message": "Merchant EPI Updated Successfully",
  "Mp_id": "43919",
  "newUserId": "72239",
  "StoreID": {
    "48779": [
      "2319977747"
    ]
  },
  "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 store ID to newly added EPI numbers
datastringSuccess on success

Response — 400 (Validation Error)

{
  "status": "Validation Failed",
  "message": {
    "mp_id": "mp_id Required"
  },
  "code": 400
}

Response fields

FieldTypeDescription
statusstringValidation Failed when required fields are missing
messageobjectKey-value map of field names to validation error messages
codeintegerHTTP status code (400)

Error code reference

statusMeaningTypical cause
trueSuccessEPI added
Validation FailedErrorRequired field mp_id missing from the request

EPI Activate

Activate a terminal (EPI).


Response — 200 OK

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

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
datastringInformational message. Device is already active status. if no change was needed

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid Epi"
}

Error code reference

statusMeaningTypical cause
trueSuccess (or no-op)EPI activated, or was already active
falseErrorEPI is invalid or not found

EPI Delete

Delete a terminal (EPI) from a merchant account.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "result": "EPI Deleted Successfully"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
resultstringEPI Deleted Successfully on success

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid Epi"
}

Error code reference

statusMeaningTypical cause
trueSuccessEPI deleted
falseErrorEPI is invalid or not found

EPI Detail

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


Response — 200 OK

{
  "status": true,
  "code": "200",
  "Mp_id": 43019,
  "StoreID": 47831,
  "epi": "2319930907",
  "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": 0,
    "surchargePercentage": "4.00",
    "vendor": 2,
    "status": 1,
    "app_key": "yPmCz*********GVc4",
    "auth_token": "jQGF6g*********FkXcd",
    "name_on_account": "Abu"
  },
  "message": "epi Data Exits",
  "StatusUser": 1
}

Note: The response schema is identical to the ISO EPI Detail endpoint. Refer to the EPI Detail field reference in the ISO API section for the full processor_params field descriptions.


Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid Epi"
}

Error code reference

statusMeaningTypical cause
trueSuccessEPI detail returned
falseErrorEPI is invalid or not found

EPI View

Retrieve the full merchant, store, and EPI configuration for a specific terminal.


Response — 200 OK

The response schema is identical to the bearer-auth Merchant View endpoint. Refer to the Merchant View field reference above.


Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid epi_id"
}

Error code reference

statusMeaningTypical cause
trueSuccessEPI and merchant details returned
falseErrorEPI ID is invalid

Assign App — EPI

Assign a specific application version to a terminal.


Response — 200 OK

{
  "data": [
    {
      "epi": "2319970909",
      "assigned_version": "3.0.9si"
    }
  ],
  "status": true,
  "message": "Success",
  "code": 200,
  "assigned_by": 52323
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
assigned_byintegerUser ID of the account that performed the assignment
dataarrayArray of assignment result objects

data fields

FieldTypeDescription
epistringTerminal EPI the app version was assigned to
assigned_versionstringApplication version assigned (e.g. 3.0.9si)

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid epi or device"
}

Error code reference

statusMeaningTypical cause
trueSuccessApp version assigned to EPI
falseErrorEPI or device model is invalid

Fetch E-Receipt

Retrieve a hosted e-receipt URL for a completed transaction.


Response — 200 OK

{
  "status": true,
  "message": "SUCCESS",
  "code": 200,
  "e_receipt": "https://rcpt-staging.valorpaytech.com:4430/?id=8730870-517111500704--v3.0&type=mc"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSUCCESS on success
codeintegerHTTP status code (200)
e_receiptstringURL to the hosted e-receipt page

Response — 400 (Validation Error)

{
  "code": 400,
  "status": "FAILED",
  "errors": "Missing required field: txn_id"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
errorsstringError message describing the missing field

Error code reference

statusMeaningTypical cause
trueSuccessE-receipt URL returned
FAILEDErrorRequired field txn_id is missing from the request

Transaction List

Retrieve a paginated list of transactions for a given terminal or merchant.


Response — 200 OK

{
  "status": true,
  "message": "SUCCESS",
  "code": 200,
  "data": [
    {
      "txn_id": 10331469,
      "epi": "2412333540",
      "rrn": "611806503508",
      "txn_type": "SALE",
      "txn_type_code": 101,
      "base_amount": 1000,
      "custom_fee_amount": 102,
      "net_amount": 1102,
      "tip_amount": 0,
      "tax_amount": 0,
      "state_tax_amount": 0,
      "city_tax_amount": 0,
      "surcharge_fee_amount": 0,
      "cashback_amount": 0,
      "food_amount": 0,
      "card_scheme": "MasterCard",
      "masked_card_no": "5200 XXXX XXXX 8210",
      "card_bin": "520082",
      "card_type": "",
      "card_holder_name": "",
      "approval_code": "VTLMC1",
      "response_code": "00",
      "processor_response_code": "00",
      "switch_error_code": "V0000",
      "host_response": "APPROVALVTLMC1",
      "batch_no": "623",
      "stan_no": "709481",
      "request_date": "2026-04-28",
      "request_time": "02:44 AM",
      "created_at": "2026-04-28 06:44:27",
      "timezone": "EST",
      "mp_id": 29156,
      "store_id": 33168,
      "merchant_name": "Valor Store LLC",
      "store_name": "Test Store",
      "device_id": 139,
      "device_model": "Virtual Terminal",
      "device_label": "VT #2",
      "processor_id": 1,
      "mid": "887000003191",
      "pos_entry_mode": "812",
      "pos_condition_code": "59",
      "message_type": "0200",
      "is_txn_approved": 1,
      "is_voided": 0,
      "is_reversed": 0,
      "is_partial_approved": 0,
      "is_auth_completed": 0,
      "is_avs_failed": 0,
      "is_avs_txn": 0,
      "is_pin_txn": 0,
      "is_non_cash_charge_txn": 0,
      "is_followup_txn": 0,
      "is_ebt_voucher_txn": 0,
      "refunded_amount": 0,
      "refunded_count": 0,
      "tip_adjusted_count": 0,
      "surcharge_label": "Adjustment",
      "description": "king size bed 10x12",
      "invoicenumber": "inv0001",
      "ref_txn_type": "CREDIT SALE",
      "token": "09AA65********128506788",
      "subscription_id": "",
      "invoice_mode": null,
      "customer_name": null,
      "company_name": null,
      "email_id": "",
      "phone_number": ""
    }
  ],
  "number_of_records": 1,
  "page_number": 1,
  "total_pages": 806,
  "total_results": 806,
  "page_size": 1
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSUCCESS on success
codeintegerHTTP status code (200)
dataarrayArray of transaction objects
number_of_recordsintegerRecords returned on this page
page_numberintegerCurrent page number
total_pagesintegerTotal pages available
total_resultsintegerTotal matching transactions
page_sizeintegerRecords per page

data — transaction fields

FieldTypeDescription
txn_idintegerUnique transaction identifier
epistringTerminal EPI identifier
rrnstringRetrieval reference number
txn_typestringTransaction type (e.g. SALE, REFUND)
txn_type_codeintegerInternal transaction type code
base_amountintegerBase transaction amount in cents
custom_fee_amountintegerCustom fee amount in cents
net_amountintegerNet charged amount in cents
tip_amountintegerTip amount in cents
tax_amountintegerTotal tax amount in cents
state_tax_amountintegerState tax amount in cents
city_tax_amountintegerCity tax amount in cents
surcharge_fee_amountintegerSurcharge fee amount in cents
cashback_amountintegerCashback amount in cents
food_amountintegerFood amount in cents, if applicable
card_schemestringCard network (e.g. Visa, MasterCard)
masked_card_nostringMasked card number
card_binstringCard BIN (first 6 digits)
card_typestringCard type (DEBIT, CREDIT, or empty)
card_holder_namestringCardholder name, if provided
approval_codestringIssuer authorization code
response_codestringGateway response code. 00 = approved
processor_response_codestringProcessor-level response code
switch_error_codestringSwitch-level error code
host_responsestringFull host response string
batch_nostringSettlement batch number
stan_nostringSystem trace audit number
request_datestringTransaction date in YYYY-MM-DD format
request_timestringTransaction time (e.g. 02:44 AM)
created_atstringTransaction creation timestamp
timezonestringTerminal timezone (e.g. EST)
mp_idintegerMerchant portal ID
store_idintegerStore ID
merchant_namestringMerchant DBA name
store_namestringStore name
device_idintegerDevice model ID
device_modelstringDevice model description
device_labelstringTerminal display label
processor_idintegerProcessor identifier
midstringMerchant ID used for this transaction
pos_entry_modestringPOS entry mode code
pos_condition_codestringPOS condition code
message_typestringISO 8583 message type
is_txn_approvedinteger1 if approved; 0 if declined
is_voidedinteger1 if voided
is_reversedinteger1 if reversed
is_partial_approvedinteger1 if partially approved
is_auth_completedinteger1 if auth has been captured
is_avs_failedinteger1 if AVS check failed
refunded_amountintegerTotal refunded amount in cents
refunded_countintegerNumber of refunds issued
tip_adjusted_countintegerNumber of tip adjustments made
surcharge_labelstringSurcharge display label
descriptionstringOrder or item description
invoicenumberstringInvoice reference
ref_txn_typestringReference transaction type label
tokenstringCard token (partially masked)
subscription_idstringSubscription ID, if part of a recurring plan
customer_namestring | nullCustomer name, if linked to a vault profile

Note: The data array also contains addtl_data_label1 through addtl_data_label25 and their corresponding addtl_data_value1 through addtl_data_value25 fields for custom additional data labels. These are all strings and return empty when not configured.


EPI Last Txn

Retrieve transaction volume statistics and status for a specific terminal.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "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
codeintegerHTTP status code (200)
dataarrayArray containing transaction volume statistics
epi_statusarrayArray containing 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 deleted; 0 otherwise
statusinteger1 if active; 0 if inactive

Response — 400 (No Records)

{
  "status": false,
  "message": "No Record Found",
  "code": 400,
  "data": [],
  "epi_status": [
    {
      "is_deleted": 0,
      "status": 1
    }
  ]
}

Note: Even when no transaction records exist, epi_status is still returned with the current terminal status.


Error code reference

statusMeaningTypical cause
trueSuccessTransaction statistics returned
falseNot foundNo transactions exist for this EPI

EPI Update

Update the configuration of an existing terminal (EPI).


Response — 200 OK

{
  "status": true,
  "message": "Epi Updated Successfully",
  "code": 200
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringEpi Updated Successfully on success
codeintegerHTTP status code (200)

Response — 400 (Validation Error)

{
  "Validation Failed": "epi length should be 10 digit ."
}

Note: This error response uses a non-standard shape — the key is "Validation Failed" and the value is the error message string. There is no status or code field.


Error code reference

Response shapeMeaningTypical cause
status: trueSuccessEPI updated
{"Validation Failed": "..."}Validation errorEPI must be exactly 10 digits

Check EPI

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


Response — 200 OK

{
  "status": true,
  "code": "200",
  "Mp_id": 43019,
  "newUserId": 70979,
  "StoreID": 47831,
  "epi": "2319930907",
  "SerialNo": null,
  "processor_params": {
    "mid": "887000003193",
    "surchargeIndicator": 0,
    "surchargePercentage": "4.00",
    "app_key": "yPmCz*********G2GVc4",
    "auth_token": "jQGF6g*********p0FkXcd",
    "name_on_account": "Abu"
  },
  "optStatus": 1,
  "statusEpi": 1,
  "createdDate": "2024-11-20",
  "createdBy": 52323,
  "isDeleted": 0,
  "deletedOn": null,
  "deletedBy": null
}

Note: The response schema is identical to the ISO Check EPI endpoint. Refer to the Check EPI field reference in the ISO API section for full field descriptions.


Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid Epi"
}

Error code reference

statusMeaningTypical cause
trueSuccessEPI found
falseErrorEPI does not exist

Sub-ISO — Create

Create a new Sub-ISO account.


Response — 200 OK

{
  "status": 1,
  "message": "Success",
  "code": 200,
  "statusDesc": "sub iso User has been created Sucessfully.",
  "user_id": 194999,
  "customer_id": 10914,
  "office_id": 26672
}

Response fields

FieldTypeDescription
statusinteger1 on success
messagestringSuccess on success
codeintegerHTTP status code (200)
statusDescstringDetailed confirmation message
user_idintegerUnique user ID assigned to the new Sub-ISO
customer_idintegerCustomer ID associated with the Sub-ISO account
office_idintegerOffice ID assigned to the Sub-ISO

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid state"
}

Error code reference

statusMeaningTypical cause
1SuccessSub-ISO created
FAILEDErrorInvalid state value provided in the request

Device Parameter

Push updated device parameters to a terminal.


Response — 200 OK

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

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)

Response — 400 (Error)

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

Error code reference

statusMeaningTypical cause
trueSuccessDevice parameters updated
FAILEDErrordescriptor_enabled requires generate_pay_now_link to be enabled first

EPI Status

Retrieve the current status of a terminal (EPI).


Response — 200 OK

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

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
datastringCurrent EPI status description

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid Epi"
}

Error code reference

statusMeaningTypical cause
trueSuccessEPI status returned
falseErrorEPI is invalid or not found

EPI Deactivate

Deactivate a terminal to prevent it from processing transactions.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "data": "EPI Deactivated Successfully"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
datastringEPI Deactivated Successfully on success

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid Epi or EPI doesn`t belong to this ISO"
}

Error code reference

statusMeaningTypical cause
trueSuccessEPI deactivated
falseErrorEPI is invalid or does not belong to this ISO

Check Profile

Verify that a merchant profile exists and retrieve its summary details.


Response — 200 OK

{
  "status": true,
  "code": "200",
  "Mp_id": 43019,
  "newUserId": 70979,
  "StoreID": 47831,
  "message": "Profile Data Exits",
  "StatusUser": 1
}

Response fields

FieldTypeDescription
statusbooleantrue on success
codestringHTTP status code as a string ("200")
Mp_idintegerMerchant portal ID
newUserIdintegerUser ID of the merchant
StoreIDintegerStore ID associated with the merchant
messagestringProfile Data Exits when the profile is found
StatusUserinteger1 if the merchant is active; 0 otherwise

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Please Enter newUserId"
}

Error code reference

statusMeaningTypical cause
trueSuccessProfile found and details returned
falseErrorRequired field newUserId missing from the request

Generating API Keys

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


Response — 200 OK

{
  "status": "OK",
  "message": "App Key already associated with EPI",
  "code": 200,
  "data": {
    "epi": "2319930907",
    "Mp_Id": 43019,
    "UserId": 70979,
    "device_model": "Virtual Terminal",
    "device_name": "Virtual Terminal",
    "appkey": "I8GMof******vyVkl",
    "appid": "XFsxjryY******jh62shr"
  }
}

Response fields — top level

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

data fields

FieldTypeDescription
epistringTerminal EPI identifier
Mp_IdintegerMerchant portal ID
UserIdintegerUser ID of the merchant
device_modelstringDevice model description
device_namestringTerminal display name
appkeystringPartially masked App Key for this terminal
appidstringPartially masked App ID for this merchant

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid Epi"
}

Error code reference

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

EPI Status Update

Update the active or inactive status of a terminal.


Response — 200 OK

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

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
datastringInformational outcome message

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "Invalid Epi"
}

Error code reference

statusMeaningTypical cause
trueSuccess (or no-op)Status updated, or EPI was already in the requested state
falseErrorEPI is invalid or not found

Fetch APP ID & APP Keys

Retrieve the App ID and App Keys for all terminals under a merchant.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "data": {
    "APP_ID": "XFsx********jh62shr",
    "devices": [
      {
        "EPI": "2319930907",
        "DEVICE_NAME": "Virtual Terminal",
        "DEVICE_TYPE": "Virtual Terminal",
        "APP_KEY": "I8GMo********R3RMyvyVkl"
      }
    ]
  }
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
dataobjectApp credentials object

data fields

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

devices fields

FieldTypeDescription
EPIstringTerminal EPI identifier
DEVICE_NAMEstringTerminal display name
DEVICE_TYPEstringTerminal type description
APP_KEYstringPartially masked App Key unique to this terminal

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "You are Not Authorized"
}

Error code reference

statusMeaningTypical cause
trueSuccessApp ID and keys returned
falseErrorAuthenticated user is not authorised to access this data

Update Ticket — Merchant

Update an existing support ticket as a merchant user.


Response — 200 OK

{
  "code": 200,
  "status": true,
  "message": "Ticket Updated Successfully."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (200)
statusbooleantrue on success
messagestringTicket Updated Successfully. on success

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "You are not authorized to update tickets."
}

Error code reference

statusMeaningTypical cause
trueSuccessTicket updated
falseErrorUser does not have permission to update this ticket

ISO Billing Statement

Retrieve the billing statement for an ISO, including per-merchant fee details and aggregate summary.


Response — 200 OK

{
  "status": true,
  "message": "Success",
  "code": 200,
  "result": {
    "iso_billing_report": [
      {
        "dba_name": "Valor Store LLC",
        "mp_id": 29156,
        "email_id": "ab*****ech.com",
        "basic_portal_store": "1",
        "basic_portal_store_fee": "100.00",
        "vt_txn_count": "0",
        "vt_per_txn_fee": "0.15",
        "sim_count": "0",
        "sim_fee": "1.50",
        "sms_count": "0",
        "sms_fee": "2.00",
        "price": "100.00"
      }
    ],
    "iso_billing_summary": [
      {
        "user_id": 52323,
        "cust_id": 10914,
        "store_count": "932",
        "merchant_count": "914",
        "sms_count": "0",
        "sim_count": "0",
        "net_volume": "93200.00"
      }
    ]
  }
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSuccess on success
codeintegerHTTP status code (200)
resultobjectBilling data containing iso_billing_report and iso_billing_summary

iso_billing_report — per-merchant billing fields

FieldTypeDescription
dba_namestringMerchant DBA name
mp_idintegerMerchant portal ID
email_idstringMerchant contact email (may be partially masked)
basic_portal_storestringNumber of portal stores billed
basic_portal_store_feestringFee charged per portal store
vt_txn_countstringNumber of virtual terminal transactions
vt_per_txn_feestringFee per virtual terminal transaction
sim_countstringNumber of SIM devices
sim_feestringFee per SIM device
sms_countstringNumber of SMS messages sent
sms_feestringFee per SMS message
pricestringTotal billed amount for this merchant

iso_billing_summary — aggregate summary fields

FieldTypeDescription
user_idintegerISO user ID
cust_idintegerISO customer ID
store_countstringTotal number of stores across all merchants
merchant_countstringTotal number of merchants under this ISO
sms_countstringTotal SMS messages sent
sim_countstringTotal SIM devices
net_volumestringTotal billing volume in decimal format

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid year. Please provide a valid year in YYYY format"
}

Error code reference

statusMeaningTypical cause
trueSuccessBilling statement returned
FAILEDErrorYear parameter is missing or not in YYYY format

ISO Operator — Create

Create an operator user account under an ISO.


Response — 200 OK

{
  "status": 1,
  "message": "Success",
  "code": 200,
  "status_desc": "ISO operator Boarding successfull.",
  "user_id": 195038
}

Response fields

FieldTypeDescription
statusinteger1 on success
messagestringSuccess on success
codeintegerHTTP status code (200)
status_descstringDetailed confirmation message
user_idintegerUnique user ID assigned to the new ISO operator

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "UserName already exsists."
}

Error code reference

statusMeaningTypical cause
1SuccessISO operator created
FAILEDErrorUsername already exists

Differential Setting Bulk Update

Trigger a bulk update of differential settings across multiple terminals.


Response — 200 OK

{
  "code": 200,
  "status": "SUCCESS",
  "desc": "Differential Setting submitted successfully. You'll be notified by email once processing is complete"
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringSUCCESS on success
descstringConfirmation message. Email notification will be sent when processing completes

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Differential setting is already in progress. You'll be notified by email once it's complete."
}

Error code reference

statusMeaningTypical cause
SUCCESSSuccessBulk update submitted
FAILEDErrorA differential setting update is already running

Merchant Add Multi-MID

Onboard a new merchant with multiple MID (merchant ID) configurations.


Response — 200 OK

{
  "status": true,
  "message": "User Added Successfully",
  "code": 200,
  "storeInfo": {
    "154703": [
      "2319977764"
    ]
  },
  "mpId": 140390,
  "newUserId": 195041
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringUser Added Successfully on success
codeintegerHTTP status code (200)
storeInfoobjectMap of store ID to associated EPI numbers
mpIdintegerUnique merchant portal ID assigned to the new merchant
newUserIdintegerUnique user ID assigned to the new merchant account

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "ErrorMessage: User Name already exist in child userList"
}

Error code reference

statusMeaningTypical cause
trueSuccessMulti-MID merchant created
falseErrorUsername already exists under this hierarchy

Merchant Info Update

Update the details of an existing Multi-MID merchant.


Response — 200 OK

{
  "status": true,
  "message": "User Updated Successfully",
  "code": 200,
  "storeInfo": {
    "154703": [
      "2319977764"
    ]
  },
  "mpId": 140390,
  "newUserId": 195041
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringUser Updated Successfully on success
codeintegerHTTP status code (200)
storeInfoobjectMap of store ID to associated EPI numbers
mpIdintegerMerchant portal ID
newUserIdintegerUser ID of the merchant

Response — 400 (Error)

{
  "code": 400,
  "status": false,
  "message": "User Name already exist in child userList"
}

Error code reference

statusMeaningTypical cause
trueSuccessMerchant info updated
falseErrorUsername already exists in the child hierarchy

Multi-MID — Store Update

Update a store under a Multi-MID merchant configuration.


Response — 200 OK

{
  "status": true,
  "message": "Merchant Store Updated Successfully",
  "code": 200,
  "storeInfo": {
    "154703": [
      "2319977764"
    ]
  },
  "mpId": 140390,
  "newUserId": 195041
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringMerchant Store Updated Successfully on success
codeintegerHTTP status code (200)
storeInfoobjectMap of store ID to associated EPI numbers
mpIdintegerMerchant portal ID
newUserIdintegerUser ID of the merchant

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid User"
}

Error code reference

statusMeaningTypical cause
trueSuccessStore updated
FAILEDErrorUser credentials are invalid

Multi-MID — Child EPI Update

Update the EPI data for a child terminal in a Multi-MID configuration.


Response — 200 OK

{
  "status": true,
  "message": "Child EpiData details updated successfully"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringChild EpiData details updated successfully on success

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid User"
}

Error code reference

statusMeaningTypical cause
trueSuccessChild EPI data updated
FAILEDErrorUser credentials are invalid

Multi-MID — Parent EPI Update

Update the EPI data for the parent terminal in a Multi-MID configuration.


Response — 200 OK

{
  "status": true,
  "message": "Parent EpiData details updated successfully"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringParent EpiData details updated successfully on success

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid User"
}

Error code reference

statusMeaningTypical cause
trueSuccessParent EPI data updated
FAILEDErrorUser credentials are invalid

Multi-MID — Module Update

Update the module list configuration for a Multi-MID merchant.


Response — 200 OK

{
  "status": true,
  "message": "Merchant ModuleList details updated successfully"
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringMerchant ModuleList details updated successfully on success

Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Invalid User"
}

Error code reference

statusMeaningTypical cause
trueSuccessModule list updated
FAILEDErrorUser credentials are invalid

Device Parameter Fetch API

Retrieve the full parameter configuration for a specific terminal.


Response — 200 OK

{
  "status": true,
  "message": "Epi parameter Fetch successfully",
  "code": 200,
  "result": {
    "tip_enabled": "0",
    "tip_on_screen": false,
    "tip_options": ["15", "20", "22", "25"],
    "max_tip_percentage": "350",
    "custom_fee_enabled": "1",
    "card_type": "All Cards",
    "surcharge_label": "Surcharge",
    "surcharge": "4.000",
    "tax_enabled": "0",
    "state_tax": "0.600",
    "federal_tax": "6.000",
    "avs": "NONE",
    "duplicate_transaction_check": "None",
    "duplicate_transaction_action": "Decline Duplicate Transaction",
    "partial_approval": false,
    "enable_l2": false,
    "descriptor_enabled": false,
    "descriptor_label": "Valor Store LLC",
    "batch_out_enabled": false,
    "batch_out_timer": "00:00 AM",
    "header_one": "EL TRI MX RESTA Add",
    "header_two": "4100 JOHNSTON ST",
    "header_three": "LAFAYETTE LA 70503",
    "header_four": "337-704-0344",
    "footer_one": "Thank You",
    "disclaimer_one": "Cardholder acknowledges",
    "enable_disclaimer": true,
    "email_settlement_report": true,
    "password_for_refund_enabled": false,
    "password_for_refund_amount": "100",
    "max_limit_per_attempt": "1000",
    "max_limit_per_day": "5000"
  }
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringEpi parameter Fetch successfully on success
codeintegerHTTP status code (200)
resultobjectFull device parameter configuration (see below)

result — device parameter fields

FieldTypeDescription
tip_enabledstring1 if tip collection is enabled; 0 otherwise
tip_on_screenbooleantrue if tip prompt is shown on screen
tip_optionsarrayList of preset tip percentage options
max_tip_percentagestringMaximum tip adjustment percentage
custom_fee_enabledstring1 if custom fee is enabled; 0 otherwise
card_typestringCard types subject to the custom fee (e.g. All Cards)
surcharge_labelstringDisplay label for the surcharge
surchargestringSurcharge percentage value
tax_enabledstring1 if tax is enabled; 0 otherwise
state_taxstringState tax percentage
federal_taxstringFederal tax percentage
avsstringAVS check setting (e.g. NONE, BASIC)
duplicate_transaction_checkstringDuplicate transaction check window (e.g. None, 60 Minutes)
duplicate_transaction_actionstringAction on duplicate detection
partial_approvalbooleantrue if partial approval is enabled
enable_l2booleantrue if Level 2 data collection is enabled
descriptor_enabledbooleantrue if dynamic descriptor is enabled
descriptor_labelstringDescriptor text displayed on cardholder statements
batch_out_enabledbooleantrue if automatic batch-out is enabled
batch_out_timerstringScheduled batch-out time
header_one through header_sevenstringReceipt header lines
footer_onestringReceipt footer line
disclaimer_one through disclaimer_fivestringReceipt disclaimer lines
enable_disclaimerbooleantrue if disclaimer is printed on receipts
email_settlement_reportbooleantrue if settlement report is emailed
password_for_refund_enabledbooleantrue if a password is required for refunds
password_for_refund_amountstringRefund amount threshold above which a password is required
max_limit_per_attemptstringMaximum transaction amount per attempt in dollars
max_limit_per_daystringMaximum total transaction amount per day in dollars
server_clerk_setupbooleantrue if server/clerk tracking is enabled
donationsbooleantrue if donation prompts are enabled
charity_namestringName of the charity for donation prompts
customer_satisfaction_surveybooleantrue if post-transaction survey is enabled
avs_for_einvoicebooleantrue if AVS check is applied to e-invoice transactions
generate_otp_paynow_linkbooleantrue if OTP is required for Pay Now links
additional_input_enabledbooleantrue if additional custom input fields are enabled
additional_inputarrayList of configured additional input field definitions

Note: The result object also contains up to 25 present_on_customer_receipt_N boolean fields (1–25) controlling which additional data labels appear on customer receipts, as well as several disable_*_copy_* flags for controlling receipt delivery by email and SMS.


Response — 400 (Error)

{
  "message": "Epi is not available for this user"
}

Note: This error response returns only a message field with no status or code.


Error code reference

Response shapeMeaningTypical cause
status: trueSuccessDevice parameters returned
{"message": "..."}ErrorEPI does not belong to the authenticated user

Get POS Menu Configuration API

Retrieve the POS menu configuration for a terminal, including all payment method categories and their enabled transaction sub-types.


Response — 200 OK

{
  "status": true,
  "message": "SUCCESS",
  "code": 200,
  "data": [
    {
      "label": "CREDIT",
      "is_enabled": true,
      "sub_menu": [
        { "label": "SALE", "is_enabled": true },
        { "label": "VOID", "is_enabled": true },
        { "label": "PREAUTH", "is_enabled": true },
        { "label": "TICKET", "is_enabled": false },
        { "label": "REFUND", "is_enabled": true },
        { "label": "PRESALE", "is_enabled": true },
        { "label": "POSTAUTH", "is_enabled": true }
      ]
    },
    {
      "label": "DEBIT",
      "is_enabled": true,
      "sub_menu": [
        { "label": "SALE", "is_enabled": true },
        { "label": "REFUND", "is_enabled": false }
      ]
    },
    {
      "label": "EBT FOOD",
      "is_enabled": true,
      "sub_menu": [
        { "label": "SALE", "is_enabled": true },
        { "label": "V SALE", "is_enabled": false },
        { "label": "REFUND", "is_enabled": false },
        { "label": "BALANCE", "is_enabled": false }
      ]
    },
    {
      "label": "EBT CASH",
      "is_enabled": true,
      "sub_menu": [
        { "label": "SALE", "is_enabled": true },
        { "label": "BALANCE", "is_enabled": false },
        { "label": "W DRAWL", "is_enabled": false }
      ]
    },
    {
      "label": "CASH",
      "is_enabled": true,
      "sub_menu": [
        { "label": "SALE", "is_enabled": true },
        { "label": "REFUND", "is_enabled": false }
      ]
    },
    {
      "label": "VAULT",
      "is_enabled": false,
      "sub_menu": [
        { "label": "ADD CARD", "is_enabled": false }
      ]
    }
  ]
}

Response fields — top level

FieldTypeDescription
statusbooleantrue on success
messagestringSUCCESS on success
codeintegerHTTP status code (200)
dataarrayArray of menu category objects

data — menu category fields

FieldTypeDescription
labelstringPayment method category name (e.g. CREDIT, DEBIT, EBT FOOD)
is_enabledbooleantrue if this payment method category is enabled on the POS
sub_menuarrayArray of transaction type objects available under this category (see below)

sub_menu — transaction type fields

FieldTypeDescription
labelstringTransaction type name (e.g. SALE, VOID, REFUND)
is_enabledbooleantrue if this transaction type is enabled for the parent category

Menu categories and available sub-menu items

CategoryAvailable sub-menu items
CREDITSALE, VOID, PREAUTH, TICKET, REFUND, PRESALE, POSTAUTH
DEBITSALE, REFUND
EBT FOODSALE, V SALE, REFUND, BALANCE
EBT CASHSALE, BALANCE, W DRAWL
CASHSALE, REFUND
VAULTADD CARD

Note: A category with is_enabled: false hides the entire payment method from the POS, regardless of individual sub-menu settings. A sub-menu item with is_enabled: false is hidden from the operator but remains configured on the terminal.


Response — 400 (Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "Not authorized to access this POS menu config."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
messagestringHuman-readable error message

Error code reference

statusMeaningTypical cause
trueSuccessPOS menu configuration returned
FAILEDAuthorization errorThe authenticated user does not have permission to access this terminal's POS menu configuration

Update POS Menu Configuration API

Update the enabled/disabled state of payment method categories and their transaction sub-types on a terminal's POS menu.


Response — 200 OK

{
  "status": true,
  "message": "POS menu configuration updated successfully",
  "code": 200
}

Response fields

FieldTypeDescription
statusbooleantrue on success
messagestringPOS menu configuration updated successfully on success
codeintegerHTTP status code (200)

Response — 400 (Validation Error)

{
  "code": 400,
  "status": "FAILED",
  "message": "The menu label 'GIFT' is not valid."
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
messagestringHuman-readable error message identifying the invalid label

Error code reference

statusMeaningTypical cause
trueSuccessPOS menu configuration updated
FAILEDValidation errorA menu label value in the request is not a recognised POS menu category or sub-menu item