POS terminals

Send a message to a POS terminal

Relays a JSON message to one of your POS terminals. Kashier authenticates you as the merchant, confirms the terminal belongs to your account, and forwards the message to the terminal in real time over its websocket connection.

Two events are used by merchant backends:

  • sale — start a card-present payment on the terminal. Kashier additionally checks that data.message.merchantOrderId has not already been paid.
  • details — pull the details of a transaction you already know the transactionId of.

A 200 only means the message reached the terminal. The card-present result (approved / declined) arrives later on the data.message.reconciliation.webhookUrl you supplied, carrying a transactionResponseCode. If the terminal is powered off or otherwise not connected, the call fails with 404.

Only the top-level event and data are validated by Kashier; everything inside data.message is relayed verbatim and is enforced by the terminal application.

post/v3/payment/pos/messages/{serialNo}

Request

  • Base URL: https://test-api.kashier.io
  • URL: https://test-api.kashier.io/v3/payment/pos/messages/{serialNo}
  • Auth: API key in header Authorization

Path parameters

serialNostring required

The serial number of the POS terminal, which is the address the message is delivered to. (Some older guides call this path parameter POSSerialNumber; the value is the terminal serial number either way.)

Request body

event'sale' | 'details' required

The operation the terminal should perform.

expirationInSecondsinteger

How long the message stays valid while waiting for the terminal, in seconds.

Response

The message was accepted and emitted to the terminal. The payment result itself is delivered later to your reconciliation webhook.

statusstring
bodyobject

Changes

No recorded changes to this operation across all 1 revision of this API.