2. Certificate and connection failures

Symptom

Calls fail before returning any transaction result: TLS handshake errors, connection refused, or 404 on every request.

Separate the three layers

  1. TLS handshake fails / connection rejected → certificate problem. Verify the client certificate and key are presented by your HTTP client on every request (mTLS applies in pre-production and production alike), the certificate is the one Market Pay issued for this environment, and it has not expired. A missing client certificate looks like the platform "refusing" you — it is, by design.
  2. 404 on transaction endpoints → the platform answered; the terminal is not found or not connected. Check the terminal identifier format (PAX:serialNumber — prefix included), the store code (the terminal must belong to it), and the device itself: powered, online, WebSocket up. The terminals listing endpoint shows what the platform currently sees for your store.
  3. 400 → request format error (yours); 500 → server-side or driver error (Market Pay's — report it with the timestamp and your ecrTransactionId).

Environment mismatches

A certificate issued for one environment does not work on another, and a terminal connected to staging is invisible from production. If everything "was working yesterday", confirm which ECI base URL you are calling and which environment the terminal points at.

Escalation

Certificate issuance and terminal cloud enrolment run through your Market Pay Implementation Manager — connection failures that survive the checks above belong there, with the exact URL called, timestamp, and error.