Skip to main content

SCA Functional Specification

BARCODE START (Multi-Scan)

Last updated: 07-Apr-2025

This command is used to start the Barcode scanning or Barcode reading in asynchronous way and POS has to send POS_IP and POS_PORT fields in order to receive the Barcode data. In this command Multiple barcode can be scanned without turning off the scan function.

  

Note

  • This command leverages the POS port to enable unsolicited scan results back to the POS.
  • SCA application has been enhanced to send CANCEL command (from Secondary Port) to cancel the scanning if the user requires to cancel.
  • User can also cancel the scanning by pressing Cancel button on e280s device and by pressing hard key cancel on M440 and M424 devices and sending an unsolicited response to POS.
Request Packet
Field Rule Type Minimum Maximum Value(s) Description
FUNCTION_TYPE Required Static value N/A N/A BARCODE Type of function
COMMAND Required Static value N/A N/A BARCODEASYNC_START Command name
POS_IP Required Character       POS IP listening address. This is a required field for both active session and outside sesion. This is also conditionally used to receive Consumer Unsolicited Responses to POS. Example: 192.168.31.100
POS_PORT Required Numeric 4 4   POS listening port. This is a required field for both active session and outside sesion. This is also conditionally used to receive Consumer Unsolicited Responses to POS. Example: 5016
BCSCAN_ENCODE Optional List N/A N/A
  • 0 – Encode both symbology and barcode data (default)
  • 1 – Encode only barcode data (removes symbology data)
  • 2 – Do not encode barcode data (removes symbology data)
Encodes barcode scan.
BCSCAN_MESSAGE Optional Character   30   This field is sent to customize the message on UI display. This field is applicable, if BCCFG_DISPLAY_UI is set to 1 (enable) and then the message will be displayed on the UI screen. Example: <BCSCAN_MESSAGE>SCAN HERE</BCSCAN>. If this field is sent without any message (empty value), then the UI screen will display the default message as “Please Scan Barcode”. This is applicable to e280s, M440 and M424 devices.
POS_RECON Optional Character 1 30   POS reconciliation. POS Reconciliation field to be echoed back in response to POS. Example: RetailPOS1
COUNTER Required Numeric 1 10   COUNTER is used for a given MAC label. Each COUNTER should be higher than the last one. This is sed to authenticate the POS. Example: 2
MAC Required Base64 Encoded Data N/A N/A   Message Authentication Code. This is used to authenticate the POS.
MAC_LABEL Required Character 1 50   Associated label that tells the device which MAC_KEY to use to decrypt the value of MAC. This is used to authenticate the POS. Example: P_JTY065
Example

Following is an example of request packet

<TRANSACTION>
<FUNCTION_TYPE>BARCODE</FUNCTION_TYPE>
<COMMAND>BARCODEASYNC_START</COMMAND>
<POS_IP>192.168.31.100</POS_IP>
<POS_PORT>5016</POS_PORT>
<BCSCAN_ENCODE>2</BCSCAN_ENCODE>
</TRANSACTION>
Response Packet
Field Type Value Description
RESPONSE_TEXT Character   Processor response text. Example: Command response 0
RESULT Character   This indicates the Result details. Example: SUCCESS
RESULT_CODE Numeric Expected result code: -1, 59001, 59006, 59040 This indicates the result code. Refer to Result/Error Codes for details.
TERMINATION_STATUS Character SUCCESS or FAILURE This indicates the transaction termination status. This is the overall status of the transaction irrespective of approved or declined. Like, if the output is generated then the status is SUCCESS and if no output is generated then the status will be FAILURE.

These fields will be sent to POS port via unsolicited response upon scanning, not via primary port

Field Type Value Description
BARCODE_DATA Character   Base64 encoded. Example: AAgEATY4OTU0NDA4MTY2MQ==
BARCODE_CODEID Character   Returns unencoded. Example: 01
BARCODE_AIMID Character   Returns unencoded. Example: 04
BARCODE_SYMBOLOGY Character   Returns encoded. Returns only if BCSCAN_ENCODE = 0. Example: 0008
POS_RECON Character   POS reconciliation field echoed back if sent in request. Example: RetailPOS1
COUNTER Numeric   Echoes counter sent in the request. Example: 2

Transaction Performance Metric

  

Note

These fields are returned, if SCAPERFMETRIC parameter (Application Parameters) is enabled.

Field Type Value Description
UI_TIME Time   This indicates the time duration, for which the device screen is displayed (like error message, prompt screen, remove card screen) till any user action is performed in the command execution flow. This field is not applicable to capture the time for the Processing, Authorizing and transaction status screen. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <UI_TIME>44.028</UI_TIME>
HOST_TIME Time   This indicates the time taken for the Connection to the host, sending request and receives data from the host. This field also take the cumulative time for multiple requests which may sent to the host during the transaction including two legged transactions, timeout requests, Auto Last Tran requests, DCC, Credit app proxy. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <HOST_TIME>1.389</HOST_TIME>
CMD_TIME Time   This field indicates the total amount of time for a command, which is executed by the application from request received to the response sent. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <CMD_TIME>70.765</CMD_TIME>
Example

Following is an example of response packet

<RESPONSE>
<RESPONSE_TEXT>Command response 0</RESPONSE_TEXT>
<RESULT>SUCCESS</RESULT>
<RESULT_CODE>-1</RESULT_CODE>
<TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
</RESPONSE>

Following is an example of Unsolicited Scan Notification Response

<RESPONSE>
<RESPONSE_TEXT>Barcode data size 29</RESPONSE_TEXT>
<RESULT>OK</RESULT>
<RESULT_CODE>-1</RESULT_CODE>
<TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
<BARCODE_DATA>QR Code is a matrix symbology</BARCODE_DATA>
<BARCODE_CODEID>16</BARCODE_CODEID>
<BARCODE_AIMID>0D</BARCODE_AIMID>
<BARCODE_SYMBOLOGY>0018</BARCODE_SYMBOLOGY>
</RESPONSE>

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo