Terminal Requests

Overview

Requests to the terminal require that the device has been setup in "server mode". This mode allows the device to act as its own server to handle directing requests and responses to the correct endpoint. When sending requests to the machine, the URL follows the format ws://{device_ip}/tsi/endpoint where the device_ip is the devices ip address and endpoint is the endpoint type being used.

Info

URL : ws://{device ip:50000}/tsi/v1/info

Terminal Info

Requests terminal info such as RAM, OS version, SDK version, TSI version etc. Full list of information provided back can be found in the response below.

Request

{
"request": {
"flow_id": "720372",
"resource": {
"type": "terminal_info"
}
}
}

Response

{
	"event": {
		"flow_id": "720372",
		"resource": {
			"results": [
				{
					"parameters": {
						"Build Number:": "0028",
						"Device Type:": "Move5000",
						"Flash Available:": "370368512",
						"Flash Total:": "449167360",
						"Hardware Serial Number:": "220827303201181724276467",
						"Manager Ver:": "44",
						"OS Version:": "05",
						"Package Name:": "BFN",
						"Package Version:": "6.0.3",
						"Power Shutdown Counter:": "172",
						"RAM Available:": "384831488",
						"RAM Total:": "518262784",
						"Reboot Counter:": "448",
						"SDK Version:": "14.04.01 PatchGH(b99)",
						"TSI library version: ": "3.2.2",
						"TSI version: ": "3.2.2",
						"Uptime:": "445172"
					},
					"status": "receipt_information",
					"transaction_date": "26/07/26",
					"transaction_time": "10:26:59"
				}
			],
			"status": "completed"
		}
	}
}

Config

URL : ws://{device ip:50000}/tsi/v1/config

Set time and date

Sets the date and time on the terminal. Structure of the request is as follows:

Date Format: YYMMDD

Time Format: HHMMSS

Request

{
"request": {
"flow_id": "118323",
"resource": {
"type": "set_date_time",
"date": "260726",
"time": "102001"
}s
}
}

Response

{
	"event": {
		"flow_id": "118323",
		"resource": {
			"results": [
				{
					"status": "approved"
				}
			],
			"status": "completed"
		}
	}
}

Payment

URL : ws://{device ip:50000}/tsi/v1/payment

Sale


Request

{
"request": {  
 "flow_id": "277554",  
 "resource": {  
 "type": "sale",  
 "amount": 100  
 }  
 }  
 }

Response (EMV example)

{
	"event": {
		"flow_id": "926",
		"resource": {
			"results": [
				{
					"account_last4": "0045",
					"aid_emv_parameters": [
						{
							"tac_default": "FC 50 BC A0 00",
							"tac_denial": "00 00 00 00 00",
							"tac_online": "FC 50 BC F8 00"
						}
					],
					"authorization_no": "050142",
					"batch_no": "4",
					"card": {
						"entry_mode": {
							"code": "1",
							"text": "insert"
						},
						"type": {
							"code": "02",
							"text": "mastercard"
						}
					},
					"card_expiration": "1225",
					"currency": "USD",
					"customer_card_description": "MasterCard",
					"customer_language": "0",
					"customer_name": "MTIP08-2 MCD 13A",
					"cvm_result": "0",
					"emv": {
						"aid": "A0000000041010",
						"application_label": "MasterCard",
						"data": {
							"82": "58 00",
							"5F2A": "08 40",
							"5F34": "03",
							"9A": "08/18/25",
							"9F02": "$1.00",
							"9F03": "$0.00",
							"9F07": "FF00",
							"9F0D": "FC 50 A0 00 00",
							"9F0E": "00 00 00 00 00",
							"9F0F": "F8 70 A4 98 00",
							"9F12": "MasterCard",
							"9F1A": "08 40",
							"9F21": "09:18:17",
							"9F26": "11 22 33 44 55 66 77 88",
							"9F27": "40",
							"9F34": "1E 03 00",
							"9F36": "00 01",
							"9F37": "4C7A9A11"
						},
						"tsi": "E800",
						"tvr": "4200008000"
					},
					"host_response_isocode": "00",
					"host_response_text": "APPROVED",
					"host_transaction_reference": "000000051266",
					"merchant_id": "xxxxxxxxx",
					"receipt_information": {
						"endorsement": [
							"I AGREE TO PAY ABOVE TOTAL AMOUNT",
							"IN ACCORDANCE WITH CARD ISSUER'S",
							"AGREEMENT",
							"(MERCHANT AGREEMENT IF CREDIT VOUCHER)",
							"RETAIN THIS COPY FOR STATEMENT",
							"VERIFICATION"
						],
						"footer": [
							"Thank You",
							"Please Come Again"
						],
						"header": [
							"ASU Student Accounts 202",
							"287 RIVERS ST",
							"sdfasdfasdfas",
							"855-278-5080"
						]
					},
					"reference_no": "1",
					"status": "approved",
					"tac_default": "FC 50 BC A0 00",
					"tac_denial": "00 00 00 00 00",
					"tac_online": "FC 50 BC F8 00",
					"terminal_id": "0000",
					"total_amount": "100",
					"transaction_amount": "100",
					"transaction_date": "25/08/18",
					"transaction_time": "09:19:10",
					"type": "sale"
				}
			],
			"status": "completed"
		}
	}
}

Refund

Request

{
"request": {
 "flow_id": "576680",
 "resource": {
 "type": "refund",
 "amount": 100
 }
 }
 }

Response

{
	"event": {
		"flow_id": "79846",
		"resource": {
			"results": [
				{
					"account_last4": "0045",
					"authorization_no": "++++++",
					"batch_no": "4",
					"card": {
						"type": {
							"code": "08",
							"text": "other_credit"
						}
					},
					"card_expiration": "1225",
					"currency": "USD",
					"cvm_result": "0",
					"emv": {
						"application_label": ""
					},
					"host_response_text": "REFUND",
					"host_transaction_reference": "000000051326",
					"merchant_id": "xxxxxxxxxxxx",
					"receipt_information": {
						"endorsement": [
							"I AGREE TO PAY ABOVE TOTAL AMOUNT",
							"IN ACCORDANCE WITH CARD ISSUER'S",
							"AGREEMENT",
							"(MERCHANT AGREEMENT IF CREDIT VOUCHER)",
							"RETAIN THIS COPY FOR STATEMENT",
							"VERIFICATION"
						],
						"footer": [
							"Thank You",
							"Please Come Again"
						],
						"header": [
							"ASU Student Accounts 202",
							"287 RIVERS ST",
							"sdfasdfasdfas",
							"855-278-5080"
						]
					},
					"reference_no": "2",
					"status": "approved",
					"terminal_id": "0000",
					"total_amount": "100",
					"transaction_amount": "100",
					"transaction_date": "25/08/18",
					"transaction_time": "09:23:01",
					"type": "refund"
				}
			],
			"status": "completed"
		}
	}
}

Recall_last_transaction

Request

{
 "request": {
 "flow_id": "474643",
 "resource": {
 "type": "recall_last_transaction"
 }	
 }
}

Response

{
	"event": {
		"flow_id": "474643",
		"resource": {
			"results": [
				{
					"account_last4": "0045",
					"authorization_no": "++++++",
					"batch_no": "4",
					"card": {
						"type": {
							"code": "08",
							"text": "other_credit"
						}
					},
					"card_expiration": "1225",
					"currency": "USD",
					"host_response_text": "REFUND",
					"host_transaction_reference": "000000051326",
					"merchant_id": "220614986921",
					"reference_no": "2",
					"status": "approved",
					"terminal_id": "0000",
					"total_amount": "100",
					"transaction_amount": "100",
					"transaction_date": "25/08/18",
					"transaction_time": "09:23:01",
					"type": "refund"
				}
			],
			"status": "completed"
		}
	}
}

Pre Authorization

Request

{
 "request": {
 "flow_id": "474643",
 "resource": {
 "type": "pre_auth",
"amount": "100"
 }	
 }
}

Response

{
	"event": {
		"flow_id": "474643",
		"resource": {
			"results": [
				{
					"account_last4": "0045",
					"aid_emv_parameters": [
						{
							"tac_default": "FC 50 BC A0 00",
							"tac_denial": "00 00 00 00 00",
							"tac_online": "FC 50 BC F8 00"
						}
					],
					"authorization_no": "050263",
					"batch_no": "4",
					"card": {
						"entry_mode": {
							"code": "1",
							"text": "insert"
						},
						"type": {
							"code": "02",
							"text": "mastercard"
						}
					},
					"card_expiration": "1225",
					"currency": "USD",
					"customer_card_description": "MasterCard",
					"customer_language": "0",
					"customer_name": "MTIP08-2 MCD 13A",
					"cvm_result": "0",
					"emv": {
						"aid": "A0000000041010",
						"application_label": "MasterCard",
						"data": {
							"82": "58 00",
							"5F2A": "08 40",
							"5F34": "03",
							"9A": "08/18/25",
							"9F02": "$1.00",
							"9F03": "$0.00",
							"9F07": "FF00",
							"9F0D": "FC 50 A0 00 00",
							"9F0E": "00 00 00 00 00",
							"9F0F": "F8 70 A4 98 00",
							"9F12": "MasterCard",
							"9F1A": "08 40",
							"9F21": "09:33:17",
							"9F26": "11 22 33 44 55 66 77 88",
							"9F27": "40",
							"9F34": "1E 03 00",
							"9F36": "00 01",
							"9F37": "866B87CC"
						},
						"tsi": "E800",
						"tvr": "4200008000"
					},
					"host_response_isocode": "00",
					"host_response_text": "APPROVED",
					"host_transaction_reference": "000000051346",
					"merchant_id": "220614986921",
					"receipt_information": {
						"endorsement": [
							"I AGREE TO PAY ABOVE TOTAL AMOUNT",
							"IN ACCORDANCE WITH CARD ISSUER'S",
							"AGREEMENT",
							"(MERCHANT AGREEMENT IF CREDIT VOUCHER)",
							"RETAIN THIS COPY FOR STATEMENT",
							"VERIFICATION"
						],
						"footer": [
							"Thank You",
							"Please Come Again"
						],
						"header": [
							"ASU Student Accounts 202",
							"287 RIVERS ST",
							"sdfasdfasdfas",
							"855-278-5080"
						]
					},
					"reference_no": "300001",
					"status": "approved",
					"tac_default": "FC 50 BC A0 00",
					"tac_denial": "00 00 00 00 00",
					"tac_online": "FC 50 BC F8 00",
					"terminal_id": "0000",
					"total_amount": "100",
					"transaction_amount": "100",
					"transaction_date": "25/08/18",
					"transaction_time": "09:33:32",
					"type": "pre_auth"
				}
			],
			"status": "completed"
		}
	}
}

Pre Authorization Completion

When the request is sent to the payment terminal, the device will display a menu to select the pre authorization to complete.

Request

{
 "request": {
 "flow_id": "474643",
 "resource": {
 "type": "pre_auth_completion",
"amount": "100"
 }	
 }
}

Response

{
	"event": {
		"flow_id": "474643",
		"resource": {
			"results": [
				{
					"account_last4": "0045",
					"aid_emv_parameters": [
						null
					],
					"authorization_no": "050263",
					"batch_no": "4",
					"card": {
						"entry_mode": {
							"code": "1",
							"text": "insert"
						},
						"type": {
							"code": "02",
							"text": "mastercard"
						}
					},
					"card_expiration": "1225",
					"currency": "USD",
					"customer_card_description": "MasterCard",
					"customer_language": "0",
					"cvm_result": "0",
					"emv": {
						"aid": "A0000000041010",
						"application_label": "MasterCard",
						"data": {
							"82": "58 00",
							"5F34": "03",
							"9A": "08/18/25",
							"9F02": "$1.00",
							"9F03": "$0.00",
							"9F21": "09:33:17",
							"9F26": "11 22 33 44 55 66 77 88",
							"9F27": "40",
							"9F34": "1E 03 00",
							"9F36": "00 01",
							"9F37": "866B87CC"
						},
						"tsi": "E800",
						"tvr": "4200008000"
					},
					"host_response_isocode": "00",
					"host_response_text": "CAPTURED",
					"host_transaction_reference": "000000051346",
					"merchant_id": "xxxxxxxxxxxxxxx",
					"receipt_information": {
						"endorsement": [
							"I AGREE TO PAY ABOVE TOTAL AMOUNT",
							"IN ACCORDANCE WITH CARD ISSUER'S",
							"AGREEMENT",
							"(MERCHANT AGREEMENT IF CREDIT VOUCHER)",
							"RETAIN THIS COPY FOR STATEMENT",
							"VERIFICATION"
						],
						"footer": [
							"Thank You",
							"Please Come Again"
						],
						"header": [
							"ASU Student Accounts 202",
							"287 RIVERS ST",
							"sdfasdfasdfas",
							"855-278-5080"
						]
					},
					"reference_no": "3",
					"status": "approved",
					"terminal_id": "0000",
					"total_amount": "100",
					"transaction_amount": "100",
					"transaction_date": "25/08/18",
					"transaction_time": "09:37:35",
					"type": "pre_auth_completion"
				}
			],
			"status": "completed"
		}
	}
}

Void

When a void request is sent to the payment terminal, the terminal will display a prompt to determine if a sale or pre-auth is to be voided. Once the select is made, an menu will appear to select the transaction to void.

Request

{
 "request": {
 "flow_id": "474643",
 "resource": {
 "type": "void",
"amount": "100"
 }	
 }
}

Response

{
	"event": {
		"flow_id": "474643",
		"resource": {
			"results": [
				{
					"account_last4": "0045",
					"aid_emv_parameters": [
						null
					],
					"authorization_no": "050142",
					"batch_no": "4",
					"card": {
						"entry_mode": {
							"code": "1",
							"text": "insert"
						},
						"type": {
							"code": "02",
							"text": "mastercard"
						}
					},
					"card_expiration": "1225",
					"customer_card_description": "MasterCard",
					"customer_language": "0",
					"emv": {
						"aid": "A0000000041010",
						"application_label": "MasterCard",
						"data": {
							"82": "58 00",
							"5F34": "03",
							"9A": "08/18/25",
							"9F02": "$1.00",
							"9F03": "$0.00",
							"9F21": "09:18:17",
							"9F26": "11 22 33 44 55 66 77 88",
							"9F27": "40",
							"9F34": "1E 03 00",
							"9F36": "00 01",
							"9F37": "4C7A9A11"
						},
						"tsi": "E800",
						"tvr": "4200008000"
					},
					"host_response_isocode": "00",
					"host_response_text": "APPROVED",
					"host_transaction_reference": "000000051266",
					"merchant_id": "xxxxxxxx",
					"original_transaction_type": "00",
					"receipt_information": {
						"header": [
							"ASU Student Accounts 202",
							"287 RIVERS ST",
							"sdfasdfasdfas",
							"855-278-5080"
						]
					},
					"reference_no": "4",
					"status": "decline_by_host_or_card",
					"terminal_id": "0000",
					"total_amount": "100",
					"transaction_amount": "100",
					"transaction_date": "25/08/18",
					"transaction_time": "09:19:10",
					"type": "void"
				}
			],
			"status": "completed"
		}
	}
}

Force Transaction

When a force request is sent to the payment terminal, the device will prompt for card entry. Once the card has been entered the device will prompt for authcode entry.

Request

{
 "request": {
 "flow_id": "474643",
 "resource": {
 "type": "force",
"amount": "100"
 }	
 }
}

Response

Reprint Receipt


Request

{
 "request": {
 "flow_id": "474643",
 "resource": {
  "type": "reprint_receipt",
 "reprint_type": "merchant_copy"
 }	
 }
}

Response

{
	"event": {
		"flow_id": "474643",
		"resource": {
			"results": [
				{
					"account_last4": "0045",
					"aid_emv_parameters": [
						null
					],
					"authorization_no": "050862",
					"batch_no": "4",
					"card": {
						"entry_mode": {
							"code": "1",
							"text": "insert"
						},
						"type": {
							"code": "02",
							"text": "mastercard"
						}
					},
					"card_expiration": "1225",
					"customer_card_description": "MasterCard",
					"customer_language": "0",
					"cvm_result": "0",
					"emv": {
						"aid": "A0000000041010",
						"application_label": "MasterCard",
						"data": {
							"82": "58 00",
							"5F34": "03",
							"9A": "08/18/25",
							"9F02": "$1.00",
							"9F03": "$0.00",
							"9F21": "10:38:17",
							"9F26": "11 22 33 44 55 66 77 88",
							"9F27": "40",
							"9F34": "1E 03 00",
							"9F36": "00 01",
							"9F37": "4E9D0F3E"
						},
						"tsi": "E800",
						"tvr": "4200008000"
					},
					"host_response_isocode": "00",
					"host_response_text": "APPROVED",
					"host_transaction_reference": "000000051446",
					"merchant_id": "220614986921",
					"receipt_information": {
						"endorsement": [
							"I AGREE TO PAY ABOVE TOTAL AMOUNT",
							"IN ACCORDANCE WITH CARD ISSUER'S",
							"AGREEMENT",
							"(MERCHANT AGREEMENT IF CREDIT VOUCHER)",
							"RETAIN THIS COPY FOR STATEMENT",
							"VERIFICATION"
						],
						"footer": [
							"Thank You",
							"Please Come Again"
						],
						"header": [
							"ASU Student Accounts 202",
							"287 RIVERS ST",
							"sdfasdfasdfas",
							"855-278-5080"
						]
					},
					"reference_no": "4",
					"status": "approved",
					"terminal_id": "0000",
					"total_amount": "100",
					"transaction_amount": "100",
					"transaction_date": "25/08/18",
					"transaction_time": "10:38:29",
					"type": "sale"
				}
			],
			"status": "completed"
		}
	}
}

Reports

URL : ws://{device ip:50000}/tsi/v1/reports

Recent Error

This request will return the status of a recent transaction

Request

{
"request": {
"flow_id": "580061",
"resource": {
"type": "recent_error"
}
}
}

Response

{
	"event": {
		"flow_id": "580061",
		"resource": {
			"results": [
				{
					"status": "receipt_information"
				}
			],
			"status": "completed"
		}
	}
}

Custom Data

In addition to the standard information sent in requests to the Bluechip application. Bluefin had added additional field can be included as part of the request. The information included will depend on the requirements of the request. Below is a list of all the additional fields that can be include, a description of its use and am example request/response.

ParameterDescription
groupGroups are pre-configured flexible groups that can be used for various reasons, including: a) to direct transactions to separate back-end merchant accounts or depository accounts. Please work with your Bluefin Representative to configure any of these options. b) to assign transactions to a specific grouping that you wish.
custom_idThis is a custom identifier that can be used for any purpose you wish. Often times this is a customer number, or some other foreign key used to match up reports and transactions lists with customer information on your database. For some processors, such as Paymentech, this ID is passed through to the processor and available in their reporting. This can ease syncing up reporting.
street_address1Street address of the cardholder or bank account holder.
street_address2Street address of the cardholder or bank account holder.
cityThe city portion of the cardholder or account holder address. This is not sent to the processor. It is only stored for your reporting purposes.
stateState of the cardholder or bank account holder.
zipThe 5-digit format or 5+4 formatted zip code of the cardholder or accountholder. For example, 12345 or 12345-1234. Only numbers and a hyphen are allowed.

INTERNATIONAL: Can contain any combination of letters or numbers, and either a space or a hyphen.
countryThis is a 2- or 3-character country code value for the card/account holder: Country codes can be obtained at http://www.iso.org/iso/country_codes

Note: We do NOT validate the value.
phoneThe phone number of the cardholder/account holder. It does not expect any specific format, is not sent to the processor, and is stored only for your reporting use.
emailThe email address of the cardholder/account holder. It does not expect any specific format, is not sent to the processor, and is stored only for your reporting use or sending email receipts.
transaction_idThe transaction_id of a previously completed transaction.
allow_partialAllows for the support of partial auths. By default QSAPI assumes all trasactions do not supoort partial auths.
level2_taxUsed exclusively for level 2 transactions. Required for level 2 transactions. For Visa cards, value must be expressed as greater than 0.00, for MasterCard value may be expressed as 0.00 if desired.
level2_zipUsed exclusively for level 2 transactions. REQUIRED for level 2 transactions and it is probably the same value as the "zip" variable value. This value is not validated like the "zip" variable value, so any alphanumeric value up to 10 digits is valid.
level2_order_idUsed exclusively for level 2 transactions. Merchant determines any custom alphanumeric value.
level2_merchant_referenceUsed exclusively for level 2 transactions. Required for level 2 transactions. Merchant determines any custom alphanumeric value.
healthcare_total_amount
prescription_amount
dental_amount
vision_amount
clinical_amount
copay_amount
transit_amount
dynamic_descriptor_nameA dynamic descriptor (also known as a soft descriptor) is a customizable set of information that can be included with a credit card transaction. It can consist of a merchant descriptor, as well as city and state information. This is particularly useful in instances where a merchant's descriptor might differ from the merchant's default DBA (doing business as) name, which is configured with the back-end processor.