Offer all the payment features your
customers want with a fast integration
that limits your PCI scope.



  • Production Server

    For processing live transactions

  • Test Server

    For development

Most Commonly Referred to Articles

POST /smartterminals/{smartTerminalId}/request-read

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.


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${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"
  } ]