Handling communication issues

Confirming the device connection

Before transmitting a payment request, you can check the connection using the /v1/device/ping endpoint. If the connection attempt is successful, the device returns a 200 status code and the following message:

{
    "connected": true
}

If the Cloud or REST Pay Display app is not available to process the request or cannot be reached, the device returns an error message.

Handling communication interruptions

While a transaction is being processed, it is possible that a network issue could cause the connection between the POS and device to be interrupted. Depending on various factors, one of the following may occur:

  • The request times out and the welcome screen is shown
  • Your app invokes the /v1/device/cancel endpoint to clear the current request

If this occurs, you can check the status of the in-progress transaction by repeating the original charge request (including the same Idempotency-Key header). If the transaction was completed, the charge response will be returned.

{
  "amount": 2000,
  "captured": true,
  "created": 1584653944903,
  "id": "PK1XR2GWRSS4Y",
  "metadata": {
    "CARD_PRESENT_SIGNATURE": "{\"data\":\"base64signature\",\"gzip\":false,\"signatureFormat\":\"JPG\"}",
    "POTENTIAL_DUPLICATE": "false"
  },
  "order": "RD2SFSAZ0CW0Y",
  "outcome": {
    "network_status": "approved_by_network",
    "risk_level": "normal",
    "risk_score": 10,
    "type": "authorized"
  },
  "paid": true,
  "refunded": false,
  "source": {
    "address_line1_check": "unavailable",
    "address_zip_check": "unavailable",
    "brand": "VISA",
    "id": "",
    "last4": "0010",
    "name": "Cardholder Name"
  }
}

If the transaction was canceled on the device, an error message is returned.

{
    "code": "processing_error",
    "message": "The payment request was canceled",
    "type": "api_error"
}

If the transaction was incomplete but can be resumed, the device displays the start screen and allows the customer to attempt the transaction again.


Did this page help you?