---
updatedAt: 2026-05-06T15:37:33.000Z
agentTools:
  projectIndex: https://developer.moneris.com/moneris-go/llms.txt
---

# Authenticate Command

## Overview

When the RMS establishes an outbound socket, it sends an authentication handshake message that includes the merchantId and apiToken. Moneris provides a Merchant ID and API Token for each merchant solution. A handshake is required each time a socket is established. The handshake pairs the terminal with the RMS and authenticates it. Transaction processing can proceed after a successful handshake.

**NOTE**: Each restaurant POS connection to the Moneris RMS must use a unique merchantId.

<br />

## Request Structure

<table style={{ textAlign: "left" }}>
  <tr>
    <th style={{ textAlign: "left" }}>ELEMENT</th>
    <th style={{ textAlign: "left" }}>TYPE</th>
    <th style={{ textAlign: "left" }}>DESCRIPTION</th>
    <th style={{ textAlign: "left" }}>SIZE</th>
    <th style={{ textAlign: "left" }}>REQUIRED</th>
  </tr>

  <tr>
    <td>action</td>
    <td>String</td>
    <td>Transaction type - “authenticate”</td>
    <td>V24</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>apiToken</td>
    <td>String</td>
    <td>API Token of requestor</td>
    <td>V50</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>cloudApiVersion</td>
    <td>String</td>
    <td>API version number</td>
    <td>V20</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>merchantId</td>
    <td>String</td>
    <td>Merchant ID of requestor</td>
    <td>V13</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>requestId</td>
    <td>String</td>
    <td>Request identifier</td>
    <td>V50</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>requestTimestamp</td>
    <td>String</td>
    <td>Date and time of the request</td>
    <td>F19</td>
    <td>Required</td>
  </tr>
</table>

<br />

```json

{
   "action": "authenticate",
   "apiToken": "P14i5WS4P0uhgbrnN7BZ",
   "cloudApiVersion": "1.0",
   "merchantId": "1234567890",
   "requestId": "I9000001-1555449670-037",
   "requestTimestamp": "yyyy-mm-dd hh:mm:ss"
}

```

<br />

## Response Structure

<table style={{ borderCollapse: "collapse", textAlign: "left" }}>
  <tr>
    <th style={{ textAlign: "left" }}>ELEMENT</th>
    <th style={{ textAlign: "left" }}>TYPE</th>
    <th style={{ textAlign: "left" }}>DESCRIPTION</th>
    <th style={{ textAlign: "left" }}>SIZE</th>
    <th style={{ textAlign: "left" }}>REQUIRED</th>
  </tr>

  <tr>
    <td>action</td>
    <td>String</td>
    <td>Transaction type - “authenticate”</td>
    <td>V24</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>cloudApiVersion</td>
    <td>String</td>
    <td>API version number</td>
    <td>V20</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>merchantId</td>
    <td>String</td>
    <td>Merchant ID of requestor</td>
    <td>V13</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>requestId</td>
    <td>String</td>
    <td>Request identifier</td>
    <td>V50</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>responseTimestamp</td>
    <td>String</td>
    <td>Date and time of the request</td>
    <td>F19</td>
    <td>Required</td>
  </tr>

  <tr>
    <td>status</td>
    <td>String</td>
    <td>Status code</td>
    <td>F3</td>
    <td>Conditional</td>
  </tr>

  <tr>
    <td>statusDesc</td>
    <td>String</td>
    <td>Status code description</td>
    <td>V50</td>
    <td>Conditional</td>
  </tr>
</table>

<br />

```json

{
   "action": "authenticate",
   "cloudApiVersion": "1.0",
   "merchantId": "0030112345678",
   "requesId": "I9000001-1555449670-037",
   "responseTimestamp": "yyyy-mm-dd hh:mm:ss",
   "status": "200",
   "statusDesc": "OK"
}

```