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

# Report Status

`POST /connect/messages/report`

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'', string
- `Connection` 'keep-alive' | 'close', string
- `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
    - `location` string, string — [Optional] Outlet incoming identifier where Transaction has happened
  - `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 account object, present only if include=accounts is passed in the query string.
      - `accountId` string, required — EES AIR Wallet Account ID
      - `relationships` object — Wallet Accounts Relations
        - `ENTITLEMENT` object
          - `accountType` WalletAccountRelationEntity
            - `accountId` string, int64, required — Account ID
            - `dateCreated` string, date-time, required — Relation creation date-time
        - `ENTITLEMENT_OF` object
          - `accountType` WalletAccountRelationEntity
            - `accountId` string, int64, required — Account ID
            - `dateCreated` string, date-time, required — Relation creation date-time
      - `walletId` string, required — EES AIR Wallet ID
      - `campaignId` string, required — The campaignId (Campaign or Programme) this account belongs to.
      - `type` 'ECOUPON' | 'VOUCHER' | 'PAPER' | 'DEBIT' | 'PLASTIC', required — EES AIR 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
        - `key1` string — Meta 1 property, up to 250 characters; up to 750 characters for Key 1 Value
        - `key2` string — Meta 2 property, up to 250 characters; up to 750 characters for Key 2 Value
      - `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 CONTINUITY type Accounts. If totalSpend is not provided on creation, this will be set to 0.
        - `transactionCount` integer — The transaction counter. Applicable only to CONTINUITY type Accounts. If transactionCount is not provided on creation, this will be set to 0.
        - `current` integer — The current balance. Applicable only to accounts of type POINTS and STAMP. If not provided on creation, this will be set to 0.
        - `usable` integer — The usable balance. Applicable only to accounts of type POINTS. If not provided on creation, this will be set to 0.
        - `locked` integer — The locked balance. Applicable only to accounts of type POINTS. If 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 not provided on creation, this will be set to 0.
      - `dateCreated` string, date-time, required — Date this Account was created
      - `lastUpdated` string, date-time, required — Date this Account was last updated
      - `tokens` TokenEntity[] — Array of token entities, present only if include=tokens is passed in the query string.
        - `tokenId` string — The Token ID.
        - `accountId` string — The Account ID.
        - `token` string — The Token.
        - `validFrom` string, date-time — The date this token is valid from.
        - `validTo` string, date-time — The date this token is valid to.
        - `dateCreated` string, date-time — The date this token was created.
        - `lastUpdated` string, date-time — The date this token was last updated.
        - `status` string — The status of the Token.
        - `tokenLock` object — Token lock information. All values can be null if no token lock exists.
          - `validFrom` string, date-time — The date the token lock is valid from.
          - `validTo` string, date-time — The date the token lock is valid to.
    - 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. Request Payload is unprocessable, Mandatory Request Parameter value is not provided, etc.)
- `401` — EES AIR refuse to process that particular Request due to Authentication error(s). This could be caused by missing one or more of mandatory AUTH headers, invalid Hash calculation, invalid or inactive API Key used, etc.
- `403` — EES AIR refuse to process that particular Request due to Authorisation error(s). Please note nothing is wrong with Authentication nor hash Calculation, it is simply due to lack of permission to perform that particular action (e.g. Issuance Partner attempts to Redeem a Token or Redemption Partner attempts to Issue a Token, etc.)
- `404` — EES AIR refuse to process that particular Request as requested Resource could not be found or referenced Resource is not active.
- `409` — EES AIR understands this request, but refuse 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 refuse to process that particular Request as requested `Mime-Type` is not supported (Currently only `application/json` is supported
- `429` — EES AIR refuses to process that particular Request as Client's API Requests Limit was exceeded.
- `500` — EES AIR is not able 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.net/eagleeye/apis/wallet-api.md) · [All operations](https://skmtc.net/eagleeye/apis/wallet-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/eagleeye/wallet-api/revisions/90a122bb14cc/schema)
