---
title: "Settle"
method: POST
path: "/connect/wallet/settle"
tags: ["Wallet"]
---

# Settle

`POST /connect/wallet/settle`

This API endpoint allows the calling application to record in AIR a Consumer Transaction, by recording all Account's operations (like Coupon Redemption, Stored Value Credit/Debit amount, Loyalty Points Earn/Spend or Stamp received). Please note each operation on an Account will create an  Account Transaction while overarching Wallet Transaction would link a Consumer's Transaction to individual AIR Account Transactions.

## 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
- `X-POSCONNECT-TRANSACTION-DATETIME` string, eesDateTime

## Request body

- object — please note&#58; at least one of the following Request attributes `operations` and `accountTransactions` has to be provided
  - `mode` 'ACTIVE' | 'PASSIVE' | 'RECALL' — Mode of operation
  - `walletId` string, string, nullable — If passed, the EES Wallet ID to associate the wallet transaction to. Optional
  - `identity` object, nullable — Identifies a customer, whether scanned or typed. Optional for cases where a identity is unknown. Without an identity, no identity will be set on the wallet transaction
    - `identityValue` string, string — Identity Value
  - `operations` object[] — Please note&#58; `balances` and `amount` are mutually exclusive Request Parameters. The account, to perform the operation on, must be identified by either a `token` or an `accountId` / `walletId` combination.
    - `walletId` string, string — EES AIR Wallet ID
    - `accountId` string, string — EES AIR Wallet Account ID
    - `resourceId` string, string — The ID of the resource in AIR to operate upon. For open offers, this is the AIR campaignId. This field is required if the "operationType" is "createRedeem".
    - `resourceType` 'CAMPAIGN' — The AIR Resource Type against which the operation is taking an action. If the "operationType" field is "createRedeem" this field is required
    - `token` string, string — Token value belonging to an account
    - `operationType` 'redeem' | 'credit' | 'debit' | 'earn' | 'spend' | 'stamp' | 'createRedeem', required — Operation Type
    - `amount` integer — Amount to be credited / debited / earned / spend / stamped
    - `balances` AccountBalancesEntity — 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.
    - `meta` object, nullable
      - `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
  - `accountTransactions` object[] — This optional Request attribute allows the calling application to instruct EES AIR to include into delayed Wallet Transaction some Account Transaction performed in real time (e.g. to reduce fraud risk)
    - `accountTransactionId` string, string, required — Account Transaction ID
  - `walletTransactions` object[] — This optional Request attribute allows the calling application to instruct EES AIR to complete the stated operation against a previously created wallet transaction
    - `reference` string, string, required — The reference for the transaction to operate upon
    - `walletId` string, string, required — The walletId in which the wallet transaction resides. Provides an element of protection that the correct wallet transaction is being operated upon.
    - `operationType` 'SETTLE', nullable — The operation to perform against the wallet transaction - SETTLE: Mark this wallet transaction as settled
    - `link` boolean, required — Flag to determine if the wallet transaction should be linked as a child of the settle transaction
    - `overrides` object[], nullable — Overrides to be used instead of the previous spend wallet transaction's.
      - `accountId` string, string, required — The id of the account the points are being spent from.
      - `balances` object, required — The balances to override.
        - `current` integer, required — The current balance to override the spend transaction with.
        - `lifetime_spend` integer, required — The lifetime_spend balance to override the spend transaction with.
        - `lifetime_spend_value` integer, required — The lifetime_spend_value balance to override the spend transaction with.
  - `reference` string, string, required — Merchant Reference (please note this reference has to be unique)
  - `location` LocationEntity
    - `location` string, string — [Optional] Outlet incoming identifier where Transaction has happened
  - `basket` EnrichedBasketEntity
    - `type` 'ENRICHED', required
    - `summary` object, required
      - `totalItems` integer, required — Basket Items count
      - `totalBasketValue` integer, required — Total Basket monetary Value after discounts, denominated to a smallest currency unit (e.g. for `USD` this value should be provided in `cents`)
      - `totalQualifyingAmount` object, nullable
        - `points` integer, nullable — Basket Monetary Value for Loyalty Points calculations
        - `baseEarn` integer — Basket Monetary Value used for calculating base earn, overriding totalBasketValue. Adheres to basket discounts
        - `promotions` integer, nullable — Basket Monetary Value for Promotion Offer selections
        - `discount` integer, nullable — Basket Monetary Value for Discount calculations
        - `staff` integer, nullable — Basket Monetary Value for Staff Discount or Promotions
      - `totalTaxAmount` integer, nullable — Total Tax Amount denominated to a smallest currency unit (e.g. for `USD` this value should be provided in `cents`)
      - `totalDiscountAmount` object
        - `promotions` integer, nullable — Promotions Discount Amount. If basket adjustment adds to discounts, this amount will be added to
        - `staff` integer, nullable — Staff Discount Amount
        - `general` integer, nullable — General Discount Amount
      - `fulfilledBaseEarn` object[] — Records the base earn points rewarded to customer during mid fulfil requests.
        - `targetedAccountId` string, string — EES AIR Account ID.
        - `points` integer — Total value of base earn points rewarded.
      - `adjustmentRules` AdjustmentRulesEntity
        - `externalAdjustment` boolean — If the object (summary/basket item) has been modified by the POS at all with information we don't know about
        - `externalAdjustmentReason` string — The reason for externalAdjustment
        - `ignore` boolean — Ignore object as if not sent
      - `tenderResults` object[]
        - `resourceType` 'CAMPAIGN' — EES Resource Type
        - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem' | 'createRedeem' — Operation Type
        - `value` integer — Operation Amount
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccountIds` string[]
        - `targetedAccountId` string, string — EES AIR Account ID
        - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
        - `multiItem` string[]
        - `totalTenderAmount` integer — The amount of tender value in the lowest unit of currency
      - `adjustmentResults` object[]
        - `resourceType` 'CAMPAIGN' — EES Resource Type
        - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem' | 'createRedeem' — Operation Type
        - `value` integer — Operation Amount
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccountIds` string[]
        - `targetedAccountId` string, string — EES AIR Account ID
        - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
        - `multiItem` string[]
        - `totalDiscountAmount` integer — The monetary effect of the discount in the lowest unit of currency
        - `totalMatchingUnits` integer — The number of products the adjustment was applied to
        - `instanceId` string, string — A mechanism to distinguish each individual reward that has been given for any account
      - `bounceBackResults` object[]
        - `resourceType` 'CAMPAIGN' — EES Resource Type
        - `resourceId` string, string — EES AIR Campaign Id
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem'
        - `value` integer — Value of transaction
        - `balances` AccountBalancesEntity — 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.
        - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccounts` string[]
        - `targetAccountId` string, string — EES AIR Account ID
      - `qualifiesResults` object[] — If an offer was buy a pizza and get a free garlic bread, the pizza would have this entity against it
        - `totalMatchingUnits` integer — The number of products forming part of the offer's qualification
        - `totalMatchingSpend` integer — The monetary value this product contributes towards the offer's qualification
        - `instanceId` string, string — The reference back to the offer reward which these qualifiers relate
      - `adjudicationResults` object[]
        - `resourceType` 'CAMPAIGN' | 'PROGRAMME' | 'SCHEME' — EES Resource Type
        - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem' | 'credit' | 'debit' | 'earn' | 'spend' — Operation Type
        - `value` integer — Operation Amount (please note&#58; value and balances attributes are mutually exclusive)
        - `balances` AccountBalancesEntity — 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.
        - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccounts` string[]
        - `targetedAccountId` string, string — EES AIR Account ID
        - `totalMatchingUnits` integer, nullable — The minimum number of products required to trigger offer
      - `results` EnrichedBasketSummaryResultsEntity
        - `points` object
          - `spend` integer — Total value of points spent during transaction
          - `debit` integer — Total value of points debited during transaction
          - `refund` integer — Total value of points clawed-back during refund transaction
          - `totalPointsTaken` integer — Sum of all negative balance actions (spend + debit + refund)
          - `earn` integer — Total value of points earned during transaction
          - `credit` integer — Total value of points credited during transaction
          - `totalPointsGiven` integer — Sum of all positive balance actions (earn + credit)
          - `totalMonetaryValue` integer — Monetary value of points using Scheme rules
          - `redemptionChannel` string, string — The redemption channel used for this request
      - `redemptionChannel` string, string — The redemption channel used for this request
    - `contents` object[], nullable
      - `sku` string, string — Item SKU
      - `upc` string, string — Item SKU
      - `salesKey` 'SALE' | 'REFUND' | 'FULFIL' — `SALE`/`REFUND`/`FULFIL` Flag
      - `description` string, string — Product Name
      - `itemUnitCost` integer — Item Price per unit, denominated to a smaller currency unit
      - `itemUnitMetric` 'LITRES' | 'GRAMS' | 'MILLILITERS' | 'KILOGRAMS' | 'POUNDS' | 'OUNCES' | 'PIECE' | 'EACH' — The metric in which the item is measure (nullable)
      - `itemUnitCount` number — Item Quantity
      - `itemFulfilmentCount` number, nullable — Number Of Items Fulfilled
      - `itemUnitDiscount` integer — Discount per Item
      - `totalUnitCost` integer — Total cost for this item
      - `totalUnitCostAfterDiscount` integer — Total cost for this item after discount (please note this does not take into account whole basket discounts)
      - `taxRate` number, float — The rate of tax being applied to this item (percentage)
      - `taxAmount` integer — Tax Amount for that item, denominated to a smallest currency unit
      - `qualifies` object, nullable
        - `discount` boolean, required — Determines if the item is eligible for discounting
        - `points` boolean, required — Determines if the item is eligible for points
      - `meta` MetaEntity
        - `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
      - `adjustmentRules` AdjustmentRulesEntity
        - `externalAdjustment` boolean — If the object (summary/basket item) has been modified by the POS at all with information we don't know about
        - `externalAdjustmentReason` string — The reason for externalAdjustment
        - `ignore` boolean — Ignore object as if not sent
      - `adjustmentResults` object[]
        - `resourceType` 'CAMPAIGN' — EES Resource Type
        - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem' | 'createRedeem' — Operation Type
        - `value` integer — Operation Amount
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccountIds` string[]
        - `targetedAccountId` string, string — EES AIR Account ID
        - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
        - `multiItem` string[]
        - `totalDiscountAmount` integer — The monetary effect of the discount in the lowest unit of currency
        - `totalMatchingUnits` integer — The number of products the adjustment was applied to
        - `instanceId` string, string — A mechanism to distinguish each individual reward that has been given for any account
      - `tenderResults` object[]
        - `resourceType` 'CAMPAIGN' — EES Resource Type
        - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem' | 'createRedeem' — Operation Type
        - `value` integer — Operation Amount
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccountIds` string[]
        - `targetedAccountId` string, string — EES AIR Account ID
        - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
        - `multiItem` string[]
        - `totalTenderAmount` integer — The amount of tender value in the lowest unit of currency
      - `bounceBackResults` object[]
        - `resourceType` 'CAMPAIGN' — EES Resource Type
        - `resourceId` string, string — EES AIR Campaign Id
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem'
        - `value` integer — Value of transaction
        - `balances` AccountBalancesEntity — 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.
        - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccounts` string[]
        - `targetAccountId` string, string — EES AIR Account ID
      - `qualifiesResults` object[] — If an offer was buy a pizza and get a free garlic bread, the pizza would have this entity against it
        - `totalMatchingUnits` integer — The number of products forming part of the offer's qualification
        - `totalMatchingSpend` integer — The monetary value this product contributes towards the offer's qualification
        - `instanceId` string, string — The reference back to the offer reward which these qualifiers relate
      - `contributionResults` object[], nullable — If an offer was spend £30 get £5 off, this entity would be against each of the products contributing to the £5 off, with their combined `value`s adding up to the £5.
        - `value` integer — The proportional contribution to the discount/points given
        - `instanceId` string, string — The reference back to the offer which these items contributed
      - `adjudicationResults` object[]
        - `resourceType` 'CAMPAIGN' | 'PROGRAMME' | 'SCHEME' — EES Resource Type
        - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
        - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
        - `success` boolean, nullable
        - `type` 'redeem' | 'credit' | 'debit' | 'earn' | 'spend' — Operation Type
        - `value` integer — Operation Amount (please note&#58; value and balances attributes are mutually exclusive)
        - `balances` AccountBalancesEntity — 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.
        - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
        - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
        - `relatedAccounts` string[]
        - `targetAccountId` string, string — EES AIR Account ID
        - `totalMatchingUnits` integer, nullable — The minimum number of products required to trigger offer
      - `relatedContents` object[] — Recursive list of contents related to the parent item with the same schema as this object.
        - `sku` string, string — Item SKU
        - `upc` string, string — Item SKU
        - `salesKey` 'SALE' | 'REFUND' | 'FULFIL' — `SALE`/`REFUND`/`FULFIL` Flag
        - `description` string, string — Product Name
        - `itemUnitCost` integer — Item Price per unit, denominated to a smaller currency unit
        - `itemUnitMetric` 'LITRES' | 'GRAMS' | 'MILLILITERS' | 'KILOGRAMS' | 'POUNDS' | 'OUNCES' | 'PIECE' — The metric in which the item is measure (nullable)
        - `itemUnitCount` number — Item Quantity
        - `itemFulfilmentCount` number, nullable — Number Of Items Fulfilled
        - `itemUnitDiscount` integer — Discount per Item
        - `totalUnitCost` integer — Total cost for this item
        - `totalUnitCostAfterDiscount` integer — Total cost for this item after discount (please note this does not take into account whole basket discounts)
        - `taxRate` number, float — The rate of tax being applied to this item (percentage)
        - `taxAmount` integer — Tax Amount for that item, denominated to a smallest currency unit
        - `qualifies` object, nullable
          - `discount` boolean, required — Determines if the item is eligible for discounting
          - `points` boolean, required — Determines if the item is eligible for points
        - `meta` MetaEntity
          - `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
        - `adjustmentRules` AdjustmentRulesEntity
          - `externalAdjustment` boolean — If the object (summary/basket item) has been modified by the POS at all with information we don't know about
          - `externalAdjustmentReason` string — The reason for externalAdjustment
          - `ignore` boolean — Ignore object as if not sent
        - `adjustmentResults` object[]
          - `resourceType` 'CAMPAIGN' — EES Resource Type
          - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
          - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
          - `success` boolean, nullable
          - `type` 'redeem' | 'createRedeem' — Operation Type
          - `value` integer — Operation Amount
          - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
          - `relatedAccountIds` string[]
          - `targetedAccountId` string, string — EES AIR Account ID
          - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
          - `multiItem` string[]
          - `totalDiscountAmount` integer — The monetary effect of the discount in the lowest unit of currency
          - `totalMatchingUnits` integer — The number of products the adjustment was applied to
          - `instanceId` string, string — A mechanism to distinguish each individual reward that has been given for any account
        - `tenderResults` object[]
          - `resourceType` 'CAMPAIGN' — EES Resource Type
          - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
          - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
          - `success` boolean, nullable
          - `type` 'redeem' | 'createRedeem' — Operation Type
          - `value` integer — Operation Amount
          - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
          - `relatedAccountIds` string[]
          - `targetedAccountId` string, string — EES AIR Account ID
          - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
          - `multiItem` string[]
          - `totalTenderAmount` integer — The amount of tender value in the lowest unit of currency
        - `bounceBackResults` object[]
          - `resourceType` 'CAMPAIGN' — EES Resource Type
          - `resourceId` string, string — EES AIR Campaign Id
          - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
          - `success` boolean, nullable
          - `type` 'redeem'
          - `value` integer — Value of transaction
          - `balances` AccountBalancesEntity — 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.
          - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
          - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
          - `relatedAccounts` string[]
          - `targetAccountId` string, string — EES AIR Account ID
        - `qualifiesResults` object[] — If an offer was buy a pizza and get a free garlic bread, the pizza would have this entity against it
          - `totalMatchingUnits` integer — The number of products forming part of the offer's qualification
          - `totalMatchingSpend` integer — The monetary value this product contributes towards the offer's qualification
          - `instanceId` string, string — The reference back to the offer reward which these qualifiers relate
        - `adjudicationResults` object[]
          - `resourceType` 'CAMPAIGN' | 'PROGRAMME' | 'SCHEME' — EES Resource Type
          - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
          - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
          - `success` boolean, nullable
          - `type` 'redeem' | 'credit' | 'debit' | 'earn' | 'spend' — Operation Type
          - `value` integer — Operation Amount (please note&#58; value and balances attributes are mutually exclusive)
          - `balances` AccountBalancesEntity — 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.
          - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
          - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
          - `relatedAccounts` string[]
          - `targetAccountId` string, string — EES AIR Account ID
          - `totalMatchingUnits` integer, nullable — The minimum number of products required to trigger offer
        - `relatedContents` unknown
    - `payment` object[], nullable — Similar to standardPaymentEntity, except that any _tender_ offers used during adjustment, have an entry injected here, stipulating the tender amount to take off basket
      - `tenderType` string, string, required — Tender type - predefined by Eagle Eye, including a further type of _tenderCoupon_
      - `amount` integer, required — Monetary amount of payment/tender in lowest unit of currency
      - `bin` string, string — The bin for the tender
      - `identifier` string, string — An identifying value of what was scanned, could be a token, barcode, gift-card
      - `accountId` string, string — The EE AIR Account ID (only populated when tender is owned by EE)
    - `analysedDateTime` string, ees-date-time — Basket Analysis Date-Time in ATOM format
  - `options` object, nullable — details TBC
  - `walletTransactionOverride` WalletTransactionOverrideEntity — Contains key-value pairs that are used to override some default transaction values. If the value or the key is not configured for the unit or invalid then it will fallback to the default.
    - `type` string, string — Wallet transaction type
  - `meta` object, nullable
    - `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
  - `transactionDetails` object, nullable — JSON Object without a fixed structure (EES AIR Meta-Data)

## Response `200`

EES AIR has successfully processed a Request

- TiersEnabledWalletAndAccountTransactionResponse
  - `walletTransactions` WalletTransactionEntity[], nullable, required — Wallet Transaction(s) created as a result of this settle transaction.
    - `walletTransactionId` string, required — Wallet Transaction ID
    - `parentWalletTransactionId` string, nullable, required — Parent Wallet Transaction ID
    - `walletId` string, nullable, required — Wallet ID
    - `reference` string, nullable, required — Calling party's reference to this transaction
    - `identityId` string, nullable, required — The Identity ID responsible for this transaction.
    - `identity` WalletIdentityEntity
      - `identityId` string, required — EES AIR Wallet Identity ID
      - `walletId` string, required — EES AIR Wallet ID
      - `type` string, required — Type of the Identity, list of possible enum values could be defined per Client as part of the Onboarding process.
      - `friendlyName` string, required — Wallet Identity friendly name
      - `value` string, required — Wallet Identity value
      - `safeValue` string, required — Identity Safe Value (e.g. "original value salted and hashed") - safeValue could be than used in external systems like analytics, referencing original identity, provide uniqueness within a retailer, but without exposing sensitive information like card number.
      - `secret` string, required — Wallet Identity secret
      - `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
      - `state` string, required — Wallet Identity state, list of possible values could be defined and set-up per Client during Onboarding process.
      - `status` 'ACTIVE' | 'DELETED' | 'SUSPENDED' | 'LOST' | 'STOLEN' | 'INACTIVE', required — Identity status
      - `dateCreated` string, date-time, required — Date this identity was created
      - `lastUpdated` string, date-time, required — Date this identity was last updated
      - `mobileWallet` string, required — A url that can be used to add this identity to a mobile wallet (like Apple Wallet and Google Pay)
    - `type` string, nullable, required — Transaction Type, defined per retailer
    - `status` 'ACTIVE' | 'SETTLED' | 'EXPIRED' | 'CANCELLED' | 'DELETED' | 'PURGED' | 'FULFILLING' | 'FULFILLED', required — Transaction status
    - `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
    - `state` string, nullable, required — Transaction state
    - `transactionDateTime` string, date-time, required — Transaction date-time in ATOM format.
    - `transactionDateTimeOffset` string, string — The offset of the date-time from UTC in format "+00:00".
    - `expiryDate` string, date-time, nullable, required — Transaction Expiry Timestamp (date-time in ATOM format), when transaction should expiry and automatically be settled.
    - `accounts` object[], required
      - `accountId` string, required — Account ID
      - `accountTransactionId` string, required — Account Transaction ID
    - `basket` union, required
      - StandardBasketEntity
        - `type` 'STANDARD', required
        - `summary` object
          - `totalItems` integer, required — Basket Items count
          - `totalBasketValue` integer, required — Total Basket monetary Value after discounts, denominated to a smallest currency unit (e.g. for `USD` this value should be provided in `cents`)
          - `totalDiscountAmount` object
            - `promotions` integer, nullable — Promotions Discount Amount. If basket adjustment adds to discounts, this amount will be added to
            - `staff` integer, nullable — Staff Discount Amount
            - `general` integer, nullable — General Discount Amount
          - `totalQualifyingAmount` object, nullable
            - `points` integer — Basket Monetary Value for Loyalty Points calculations
            - `baseEarn` integer — Basket Monetary Value used for calculating base earn, overriding totalBasketValue. Adheres to basket discounts
            - `promotions` integer — Basket Monetary Value for Promotion Offer selections
            - `discount` integer — Basket Monetary Value for Discount calculations
            - `staff` integer — Basket Monetary Value for Staff Discount or Promotions
          - `totalTaxAmount` integer — Total Tax Amount denominated to a smallest currency unit (e.g. for `USD` this value should be provided in `cents`)
          - `adjustmentRules` AdjustmentRulesEntity
            - `externalAdjustment` boolean — If the object (summary/basket item) has been modified by the POS at all with information we don't know about
            - `externalAdjustmentReason` string — The reason for externalAdjustment
            - `ignore` boolean — Ignore object as if not sent
          - `redemptionChannel` string, string — The redemption channel used for this request
        - `contents` object[], nullable
          - `sku` string, string — Item SKU
          - `upc` string, string — Item SKU
          - `salesKey` 'SALE' | 'REFUND' | 'FULFIL' — `SALE`/`REFUND`/`FULFIL` Flag
          - `description` string, string — Product Name
          - `itemUnitCost` integer — Item Price per unit, denominated to a smaller currency unit
          - `itemUnitMetric` 'LITRES' | 'GRAMS' | 'MILLILITERS' | 'KILOGRAMS' | 'POUNDS' | 'OUNCES' | 'PIECE' | 'EACH' — The metric in which the item is measure (nullable)
          - `itemUnitCount` number — Item Quantity
          - `itemUnitDiscount` integer — Discount per Item
          - `totalUnitCost` integer — Total cost for this item
          - `totalUnitCostAfterDiscount` integer — Total cost for this item after discount (please note this does not take into account whole basket discounts)
          - `taxRate` number, float — Tax Rate (Percentage)
          - `taxAmount` integer — Tax Amount for that item, denominated to a smallest currency unit
          - `qualifies` object, nullable
            - `discount` boolean, required — Determines if the item is eligible for basket level discounting. If false this item will not qualify for basket level discounts but still qualify for product level discounts. However this is possible to override based on the ‘ignorePreviousExcludes’ key on a campaign.
            - `points` boolean, required — Determines if the item is eligible for Base Earn points. If false this item will not qualify for Base Earn points but still qualify for basket and product level discounts.
          - `meta` MetaEntity
            - `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
          - `adjustmentRules` AdjustmentRulesEntity
            - `externalAdjustment` boolean — If the object (summary/basket item) has been modified by the POS at all with information we don't know about
            - `externalAdjustmentReason` string — The reason for externalAdjustment
            - `ignore` boolean — Ignore object as if not sent
          - `relatedContents` object[] — Recursive list of contents related to the parent item with the same schema as this object.
            - `sku` string, string — Item SKU
            - `upc` string, string — Item SKU
            - `salesKey` 'SALE' | 'REFUND' | 'FULFIL' — `SALE`/`REFUND`/`FULFIL` Flag
            - `description` string, string — Product Name
            - `itemUnitCost` integer — Item Price per unit, denominated to a smaller currency unit
            - `itemUnitMetric` 'LITRES' | 'GRAMS' | 'MILLILITERS' | 'KILOGRAMS' | 'POUNDS' | 'OUNCES' | 'PIECE' — The metric in which the item is measure (nullable)
            - `itemUnitCount` number — Item Quantity
            - `itemUnitDiscount` integer — Discount per Item
            - `totalUnitCost` integer — Total cost for this item
            - `totalUnitCostAfterDiscount` integer — Total cost for this item after discount (please note this does not take into account whole basket discounts)
            - `taxRate` number, float — Tax Rate (Percentage)
            - `taxAmount` integer — Tax Amount for that item, denominated to a smallest currency unit
            - `qualifies` object, nullable
              - …
            - `meta` MetaEntity
              - …
            - `adjustmentRules` AdjustmentRulesEntity
              - …
            - `relatedContents` unknown
        - `payment` object[], nullable
          - `tenderType` string, string, required — Tender type - predefined by Eagle Eye
          - `amount` integer, required — Monetary amount of payment in lowest unit of currency
          - `bin` string, string — The bin for the tender
          - `identifier` string, string — An identifying value of what was scanned, could be a token, barcode, gift-card
      - EnrichedBasketEntity
        - `type` 'ENRICHED', required
        - `summary` object, required
          - `totalItems` integer, required — Basket Items count
          - `totalBasketValue` integer, required — Total Basket monetary Value after discounts, denominated to a smallest currency unit (e.g. for `USD` this value should be provided in `cents`)
          - `totalQualifyingAmount` object, nullable
            - `points` integer, nullable — Basket Monetary Value for Loyalty Points calculations
            - `baseEarn` integer — Basket Monetary Value used for calculating base earn, overriding totalBasketValue. Adheres to basket discounts
            - `promotions` integer, nullable — Basket Monetary Value for Promotion Offer selections
            - `discount` integer, nullable — Basket Monetary Value for Discount calculations
            - `staff` integer, nullable — Basket Monetary Value for Staff Discount or Promotions
          - `totalTaxAmount` integer, nullable — Total Tax Amount denominated to a smallest currency unit (e.g. for `USD` this value should be provided in `cents`)
          - `totalDiscountAmount` object
            - `promotions` integer, nullable — Promotions Discount Amount. If basket adjustment adds to discounts, this amount will be added to
            - `staff` integer, nullable — Staff Discount Amount
            - `general` integer, nullable — General Discount Amount
          - `fulfilledBaseEarn` object[] — Records the base earn points rewarded to customer during mid fulfil requests.
            - `targetedAccountId` string, string — EES AIR Account ID.
            - `points` integer — Total value of base earn points rewarded.
          - `adjustmentRules` AdjustmentRulesEntity
            - `externalAdjustment` boolean — If the object (summary/basket item) has been modified by the POS at all with information we don't know about
            - `externalAdjustmentReason` string — The reason for externalAdjustment
            - `ignore` boolean — Ignore object as if not sent
          - `tenderResults` object[]
            - `resourceType` 'CAMPAIGN' — EES Resource Type
            - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem' | 'createRedeem' — Operation Type
            - `value` integer — Operation Amount
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccountIds` string[]
            - `targetedAccountId` string, string — EES AIR Account ID
            - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
            - `multiItem` string[]
            - `totalTenderAmount` integer — The amount of tender value in the lowest unit of currency
          - `adjustmentResults` object[]
            - `resourceType` 'CAMPAIGN' — EES Resource Type
            - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem' | 'createRedeem' — Operation Type
            - `value` integer — Operation Amount
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccountIds` string[]
            - `targetedAccountId` string, string — EES AIR Account ID
            - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
            - `multiItem` string[]
            - `totalDiscountAmount` integer — The monetary effect of the discount in the lowest unit of currency
            - `totalMatchingUnits` integer — The number of products the adjustment was applied to
            - `instanceId` string, string — A mechanism to distinguish each individual reward that has been given for any account
          - `bounceBackResults` object[]
            - `resourceType` 'CAMPAIGN' — EES Resource Type
            - `resourceId` string, string — EES AIR Campaign Id
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem'
            - `value` integer — Value of transaction
            - `balances` AccountBalancesEntity — The object of balances. Some balances only apply to certain types of accounts. See notes below on balances.
              - …
            - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccounts` string[]
            - `targetAccountId` string, string — EES AIR Account ID
          - `qualifiesResults` object[] — If an offer was buy a pizza and get a free garlic bread, the pizza would have this entity against it
            - `totalMatchingUnits` integer — The number of products forming part of the offer's qualification
            - `totalMatchingSpend` integer — The monetary value this product contributes towards the offer's qualification
            - `instanceId` string, string — The reference back to the offer reward which these qualifiers relate
          - `adjudicationResults` object[]
            - `resourceType` 'CAMPAIGN' | 'PROGRAMME' | 'SCHEME' — EES Resource Type
            - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem' | 'credit' | 'debit' | 'earn' | 'spend' — Operation Type
            - `value` integer — Operation Amount (please note&#58; value and balances attributes are mutually exclusive)
            - `balances` AccountBalancesEntity — The object of balances. Some balances only apply to certain types of accounts. See notes below on balances.
              - …
            - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccounts` string[]
            - `targetedAccountId` string, string — EES AIR Account ID
            - `totalMatchingUnits` integer, nullable — The minimum number of products required to trigger offer
          - `results` EnrichedBasketSummaryResultsEntity
            - `points` object
              - …
          - `redemptionChannel` string, string — The redemption channel used for this request
        - `contents` object[], nullable
          - `sku` string, string — Item SKU
          - `upc` string, string — Item SKU
          - `salesKey` 'SALE' | 'REFUND' | 'FULFIL' — `SALE`/`REFUND`/`FULFIL` Flag
          - `description` string, string — Product Name
          - `itemUnitCost` integer — Item Price per unit, denominated to a smaller currency unit
          - `itemUnitMetric` 'LITRES' | 'GRAMS' | 'MILLILITERS' | 'KILOGRAMS' | 'POUNDS' | 'OUNCES' | 'PIECE' | 'EACH' — The metric in which the item is measure (nullable)
          - `itemUnitCount` number — Item Quantity
          - `itemFulfilmentCount` number, nullable — Number Of Items Fulfilled
          - `itemUnitDiscount` integer — Discount per Item
          - `totalUnitCost` integer — Total cost for this item
          - `totalUnitCostAfterDiscount` integer — Total cost for this item after discount (please note this does not take into account whole basket discounts)
          - `taxRate` number, float — The rate of tax being applied to this item (percentage)
          - `taxAmount` integer — Tax Amount for that item, denominated to a smallest currency unit
          - `qualifies` object, nullable
            - `discount` boolean, required — Determines if the item is eligible for discounting
            - `points` boolean, required — Determines if the item is eligible for points
          - `meta` MetaEntity
            - `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
          - `adjustmentRules` AdjustmentRulesEntity
            - `externalAdjustment` boolean — If the object (summary/basket item) has been modified by the POS at all with information we don't know about
            - `externalAdjustmentReason` string — The reason for externalAdjustment
            - `ignore` boolean — Ignore object as if not sent
          - `adjustmentResults` object[]
            - `resourceType` 'CAMPAIGN' — EES Resource Type
            - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem' | 'createRedeem' — Operation Type
            - `value` integer — Operation Amount
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccountIds` string[]
            - `targetedAccountId` string, string — EES AIR Account ID
            - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
            - `multiItem` string[]
            - `totalDiscountAmount` integer — The monetary effect of the discount in the lowest unit of currency
            - `totalMatchingUnits` integer — The number of products the adjustment was applied to
            - `instanceId` string, string — A mechanism to distinguish each individual reward that has been given for any account
          - `tenderResults` object[]
            - `resourceType` 'CAMPAIGN' — EES Resource Type
            - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem' | 'createRedeem' — Operation Type
            - `value` integer — Operation Amount
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccountIds` string[]
            - `targetedAccountId` string, string — EES AIR Account ID
            - `targetedWalletId` string, string, nullable — EES AIR Wallet ID. Nullable
            - `multiItem` string[]
            - `totalTenderAmount` integer — The amount of tender value in the lowest unit of currency
          - `bounceBackResults` object[]
            - `resourceType` 'CAMPAIGN' — EES Resource Type
            - `resourceId` string, string — EES AIR Campaign Id
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem'
            - `value` integer — Value of transaction
            - `balances` AccountBalancesEntity — The object of balances. Some balances only apply to certain types of accounts. See notes below on balances.
              - …
            - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccounts` string[]
            - `targetAccountId` string, string — EES AIR Account ID
          - `qualifiesResults` object[] — If an offer was buy a pizza and get a free garlic bread, the pizza would have this entity against it
            - `totalMatchingUnits` integer — The number of products forming part of the offer's qualification
            - `totalMatchingSpend` integer — The monetary value this product contributes towards the offer's qualification
            - `instanceId` string, string — The reference back to the offer reward which these qualifiers relate
          - `contributionResults` object[], nullable — If an offer was spend £30 get £5 off, this entity would be against each of the products contributing to the £5 off, with their combined `value`s adding up to the £5.
            - `value` integer — The proportional contribution to the discount/points given
            - `instanceId` string, string — The reference back to the offer which these items contributed
          - `adjudicationResults` object[]
            - `resourceType` 'CAMPAIGN' | 'PROGRAMME' | 'SCHEME' — EES Resource Type
            - `resourceId` string, string — EES AIR Resource ID (Campaign ID, Programme ID, Scheme ID)
            - `playOrderPosition` integer, nullable — The exact position the offer was triggered during analysis
            - `success` boolean, nullable
            - `type` 'redeem' | 'credit' | 'debit' | 'earn' | 'spend' — Operation Type
            - `value` integer — Operation Amount (please note&#58; value and balances attributes are mutually exclusive)
            - `balances` AccountBalancesEntity — The object of balances. Some balances only apply to certain types of accounts. See notes below on balances.
              - …
            - `isRefundable` boolean — Boolean Flag indicating if this offer should be refundable
            - `isUnredeemable` boolean — Boolean Flag indicating if this offer should be Unredeemable
            - `relatedAccounts` string[]
            - `targetAccountId` string, string — EES AIR Account ID
            - `totalMatchingUnits` integer, nullable — The minimum number of products required to trigger offer
          - `relatedContents` object[] — Recursive list of contents related to the parent item with the same schema as this object.
            - `sku` string, string — Item SKU
            - `upc` string, string — Item SKU
            - `salesKey` 'SALE' | 'REFUND' | 'FULFIL' — `SALE`/`REFUND`/`FULFIL` Flag
            - `description` string, string — Product Name
            - `itemUnitCost` integer — Item Price per unit, denominated to a smaller currency unit
            - `itemUnitMetric` 'LITRES' | 'GRAMS' | 'MILLILITERS' | 'KILOGRAMS' | 'POUNDS' | 'OUNCES' | 'PIECE' — The metric in which the item is measure (nullable)
            - `itemUnitCount` number — Item Quantity
            - `itemFulfilmentCount` number, nullable — Number Of Items Fulfilled
            - `itemUnitDiscount` integer — Discount per Item
            - `totalUnitCost` integer — Total cost for this item
            - `totalUnitCostAfterDiscount` integer — Total cost for this item after discount (please note this does not take into account whole basket discounts)
            - `taxRate` number, float — The rate of tax being applied to this item (percentage)
            - `taxAmount` integer — Tax Amount for that item, denominated to a smallest currency unit
            - `qualifies` object, nullable
              - …
            - `meta` MetaEntity
              - …
            - `adjustmentRules` AdjustmentRulesEntity
              - …
            - `adjustmentResults` object[]
              - …
            - `tenderResults` object[]
              - …
            - `bounceBackResults` object[]
              - …
            - `qualifiesResults` object[] — If an offer was buy a pizza and get a free garlic bread, the pizza would have this entity against it
              - …
            - `adjudicationResults` object[]
              - …
            - `relatedContents` unknown
        - `payment` object[], nullable — Similar to standardPaymentEntity, except that any _tender_ offers used during adjustment, have an entry injected here, stipulating the tender amount to take off basket
          - `tenderType` string, string, required — Tender type - predefined by Eagle Eye, including a further type of _tenderCoupon_
          - `amount` integer, required — Monetary amount of payment/tender in lowest unit of currency
          - `bin` string, string — The bin for the tender
          - `identifier` string, string — An identifying value of what was scanned, could be a token, barcode, gift-card
          - `accountId` string, string — The EE AIR Account ID (only populated when tender is owned by EE)
        - `analysedDateTime` string, ees-date-time — Basket Analysis Date-Time in ATOM format
    - `channel` string, required — Channel used for Transaction creation or update
    - `location` LocationResponseEntity, required
      - `storeId` string, string — The Incoming Identifier of the Outlet.
      - `storeParentId` string, string — The Incoming Identifier of the Outlet's Parent Unit.
    - `dateCreated` string, date-time, required — Date this Wallet Transaction was created
    - `lastUpdated` string, date-time, required — Date this Wallet Transaction was last updated
  - `accountTransactions` AccountTransactionEntity[], nullable, required
    - `accountTransactionId` string, required — The account transaction ID.
    - `accountId` string, required — The account id related to this transaction.
    - `parentAccountTransactionId` string, nullable, required — The parent account transaction.
    - `event` 'CREATE' | 'REDEEM' | 'LOCK' | 'UNLOCK' | 'UNREDEEM' | 'VERIFY' | 'ACTIVATE' | 'INACTIVATE' | 'REACTIVATE' | 'LOAD' | 'CREDIT' | 'DEBIT' | 'BALANCE' | 'INVALIDATE' | 'BLOCK' | 'UNBLOCK' | 'RESEND' | 'STOLEN' | 'CANCEL' | 'VOID' | 'REISSUE' | 'REFUND' | 'TRANSFER' | 'TRANSFER_IN' | 'TOPUP' | 'AUTOTOPUP' | 'STAMP' | 'SPEND', required — The type of transaction.
    - `value` integer, required — The value related to this Account Transaction. Typically, if an account transaction like credit was executed with a value, then this value will be stored here. For Continuity, however, this value should always be 0, and the same for Coupon (since there is no value for a coupon).
    - `source` string, required — The source of this transaction e.g. from a client (1), or triggered automatically (2) from within EES AIR (e.g. auto-top-up or the incrementation of Quest balances).
    - `transactionDetails` object, nullable, required — An simple object of key value pairs representing the transaction details.
    - `balancesBefore` AccountTransactionBalancesHistoryEntity, required — The object of balances to show for either before or after the account transaction. 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 STAMP, POINTS and CONTINUITY, which uses its own balance keys, and ECOUPON, which has no concept of a balance.
      - `refundable` integer — The refundable balance. This is applicable for all account types, except STAMP, ECOUPON, POINTS and CONTINUITY.
      - `current` integer — The current balance. Applicable only to accounts of type Points and Stamp.
      - `lifetime` integer — The lifetime balance. Applicable only to accounts of type Points and Stamp.
      - `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.
    - `balancesAfter` AccountTransactionBalancesHistoryEntity, required — The object of balances to show for either before or after the account transaction. 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 STAMP, POINTS and CONTINUITY, which uses its own balance keys, and ECOUPON, which has no concept of a balance.
      - `refundable` integer — The refundable balance. This is applicable for all account types, except STAMP, ECOUPON, POINTS and CONTINUITY.
      - `current` integer — The current balance. Applicable only to accounts of type Points and Stamp.
      - `lifetime` integer — The lifetime balance. Applicable only to accounts of type Points and Stamp.
      - `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.
    - `properties` object, nullable, required — Properties related to the account transaction.
    - `dateCreated` string, date-time, required — Date-time (ATOM format) this account transaction was created
    - `lastUpdated` string, date-time, required — Date-time (ATOM format) this account transaction was last updated
  - `tierMembershipTransactions` TierMembershipTransactionEntity[], nullable — Tier Membership Transaction(s) created as a result of this transaction.
    - `tierMembershipTransactionId` string, required — The unique ID for this Tier Membership Transaction.
    - `tierMembershipId` string, required — The ID of the Tier Membership.
    - `transactionType` 'CREDIT' | 'DEBIT' | 'ADJUSTMENT' | 'MOVE' | 'RESET', required
    - `parentTierMembershipTransactionId` string, nullable, required — The parent Tier Membership Transaction ID.
    - `walletTransactionId` string, nullable, required — The Wallet Transaction to which this Tier Membership Transaction is linked.
    - `dateCreated` string, required — DateTime in ATOM format.
    - `lastUpdated` string, required — DateTime in ATOM format.
    - `actions` object[], required — An array that displays the actions taken within this Tier Membership Transaction. These could be actions that adjust multiple Tier Membership Balances. The `amount` key will contain a positive integer if the Tier Membership Balance increased or a negative integer if the Tier Membership Balance was decreased.
      - `balanceType` 'transactions' | 'spend' | 'points'
      - `amount` integer — The value of the action taken against the Tier Membership Balance. This can only be positive for credit or negative for debit.
      - `balanceBefore` integer — The value of the Tier Membership Balance before the transaction.
      - `balanceAfter` integer — The value of the Tier Membership Balance after the transaction. This value will be equal to: `balanceBefore + amount`.

## Other responses

- `207` — EES AIR has processed a partially successful Request
- `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)
