Merchant API Sample Responses

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

Direct Sale / Auth

Process a direct payment authorization and capture.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "20.00",
  "tax": "0.01",
  "customfee": "1",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS992",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS992",
  "rrn": "608305501153",
  "txnid": "10169526",
  "created_date": "24/03/2026",
  "created_time": "01:36:44",
  "tran_no": 1,
  "stan": 687540,
  "batch_no": 582,
  "is_partial_approve": 0,
  "partial_amount": "000000002000",
  "pan": "XXXX1111",
  "card_type": null,
  "phone_number": "1111111111",
  "email_id": "[email protected]",
  "zip": null,
  "card_holder_name": "JOHN SMITH",
  "expiry_date": "12/36",
  "address": "0.01",
  "epi": "2412333540",
  "channel": "ECOMM",
  "orderdescription": "king size bed 10x12",
  "invoicenumber": "inv0001",
  "token": "11FD46************2A9A9E",
  "card_brand": "Visa",
  "netamt": 21
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful transaction
success_urlbooleantrue when the transaction is approved
error_codestringGateway error code. 00 = no error
amountstringCharged amount in decimal format (e.g. "20.00")
taxstringTax amount, if applicable
customfeestringCustom fee applied to the transaction
msgstringResult (e.g. APPROVED)
descstringDetailed description
additional_infostring | nullReserved for additional metadata
clerk_idstring | nullClerk identifier, if provided
clerk_namestring | nullClerk name, if provided
clerk_labelstring | nullClerk label, if provided
additionalKeyOnestring | nullCustom key field 1
additionalKeyTwostring | nullCustom key field 2
additionalValueOnestring | nullCustom value field 1
additionalValueTwostring | nullCustom value field 2
approval_codestringIssuer-returned authorization code
rrnstringRetrieval reference number for reconciliation
txnidstringUnique transaction identifier
created_datestringTransaction date in DD/MM/YYYY format
created_timestringTransaction time in HH:MM:SS format
tran_nointegerSequential transaction number within the batch
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full approval
partial_amountstringApproved amount in zero-padded 12-digit format
panstringMasked card number — last 4 digits shown (e.g. XXXX1111)
card_typestring | nullCard type, if returned by the issuer
phone_numberstringCardholder phone number, if provided
email_idstringCardholder email address, if provided
zipstring | nullBilling ZIP code, if provided
card_holder_namestringName on card, if provided
expiry_datestringCard expiry in MM/YY format
addressstringBilling address, if provided
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
orderdescriptionstringItem or order description
invoicenumberstringMerchant-supplied invoice reference
tokenstringCard token for future use or recurring charges
card_brandstringCard network (e.g. Visa, Mastercard)
netamtnumberNet amount charged including fees

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "14",
  "success_url": false,
  "txnid": "10169529",
  "batch_no": 582,
  "switch_error_code": "V0564",
  "mesg": "Invalid card number",
  "desc": "Error code :14",
  "msg": "Invalid card number",
  "isFlexSendOrNot": "V0564"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringIssuer decline code (e.g. 14 = invalid card number)
success_urlbooleanAlways false for declined transactions
txnidstringTransaction identifier (assigned even on decline)
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code returned by the network
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Response — 400 (Processing Error)

{
  "error_no": "D27",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID EPI ID"
}

Response fields

FieldTypeDescription
error_nostringD27 indicates a processing or configuration error
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedTransaction successful
E98DeclinedE98 indicates a declined transaction
D27Processing errorInvalid EPI ID or configuration issue

Direct Sale / Token

Process a payment using a previously stored card token.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "10.00",
  "tax": "0.01",
  "customfee": "1.02",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS215",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS215",
  "rrn": "608305501593",
  "txnid": "10169532",
  "created_date": "24/03/2026",
  "created_time": "01:43:54",
  "tran_no": 2,
  "stan": 687542,
  "batch_no": 582,
  "is_partial_approve": 0,
  "partial_amount": "000000001000",
  "pan": "XXXX1111",
  "card_type": null,
  "phone_number": "1111111111",
  "email_id": "[email protected]",
  "zip": null,
  "card_holder_name": "JOHN SMITH",
  "expiry_date": "/",
  "address": "26 Test",
  "epi": "2412333540",
  "channel": "ECOMM",
  "orderdescription": "king size bed 10x12",
  "invoicenumber": "inv0001",
  "token": "11FD46************2A9A9E",
  "card_brand": "Visa",
  "netamt": 11.02
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful transaction
success_urlbooleantrue when the transaction is approved
error_codestringGateway error code. 00 = no error
amountstringCharged amount in decimal format
taxstringTax amount, if applicable
customfeestringCustom fee applied to the transaction
msgstringResult (e.g. APPROVED)
descstringDetailed description
additional_infostring | nullReserved for additional metadata
clerk_idstring | nullClerk identifier, if provided
clerk_namestring | nullClerk name, if provided
clerk_labelstring | nullClerk label, if provided
additionalKeyOnestring | nullCustom key field 1
additionalKeyTwostring | nullCustom key field 2
additionalValueOnestring | nullCustom value field 1
additionalValueTwostring | nullCustom value field 2
approval_codestringIssuer-returned authorization code
rrnstringRetrieval reference number for reconciliation
txnidstringUnique transaction identifier
created_datestringTransaction date in DD/MM/YYYY format
created_timestringTransaction time in HH:MM:SS format
tran_nointegerSequential transaction number within the batch
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full approval
partial_amountstringApproved amount in zero-padded 12-digit format
panstringMasked card number — last 4 digits shown
card_typestring | nullCard type, if returned by the issuer
phone_numberstringCardholder phone number, if provided
email_idstringCardholder email address, if provided
zipstring | nullBilling ZIP code, if provided
card_holder_namestringName on card, if provided
expiry_datestringCard expiry in MM/YY format. Returns "/" when not stored with the token
addressstringBilling address, if provided
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
orderdescriptionstringItem or order description
invoicenumberstringMerchant-supplied invoice reference
tokenstringCard token used for this transaction
card_brandstringCard network (e.g. Visa, Mastercard)
netamtnumberNet amount charged including fees

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "V1",
  "success_url": false,
  "txnid": "10169535",
  "batch_no": 582,
  "switch_error_code": "V0605",
  "mesg": "Invalid card token",
  "desc": "Error code :V1",
  "msg": "Invalid card token",
  "isFlexSendOrNot": "V0605"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringIssuer decline code (e.g. V1 = invalid card token)
success_urlbooleanAlways false for declined transactions
txnidstringTransaction identifier (assigned even on decline)
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code returned by the network
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Response — 400 (Processing Error)

{
  "error_no": "E05",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID AMOUNT"
}

Response fields

FieldTypeDescription
error_nostringE05 indicates an input validation or processing error
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedTransaction successful
E98DeclinedE98 indicates a declined transaction
E05Processing errorInvalid or missing amount in the request

Direct Sale API (L2/L3)

Process a Level 2 / Level 3 direct payment with enhanced transaction data for corporate and purchasing cards.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "10.00",
  "tax": "0.01",
  "customfee": "1.02",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS495",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS495",
  "rrn": "608305501954",
  "txnid": "10169562",
  "created_date": "24/03/2026",
  "created_time": "01:52:04",
  "tran_no": 4,
  "stan": 687551,
  "batch_no": 582,
  "is_partial_approve": 0,
  "partial_amount": "000000001000",
  "pan": "XXXX1111",
  "card_type": null,
  "phone_number": "1111111111",
  "email_id": "[email protected]",
  "zip": null,
  "card_holder_name": "JOHN SMITH",
  "expiry_date": "12/36",
  "address": "26 Test",
  "epi": "2412333540",
  "channel": "ECOMM",
  "orderdescription": "king size bed 10x12",
  "invoicenumber": "inv0001",
  "token": "11FD46************2A9A9E",
  "card_brand": "Visa",
  "netamt": 11.02
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful transaction
success_urlbooleantrue when the transaction is approved
error_codestringGateway error code. 00 = no error
amountstringCharged amount in decimal format
taxstringTax amount, if applicable
customfeestringCustom fee applied to the transaction
msgstringResult (e.g. APPROVED)
descstringDetailed description
approval_codestringIssuer-returned authorization code
rrnstringRetrieval reference number for reconciliation
txnidstringUnique transaction identifier
created_datestringTransaction date in DD/MM/YYYY format
created_timestringTransaction time in HH:MM:SS format
tran_nointegerSequential transaction number within the batch
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full approval
partial_amountstringApproved amount in zero-padded 12-digit format
panstringMasked card number — last 4 digits shown
expiry_datestringCard expiry in MM/YY format
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
tokenstringCard token for future use or recurring charges
card_brandstringCard network (e.g. Visa, Mastercard)
netamtnumberNet amount charged including fees

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "54",
  "success_url": false,
  "txnid": "10169568",
  "batch_no": 582,
  "switch_error_code": "V0548",
  "mesg": "Card expired",
  "desc": "Error code :54",
  "msg": "Card expired",
  "isFlexSendOrNot": "V0548"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringIssuer decline code (e.g. 54 = card expired)
success_urlbooleanAlways false for declined transactions
txnidstringTransaction identifier (assigned even on decline)
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code returned by the network
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Response — 400 (Processing Error)

{
  "error_no": "E07",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID EXPIRY DATE"
}

Response fields

FieldTypeDescription
error_nostringE07 indicates an expiry date validation error
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedTransaction successful
E98DeclinedE98 indicates a declined transaction
E07Processing errorInvalid or malformed expiry date in the request

Direct Sale Token (L2/L3)

Process a Level 2 / Level 3 payment using a previously stored card token.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "10.00",
  "tax": "0.01",
  "customfee": "1.02",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS614",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS614",
  "rrn": "608305501959",
  "txnid": "10169571",
  "created_date": "24/03/2026",
  "created_time": "01:52:48",
  "tran_no": 5,
  "stan": 687553,
  "batch_no": 582,
  "is_partial_approve": 0,
  "partial_amount": "000000001000",
  "pan": "XXXX1111",
  "card_type": null,
  "phone_number": "1111111111",
  "email_id": "[email protected]",
  "zip": null,
  "card_holder_name": "JOHN SMITH",
  "expiry_date": "/",
  "address": "26 Test",
  "epi": "2412333540",
  "channel": "ECOMM",
  "orderdescription": "king size bed 10x12",
  "invoicenumber": "inv0001",
  "token": "11FD46************2A9A9E",
  "card_brand": "Visa",
  "netamt": 11.02
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful transaction
success_urlbooleantrue when the transaction is approved
error_codestringGateway error code. 00 = no error
amountstringCharged amount in decimal format
taxstringTax amount, if applicable
customfeestringCustom fee applied to the transaction
msgstringResult (e.g. APPROVED)
descstringDetailed description
approval_codestringIssuer-returned authorization code
rrnstringRetrieval reference number for reconciliation
txnidstringUnique transaction identifier
created_datestringTransaction date in DD/MM/YYYY format
created_timestringTransaction time in HH:MM:SS format
tran_nointegerSequential transaction number within the batch
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full approval
partial_amountstringApproved amount in zero-padded 12-digit format
panstringMasked card number — last 4 digits shown
expiry_datestringCard expiry in MM/YY format. Returns "/" when not stored with the token
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
tokenstringCard token used for this transaction
card_brandstringCard network (e.g. Visa, Mastercard)
netamtnumberNet amount charged including fees

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "V1",
  "success_url": false,
  "txnid": "10169574",
  "batch_no": 582,
  "switch_error_code": "V0605",
  "mesg": "Invalid card token",
  "desc": "Error code :V1",
  "msg": "Invalid card token",
  "isFlexSendOrNot": "V0605"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringIssuer decline code (e.g. V1 = invalid card token)
success_urlbooleanAlways false for declined transactions
txnidstringTransaction identifier
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Response — 400 (Processing Error)

{
  "error_no": "D03",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "TXN TYPE IS REQUIRED"
}

Response fields

FieldTypeDescription
error_nostringD03 indicates a missing required field error
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedTransaction successful
E98DeclinedE98 indicates a declined transaction
D03Processing errorRequired field txn_type missing from the request

Hosted Page Sale

Generate a secure hosted payment page URL to collect card details from the customer.


Response — 200 OK

{
  "error_no": "S00",
  "url": "https://securelink-staging.valorpaytech.com:443//?uid=Z8ULm***********vz0FZ9&redirect=1",
  "uid": "Z8ULm***********vz0FZ9"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the hosted page was created successfully
urlstringSecure hosted payment page URL. Redirect the customer to this link to complete payment
uidstringUnique identifier for this payment link. Use this for update, resend, or cancel operations

Response — 400 (Processing Error)

{
  "error_no": "D06",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "NOT A VALID APP ID"
}

Response fields

FieldTypeDescription
error_nostringD06 indicates an invalid APP ID
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessHosted page URL created
D06Processing errorInvalid or unrecognised App ID in the request

Hosted Page Sale — Update and Resend

Update an existing hosted payment link and resend it to the customer. Only links in pending status can be updated or resent.


Response — 200 OK

{
  "error_no": "S00",
  "url": "https://securelink-staging.valorpaytech.com:443//?uid=Z8ULm***********vz0FZ9&redirect=1",
  "uid": "Z8ULm***********vz0FZ9"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the link was updated and resent successfully
urlstringUpdated hosted payment page URL
uidstringUID for the payment link

Response — 400 (Processing Error)

{
  "error_no": "A36",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "ONLY PENDING EINVOICE CAN BE RESEND"
}

Response fields

FieldTypeDescription
error_nostringA36 indicates the invoice is not in a resendable state
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessLink updated and resent
A36Processing errorInvoice is not in pending status and cannot be resent

Hosted Page Sale (L2/L3)

Generate a secure hosted payment page URL with Level 2 / Level 3 data support.


Response — 200 OK

{
  "error_no": "S00",
  "url": "https://securelink-staging.valorpaytech.com:443//?uid=Z8ULm***********vz0FZ9&redirect=1",
  "uid": "Z8ULm***********vz0FZ9"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the hosted page was created successfully
urlstringSecure hosted payment page URL. Redirect the customer to this link to complete payment
uidstringUnique identifier for this payment link

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

Error code reference

error_noMeaningTypical cause
S00SuccessHosted page URL created
D07Processing errorInvalid or unrecognised App Key in the request

Hosted Page Sale (L2/L3) — Update and Resend

Update an existing L2/L3 hosted payment link and resend it.


Response — 200 OK

{
  "error_no": "S00",
  "url": "https://securelink-staging.valorpaytech.com:443//?uid=Z8ULm***********vz0FZ9&redirect=1",
  "uid": "Z8ULm***********vz0FZ9"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the link was updated and resent successfully
urlstringUpdated hosted payment page URL
uidstringUID for the payment link

Response — 400 (Processing Error)

{
  "error_no": "A18",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID UID"
}

Response fields

FieldTypeDescription
error_nostringA18 indicates the provided UID is invalid or not found
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessLink updated and resent
A18Processing errorUID does not exist or is not associated with an active

Hosted Page Sale — Cancel

Cancel an existing hosted payment link.


Response — 200 OK

{
  "error_no": "S00",
  "desc": "SUCCESS",
  "msg": "EINVOICE CANCELED"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the invoice was cancelled successfully
msgstringConfirmation message (e.g. EINVOICE CANCELED)
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "A39",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "TRANSACTION IS ALREADY IN EXPIRED STATUS"
}

Response fields

FieldTypeDescription
error_nostringA39 indicates the transaction cannot be cancelled in its current state
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessInvoice cancelled
A39Processing errorTransaction is already expired and cannot be cancelled

Merchant Hosted Page — Payment Result Pages

When a customer completes or fails a payment on the hosted page, the following result screens are rendered.


Approved — payment success page

Displayed to the customer after a successful payment.

ElementValue
TitleAPPROVED
Body messageYour transaction has been successfully processed.
IconGreen checkmark
StyleBootstrap modal, green accent (#82ce34)

Declined / Expired — payment failure page

Displayed when the payment link has expired or the payment could not be completed.

ElementValue
Error display404-style layout with spinning question-circle icon
MessagePayment Link expired
Background colour#95c2de (light blue)

Note: The expired page uses a 404-style layout to indicate the payment is no longer valid. Customers should contact the merchant for a new payment link.


Incremental Auth

Increase the authorized amount on an existing pre-authorization.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "50.00",
  "tax": "0.01",
  "customfee": "0.01",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS343",
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "TAS343",
  "rrn": "608306502107",
  "txnid": "10169607",
  "created_date": "24/03/2026",
  "created_time": "02:06:59",
  "tran_no": 11,
  "stan": 687563,
  "batch_no": 582,
  "is_partial_approve": 0,
  "partial_amount": "000000005000",
  "pan": "XXXX",
  "card_type": null,
  "phone_number": "1111111111",
  "email_id": "[email protected]",
  "zip": null,
  "card_holder_name": "JOHN SMITH",
  "expiry_date": "/",
  "address": "26 Test",
  "epi": "2412333540",
  "channel": "ECOMM",
  "orderdescription": "Test",
  "invoicenumber": "Test",
  "token": "11FD46************2A9A9E",
  "card_brand": null,
  "netamt": 50
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful incremental authorization
success_urlbooleantrue when the authorization is approved
error_codestringGateway error code. 00 = no error
amountstringIncremental authorization amount in decimal format
approval_codestringIssuer-returned authorization code
rrnstringRetrieval reference number for reconciliation
txnidstringUnique transaction identifier
created_datestringTransaction date in DD/MM/YYYY format
created_timestringTransaction time in HH:MM:SS format
tran_nointegerSequential transaction number within the batch
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full approval
partial_amountstringAuthorized amount in zero-padded 12-digit format
panstringMasked card number
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
netamtnumberNet authorized amount

Response — 400 (Processing Error)

{
  "error_no": "E14",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID TRANSACTION ID"
}

Response fields

FieldTypeDescription
error_nostringE14 indicates the referenced transaction ID is invalid
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedIncremental authorization successful
E14Processing errorTransaction ID not found or does not support incremental auth

Refund Offset Sale

Issue a refund against a previously settled transaction.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "error_code": "00",
  "amount": "5.00",
  "tax": "0.01",
  "customfee": "0.01",
  "msg": "APPROVED",
  "txnid": "10169628",
  "desc": "APPROVAL TAS435",
  "additional_info": null,
  "epi": "2412333540",
  "channel": "ECOMM",
  "created_date": "24/03/2026",
  "created_time": "02:13:07",
  "rrn": "608306502151"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful refund
error_codestringGateway error code. 00 = no error
amountstringRefunded amount in decimal format
taxstringTax amount, if applicable
customfeestringCustom fee, if applicable
msgstringResult (e.g. APPROVED)
txnidstringUnique transaction identifier for the refund
descstringDetailed description
additional_infostring | nullReserved for additional metadata
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
created_datestringRefund date in DD/MM/YYYY format
created_timestringRefund time in HH:MM:SS format
rrnstringRetrieval reference number for reconciliation

Response — 400 (Missing Input)

{
  "error_no": "E03",
  "mesg": "TRANSACTION NOT ALLOWED",
  "desc": "Input field is missing"
}

Response fields

FieldTypeDescription
error_nostringE03 indicates a missing required input field
mesgstringHigh-level error category
descstringDetailed description

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "12",
  "success_url": false,
  "txnid": "10169619",
  "batch_no": 582,
  "switch_error_code": "V0543",
  "mesg": "Original transaction not found",
  "desc": "Error code :12",
  "msg": "Original transaction not found",
  "isFlexSendOrNot": "V0543"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringIssuer decline code (e.g. 12 = original transaction not found)
success_urlbooleanAlways false for declined transactions
txnidstringTransaction identifier assigned to the failed refund attempt
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Error code reference

error_noMeaningTypical cause
S00ApprovedRefund processed successfully
E03Missing inputA required field was not provided in the request
E98DeclinedE98 indicates a declined transaction

Transaction List API

Retrieve a paginated list of transactions for a given terminal.


Response — 200 OK

{
  "number_of_records": 1,
  "data": [
    {
      "CARD_TYPE": "DEBIT",
      "EPI": "2412333540",
      "LABEL": "VT #2",
      "DATE": "03-24-2026",
      "REF_TXN_ID": "10169628",
      "TIME": "02:13 AM",
      "TIMEZONE": "EST",
      "AUTH_CODE": "TAS435",
      "APPROVAL_CODE": "TAS435",
      "TOKEN": "11FD46************2A9A9E",
      "RRN": "608306502151",
      "TXN_TYPE": "REFUND",
      "CARD_SCHEME": "Visa",
      "PAN": "4111 XXXX XXXX 1111",
      "RESPONSE_CODE": "00",
      "CARDHOLDER_NAME": "JOHN SMITH",
      "DBA_NAME": "Valor Store LLC",
      "INVOICE_NO": "inv0001",
      "POS_ENTRY_MODE": "012",
      "BASE_AMOUNT": "500",
      "CUSTOM_FEE_AMOUNT": "0",
      "NET_AMOUNT": "500",
      "TIP_AMOUNT": "0",
      "TAX_DETAILS": {
        "stateTax": { "rate": 0, "amount": 0, "taxableSales": 500 },
        "cityTax": { "rate": 0, "amount": 0, "taxableSales": 500 },
        "reducedTax": { "rate": 0, "amount": 0, "taxableSales": 0 }
      },
      "TOTAL_TAX": 0,
      "TOTAL_WITH_TAX": 500,
      "MID": "887000003193",
      "CASHBACK_AMOUNT": "0",
      "DEVICE_MODEL": "139",
      "BATCH_NO": "582",
      "STAN_NO": "687572",
      "TRAN_NO": "12",
      "POS_CONDITION_CODE": "59",
      "IS_SETTLED": "0",
      "REFUND_AMOUNT": "0",
      "REFUND_COUNT": "0",
      "IS_AUTH_COMPLETED": "0",
      "IS_REVERSAL": "0",
      "IS_VOID": "0",
      "CARD_METADATA": {
        "CARD_BIN": "411111",
        "CARD_TYPE": "DEBIT",
        "ISSUING_BANK": "CONOTOXIA SP. Z O.O",
        "COUNTRY": "POLAND",
        "CARD_LEVEL": "PERSONAL",
        "CARD_CATEGORY": "CLASSIC"
      },
      "TXN_ORIG_DATE": "2026-03-24 06:13:06"
    }
  ],
  "status": "SUCCESS",
  "meta": {
    "number_of_records": 1,
    "total_pages": 39,
    "total_results": 39,
    "page_number": 1,
    "page_size": 1
  }
}

Response fields — top level

FieldTypeDescription
number_of_recordsintegerNumber of records returned in this page
dataarrayArray of transaction objects
statusstringSUCCESS on success
metaobjectPagination metadata

data — transaction object fields

FieldTypeDescription
CARD_TYPEstringCard type (e.g. DEBIT, CREDIT)
EPIstringMerchant terminal / EPI identifier
LABELstringTerminal label
DATEstringTransaction date in MM-DD-YYYY format
REF_TXN_IDstringReference transaction ID
TIMEstringTransaction time (e.g. 02:13 AM)
TIMEZONEstringTimezone of the terminal (e.g. EST)
AUTH_CODEstringAuthorization code
APPROVAL_CODEstringIssuer approval code
TOKENstringCard token, if stored
RRNstringRetrieval reference number
TXN_TYPEstringTransaction type (e.g. SALE, REFUND, VOID)
CARD_SCHEMEstringCard network (e.g. Visa, Mastercard)
PANstringMasked card number (e.g. 4111 XXXX XXXX 1111)
RESPONSE_CODEstringGateway response code. 00 = approved
CARDHOLDER_NAMEstringName on card, if provided
DBA_NAMEstringMerchant doing-business-as name
INVOICE_NOstringMerchant-supplied invoice reference
POS_ENTRY_MODEstringPOS entry mode code
BASE_AMOUNTstringBase transaction amount in cents
CUSTOM_FEE_AMOUNTstringCustom fee amount in cents
NET_AMOUNTstringNet charged amount in cents
TIP_AMOUNTstringTip amount in cents
TAX_DETAILSobjectBreakdown of state, city, and reduced tax
TOTAL_TAXnumberTotal tax amount in cents
TOTAL_WITH_TAXnumberTotal amount including tax in cents
MIDstringMerchant ID
CASHBACK_AMOUNTstringCashback amount in cents
DEVICE_MODELstringDevice model identifier
BATCH_NOstringSettlement batch number
STAN_NOstringSystem trace audit number
TRAN_NOstringSequential transaction number
IS_SETTLEDstring1 if settled; 0 if pending settlement
REFUND_AMOUNTstringTotal refunded amount in cents
REFUND_COUNTstringNumber of refunds issued against this transaction
IS_AUTH_COMPLETEDstring1 if auth has been captured; 0 otherwise
IS_REVERSALstring1 if this is a reversal transaction
IS_VOIDstring1 if this transaction has been voided
CARD_METADATAobjectCard BIN metadata
TXN_ORIG_DATEstringOriginal transaction timestamp in YYYY-MM-DD HH:MM:SS UTC

CARD_METADATA object

FieldTypeDescription
CARD_BINstringFirst 6 digits of the card number (BIN)
CARD_TYPEstringCard type (e.g. DEBIT, CREDIT)
ISSUING_BANKstringName of the issuing bank
COUNTRYstringCountry of the issuing bank
CARD_LEVELstringCard level (e.g. PERSONAL, CORPORATE)
CARD_CATEGORYstringCard category (e.g. CLASSIC, PLATINUM)

meta object

FieldTypeDescription
number_of_recordsintegerRecords returned on this page
total_pagesintegerTotal number of pages available
total_resultsintegerTotal number of matching records
page_numberintegerCurrent page number
page_sizeintegerNumber of records per page

Response — 400 (Processing Error)

{
  "error_no": "D35",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "FILTER KEY MUST BE SET TO TXNID WHEN DATE_FILTER IS 9"
}

Response fields

FieldTypeDescription
error_nostringD35 indicates an invalid filter configuration
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00 (via status: SUCCESS)SuccessRecords returned
D35Processing errorfilter_key must be TXNID when date_filter is 9

Transaction List with Date Range API

Retrieve a paginated list of transactions filtered by a specific date range.


Response — 200 OK

{
  "number_of_records": 1,
  "data": [
    {
      "CARD_TYPE": "DEBIT",
      "EPI": "2412333540",
      "DATE": "06-30-2024",
      "REF_TXN_ID": "6545831",
      "TXN_TYPE": "SALE",
      "CARD_SCHEME": "Visa",
      "PAN": "4111 XXXX XXXX 1111",
      "CARDHOLDER_NAME": "Michael Jordan",
      "DBA_NAME": "Valor Store LLC",
      "BASE_AMOUNT": "500",
      "CUSTOM_FEE_AMOUNT": "1020",
      "NET_AMOUNT": "1520",
      "IS_SETTLED": "1",
      "BILLING_STREET_NO": "2 Jericho Plz",
      "BILLING_ZIPCODE": "50001",
      "TXN_ORIG_DATE": "2024-06-30 18:56:29"
    }
  ],
  "status": "SUCCESS",
  "meta": {
    "number_of_records": 1,
    "total_pages": 116,
    "total_results": 116,
    "page_number": 1,
    "page_size": 1
  }
}

Note: The response schema is identical to the Transaction List API. Key differences: IS_SETTLED is "1" (settled), CARDHOLDER_NAME and BILLING_STREET_NO are populated, and CUSTOM_FEE_AMOUNT / NET_AMOUNT reflect a non-zero custom fee.


Response — 400 (Processing Error)

{
  "error_no": "D29",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "START DATE AND END DATE REQUIRED"
}

Response fields

FieldTypeDescription
error_nostringD29 indicates missing date range parameters
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00 (via status: SUCCESS)SuccessRecords returned for the specified date range
D29Processing errorstart_date or end_date missing from the request

Void API

Void an unsettled transaction, preventing it from being captured and settled.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "error_code": "00",
  "amount": "20.00",
  "tax": "0",
  "customfee": "0",
  "msg": "APPROVED",
  "txnid": "10169634",
  "desc": "APPROVAL TAS428",
  "additional_info": null,
  "epi": "2412333540",
  "channel": "ECOMM",
  "created_date": "24/03/2026",
  "created_time": "02:15:22",
  "rrn": "608306502148"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the void was successful
error_codestringGateway error code. 00 = no error
amountstringAmount of the voided transaction
taxstringTax amount on the voided transaction
customfeestringCustom fee on the voided transaction
msgstringResult (e.g. APPROVED)
txnidstringTransaction identifier of the void
descstringDetailed description
additional_infostring | nullReserved for additional metadata
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
created_datestringVoid date in DD/MM/YYYY format
created_timestringVoid time in HH:MM:SS format
rrnstringRetrieval reference number

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "V5",
  "success_url": false,
  "txnid": "10169637",
  "batch_no": 582,
  "switch_error_code": "V0620",
  "mesg": "VOID Transaction has already been performed",
  "desc": "Error code :V5",
  "msg": "VOID Transaction has already been performed",
  "isFlexSendOrNot": "V0620"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringDecline code (e.g. V5 = already voided)
success_urlbooleanAlways false for declined operations
txnidstringTransaction identifier
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Error code reference

error_noMeaningTypical cause
S00ApprovedTransaction voided successfully
E98DeclinedE98 indicates a declined transaction

Settlement API

Settle all open transactions in the current batch for a given terminal.


Response — 200 OK (Settled)

{
  "error_no": "S00",
  "error_code": "00",
  "amount": "141.08",
  "tax": "0.00",
  "customfee": "6.08",
  "msg": "APPROVED",
  "txnid": null,
  "desc": null,
  "additional_info": null,
  "epi": "2412333540",
  "channel": "ECOMM",
  "created_date": "24/03/2026",
  "created_time": "02:15:45",
  "rrn": null
}

Response — 200 OK (Empty Batch)

{
  "error_no": "S00",
  "error_code": "00",
  "amount": "0.00",
  "tax": "0.01",
  "customfee": "0.01",
  "msg": "APPROVED",
  "txnid": null,
  "desc": null,
  "additional_info": "Empty Batch",
  "epi": "2412333540",
  "channel": "ECOMM",
  "created_date": "24/03/2026",
  "created_time": "02:15:54",
  "rrn": null
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the settlement request was accepted
error_codestringGateway error code. 00 = no error
amountstringTotal settled amount. "0.00" for an empty batch
taxstringTotal tax amount settled
customfeestringTotal custom fees settled
msgstringResult (e.g. APPROVED)
txnidstring | nullNot applicable for settlement; always null
descstring | nullDetailed description
additional_infostring | null"Empty Batch" when no transactions were present; otherwise null
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
created_datestringSettlement date in DD/MM/YYYY format
created_timestringSettlement time in HH:MM:SS format
rrnstring | nullNot applicable for settlement; always null

Note: Both a successful settlement and an empty batch return error_no: "S00". Check additional_info for the value "Empty Batch" to distinguish the two cases.


Capture / Ticket API

Capture a previously authorized transaction and move it to the open batch for settlement.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "1000.00",
  "tax": "0.01",
  "customfee": "0",
  "msg": "APPROVED",
  "desc": "APPROVAL TAS507",
  "approval_code": "TAS507",
  "rrn": "608306502177",
  "txnid": "10169649",
  "created_date": "24/03/2026",
  "created_time": "02:16:26",
  "tran_no": 2,
  "stan": 687581,
  "batch_no": 583,
  "is_partial_approve": 0,
  "partial_amount": "000000100000",
  "pan": "XXXX",
  "expiry_date": "/",
  "epi": "2412333540",
  "channel": "ECOMM",
  "netamt": 1000
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful capture
success_urlbooleantrue when the capture is approved
error_codestringGateway error code. 00 = no error
amountstringCaptured amount in decimal format
msgstringResult (e.g. APPROVED)
descstringDetailed description
approval_codestringIssuer-returned authorization code
rrnstringRetrieval reference number
txnidstringUnique transaction identifier for the capture
created_datestringCapture date in DD/MM/YYYY format
created_timestringCapture time in HH:MM:SS format
tran_nointegerSequential transaction number within the batch
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full capture
partial_amountstringCaptured amount in zero-padded 12-digit format
epistringMerchant terminal / EPI identifier
netamtnumberNet captured amount

Response — 400 (Processing Error)

{
  "error_no": "E16",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID TRAN NO"
}

Response fields

FieldTypeDescription
error_nostringE16 indicates the transaction number is invalid
mesgstringError message
msgstringError message
descstringDetailed description

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "V5",
  "success_url": false,
  "txnid": "10169652",
  "batch_no": 583,
  "switch_error_code": "V0622",
  "mesg": "Capture/Ticket Transaction has already been performed",
  "desc": "Error code :V5",
  "msg": "Capture/Ticket Transaction has already been performed",
  "isFlexSendOrNot": "V0622"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringDecline code (e.g. V5 = already captured)
success_urlbooleanAlways false for declined operations
txnidstringTransaction identifier
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Error code reference

error_noMeaningTypical cause
S00ApprovedCapture successful
E16Processing errorInvalid transaction number (tran_no)
E98DeclinedE98 indicates a declined transaction

Open Batch API

Retrieve the details of the currently open (unsettled) batch for a given terminal.


Response — 200 OK

{
  "status": "SUCCESS",
  "statusMsg": "Open batch request success",
  "batchSummary": [
    {
      "dashboard_netamount": 100000,
      "dashboard_batchcount": 1
    }
  ],
  "batchSummaryDetails": [
    {
      "txn_id": 10169649,
      "epi_id": "2412333540",
      "txn_type": "COMPLETION",
      "txn_type_code": 104,
      "amount": 100000,
      "tip_amount": 0,
      "cashback_amount": 0,
      "custom_fee_amount": 0,
      "tax_amount": 0,
      "tran_no": 2,
      "stan_no": "687581",
      "invoice_no": "3",
      "batch_no": "583",
      "pos_entry_mode": "812",
      "masked_card_no": "4111 XXXX XXXX 1111",
      "card_scheme": "Visa",
      "request_date": "03-24-2026",
      "request_time": "02:16 AM",
      "store_time_zone": "EST",
      "mid": "887000003193",
      "tid": "75021674",
      "rrn": "608306502177",
      "approval_code": "TAS507",
      "response_code": "00",
      "is_voided": 0,
      "is_auth_completed": 0,
      "settled_at": "2026-03-24T06:16:25.000Z",
      "created_at": "2026-03-24T06:16:25.000Z",
      "txamount": 100000,
      "surcharge_label": "Adjustment"
    }
  ],
  "epiInfo": {
    "tip_adjust": true,
    "max_tip": "350"
  },
  "meta": {
    "number_of_records": 1,
    "total_pages": 1,
    "total_results": 1,
    "page_number": 1,
    "page_size": 1
  },
  "openBatchDetails": [
    {
      "base_amount_totals": 100000,
      "total_transactions": 1,
      "tip_counts": 0,
      "total_tip_amount": 0,
      "custom_fee_totals": 0,
      "transaction_total_amount": 100000
    }
  ]
}

Response fields — top level

FieldTypeDescription
statusstringSUCCESS on success
statusMsgstringStatus message
batchSummaryarrayHigh-level batch totals
batchSummaryDetailsarrayLine-item transaction details
epiInfoobjectTerminal tip adjustment settings
metaobjectPagination metadata
openBatchDetailsarrayAggregated batch totals

batchSummary object

FieldTypeDescription
dashboard_netamountnumberTotal net amount in the open batch (cents)
dashboard_batchcountnumberTotal number of transactions in the open batch

batchSummaryDetails — key transaction fields

FieldTypeDescription
txn_idintegerUnique transaction identifier
epi_idstringTerminal / EPI identifier
txn_typestringTransaction type (e.g. COMPLETION, SALE)
amountnumberTransaction amount in cents
tip_amountnumberTip amount in cents
custom_fee_amountnumberCustom fee amount in cents
tran_nointegerSequential transaction number
stan_nostringSystem trace audit number
batch_nostringBatch number
masked_card_nostringMasked card number
card_schemestringCard network
rrnstringRetrieval reference number
approval_codestringIssuer approval code
is_voidedinteger1 if voided; 0 otherwise
settled_atstringSettlement timestamp (ISO 8601)
txamountnumberTotal transaction amount in cents

epiInfo object

FieldTypeDescription
tip_adjustbooleantrue if tip adjustment is enabled for this terminal
max_tipstringMaximum tip adjustment allowed (in cents)

openBatchDetails object

FieldTypeDescription
base_amount_totalsnumberSum of all base transaction amounts (cents)
total_transactionsnumberTotal number of transactions in the open batch
tip_countsnumberNumber of transactions with a tip
total_tip_amountnumberSum of all tip amounts (cents)
custom_fee_totalsnumberSum of all custom fees (cents)
transaction_total_amountnumberTotal batch amount including all fees (cents)

Response — 400 (Processing Error)

{
  "error_no": "D27",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID EPI ID"
}

Response fields

FieldTypeDescription
error_nostringD27 indicates an invalid EPI ID
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00 (via status: SUCCESS)SuccessOpen batch details returned
D27Processing errorEPI ID not found or invalid

Closed Batch API

Retrieve transaction details for a previously settled (closed) batch.


Response — 200 OK

{
  "status": "SUCCESS",
  "statusMsg": "Closed batch transaction details",
  "transactionCount": 1,
  "closedBatchDetails": [
    {
      "txn_id": 10169649,
      "epi_id": "2412333540",
      "txn_type": "COMPLETION",
      "txn_type_code": 104,
      "amount": 100000,
      "tip_amount": 0,
      "tran_no": 2,
      "stan_no": "687581",
      "batch_no": "583",
      "masked_card_no": "4111 XXXX XXXX 1111",
      "card_scheme": "Visa",
      "mid": "887000003193",
      "rrn": "608306502177",
      "approval_code": "TAS507",
      "response_code": "00",
      "is_voided": 0,
      "settled_at": "2026-03-24T06:16:25.000Z",
      "txamount": 100000
    }
  ],
  "meta": {
    "number_of_records": 1,
    "total_pages": 1,
    "total_results": 1,
    "page_number": 1,
    "page_size": 1
  },
  "closednewBatchDetails": [
    {
      "base_amount_totals": 100000,
      "total_transactions": 1,
      "tip_counts": 0,
      "total_tip_amount": 0,
      "custom_fee_totals": 0,
      "transaction_total_amount": 100000
    }
  ]
}

Response fields — top level

FieldTypeDescription
statusstringSUCCESS on success
statusMsgstringStatus message
transactionCountintegerTotal number of transactions in the closed batch
closedBatchDetailsarrayLine-item transaction details
metaobjectPagination metadata
closednewBatchDetailsarrayAggregated batch totals

closedBatchDetails — key transaction fields

FieldTypeDescription
txn_idintegerUnique transaction identifier
epi_idstringTerminal / EPI identifier
txn_typestringTransaction type (e.g. COMPLETION, SALE)
amountnumberTransaction amount in cents
tran_nointegerSequential transaction number
stan_nostringSystem trace audit number
batch_nostringBatch number
masked_card_nostringMasked card number
card_schemestringCard network
rrnstringRetrieval reference number
approval_codestringIssuer approval code
response_codestringGateway response code
is_voidedinteger1 if voided; 0 otherwise
settled_atstringSettlement timestamp (ISO 8601)
txamountnumberTotal transaction amount in cents

closednewBatchDetails object

FieldTypeDescription
base_amount_totalsnumberSum of all base transaction amounts (cents)
total_transactionsnumberTotal number of transactions in the batch
tip_countsnumberNumber of transactions with a tip
total_tip_amountnumberSum of all tip amounts (cents)
custom_fee_totalsnumberSum of all custom fees (cents)
transaction_total_amountnumberTotal batch amount including all fees (cents)

Response — 400 (Validation Error)

{
  "code": 400,
  "status": "FAILED",
  "errors": ["batchNO is missing. Please provide an batchNO."],
  "closednewBatchDetails": [
    {
      "base_amount_totals": 0,
      "total_transactions": 0,
      "tip_counts": 0,
      "total_tip_amount": 0,
      "custom_fee_totals": 0,
      "transaction_total_amount": 0
    }
  ]
}

Response fields

FieldTypeDescription
codeintegerHTTP status code (400)
statusstringFAILED when the request cannot be processed
errorsarrayList of validation error messages
closednewBatchDetailsarrayReturns zeroed totals when the request fails

Error code reference

statusMeaningTypical cause
SUCCESSSuccessClosed batch details returned
FAILEDValidation errorbatchNO missing from the request

TIP Adjust API

Adjust the tip amount on a previously authorized transaction before settlement.


Response — 200 OK (Tip Added / Updated)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "5.00",
  "tax": "0.01",
  "customfee": "0.01",
  "msg": "APPROVED",
  "desc": null,
  "additional_info": null,
  "approval_code": "TAS551",
  "rrn": "608306502207",
  "txnid": null,
  "created_date": "24/03/2026",
  "created_time": "02:18:44",
  "tran_no": 4,
  "stan": 687593,
  "batch_no": 583,
  "is_partial_approve": 0,
  "partial_amount": "000000000500",
  "pan": "XXXX",
  "epi": "2412333540",
  "channel": "VT",
  "netamt": 5
}

Response — 200 OK (Same Tip Amount)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "50.00",
  "msg": "APPROVED",
  "additional_info": "Tip amount is same as previous tip adjusted amount",
  "approval_code": "TAS551",
  "rrn": "608306502207",
  "txnid": null,
  "created_date": "24/03/2026",
  "created_time": "02:19:39",
  "tran_no": 4,
  "stan": 687593,
  "batch_no": 583,
  "partial_amount": "000000005000",
  "pan": "XXXX",
  "epi": "2412333540",
  "channel": "VT",
  "netamt": 50
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the tip adjustment was accepted
success_urlbooleantrue when the adjustment is approved
error_codestringGateway error code. 00 = no error
amountstringTip amount adjusted in decimal format
msgstringResult (e.g. APPROVED)
additional_infostring | null"Tip amount is same as previous tip adjusted amount" when no change was made; otherwise null
approval_codestringOriginal authorization code from the parent transaction
rrnstringRetrieval reference number of the parent transaction
txnidstring | nullNot returned for tip adjustments; always null
created_datestringAdjustment date in DD/MM/YYYY format
created_timestringAdjustment time in HH:MM:SS format
tran_nointegerTransaction number of the original transaction
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
partial_amountstringTip amount in zero-padded 12-digit format
epistringMerchant terminal / EPI identifier
channelstringChannel used (e.g. VT = virtual terminal)
netamtnumberNet tip amount

Note: Check additional_info for "Tip amount is same as previous tip adjusted amount" to identify no-op adjustments.


Response — 400 (Processing Error)

{
  "error_no": "E34",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID STAN NO"
}

Response fields

FieldTypeDescription
error_nostringE34 indicates the STAN number is invalid
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedTip adjusted or already at the same amount
E34Processing errorInvalid or unrecognised STAN number

E-Receipt Fetch API

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


Response — 200 OK

{
  "error_no": "S00",
  "status": "OK",
  "mesg": "SUCCESS",
  "eReceipt": "https://rcpt-staging.valorpaytech.com:4430/?id=10169658-608306502207--v3.0&type=cc"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the e-receipt was retrieved successfully
statusstringOK on success
mesgstringSUCCESS on success
eReceiptstringURL to the hosted e-receipt page

Response — 400 (Invalid Receipt Type)

{
  "error_no": "G36",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "RECEIPT TYPE ALLOWED VALUES ARE 0, 1"
}

Response fields

FieldTypeDescription
error_nostringG36 indicates an invalid receipt type value
mesgstringError message
msgstringError message
descstringDetailed description

Response — 400 (Invalid Transaction ID)

{
  "error_no": "91",
  "status": "OK",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID TXN ID"
}

Response fields

FieldTypeDescription
error_nostring91 indicates the transaction ID is invalid or not found
statusstringOK is returned even on error for this response type
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessE-receipt URL returned
G36Processing errorInvalid receipt_type — must be 0 or 1
91Processing errorTransaction ID not found or invalid

Fetch E-Invoice API

Retrieve a paginated list of e-invoices for a given terminal.


Response — 200 OK

{
  "status": "OK",
  "message": "Success",
  "number_of_records": 1,
  "page_number": 1,
  "total_results": 35,
  "page_size": 1,
  "total_pages": 35,
  "data": [
    {
      "ID": 255817,
      "UID": "Z8ULm***********vz0FZ9",
      "EPI": "2412333540",
      "INVOICE_MODE": "EINVOICE",
      "AMOUNT_TYPE": "FIXED",
      "AMOUNT": "20",
      "TAX": "0.01",
      "TIP": "0.01",
      "SURCHARGE": "0.01",
      "SURCHARGE_TYPE": null,
      "SURCHARGE_INDICATOR": 1,
      "SURCHARGE_PERCENTAGE": "1",
      "ATTEMPTS": 0,
      "CREATED_ON": "2026-03-24 06:00:48",
      "NEVER_EXPIRE": 0,
      "ACTIVE_ON": "2026-03-25 06:00:48",
      "STATUS": "PAID",
      "CUSTOMER_NAME": "Test",
      "INVOICE_NO": "inv0001",
      "PRODUCT_DESCRIPTION": "king size bed 10x12",
      "SMS_STATUS": 0,
      "TXN_ID": 10169598,
      "RRN": "608306502066",
      "PAYMENT_RECEIVED_ON": "2026-03-24 06:01:02",
      "IS_QRCODE": 0,
      "IS_CUSTOMER_INFO_AVAIL": 1,
      "IS_SETTLED": "",
      "IS_VOIDED": "",
      "IS_REVERSED": "",
      "DBA_NAME": "Valor Store LLC",
      "CREATED_AT": "03/24/26 02:00 AM",
      "EXPIRED_AT": "03/25/26",
      "DAYS_UNTILL_EXPIRATION": 1,
      "PAYMENT_AT": "03/24/26 02:01 AM",
      "INVOICE_QB_PAYNOW": 0,
      "INVOICE_QB": 0
    }
  ]
}

Response fields — top level

FieldTypeDescription
statusstringOK on success
messagestringSuccess on success
number_of_recordsintegerNumber of records returned on this page
page_numberintegerCurrent page number
total_resultsintegerTotal number of matching e-invoices
page_sizeintegerNumber of records per page
total_pagesintegerTotal number of pages available
dataarrayArray of e-invoice objects

data — e-invoice object fields

FieldTypeDescription
IDintegerInternal e-invoice ID
UIDstringUnique identifier for the payment link
EPIstringMerchant terminal / EPI identifier
INVOICE_MODEstringInvoice mode (e.g. EINVOICE)
AMOUNT_TYPEstringAmount type — FIXED or FLEXIBLE
AMOUNTstringInvoice amount
TAXstringTax amount, if specified
TIPstringTip amount, if specified
SURCHARGEstringSurcharge amount, if applicable
SURCHARGE_TYPEstring | nullSurcharge type, if applicable
SURCHARGE_INDICATORinteger1 if surcharge is enabled; 0 otherwise
SURCHARGE_PERCENTAGEstringSurcharge percentage, if applicable
ATTEMPTSintegerNumber of payment attempts made
CREATED_ONstringInvoice creation timestamp in YYYY-MM-DD HH:MM:SS format (UTC)
NEVER_EXPIREinteger1 if the invoice never expires; 0 otherwise
ACTIVE_ONstringInvoice expiry datetime in YYYY-MM-DD HH:MM:SS format (UTC)
STATUSstringInvoice status (e.g. PAID, PENDING, EXPIRED, CANCELED)
CUSTOMER_NAMEstringCustomer name, if provided
INVOICE_NOstringMerchant-supplied invoice reference
PRODUCT_DESCRIPTIONstringDescription of the product or service
SMS_STATUSinteger1 if SMS notification was sent; 0 otherwise
TXN_IDintegerTransaction ID of the associated payment, if paid
RRNstringRetrieval reference number of the payment, if paid
PAYMENT_RECEIVED_ONstringPayment receipt timestamp in YYYY-MM-DD HH:MM:SS format (UTC)
IS_QRCODEinteger1 if this invoice was generated as a QR code; 0 otherwise
IS_CUSTOMER_INFO_AVAILinteger1 if customer information is available; 0 otherwise
IS_SETTLEDstring1 if settled; empty if not yet settled
IS_VOIDEDstring1 if voided; empty otherwise
IS_REVERSEDstring1 if reversed; empty otherwise
DBA_NAMEstringMerchant doing-business-as name
CREATED_ATstringInvoice creation timestamp in MM/DD/YY HH:MM AM/PM format
EXPIRED_ATstringInvoice expiry date in MM/DD/YY format
DAYS_UNTILL_EXPIRATIONintegerDays remaining until the invoice expires
PAYMENT_ATstringPayment timestamp in MM/DD/YY HH:MM AM/PM format, if paid
INVOICE_QB_PAYNOWinteger1 if QuickBooks Pay Now is enabled; 0 otherwise
INVOICE_QBinteger1 if QuickBooks integration is active; 0 otherwise

Response — 400 (Processing Error)

{
  "error_no": "A26",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID DATE FILTER"
}

Response fields

FieldTypeDescription
error_nostringA26 indicates an invalid date filter value
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00 (via status: OK)SuccessE-invoice records returned
A26Processing errorInvalid or unsupported date_filter value

BIN Lookup

Look up card metadata using the first 6 digits (BIN) of a card number.


Response — 200 OK

{
  "error_no": "S00",
  "pan_number": "411111",
  "card_brand": "VISA",
  "card_type": "D",
  "desc": "SUCCESS"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful lookup
pan_numberstringThe BIN submitted for lookup (first 6 digits)
card_brandstringCard network (e.g. VISA, MASTERCARD)
card_typestringCard type — D = Debit, C = Credit
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "G42",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID BIN"
}

Response fields

FieldTypeDescription
error_nostringG42 indicates the BIN is invalid or not found
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessBIN recognised and card metadata returned
G42Processing errorBIN is fewer than 6 digits, non-numeric, or not in the database

Device Info

Retrieve store, device, and processor configuration details for a given terminal.


Response — 200 OK

{
  "error_no": "S00",
  "store": {
    "name": "Test Store",
    "version_tid": "75021674",
    "last_heartbeat": null
  },
  "device": {
    "name": "VT #2",
    "type": "Virtual Terminal",
    "serial_no": null,
    "last_txn_date": "2026-03-24 02:18:36",
    "assigned_app_version": "1.0.0",
    "app_update": "enabled",
    "app_updated": null,
    "param_update": "enabled",
    "param_updated": null,
    "status": "active",
    "owner": "Valor ISO LLC"
  },
  "processor": {
    "name": "TSYS SIERRA",
    "Profiles": {
      "Traditional": 0,
      "Surcharge": 1
    }
  }
}

Response fields — top level

FieldTypeDescription
error_nostringS00 indicates a successful response
storeobjectStore-level information
deviceobjectDevice-level information
processorobjectPayment processor configuration

store object

FieldTypeDescription
namestringStore name
version_tidstringTerminal ID associated with this store version
last_heartbeatstring | nullTimestamp of the last device heartbeat; null if never received

device object

FieldTypeDescription
namestringDevice label (e.g. VT #2)
typestringDevice type (e.g. Virtual Terminal, Physical Terminal)
serial_nostring | nullDevice serial number; null for virtual terminals
last_txn_datestringTimestamp of the last transaction processed on this device
assigned_app_versionstringCurrently assigned application version
app_updatestringApp update setting — enabled or disabled
app_updatedstring | nullTimestamp of the last app update; null if not yet updated
param_updatestringParameter update setting — enabled or disabled
param_updatedstring | nullTimestamp of the last parameter update; null if not yet updated
statusstringDevice status (e.g. active, inactive)
ownerstringName of the ISO or entity that owns this device

processor object

FieldTypeDescription
namestringPayment processor name (e.g. TSYS SIERRA)
ProfilesobjectEnabled processing profiles. 1 = enabled, 0 = disabled
Profiles.Traditionalinteger1 if traditional processing is enabled
Profiles.Surchargeinteger1 if surcharge processing is enabled

Response — 400 (Processing Error)

{
  "error_no": "D27",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID EPI ID"
}

Response fields

FieldTypeDescription
error_nostringD27 indicates the EPI ID is invalid or not found
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessDevice info returned
D27Processing errorEPI ID not found or invalid

E-Receipt API

Send a transaction e-receipt to a customer by email or SMS.


Response — 200 OK

{
  "error_no": "S00",
  "status": "OK",
  "msg": "SUCCESS",
  "desc": "EMAIL SENT SUCCESSFULLY"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the receipt was sent successfully
statusstringOK on success
msgstringSUCCESS on success
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "91",
  "status": "OK",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID TXN ID"
}

Response fields

FieldTypeDescription
error_nostring91 indicates the transaction ID is invalid or not found
statusstringOK is returned even on error for this response type
msgstringError message
descstringDetailed description

Note: This endpoint returns status: "OK" even when an error occurs. Use error_no to determine success or failure.


Error code reference

error_noMeaningTypical cause
S00SuccessReceipt sent to the customer
91Processing errorTransaction ID not found or invalid

QR Code API

Generate a QR code payment link for a given terminal.


Response — 200 OK

{
  "error_no": "S00",
  "qr_code_url": "https://qr-staging.valorpaytech.com/qr_codes/qr_3279e75fZ8ULm***********vz0FZ901ee24710.png",
  "uid": "Z8ULm***********vz0FZ9"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the QR code was generated successfully
qr_code_urlstringDirect URL to the QR code image (PNG format)
uidstringUnique identifier for this payment link

Response — 400 (Processing Error)

{
  "error_no": "E68",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID NEVER EXPIRE"
}

Response fields

FieldTypeDescription
error_nostringE68 indicates an invalid never_expire value
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessQR code generated
E68Processing errorInvalid value provided for never_expire parameter

Get Modifier

Retrieve the list of modifiers configured for a terminal.


Response — 200 OK

{
  "status": "OK",
  "message": "Success",
  "number_of_records": 1,
  "data": [
    {
      "product_id": "193028",
      "product_code": "SK002",
      "item_name": "Apple 1",
      "description": "Testproduct",
      "quantity": "1",
      "unit_cost": 10,
      "taxable": "Yes",
      "inventory": "Yes",
      "precedence": "45755",
      "category": "Fruites",
      "group_name": "FOOD",
      "is_active": "1",
      "is_deleted": "0"
    }
  ]
}

Response fields

FieldTypeDescription
statusstringOK on success
messagestringSuccess on success
number_of_recordsintegerNumber of modifier records returned
dataarrayArray of modifier objects

data — modifier object fields

FieldTypeDescription
product_idstringUnique modifier / product identifier
product_codestringMerchant-assigned product SKU or code
item_namestringDisplay name of the modifier item
descriptionstringDescription of the modifier item
quantitystringDefault quantity
unit_costnumberUnit price of the modifier
taxablestringYes if taxable; No otherwise
inventorystringYes if inventory tracking is enabled; No otherwise
precedencestringDisplay sort order
categorystringCategory the modifier belongs to
group_namestringGroup the modifier belongs to
is_activestring1 if active; 0 if inactive
is_deletedstring1 if deleted; 0 if not deleted

Response — 400 (Processing Error)

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

Error code reference

error_noMeaningTypical cause
S00 (via status: OK)SuccessModifier list returned
D07Processing errorInvalid or unrecognised App Key

Create Modifier

Add a new modifier item to the terminal's product catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "MODIFIER ADDED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G11",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "PRODUCT CODE ALREADY AVAILABLE"
}

Error code reference

error_noMeaningTypical cause
S00SuccessModifier created
G11Processing errorA modifier with the same product_code already exists

Update Modifier

Update an existing modifier item in the terminal's product catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "PRODUCT UPDATED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G20",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "PRODUCT ID DOES NOT EXIST"
}

Error code reference

error_noMeaningTypical cause
S00SuccessModifier updated
G20Processing errorproduct_id does not exist

Delete Modifier

Soft-delete a modifier item from the terminal's product catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "PRODUCT DELETED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G19",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "PRODUCT IS ALREADY DELETED"
}

Error code reference

error_noMeaningTypical cause
S00SuccessModifier deleted
G19Processing errorModifier is already in a deleted state

Get Discount

Retrieve the list of discounts configured for a terminal.


Response — 200 OK

{
  "status": "OK",
  "message": "Success",
  "number_of_records": 1,
  "data": [
    {
      "discount_id": 1699,
      "discount_name": "WelcomeOffer34",
      "amount_type": 0,
      "cost": "10.000%"
    }
  ]
}

Response fields

FieldTypeDescription
statusstringOK on success
messagestringSuccess on success
number_of_recordsintegerNumber of discount records returned
dataarrayArray of discount objects

data — discount object fields

FieldTypeDescription
discount_idintegerUnique discount identifier
discount_namestringDisplay name of the discount
amount_typeintegerDiscount type — 0 = percentage, 1 = fixed amount
coststringDiscount value. Shown as "10.000%" for percentage discounts or a decimal for fixed discounts

Response — 400 (Processing Error)

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

Error code reference

error_noMeaningTypical cause
S00 (via status: OK)SuccessDiscount list returned
D07Processing errorInvalid or unrecognised App Key

Create Discount

Add a new discount to the terminal's discount catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "DISCOUNT ADDED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G14",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "DISCOUNT COST IS REQUIRED"
}

Error code reference

error_noMeaningTypical cause
S00SuccessDiscount created
G14Processing errorcost field is missing from the request

Update Discount

Update an existing discount in the terminal's discount catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "DISCOUNT UPDATED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G43",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "PERCENTAGE EXCEEDED"
}

Error code reference

error_noMeaningTypical cause
S00SuccessDiscount updated
G43Processing errorPercentage discount value exceeds 100%

Delete Discount

Remove a discount from the terminal's discount catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "DISCOUNT DELETED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G17",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "DISCOUNT IS DOES NOT EXIST OR IS ALREADY DELETED"
}

Error code reference

error_noMeaningTypical cause
S00SuccessDiscount deleted
G17Processing errorDiscount ID not found or already in a deleted state

Get Product

Retrieve the list of products configured for a terminal.


Response — 200 OK

{
  "status": "OK",
  "message": "Success",
  "number_of_records": 1,
  "data": [
    {
      "product_id": 1375813,
      "product_code": "Test",
      "item_name": "Test",
      "description": "Test",
      "quantity": "0",
      "unit_cost": 0,
      "taxable": "Yes",
      "inventory": "No",
      "precedence": "1",
      "category": "Test",
      "is_active": "1",
      "is_deleted": 0
    }
  ]
}

Response fields

FieldTypeDescription
statusstringOK on success
messagestringSuccess on success
number_of_recordsintegerNumber of product records returned
dataarrayArray of product objects

data — product object fields

FieldTypeDescription
product_idintegerUnique product identifier
product_codestringMerchant-assigned product SKU or code
item_namestringDisplay name of the product
descriptionstringProduct description
quantitystringDefault quantity
unit_costnumberUnit price of the product
taxablestringYes if taxable; No otherwise
inventorystringYes if inventory tracking is enabled; No otherwise
precedencestringDisplay sort order
categorystringCategory the product belongs to
is_activestring1 if active; 0 if inactive
is_deletedinteger1 if deleted; 0 if not deleted


Create Product

Add a new product to the terminal's product catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "PRODUCT ADDED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G11",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "PRODUCT CODE ALREADY AVAILABLE"
}

Error code reference

error_noMeaningTypical cause
S00SuccessProduct created
G11Processing errorA product with the same product_code already exists

Update Product

Update an existing product in the terminal's product catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "PRODUCT UPDATED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G12",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID PRODUCT ID"
}

Error code reference

error_noMeaningTypical cause
S00SuccessProduct updated
G12Processing errorproduct_id does not exist or is invalid

Delete Product

Soft-delete a product from the terminal's product catalogue.


Response — 200 OK

{
  "error_no": "S00",
  "mesg": "SUCCESS",
  "msg": "SUCCESS",
  "desc": "PRODUCT DELETED SUCCESSFULLY"
}

Response — 400 (Processing Error)

{
  "error_no": "G19",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "PRODUCT IS ALREADY DELETED"
}

Error code reference

error_noMeaningTypical cause
S00SuccessProduct deleted
G19Processing errorProduct is already in a deleted state

Add Subscription

Create a new recurring subscription for a cardholder.


Response — 200 OK

{
  "error_no": "S00",
  "error_code": "00",
  "subscription_id": 47752,
  "msg": "SUBSRIPTION_CREATED",
  "desc": "Subsription has been created"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the subscription was created successfully
error_codestringGateway error code. 00 = no error
subscription_idintegerUnique identifier for the newly created subscription
msgstringResult (e.g. SUBSRIPTION_CREATED)
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "A43",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "RECURRING TYPE MUST BE ALLOWERD 0, 1 AND 2"
}

Response fields

FieldTypeDescription
error_nostringA43 indicates an invalid recurring type value
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessSubscription created
A43Processing errorrecurring_type must be 0, 1, or 2

Update Subscription

Update the details of an existing subscription.


Response — 200 OK

{
  "error_no": "S00",
  "error_code": "00",
  "msg": "SUBSRIPTION_EDITED",
  "desc": "Subsription has been edited"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the subscription was updated successfully
error_codestringGateway error code. 00 = no error
msgstringResult (e.g. SUBSRIPTION_EDITED)
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "E76",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID SUBSCRIPTION ID"
}

Response fields

FieldTypeDescription
error_nostringE76 indicates the subscription ID is invalid or not found
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessSubscription updated
E76Processing errorSubscription ID does not exist

De-Activate Subscription

Pause an active subscription, preventing future billing cycles from running.


Response — 200 OK

{
  "error_no": "S00",
  "status": "OK",
  "msg": "SUCCESS",
  "desc": "SUBSCRIPTION DEACTIVATED SUCCESSFULLY"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the subscription was deactivated successfully
statusstringOK on success
msgstringSUCCESS on success
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "E64",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "SUBSCRIPTION ID MUST BE AN INTEGER"
}

Response fields

FieldTypeDescription
error_nostringE64 indicates the subscription ID is not a valid integer
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessSubscription deactivated
E64Processing errorsubscription_id must be a valid integer

Activate Subscription

Re-activate a previously deactivated subscription to resume billing cycles.


Response — 200 OK

{
  "error_no": "S00",
  "status": "OK",
  "msg": "SUCCESS",
  "desc": "SUBSCRIPTION ACTIVATED SUCCESSFULLY"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the subscription was activated successfully
statusstringOK on success
msgstringSUCCESS on success
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "E65",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "SUBSCRIPTION IS ALREADY COMPLETED"
}

Response fields

FieldTypeDescription
error_nostringE65 indicates the subscription has already run to completion
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessSubscription activated
E65Processing errorSubscription has already completed all billing cycles and cannot be reactivated

Delete Subscription

Permanently delete a subscription record.


Response — 200 OK

{
  "error_no": "S00",
  "status": "OK",
  "msg": "SUCCESS",
  "desc": "SUBSCRIPTION DELETED SUCCESSFULLY"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the subscription was deleted successfully
statusstringOK on success
msgstringSUCCESS on success
descstringDetailed description

Response — 400 (Processing Error)

{
  "error_no": "E62",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "SUBSCRIPTION ALREADY DELETED"
}

Response fields

FieldTypeDescription
error_nostringE62 indicates the subscription is already in a deleted state
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessSubscription deleted
E62Processing errorSubscription has already been deleted

ACH Sale API

Submit an ACH (bank transfer) payment for processing.


Response — 200 OK

{
  "status": "WAITING",
  "mesg": "Waiting for Giact Approval",
  "msg": "WAITING",
  "error_no": "S00",
  "amount": "0.01",
  "state_tax": "0",
  "epi": "2319916062",
  "routing_number": "****0021",
  "account_number": "****0510",
  "check_number": null,
  "document_id": null,
  "entry_class": null,
  "received_on": null,
  "posting_date": null,
  "current_state": "Pending",
  "desc": null,
  "verification_status": "WAITING",
  "reference_number": "69c25b4a3a9a6"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the ACH transaction was submitted successfully
statusstringProcessing status (e.g. WAITING, APPROVED)
msgstringStatus message
mesgstringDetailed status message from the processor
amountstringTransaction amount in decimal format
state_taxstringState tax amount, if applicable
epistringMerchant terminal / EPI identifier
routing_numberstringMasked bank routing number (last 4 digits shown)
account_numberstringMasked bank account number (last 4 digits shown)
check_numberstring | nullCheck number, if applicable
document_idstring | nullDocument identifier, if applicable
entry_classstring | nullACH entry class code (e.g. CCD, PPD), populated after processing
received_onstring | nullTimestamp when the transaction was received by the bank
posting_datestring | nullDate the transaction will post to the account
current_statestringCurrent transaction state (e.g. Pending, Settled)
descstring | nullDetailed description
verification_statusstringBank verification status (e.g. WAITING, Authorized)
reference_numberstringUnique reference number for this ACH transaction

Note: ACH transactions are not immediately approved. The initial response returns status: "WAITING" while awaiting bank verification. Poll the transaction status or use webhooks to track final settlement.


Response — 400 (Processing Error)

{
  "error_no": "A02",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "ROUTING NUMBER IS INVALID"
}

Response fields

FieldTypeDescription
error_nostringA02 indicates an invalid routing number
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SubmittedACH transaction accepted and pending verification
A02Processing errorRouting number is invalid or not found

ACH Void API

Void a pending ACH transaction before it is processed by the bank.


Response — 200 OK

{
  "error_no": "S00",
  "msg": "APPROVED",
  "mesg": "APPROVED",
  "epi": "2319916062",
  "desc": "VOIDED SUCCESSFULLY",
  "reference_number": "69c25b4a3a9a6"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the ACH void was successful
msgstringAPPROVED on success
mesgstringAPPROVED on success
epistringMerchant terminal / EPI identifier
descstringDetailed description
reference_numberstringReference number of the voided ACH transaction

Response — 400 (Processing Error)

{
  "error_no": "A19",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "TRANSACTION COULD NOT BE FOUND OR HAS ALREADY BEEN VOIDED"
}

Response fields

FieldTypeDescription
error_nostringA19 indicates the transaction cannot be voided
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedACH transaction voided successfully
A19Processing errorTransaction not found or already voided

ACH Recurring Sale

Create a recurring ACH payment schedule for a customer.


Response — 200 OK

{
  "error_no": "S00",
  "msg": "APPROVED",
  "mesg": "APPROVED",
  "amount": "0.01",
  "state_tax": "0",
  "epi": "2319916062",
  "desc": "ACH RECURRING SALE CREATED",
  "next_execution_date": "2026-09-25",
  "reference_number": "69c25b96206d0"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the recurring schedule was created successfully
msgstringAPPROVED on success
mesgstringAPPROVED on success
amountstringRecurring charge amount in decimal format
state_taxstringState tax amount, if applicable
epistringMerchant terminal / EPI identifier
descstringDetailed description
next_execution_datestringDate of the next scheduled payment in YYYY-MM-DD format
reference_numberstringUnique identifier (UID) for this recurring schedule

Response — 400 (Processing Error)

{
  "error_no": "A04",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "PAYEE NAME IS INVALID"
}

Response fields

FieldTypeDescription
error_nostringA04 indicates an invalid payee name
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedRecurring ACH schedule created
A04Processing errorPayee name is missing, invalid, or contains unsupported characters

ACH Recurring Update

Update the details of an existing recurring ACH payment schedule.


Response — 200 OK

{
  "error_no": "S00",
  "msg": "WAITING",
  "mesg": "Waiting for file to be uploaded",
  "desc": "ACH RECURRING EDIT SUCCESSFULLY COMPLETED",
  "next_execution_date": "2026-09-25",
  "reference_number": "69c25b96206d0",
  "epi": "2319916062",
  "amount": "0.01"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the recurring schedule was updated successfully
msgstringProcessing status (e.g. WAITING)
mesgstringDetailed status message from the processor
descstringDetailed description
next_execution_datestringDate of the next scheduled payment in YYYY-MM-DD format
reference_numberstringUID for this recurring schedule
epistringMerchant terminal / EPI identifier
amountstringUpdated recurring charge amount in decimal format

Response — 400 (Processing Error)

{
  "error_no": "A18",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID UID"
}

Response fields

FieldTypeDescription
error_nostringA18 indicates the UID is invalid or not found
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedRecurring schedule updated
A18Processing errorUID does not exist or is not associated with an active recurring schedule

ACH Recurring Activate

Activate a previously deactivated recurring ACH payment schedule.


Response — 200 OK

{
  "error_no": "S00",
  "uid": "69c25b96206d0",
  "msg": "ACH Recurring Billing Activated Successfully",
  "mesg": "Recurring ACH payments have been Activated."
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the schedule was activated successfully
uidstringUID of the recurring schedule
msgstringShort confirmation message
mesgstringDetailed confirmation message

Response — 400 (Processing Error)

{
  "error_no": "A74",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "ACH RECURRING ID IS ALREADY ACTIVATED"
}

Response fields

FieldTypeDescription
error_nostringA74 indicates the recurring schedule is already active
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessRecurring schedule activated
A74Processing errorSchedule is already in an active state

ACH Recurring De-Activate

Deactivate an active recurring ACH payment schedule to pause future billing.


Response — 200 OK

{
  "error_no": "S00",
  "uid": "69c25b96206d0",
  "msg": "ACH Recurring Billing Deactivated Successfully",
  "mesg": "Recurring ACH payments have been Deactivated."
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the schedule was deactivated successfully
uidstringUID of the recurring schedule
msgstringShort confirmation message
mesgstringDetailed confirmation message

Response — 400 (Processing Error)

{
  "error_no": "A75",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "ACH RECURRING ID IS ALREADY DEACTIVATED"
}

Response fields

FieldTypeDescription
error_nostringA75 indicates the recurring schedule is already inactive
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessRecurring schedule deactivated
A75Processing errorSchedule is already in a deactivated state

ACH Recurring Skip Next Payment

Skip the next scheduled ACH payment in a recurring billing schedule.


Response — 200 OK

{
  "error_no": "S00",
  "uid": "69c25b96206d0",
  "remaining_payments": 5,
  "msg": "Next ACH Payment Skipped Successfully",
  "mesg": "Payments remaining: 5"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the next payment was skipped successfully
uidstringUID of the recurring schedule
remaining_paymentsintegerNumber of payments remaining after the skip
msgstringShort confirmation message
mesgstringDetailed confirmation message including remaining count

Response — 400 (Processing Error)

{
  "error_no": "A76",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "ACH SKIP NEXT PAYMENT ALREADY ENABLED"
}

Response fields

FieldTypeDescription
error_nostringA76 indicates a skip is already pending for the next payment
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessNext payment skipped
A76Processing errorA skip for the next payment is already enabled

ACH Recurring Postpone Payment

Postpone the next scheduled ACH payment by a specified duration.


Response — 200 OK

{
  "error_no": "S00",
  "uid": "69c******5b23",
  "remaining_payments": 6,
  "msg": "ACH Payment Postponed Successfully",
  "mesg": "Postponed by 1 WEEK. Payments remaining: 6"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the payment was postponed successfully
uidstringUID of the recurring schedule
remaining_paymentsintegerNumber of payments remaining after the postponement
msgstringShort confirmation message
mesgstringDetailed confirmation including postponement duration and remaining count

Response — 400 (Processing Error)

{
  "error_no": "A77",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "ACH POSTPONE NEXT PAYMENT ALREADY ENABLED"
}

Response fields

FieldTypeDescription
error_nostringA77 indicates a postponement is already pending for the next payment
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessNext payment postponed
A77Processing errorA postponement for the next payment is already enabled

ACH TxnFetch

Retrieve a list of ACH transactions for a given terminal.


Response — 200 OK

{
  "records": 1,
  "data": [
    {
      "platform": "Test",
      "uid": "67cb29eac5a56",
      "epi": "2319916062",
      "amount": "5.87",
      "account_number": "****0510",
      "routing_number": "****0021",
      "current_state": "Settled",
      "entry_class": "CCD",
      "batch_number": "14238052",
      "txn_date": "2025-03-07 17:16:26",
      "posting_date": "",
      "deleted": "NO",
      "verification_status": "Authorized",
      "vs_line1": "RVD/PLUS VERIFY",
      "vs_line2": "AUTH NUM: 10024648C",
      "vs_line3": "RVD MESSAGE: ",
      "TOTAL_COUNT": "4",
      "invoice_no": "Test",
      "txn_type": "Debit",
      "tip_amount": "0",
      "tax": "0",
      "fee": "0",
      "payee_name": "ABU",
      "base_amount": "5.87",
      "account_type": "Checking",
      "recurring_id": "0",
      "company_name": "ValorPay Test",
      "email_id": "[email protected]",
      "phone_number": "1111111111",
      "ach_id": "",
      "vault_id": "",
      "ach_auth_upload_status": ""
    }
  ]
}

Response fields — top level

FieldTypeDescription
recordsintegerNumber of ACH transaction records returned
dataarrayArray of ACH transaction objects

data — ACH transaction object fields

FieldTypeDescription
platformstringProcessing platform name, if applicable
uidstringUnique identifier for this ACH transaction
epistringMerchant terminal / EPI identifier
amountstringTransaction amount in decimal format
account_numberstringMasked bank account number (last 4 digits shown)
routing_numberstringMasked bank routing number (last 4 digits shown)
current_statestringCurrent transaction state (e.g. Pending, Settled, Returned)
entry_classstringACH entry class code (e.g. CCD, PPD, WEB)
batch_numberstringACH batch number
txn_datestringTransaction creation timestamp in YYYY-MM-DD HH:MM:SS format
posting_datestringDate the transaction posted to the bank account
deletedstringYES if the record is deleted; NO otherwise
verification_statusstringBank verification status (e.g. Authorized, WAITING)
vs_line1stringVerification service response line 1
vs_line2stringVerification service response line 2 (includes auth number)
vs_line3stringVerification service response line 3
TOTAL_COUNTstringTotal number of ACH transactions for this terminal
invoice_nostringInvoice reference, if provided
txn_typestringTransaction type — Debit or Credit
tip_amountstringTip amount in decimal format
taxstringTax amount in decimal format
feestringFee amount in decimal format
payee_namestringName of the payee
base_amountstringBase transaction amount in decimal format
account_typestringBank account type (e.g. Checking, Savings)
recurring_idstringRecurring schedule ID, if this transaction is part of a recurring plan; 0 otherwise
company_namestringCompany name associated with the transaction
email_idstringCustomer email address, if provided
phone_numberstringCustomer phone number, if provided
ach_idstringInternal ACH identifier
vault_idstringVault record identifier, if applicable
ach_auth_upload_statusstringUpload status of the ACH authorization document

Response — 400 (Processing Error)

{
  "error_no": "A24",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID OFFSET"
}

Response fields

FieldTypeDescription
error_nostringA24 indicates an invalid pagination offset value
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00 (via records count)SuccessACH transaction records returned
A24Processing errorInvalid or out-of-range offset pagination parameter

ACH Recurring List

Retrieve a list of recurring ACH payment schedules for a given terminal.


Response — 200 OK

{
  "records": 1,
  "data": [
    {
      "platform": "Acheck21",
      "uid": "69c******5b23",
      "txn_type": "Debit",
      "epi": "2319916062",
      "amount": "0.01",
      "account_number": "****0510",
      "routing_number": "****0021",
      "payee_name": "John Smith",
      "account_type": "Checking",
      "TOTAL_COUNT": "30",
      "is_deleted": "0",
      "deleted_on": null,
      "invoice_no": "Test",
      "entry_class": "CCD",
      "email_id": "[email protected]",
      "phone_number": "1111111111",
      "recurring_type": "Subscription",
      "status": "Active",
      "start_from": "2026-09-25",
      "billing_expire": "6",
      "frequency_type": "weekly",
      "frequency_string": "3",
      "created_on": "2026-03-24 09:45:11",
      "next_execution_date": "2026-10-02",
      "last_executed_date": null,
      "total_run_count": "0",
      "success_run_count": "0",
      "failure_run_count": "0"
    }
  ]
}

Response fields — top level

FieldTypeDescription
recordsintegerNumber of recurring schedule records returned
dataarrayArray of recurring ACH schedule objects

data — recurring schedule object fields

FieldTypeDescription
platformstringProcessing platform name
uidstringUnique identifier for this recurring schedule
txn_typestringTransaction type — Debit or Credit
epistringMerchant terminal / EPI identifier
amountstringRecurring charge amount in decimal format
account_numberstringMasked bank account number (last 4 digits shown)
routing_numberstringMasked bank routing number (last 4 digits shown)
payee_namestringName of the payee
account_typestringBank account type (e.g. Checking, Savings)
TOTAL_COUNTstringTotal number of recurring schedules for this terminal
is_deletedstring1 if deleted; 0 otherwise
deleted_onstring | nullDeletion timestamp, if deleted
invoice_nostringInvoice reference, if provided
entry_classstringACH entry class code (e.g. CCD, PPD)
email_idstringCustomer email address, if provided
phone_numberstringCustomer phone number, if provided
recurring_typestringRecurring type (e.g. Subscription, Installment)
statusstringSchedule status (e.g. Active, Inactive)
start_fromstringStart date of the recurring schedule in YYYY-MM-DD format
billing_expirestringNumber of billing cycles before expiry
frequency_typestringBilling frequency (e.g. weekly, monthly, daily)
frequency_stringstringFrequency interval (e.g. 3 = every 3 weeks)
created_onstringSchedule creation timestamp in YYYY-MM-DD HH:MM:SS format
next_execution_datestringDate of the next scheduled payment in YYYY-MM-DD format
last_executed_datestring | nullDate of the last successfully executed payment; null if none yet
total_run_countstringTotal number of billing attempts made
success_run_countstringNumber of successful billing attempts
failure_run_countstringNumber of failed billing attempts

Response — 400 (Processing Error)

{
  "error_no": "A32",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID STATUS"
}

Response fields

FieldTypeDescription
error_nostringA32 indicates an invalid status filter value
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00 (via records count)SuccessRecurring schedule records returned
A32Processing errorInvalid value provided for the status filter parameter

ACH Recurring Delete

Permanently delete a recurring ACH payment schedule.


Response — 200 OK

{
  "error_no": "S00",
  "uid": "69c******5b23",
  "msg": "RECORD DELETED SUCCESSFULLY",
  "mesg": "RECORD DELETED SUCCESSFULLY"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the recurring schedule was deleted successfully
uidstringUID of the deleted recurring schedule
msgstringRECORD DELETED SUCCESSFULLY on success
mesgstringRECORD DELETED SUCCESSFULLY on success

Response — 400 (Processing Error)

{
  "error_no": "A18",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID UID"
}

Response fields

FieldTypeDescription
error_nostringA18 indicates the UID is invalid or not found
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessRecurring schedule deleted
A18Processing errorUID does not exist

ACH Authorization

Send an ACH authorization reminder to the customer.


Response — 200 OK

{
  "error_no": "S00",
  "msg": "REMINDER SENT SUCCESSFULLY",
  "desc": "ACH AUTHORIZATION REMINDER SENT SUCCESSFULLY",
  "ach_id": 1376,
  "reference_number": "gUY8g********kckjO7sl",
  "dba_name": "Test"
}

Response fields

FieldTypeDescription
error_nostringS00 indicates the authorization reminder was sent successfully
msgstringShort confirmation message
descstringDetailed description
ach_idintegerInternal ACH authorization record ID
reference_numberstringUnique reference number for this authorization request
dba_namestringMerchant doing-business-as name shown in the reminder

Response — 400 (Processing Error)

{
  "error_no": "A05",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "NO VENDOR FOUND"
}

Response fields

FieldTypeDescription
error_nostringA05 indicates no matching vendor/merchant record was found
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessAuthorization reminder sent
A05Processing errorNo vendor record found for the provided credentials

Gift Sale API

Process a sale transaction using a gift card.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "5.00",
  "tax": "0.01",
  "customfee": "0.01",
  "msg": "APPROVED",
  "desc": null,
  "additional_info": null,
  "clerk_id": null,
  "clerk_name": null,
  "clerk_label": null,
  "additionalKeyOne": null,
  "additionalKeyTwo": null,
  "additionalValueOne": null,
  "additionalValueTwo": null,
  "approval_code": "000000",
  "rrn": "006083059013",
  "txnid": "10169997",
  "created_date": "24/03/2026",
  "created_time": "05:53:09",
  "tran_no": 2,
  "stan": 687764,
  "batch_no": 184,
  "is_partial_approve": 0,
  "partial_amount": "000000000500",
  "pan": "XXXX1778",
  "card_type": null,
  "phone_number": "1111111111",
  "email_id": "[email protected]",
  "zip": null,
  "card_holder_name": null,
  "expiry_date": "/",
  "address": null,
  "epi": "2319916062",
  "channel": "VT",
  "orderdescription": null,
  "invoicenumber": null,
  "token": "11FD46************2A9A9E",
  "card_brand": null,
  "netamt": 5
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful gift card sale
success_urlbooleantrue when the transaction is approved
error_codestringGateway error code. 00 = no error
amountstringCharged amount in decimal format
taxstringTax amount, if applicable
customfeestringCustom fee, if applicable
msgstringResult (e.g. APPROVED)
approval_codestringIssuer-returned authorization code. Gift cards typically return 000000
rrnstringRetrieval reference number for reconciliation
txnidstringUnique transaction identifier
created_datestringTransaction date in DD/MM/YYYY format
created_timestringTransaction time in HH:MM:SS format
tran_nointegerSequential transaction number within the batch
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full approval
partial_amountstringApproved amount in zero-padded 12-digit format
panstringMasked gift card number — last 4 digits shown
email_idstringCustomer email address, if provided
expiry_datestringReturns "/" as gift cards typically do not have an expiry date
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. VT)
netamtnumberNet amount charged

Response — 400 (Declined)

{
  "error_no": "E98",
  "error_code": "92",
  "success_url": false,
  "txnid": "10169994",
  "batch_no": 583,
  "switch_error_code": "V0611",
  "mesg": "Routing Error",
  "desc": "Error code :92",
  "msg": "Routing Error",
  "isFlexSendOrNot": "V0611"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringDecline code (e.g. 92 = routing error)
success_urlbooleanAlways false for declined transactions
txnidstringTransaction identifier
batch_nointegerSettlement batch identifier
switch_error_codestringSwitch-level error code
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator; mirrors switch_error_code

Response — 400 (Processing Error)

{
  "error_no": "E26",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "AUTHENTICATION FAILED"
}

Response fields

FieldTypeDescription
error_nostringE26 indicates an authentication failure
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedGift card sale successful
E98DeclinedE98 indicates a declined transaction
E26Processing errorAuthentication credentials are invalid

Gift Check Balance

Check the remaining balance on a gift card.


Response — 200 OK

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "4774.18",
  "tax": "0.01",
  "customfee": "0.01",
  "msg": "APPROVED",
  "approval_code": "000000",
  "rrn": "006083059015",
  "txnid": null,
  "created_date": "24/03/2026",
  "created_time": "05:53:47",
  "tran_no": 3,
  "stan": 687766,
  "batch_no": 184,
  "is_partial_approve": 0,
  "partial_amount": "000000000000",
  "pan": "XXXX1778",
  "epi": "2319916062",
  "channel": "VT",
  "netamt": 4774.18
}

Response fields

FieldTypeDescription
error_nostringS00 indicates a successful balance inquiry
success_urlbooleantrue when the inquiry is approved
error_codestringGateway error code. 00 = no error
amountstringCurrent balance on the gift card in decimal format
msgstringResult (e.g. APPROVED)
approval_codestringAuthorization code. Returns 000000 for balance checks
rrnstringRetrieval reference number
txnidstring | nullNot applicable for balance checks; returns null
created_datestringInquiry date in DD/MM/YYYY format
created_timestringInquiry time in HH:MM:SS format
tran_nointegerSequential transaction number
stanintegerSystem trace audit number
batch_nointegerBatch identifier
partial_amountstringReturns 000000000000 for balance checks
panstringMasked gift card number — last 4 digits shown
epistringMerchant terminal / EPI identifier
channelstringTransaction channel
netamtnumberCurrent gift card balance

Response — 400 (Declined — Card Not Found)

{
  "error_no": "E98",
  "error_code": "VR",
  "success_url": false,
  "txnid": null,
  "batch_no": 184,
  "switch_error_code": "V00VR",
  "mesg": "CARD NOT FOUND",
  "desc": "Error code :VR",
  "msg": "CARD NOT FOUND",
  "isFlexSendOrNot": "V00VR"
}

Response — 400 (Processing Error)

{
  "error_no": "E06",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID CARD NUMBER"
}

Error code reference

error_noMeaningTypical cause
S00ApprovedBalance returned successfully
E98DeclinedE98 indicates a declined transaction
E06Processing errorInvalid or malformed card number

Gift Activate

Activate a gift card so it can be used for purchases.


Response — 400 (Already Active)

{
  "error_no": "E98",
  "error_code": "VR",
  "success_url": false,
  "txnid": null,
  "batch_no": 184,
  "switch_error_code": "V00VR",
  "mesg": "ALREADY ACTIVE",
  "desc": "Error code :VR",
  "msg": "ALREADY ACTIVE",
  "isFlexSendOrNot": "V00VR"
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringDecline code (e.g. VR = already active)
success_urlbooleanAlways false for declined operations
txnidstring | nullNot applicable; returns null
batch_nointegerBatch identifier
switch_error_codestringSwitch-level error code
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstringFlex routing indicator

Response — 400 (Card Not Found)

{
  "error_no": "E98",
  "error_code": "VI",
  "success_url": false,
  "txnid": null,
  "batch_no": 0,
  "switch_error_code": null,
  "mesg": "CARD NOT FOUND",
  "desc": "Error code :VI",
  "msg": "CARD NOT FOUND",
  "isFlexSendOrNot": null
}

Response — 400 (Processing Error)

{
  "error_no": "E06",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "INVALID CARD NUMBER"
}

Error code reference

error_noMeaningTypical cause
S00ApprovedGift card activated successfully
E98 (VR)DeclinedE98 indicates a declined transaction
E98 (VI)DeclinedE98 indicates a declined transaction
E06Processing errorInvalid or malformed card number

Gift Add Balance

Add funds to an existing gift card.


Response — 200 OK (Approved)

{
  "error_no": "S00",
  "success_url": true,
  "error_code": "00",
  "amount": "10.00",
  "tax": "0.01",
  "customfee": "0.01",
  "msg": "APPROVED",
  "desc": null,
  "additional_info": null,
  "approval_code": "000000",
  "rrn": "006083059022",
  "txnid": "10170024",
  "created_date": "24/03/2026",
  "created_time": "05:55:28",
  "tran_no": 3,
  "stan": 687775,
  "batch_no": 184,
  "is_partial_approve": 0,
  "partial_amount": "000000001000",
  "pan": "XXXX1778",
  "card_type": null,
  "epi": "2319916062",
  "channel": "VT",
  "netamt": 10
}

Response fields

FieldTypeDescription
error_nostringS00 indicates funds were added successfully
success_urlbooleantrue when the transaction is approved
error_codestringGateway error code. 00 = no error
amountstringAmount added to the gift card in decimal format
taxstringTax amount, if applicable
customfeestringCustom fee, if applicable
msgstringResult (e.g. APPROVED)
approval_codestringAuthorization code. Returns 000000 for gift card transactions
rrnstringRetrieval reference number
txnidstringUnique transaction identifier
created_datestringTransaction date in DD/MM/YYYY format
created_timestringTransaction time in HH:MM:SS format
tran_nointegerSequential transaction number
stanintegerSystem trace audit number
batch_nointegerSettlement batch identifier
is_partial_approveinteger1 if partially approved; 0 for full amount
partial_amountstringAmount added in zero-padded 12-digit format
panstringMasked gift card number — last 4 digits shown
epistringMerchant terminal / EPI identifier
channelstringTransaction channel (e.g. ECOMM)
netamtnumberNet amount added to the gift card

Response — 400 (Declined — Card Not Found)

{
  "error_no": "E98",
  "error_code": "VI",
  "success_url": false,
  "txnid": null,
  "batch_no": 0,
  "switch_error_code": null,
  "mesg": "CARD NOT FOUND",
  "desc": "Error code :VI",
  "msg": "CARD NOT FOUND",
  "isFlexSendOrNot": null
}

Response fields

FieldTypeDescription
error_nostringE98 indicates a declined transaction
error_codestringDecline code (e.g. VI = card not found)
success_urlbooleanAlways false for declined transactions
txnidstring | nullNot applicable; returns null
batch_nointegerBatch identifier. Returns 0 when card is not found
switch_error_codestring | nullSwitch-level error code; null when not available
mesgstringError message
msgstringError message
descstringDetailed description
isFlexSendOrNotstring | nullFlex routing indicator; null when not available

Response — 400 (Processing Error)

{
  "error_no": "D04",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "AMOUNT IS REQUIRED"
}

Response fields

FieldTypeDescription
error_nostringD04 indicates a missing required amount field
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00ApprovedFunds added to gift card successfully
E98DeclinedE98 indicates a declined transaction
D04Processing erroramount field is missing from the request

Encryption Fetch API

Retrieve encrypted card data and tokenization details for a transaction or vault payment profile. Used to obtain encrypted card data for downstream processing integrations.


Response — 200 OK

{
  "error_no": "S00",
  "error_code": "00",
  "data": {
    "cardholder_name": "John Smith",
    "masked_pan": "XXXX1111",
    "token": "D3DFB7*******5E5980D7",
    "card_type": "C",
    "card_brand": "Visa",
    "spx_encrypted_pan": "adjsahdywer*******7w8e4guw37bgu",
    "spx_iso_key_label": "ISO_SPX",
    "spx_iso_session_key": "adjsahdywer*******7w8e4guw37bgu",
    "customer_name": "TestACH"
  }
}

Response fields — top level

FieldTypeDescription
error_nostringS00 indicates the data was retrieved successfully
error_codestringGateway error code. 00 = no error
dataobjectEncrypted card and profile data (see below)

data fields

FieldTypeDescription
cardholder_namestringName on the card
masked_panstringMasked card number — last 4 digits shown (e.g. XXXX1111)
tokenstringcard token associated with this card
card_typestringCard type — C = Credit, D = Debit
card_brandstringCard network (e.g. Visa, Mastercard)
spx_encrypted_panstringSPX-encrypted card PAN for downstream processing
spx_iso_key_labelstringISO key label used for SPX encryption (e.g. ISO_SPX)
spx_iso_session_keystringSPX ISO session key used to decrypt spx_encrypted_pan
customer_namestringCustomer name from the vault profile, if linked

Response — 400 (Processing Error)

{
  "error_no": "D47",
  "mesg": "PROCESSING ERROR",
  "msg": "PROCESSING ERROR",
  "desc": "MISSING REQUIRED PARAMETERS: TXN_ID OR VAULT_ID AND PAYMENT_ID"
}

Response fields

FieldTypeDescription
error_nostringD47 indicates required parameters are missing from the request
mesgstringError message
msgstringError message
descstringDetailed description

Error code reference

error_noMeaningTypical cause
S00SuccessEncrypted card data returned
D47Processing errorRequest must include either txn_id, or both vault_id and payment_id