---
title: "Report Status"
method: POST
path: "/connect/messages/report"
tags: ["Message At Till"]
---

# Report Status

`POST /connect/messages/report`

## Request

- Base URL: `https://pos.uk.eagleeye.com/2.0`
- URL: `https://pos.uk.eagleeye.com/2.0/connect/messages/report`
- Auth: API key in header `X-EES-AUTH-CLIENT-ID` and API key in header `X-EES-AUTH-HASH`

This API allows the calling application to report back on the print status of requested Messages. AIR needs to update the Message record based on the print status e.g whether a Message has printed successfully or not.

## Headers

- `Accept-Encoding` '''' | ''gzip'' | ''deflate'' | ''gzip,deflate'' | ''deflate,gzip''
- `Connection` 'keep-alive' | 'close'
- `Content-Type` string, string
- `X-EES-AUTH-CLIENT-ID` string, string, required
- `X-EES-AUTH-HASH` string, string, required
- `X-EES-TRANSACTION-ID` string, string
- `X-CUSTOM-SUBSYSTEM-ID` string, string
- `X-CUSTOM-KEY` string, string

## Request body

- ReportEntity[]
  - `type` 'account' | 'message', string, required
  - `identifier` string, string, required: Identifier for the object type (AccountId or MessageId).
  - `printSuccess` boolean, required: Boolean flag indicating whether a message printed successfully or not.
  - `reference` string: Unique Merchant's reference (unique for each operation request).
  - `location` LocationEntity
    - `incomingIdentifier` string, string, required: Optional Outlet Incoming Identifier allowing to override location arisen from used API Key of where this transaction has happened
    - `parentIncomingIdentifier` string, string: Outlet's Parent unit Incoming Identifier allowing to uniquely identify an Outlet override arisen from used API Key location where this transaction has happened. Please note this optional JSON attribute should be used in case incoming identifiers are not unique within a Client's Hierarchy
  - `errorCode` string: The error code from the calling application detailing the reason for not printing.
  - `errorDescription` string: A descriptive message outlining the reason for failing to print.

## Response `200`

EES AIR has successfully processed a Request

- union[]
  - union
    - WalletAccountEntity: The Wallet Account object.
      - `accountId` string, string, required: EES AIR Wallet Account ID
      - `walletId` string, string, required: EES AIR Wallet ID
      - `campaignId` string, required: The Campaign ID (Scheme ID, Programme ID or Plan ID) this Wallet Account belongs to.
      - `type` 'ECOUPON' | 'VOUCHER' | 'STAMP_CARD' | 'PAPER' | 'DEBIT' | 'PLASTIC' | 'POINTS' | 'BASIC_SUBSCRIPTION' | 'CONTINUITY', required: EES AIR Wallet Account Type.
      - `clientType` string, required: Account client type.
      - `status` 'ACTIVE' | 'BLOCKED' | 'CANCELLED' | 'DELETED' | 'EXPIRED' | 'INACTIVE' | 'INVALIDATED' | 'LOCKED' | 'STOLEN' | 'USED', required: Account status
      - `state` string, required: Account state, managed per retailer base, list of possible enum values could be set-up as part of the Onboarding process.
      - `dates` DatesEntity, required
        - `start` string, date-time
        - `end` string, date-time
      - `meta` MetaEntity, required: Key-Value object, please note key name length should be less then 255 characters and key values should be less then 255 characters
      - `balances` AccountBalancesEntity, required: The object of balances. Some balances only apply to certain types of accounts. See notes below on balances.
        - `available` integer: The available balance. This is applicable for all account types, except POINTS and CONTINUITY, which uses its own balance keys. For ECOUPON account type this property will be returned and will be equal to zero.
        - `refundable` integer: The refundable balance. This is applicable for all account types except POINTS and CONTINUITY, but is not used during account creation. For an Account Entity, the amount displayed here is the total refundable balance available. Please note for ECOUPON account type this property will be returned and equal to zero.
        - `totalSpend` integer: The total spend balance. Applicable only to accounts of type CONTINUITY.
        - `transactionCount` integer: The transaction counter. Applicable only to accounts of type CONTINUITY.
        - `current` integer: The current balance. Applicable only to accounts of type POINTS and STAMP. If current is not provided on creation, this will be set to 0.
        - `usable` integer: The usable balance. Applicable only to accounts of type POINTS. If usable is not provided on creation, this will be set to 0.
        - `locked` integer: The locked balance. Applicable only to accounts of type POINTS. If locked is not provided on creation, this will be set to 0.
        - `lifetime` integer: The lifetime balance. Applicable only to accounts of type POINTS and STAMP. If lifetime is not provided on creation, this will be set to 0.
        - `totalUnits` integer: The total units purchased balance. Applicable only to accounts of type CONTINUITY.
      - `dateCreated` string, date-time, required: Date this Account was created
      - `lastUpdated` string, date-time, required: Date this Account was last updated
    - StandardMessageObject
      - `messageId` string, string: Identifier of the message

## Other responses

- `207`: Response when the issue was partially successful
- `400`: EES AIR Refuse to process that particular Request as there is something wrong with the Request (e.g. missing Mandatory Request parameter or Mandatory Request Payload attribute is missing, Request payload is unprocessable, etc)
- `401`: EES AIR Refuse to process that particular Request due to Authentication error. This could be caused by missing mandatory AUTH header(s), invalid Hash calculation, invalid or inactive API Key used, etc.
- `403`: EES AIR Refuse to process that particular Request due to Request Authorization error(s). This indicates that used API Key has not got required permissions to perform this operation.
- `404`: EES AIR Refuse to process that particular Request as requested/referenced resource could not be found.
- `409`: EES AIR understands this request, but refuses to process it, due to present Conflict with the current state of the target resource or because performing this operation would lead to a Conflict within AIR.
- `415`: EES AIR is not able to understand that request due to not supported `Content-Type` value.
- `429`: EES AIR refuses to process that particular Request as Client's API Requests Limit was exceeded.
- `500`: EES AIR refuses to process that particular Request due to Unexpected Server Error.
- `503`: EES AIR refuses to process that particular Request due to Service(s) being Unavailable (i.e. Scheduled Maintenance)
- `504`: EES AIR refuses to process that particular Request due to Networking Issues

---

[API](https://skmtc.dev/eagleeye/apis/message-at-till-api.md) - [All operations](https://skmtc.dev/eagleeye/apis/message-at-till-api/llms.txt) - [OpenAPI document](https://skmtc.dev/eagleeye/apis/message-at-till-api/revisions/edbf526e72bf?raw)
