Valor Connect API Sample Responses

Provides example success and error responses to help understand the valor connect API response structure and handling.

Publish API

Push a transaction request to a physical POS device via Valor Connect. The device will prompt the cardholder to present their card and complete the payment.


Response — 200 OK (Approved)

Returned when the transaction is completed and approved by the device.

{
  "error_no": "S00",
  "response": {
    "STATE": "0",
    "EPI": "2226572534",
    "SERIAL_NO": "125214406457",
    "MER_TXN_ID": "INV001",
    "TRAN_TYPE": "Credit",
    "CARD_PROCESSED_AS": "Credit",
    "CARD_TYPE": "Credit",
    "TRAN_METHOD": "Sale",
    "TXN_ID": "223128674107",
    "TXN_DETAILS_UPLOADED": "YES",
    "AMOUNT": "100",
    "STATE_TAX": "3",
    "TAXES": {
      "STATE_TAX": {
        "RATE": "3.000",
        "AMOUNT": "3",
        "TAXABLE_AMOUNT": "100"
      },
      "TAX_PROFILE": "TMS Tax",
      "TOTAL_TAXES": "3",
      "TOTAL_WITH_TAX": "103"
    },
    "PARTIAL": "0",
    "MASKED_PAN": "4111 **** **** 1111",
    "ENTRY_MODE": "MANUAL",
    "ENTRY_TYPE": " ",
    "EXPIRY_DATE": "3012",
    "RRN": "611906500120",
    "CODE": "TAS410",
    "AUTH_RSP_TEXT": "APPROVAL TAS410",
    "DATE": "29042026 02:08:48",
    "TRAN_NO": "1",
    "BATCH_NO": "231",
    "ISSUER": "VISA",
    "TOTAL_AMOUNT": "103",
    "STAN_ID": "18",
    "CUSTOMER_NAME": "NJU",
    "MID": "887000003198",
    "TID": "75021674"
  }
}

Response — 200 OK (Cancelled / Timed Out)

Returned when the transaction was sent to the device but was cancelled by the cardholder or timed out before completion.

{
  "error_no": "S00",
  "response": {
    "STATE": "-1",
    "EPI": "2226572534",
    "SERIAL_NO": "125214406457",
    "ERROR_MSG": "Transaction Timeout/Cancelled",
    "MER_TXN_ID": "INV001"
  }
}

Response fields — top level

FieldTypeDescription
error_nostringS00 indicates the request was processed. Check response.STATE to determine the transaction outcome
responseobjectTransaction result object (see below)

response — approved transaction fields

FieldTypeDescription
STATEstringTransaction state. 0 = approved; -1 = cancelled or timed out
EPIstringTerminal EPI identifier
SERIAL_NOstringDevice serial number
MER_TXN_IDstringMerchant-supplied transaction reference (invoice number)
TRAN_TYPEstringCard transaction type (e.g. Credit, Debit)
CARD_PROCESSED_ASstringHow the card was processed (e.g. Credit, Debit)
CARD_TYPEstringCard type (e.g. Credit, Debit)
TRAN_METHODstringTransaction method (e.g. Sale, Refund)
TXN_IDstringUnique transaction identifier assigned by the processor
TXN_DETAILS_UPLOADEDstringYES if transaction details have been uploaded to the server
AMOUNTstringBase transaction amount in cents
STATE_TAXstringState tax amount in cents
TAXESobjectTax breakdown details (see below)
PARTIALstring1 if partially approved; 0 for full approval
MASKED_PANstringMasked card number (e.g. 4111 **** **** 1111)
ENTRY_MODEstringCard entry method (e.g. MANUAL, SWIPE, CHIP, CONTACTLESS)
ENTRY_TYPEstringEntry type indicator
EXPIRY_DATEstringCard expiry in MMYY format (e.g. 3012 = December 2030)
RRNstringRetrieval reference number for reconciliation
CODEstringIssuer-returned authorization code
AUTH_RSP_TEXTstringFull authorization response text from the issuer
DATEstringTransaction timestamp in DDMMYYYY HH:MM:SS format
TRAN_NOstringSequential transaction number within the batch
BATCH_NOstringSettlement batch number
ISSUERstringCard network (e.g. VISA, MASTERCARD)
TOTAL_AMOUNTstringTotal charged amount including taxes in cents
STAN_IDstringSystem trace audit number
CUSTOMER_NAMEstringCardholder name, if captured
MIDstringMerchant ID
TIDstringTerminal ID

TAXES object

FieldTypeDescription
STATE_TAX.RATEstringState tax rate as a percentage
STATE_TAX.AMOUNTstringState tax amount in cents
STATE_TAX.TAXABLE_AMOUNTstringAmount subject to state tax in cents
TAX_PROFILEstringName of the tax profile applied
TOTAL_TAXESstringTotal tax amount in cents
TOTAL_WITH_TAXstringTotal charged amount including all taxes in cents

response — cancelled / timed out fields

FieldTypeDescription
STATEstring-1 indicates the transaction was cancelled or timed out
EPIstringTerminal EPI identifier
SERIAL_NOstringDevice serial number
ERROR_MSGstringDescription of the cancellation reason (e.g. Transaction Timeout/Cancelled)
MER_TXN_IDstringMerchant-supplied transaction reference

Note: Both approved and cancelled outcomes return error_no: "S00" with HTTP 200. Always check response.STATE to determine the actual outcome — "0" = approved, "-1" = cancelled or timed out.


Response — 400 (Processing Error)

{
  "error_no": "VC03",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "DEVICE OFFLINE"
}

Response fields

FieldTypeDescription
error_nostringVC03 indicates the device is offline and cannot receive the request
mesgstringError message
msgstringError message
descstringDetailed description of the error cause

Error code reference

error_noSTATEMeaningTypical cause
S000ApprovedTransaction completed and approved on the device
S00-1Cancelled / timed outCardholder cancelled or did not present card within the timeout period
VC03Processing errorDevice is offline and not reachable via Valor Connect

Status API

Poll the status of a transaction previously published to a POS device via Valor Connect. Use this endpoint to retrieve the result after calling the Publish API.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "response": {
    "STATE": "0",
    "EPI": "2226572534",
    "SERIAL_NO": "125214406457",
    "MER_TXN_ID": "INV001",
    "TRAN_TYPE": "Credit",
    "CARD_PROCESSED_AS": "Credit",
    "CARD_TYPE": "Credit",
    "TRAN_METHOD": "Sale",
    "TXN_ID": "223128674107",
    "TXN_DETAILS_UPLOADED": "YES",
    "AMOUNT": "100",
    "STATE_TAX": "3",
    "TAXES": {
      "STATE_TAX": {
        "RATE": "3.000",
        "AMOUNT": "3",
        "TAXABLE_AMOUNT": "100"
      },
      "TAX_PROFILE": "TMS Tax",
      "TOTAL_TAXES": "3",
      "TOTAL_WITH_TAX": "103"
    },
    "PARTIAL": "0",
    "MASKED_PAN": "4111 **** **** 1111",
    "ENTRY_MODE": "MANUAL",
    "ENTRY_TYPE": " ",
    "EXPIRY_DATE": "3012",
    "RRN": "611906500120",
    "CODE": "TAS410",
    "AUTH_RSP_TEXT": "APPROVAL TAS410",
    "DATE": "29042026 02:08:48",
    "TRAN_NO": "1",
    "BATCH_NO": "231",
    "ISSUER": "VISA",
    "TOTAL_AMOUNT": "103",
    "STAN_ID": "18",
    "CUSTOMER_NAME": "NJU",
    "MID": "887000003198",
    "TID": "75021674"
  }
}

Note: The response object schema is identical to the Publish API approved response. Refer to the Publish API field reference for full field descriptions.


Response — 400 (Processing Error)

{
  "error_no": "VC09",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "UNABLE TO FETCH TRANSACTION STATUS"
}

Response fields

FieldTypeDescription
error_nostringVC09 indicates the transaction status could not be retrieved
mesgstringError message
msgstringError message
descstringDetailed description of the error cause

Error code reference

error_noMeaningTypical cause
S00SuccessTransaction status retrieved
VC09Processing errorTransaction status is unavailable — the device may not have responded or the MER_TXN_ID is invalid

Cancel API

Send a cancellation request to a POS device to abort a transaction that is currently in progress via Valor Connect.


Response — 200 OK

{
  "error_no": "S00",
  "response": "Cancel Request has been send to POS."
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the cancel request was sent successfully
responsestringConfirmation message that the cancel request was dispatched to the device

Note: A successful response indicates the cancellation request was transmitted to the device, not that the transaction was necessarily cancelled. Use the Status API to confirm the final transaction state.


Response — 400 (Processing Error)

{
  "error_no": "D07",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "NOT A VALID APP KEY"
}

Response fields

FieldTypeDescription
error_nostringD07 indicates an invalid App Key
mesgstringError message
msgstringError message
descstringDetailed description of the error cause

Error code reference

error_noMeaningTypical cause
S00SuccessCancel request sent to the device
D07Processing errorApp Key is invalid or unrecognised

Valor Connect Device Status

Retrieve the online/offline status of all Valor Connect-enabled terminals associated with a merchant.


Response — 200 OK

{
  "code": 200,
  "status": "OK",
  "devices": [
    {
      "EPI": "2319914293",
      "topic": "c127d*******d317c7b/UAT/VC/2319914293/POS",
      "Label": "Device5",
      "isOnline": "1",
      "channel_id": "c127d*******d317c7b"
    },
    {
      "EPI": "2319955030",
      "topic": "c127d*******d317c7b/UAT/VC/2319955030/POS",
      "Label": "VL100#8",
      "isOnline": "0",
      "channel_id": "c127d*******d317c7b"
    }
  ]
}

Response fields — top level

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringOK on success
devicesarrayArray of device status objects

devices — device status fields

FieldTypeDescription
EPIstringTerminal EPI identifier
topicstringPartially masked MQTT topic used for Valor Connect communication with this device
LabelstringTerminal display label
isOnlinestring1 if the device is currently online and reachable; 0 if offline
channel_idstringPartially masked channel ID for the Valor Connect session

Response — 400 (Authentication Error)

{
  "status": "FAILED",
  "code": 400,
  "message": "Not a valid APP ID or APP Key."
}

Response fields

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

Error code reference

statusMeaningTypical cause
OKSuccessDevice status list returned
FAILEDAuthentication errorApp ID or App Key is invalid

Valor Connect Device Status — Multi-MID

Retrieve the online/offline status of Valor Connect-enabled terminals for a Multi-MID merchant configuration. Returns the parent device along with its associated child EPIs.


Response — 200 OK

{
  "code": 200,
  "status": "OK",
  "devices": [
    {
      "EPI": "2319938037",
      "topic": "c127d*******d317c7b/UAT/VC/2319938037/POS",
      "Label": "VL100#Mid",
      "isOnline": "0",
      "channel_id": "c127d*******d317c7b",
      "children": [
        {
          "child_epi": "2319938042",
          "child_label": "VL100#Mid"
        },
        {
          "child_epi": "2319938046",
          "child_label": "VL100#Mid"
        },
        {
          "child_epi": "2319940510",
          "child_label": "VL100#Mid"
        }
      ]
    }
  ]
}

Response fields — top level

FieldTypeDescription
codeintegerHTTP status code (200)
statusstringOK on success
devicesarrayArray of parent device status objects

devices — parent device fields

FieldTypeDescription
EPIstringParent terminal EPI identifier
topicstringPartially masked MQTT topic for the parent device
LabelstringParent terminal display label
isOnlinestring1 if the parent device is online; 0 if offline
channel_idstringPartially masked channel ID for the Valor Connect session
childrenarrayArray of child EPI objects associated with this parent terminal (see below)

children — child EPI fields

FieldTypeDescription
child_epistringChild terminal EPI identifier
child_labelstringChild terminal display label

Note: In a Multi-MID configuration, the parent device handles the physical connection while child EPIs represent the individual MID profiles. The isOnline status reflects the physical device state and applies to all associated child EPIs.


Response — 400 (Authentication Error)

{
  "status": "FAILED",
  "code": 400,
  "message": "Not a valid APP ID or APP Key."
}

Response fields

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

Error code reference

statusMeaningTypical cause
OKSuccessMulti-MID device status returned
FAILEDAuthentication errorApp ID or App Key is invalid