Initiate a request on the selected Smart Terminal to read the magnetic stripe from a non-financial card.
Only non-financial cards can be read using this API (for example, closed-loop gift cards). If your non-financial card swipes without result, open a support request here.
Format 1
- track2 only
- digits only
- example: ;7090112233654321?
Format 2
- track1 and track2
- track1: starts with B, any number of digits, ends with ^
- track2: any number of digits, ends with =
- example: %B924696827707852^?;924696827707852=?
If you need to read a card for a payment, see POST /smartterminals/{smartTerminalId}/request-payment
Request read displays a screen on the Smart Terminal asking the customer to swipe their non-financial card. Track data is returned in the Smart Terminal request result. Integrations using webhooks must be subscribed to SMARTTERMINAL_REQUEST, otherwise the result can be fetched via polling.
Customers have the ability to cancel the request by pressing the red X key on the Smart Terminal keypad. In that case, the request will complete without a result.
Parameters
required | name | format | description |
---|---|---|---|
* | terminalId | Numeric | This field points to the specific merchant account which the prompt will be processed through. For example: main location, second location, sales department, etc. Terminal Ids can be fetched using GET /terminals. |
Example Request
curl https://api.payjunction.com/smartterminals/${smartTerminalId}/request-read \ -u login:password \ -H Accept:application/json \ -H 'X-PJ-Application-Key: ${YOUR_PRODUCTION_APP_KEY}' \ -d terminalId=${terminalId}
Example Response
HTTP 200 - Successful Request
{ "requestId" : "0c742fb0-91eb-4c66-a48b-14104e97e2db" }
HTTP 400 - Validation Error
{ "errors" : [ { "message" : "Terminal does not exist or you do not have permission to access it.", "parameter" : "terminalId", "type" : "invalid" } ] }