---
updatedAt: 2026-05-27T08:01:17.000Z
agentTools:
  siteIndex: https://developer.eagleeye.com/llms.txt
  projectIndex: https://developer.eagleeye.com/eagleeye-developer/llms.txt
---

# Create and Fetch Wallet Accounts

This endpoint allows you to fetch recommendations and campaigns based on the provided identity-value or walletId and mark them as accepted.  Campaigns are fetched based on tags, and accounts are created accordingly. All existing accounts (ACTIVE & LOCKED only) in the wallet are fetched and returned as part of the same response, but only in the results section. A single event is created for all accounts created.

# OpenAPI definition

```json
{
  "x-explorer-enabled": false,
  "openapi": "3.0.3",
  "servers": [
    {
      "url": "https://wallet.uk.eagleeye.com/2.0",
      "description": "UK Production"
    }
  ],
  "info": {
    "title": "Wallet API",
    "description": "These API's are used for the interaction with the Eagle Eye AIR platform when using Wallets. A Wallet is a data container that links multiple other data objects. Wallets are typically accessed through the walletId which is obtained by calling application by looking up from an identity. Each wallet can have one or many identities.<br/><br/>For the avoidance of doubt this specification documents error codes thrown by the application it, does not cover error codes such as 429 to many requests, 503 service unavailable or 504 Gateway timeout.<br/><br/>The API supports standard Keep Alive as passed in through the Connection header (as supported by Google Cloud) and compression through the Accept-Encoding header is supported (gzip and deflate). Other standard HTTP headers maybe supported but not explicitly documented here.<br/><br/>This API is secured by Eagle Eye's standard security mechanic which is a client-id and hash where the hash is generated during the request. All API requests require the X-EES-AUTH-CLIENT-ID and X-EES-AUTH-HASH headers to be correct and valid (for more details see the authorise section) and as such are not directly specified per API definition below. <br/><br/>There are some additional headers supported by the system which are available on all API requests so documented in the table below to keep the specification cleaner<table><th width=25%>Header</th><th>Description</th></tr><tr><td>X-EES-TRANSACTION-ID</td><td>Unique Reference for the API transaction within the calling company</td></tr><tr><td>X-CUSTOM-SUBSYSTEM-ID</td><td>Optional header provided by the calling application for EES AIR to identify what was the external Subsystem that made the request, this is passed through in the atomic events and used for clients for their own purposes</td></tr><tr><td>X-CUSTOM-KEY</td><td>Optional header(s) provided by the calling application to EES AIR. Please note this header name has to follow pattern X-CUSTOM-* and is passed through to the atomic events for clients own purposes</td></tr></table>",
    "version": "2.170.0",
    "contact": {
      "name": "Eagle Eye Solutions",
      "url": "https://www.eagleeye.com/"
    }
  },
  "tags": [
    {
      "name": "Recommendations",
      "description": "API endpoints for interacting with recommendations objects."
    }
  ],
  "paths": {
    "/composite/wallet/accounts/createAndFetch": {
      "post": {
        "summary": "Create and Fetch Wallet Accounts",
        "operationId": "createAndFetchWalletAccounts",
        "description": "This endpoint allows you to fetch recommendations and campaigns based on the provided identity-value or walletId and mark them as accepted.  Campaigns are fetched based on tags, and accounts are created accordingly. All existing accounts (ACTIVE & LOCKED only) in the wallet are fetched and returned as part of the same response, but only in the results section. A single event is created for all accounts created.",
        "tags": [
          "Recommendations"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "oneOf": [
                  {
                    "required": [
                      "identity-value"
                    ],
                    "properties": {
                      "identity-value": {
                        "type": "string",
                        "description": "The identity value of the customer. Required if no walletId is provided."
                      }
                    }
                  },
                  {
                    "required": [
                      "walletId"
                    ],
                    "properties": {
                      "walletId": {
                        "type": "integer",
                        "description": "The wallet ID of the customer. Required if no identity-value is provided."
                      }
                    }
                  }
                ],
                "properties": {
                  "campaigns": {
                    "type": "array",
                    "description": "Array of campaigns to create accounts and fetch recommendations.",
                    "items": {
                      "type": "object",
                      "oneOf": [
                        {
                          "required": [
                            "campaignTag",
                            "status",
                            "state"
                          ],
                          "properties": {
                            "campaignTag": {
                              "type": "string",
                              "description": "The tag of the campaign."
                            }
                          }
                        },
                        {
                          "required": [
                            "campaignId",
                            "status",
                            "state"
                          ],
                          "properties": {
                            "campaignId": {
                              "type": "integer",
                              "description": "The ID of the campaign."
                            }
                          }
                        }
                      ],
                      "properties": {
                        "status": {
                          "type": "string",
                          "description": "The status of the campaign."
                        },
                        "state": {
                          "type": "string",
                          "description": "The state of the campaign."
                        }
                      }
                    }
                  }
                },
                "example": {
                  "walletId": 12345,
                  "campaigns": [
                    {
                      "campaignTag": "summer2024",
                      "status": "ACTIVE",
                      "state": "BASIC"
                    },
                    {
                      "campaignId": 67890,
                      "status": "ACTIVE",
                      "state": "BASIC"
                    }
                  ]
                }
              }
            }
          },
          "description": "JSON payload"
        },
        "responses": {
          "201": {
            "description": "Created",
            "x-eventNotifications": {
              "events": [
                {
                  "eventName": "SERVICE.WALLET.RECOMMENDATIONS.CREATEANDFETCH",
                  "atomicOperations": [
                    {
                      "schema": {
                        "$ref": "#/components/schemas/walletRecommendationsEntity"
                      },
                      "operationType": "CREATE"
                    }
                  ]
                }
              ]
            },
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/walletRecommendationsEntity"
                    }
                  ],
                  "example": {
                    "successful": {
                      "total": 1,
                      "results": [
                        {
                          "accountId": "3334",
                          "walletId": "1178",
                          "campaignId": "334",
                          "type": "ECOUPON",
                          "clientType": "A_CLIENT_ACCOUNT_TYPE",
                          "status": "ACTIVE",
                          "state": "A_CLIENT_ACCOUNT_STATE",
                          "dates": {
                            "start": "2018-09-16T11:53:08+01:00",
                            "end": "2021-12-31T23:59:59+01:00"
                          },
                          "dateCreated": "2018-09-16T11:53:08+01:00",
                          "lastUpdated": "2019-09-16T11:53:08+01:00"
                        }
                      ]
                    },
                    "failed": {
                      "total": 1,
                      "results": [
                        {
                          "errorCode": "Error Code",
                          "errorMessage": "Error Message."
                        }
                      ]
                    },
                    "results": {
                      "total": 2,
                      "results": [
                        {
                          "accountId": "3334",
                          "relationships": [],
                          "walletId": "1178",
                          "campaignId": "334",
                          "type": "ECOUPON",
                          "clientType": "A_CLIENT_ACCOUNT_TYPE",
                          "status": "ACTIVE",
                          "state": "A_CLIENT_ACCOUNT_STATE",
                          "dates": {
                            "start": "2018-09-16T11:53:08+01:00",
                            "end": "2021-12-31T23:59:59+01:00"
                          },
                          "dateCreated": "2018-09-16T11:53:08+01:00",
                          "lastUpdated": "2019-09-16T11:53:08+01:00"
                        },
                        {
                          "errorCode": "Error Code",
                          "errorMessage": "Error Message."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/badRequest"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/defaultErrorEntity"
                    }
                  ],
                  "example": {
                    "errorMessage": "Wallet not found.",
                    "errorCode": "NF"
                  }
                }
              }
            }
          },
          "415": {
            "$ref": "#/components/responses/unsupportedMediaType"
          },
          "429": {
            "$ref": "#/components/responses/tooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/serverError"
          }
        }
      }
    }
  },
  "security": [
    {
      "eesAuthenticationClientId": [],
      "eesAuthenticationHash": []
    }
  ],
  "components": {
    "responses": {
      "badRequest": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/defaultErrorEntity"
            }
          }
        }
      },
      "unauthorized": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/defaultErrorEntity"
            },
            "example": {
              "errorCode": "AF",
              "errorMessage": "Authentication Failure, Please check if required AUTH headers are present in your Request and if AUTH Hash is calculated correctly"
            }
          }
        }
      },
      "forbidden": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorCode": "P",
                "errorMessage": "You don't have appropriate Privileges to perform this operation"
              }
            }
          }
        }
      },
      "unsupportedMediaType": {
        "description": "Unsupported Media Type",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorMessage": "Unsupported media type - Check the content type of your request",
                "errorCode": "MP"
              }
            }
          }
        }
      },
      "tooManyRequests": {
        "description": "Too Many Requests",
        "headers": {
          "Retry-after": {
            "description": "The number of seconds after which to retry the request",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "errorCode": {
                  "type": "string",
                  "description": "The error code",
                  "enum": [
                    "CE"
                  ]
                },
                "errorMessage": {
                  "type": "string",
                  "description": "The error message for this error",
                  "enum": [
                    "This request has been throttled. Please try again later."
                  ]
                }
              }
            }
          }
        }
      },
      "serverError": {
        "description": "Server Error",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              ],
              "example": {
                "errorMessage": "Internal Server Error"
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "eesAuthenticationClientId": {
        "type": "apiKey",
        "in": "header",
        "description": "Client ID, This will be provided by EES and is unique to the company calling the API. Please note the authentication mechanic requires the receipt of the full payload so any headers that would chunk the request up, such as transfer-encoding chunked could potentially cause authentication failures.",
        "name": "X-EES-AUTH-CLIENT-ID"
      },
      "eesAuthenticationHash": {
        "type": "apiKey",
        "in": "header",
        "description": "Request Security Hash, calculated using SHA-256 function from concatenated full Request URI Path with Query String(s), Payload and Client Secret. Please note the authentication mechanic requires the receipt of the full payload so any headers that would chunk the request up, such as transfer-encoding chunked could potentially cause authentication failures.",
        "name": "X-EES-AUTH-HASH"
      }
    },
    "schemas": {
      "datesEntity": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "pattern": "/\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\\d|3[0-1])T[0-2]\\d:[0-5]\\d:[0-5]\\d[+-][0-2]\\d:[0-5]\\d/",
            "example": "2017-01-17T13:20:48+00:00"
          },
          "end": {
            "type": "string",
            "pattern": "/\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\\d|3[0-1])T[0-2]\\d:[0-5]\\d:[0-5]\\d[+-][0-2]\\d:[0-5]\\d/",
            "example": "2017-01-17T13:20:48+00:00"
          }
        }
      },
      "walletRelationshipsEntity": {
        "type": "object",
        "properties": {
          "parent": {
            "type": "array",
            "description": "Array of Wallet IDs that current Wallet should be / is parent",
            "items": {
              "type": "string"
            }
          },
          "child": {
            "type": "array",
            "description": "Array of existing Wallet IDs that current Wallet should be / is child",
            "items": {
              "type": "string"
            }
          },
          "associate": {
            "type": "array",
            "description": "anArray of existing Wallet IDs that current Wallet should be / is associated to",
            "items": {
              "type": "string"
            }
          },
          "donor": {
            "type": "array",
            "description": "an Array of existing Wallet IDs for which current Wallet is donating into",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "metaEntity": {
        "type": "object",
        "properties": {
          "key1": {
            "type": "string",
            "description": "Meta 1 property, up to 255 characters; up to 255 characters for Key 1 Value"
          },
          "key2": {
            "type": "string",
            "description": "Meta 2 property, up to 255 characters; up to 255 characters for Key 2 Value"
          }
        }
      },
      "walletAccountRelationEntity": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "accountId",
            "dateCreated"
          ],
          "properties": {
            "accountId": {
              "type": "string",
              "format": "int64",
              "description": "Account ID"
            },
            "dateCreated": {
              "type": "string",
              "pattern": "/\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\\d|3[0-1])T[0-2]\\d:[0-5]\\d:[0-5]\\d[+-][0-2]\\d:[0-5]\\d/",
              "example": "2017-01-17T13:20:48+00:00",
              "description": "Relation creation date-time"
            }
          }
        }
      },
      "walletAccountEntity": {
        "type": "object",
        "required": [
          "accountId",
          "walletId",
          "campaignId",
          "type",
          "clientType",
          "status",
          "state",
          "dates",
          "balances",
          "dateCreated",
          "lastUpdated",
          "mobileWallet"
        ],
        "description": "The account object.",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "EES AIR Wallet Account ID"
          },
          "walletId": {
            "type": "string",
            "description": "EES AIR Wallet ID"
          },
          "campaignId": {
            "type": "string",
            "description": "The Campaign ID this account belongs to."
          },
          "type": {
            "type": "string",
            "description": "EES AIR Account Type.",
            "enum": [
              "ECOUPON",
              "VOUCHER",
              "STAMP_CARD",
              "PAPER",
              "DEBIT",
              "PLASTIC",
              "POINTS",
              "CONTINUITY",
              "STANDARD_SUBSCRIPTION",
              "QUEST"
            ]
          },
          "clientType": {
            "type": "string",
            "description": "Account client type."
          },
          "status": {
            "$ref": "#/components/schemas/accountStatusEntity"
          },
          "state": {
            "type": "string",
            "description": "Account state, managed per retailer base, list of possible enum values could be set-up as part of the Onboarding process."
          },
          "dates": {
            "$ref": "#/components/schemas/datesEntity"
          },
          "meta": {
            "$ref": "#/components/schemas/metaEntity"
          },
          "balances": {
            "$ref": "#/components/schemas/accountBalancesEntity"
          },
          "relationships": {
            "type": "object",
            "description": "Wallet Accounts Relations",
            "properties": {
              "ENTITLEMENT": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "ENTITLEMENT_OF": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "OBJECTIVE": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "OBJECTIVE_OF": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "PROMOTION": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "PROMOTION_OF": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "BOUNCE_BACK_REWARD": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "BOUNCE_BACK_REWARD_OF": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "COUPON_STAMP_REWARD": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "COUPON_STAMP_REWARD_OF": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              },
              "LOYALTY_POINTS_REWARD_OF": {
                "type": "object",
                "properties": {
                  "accountType": {
                    "$ref": "#/components/schemas/walletAccountRelationEntity"
                  }
                }
              }
            }
          },
          "overrides": {
            "$ref": "#/components/schemas/accountOverridesEntity"
          },
          "dateCreated": {
            "description": "Date this Account was created",
            "type": "string",
            "pattern": "/\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\\d|3[0-1])T[0-2]\\d:[0-5]\\d:[0-5]\\d[+-][0-2]\\d:[0-5]\\d/",
            "example": "2017-01-17T13:20:48+00:00"
          },
          "lastUpdated": {
            "description": "Date this Account was last updated",
            "type": "string",
            "pattern": "/\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\\d|3[0-1])T[0-2]\\d:[0-5]\\d:[0-5]\\d[+-][0-2]\\d:[0-5]\\d/",
            "example": "2017-01-17T13:20:48+00:00"
          },
          "mobileWallet": {
            "type": "string",
            "description": "The URL that returns a digital platform wallet."
          }
        }
      },
      "accountOverridesEntity": {
        "type": "object",
        "description": "The object of overrides. A campaign must allow overrides.\n",
        "properties": {
          "continuity": {
            "type": "object",
            "description": "Overrides affecting the offer\n",
            "properties": {
              "qualification": {
                "type": "object",
                "description": "Continuity qualification area of the offer\n",
                "properties": {
                  "totalTransactionUnits": {
                    "type": "integer",
                    "description": "The number of units that are needed in the transaction to qualify for the reward."
                  },
                  "totalTransactionSpend": {
                    "type": "integer",
                    "description": "The transaction spend amount needed to qualify for the reward"
                  },
                  "totalTransactionCount": {
                    "type": "integer",
                    "description": "The number of transactions needed to qualify for the reward"
                  }
                }
              }
            }
          },
          "offer": {
            "type": "object",
            "description": "Overrides affecting the offer\n",
            "properties": {
              "qualification": {
                "type": "object",
                "description": "Qualification area of the offer",
                "properties": {
                  "minimumProductSpend": {
                    "nullable": true,
                    "type": "integer",
                    "description": "The minimum amount that must be spent."
                  },
                  "minimumUnits": {
                    "nullable": true,
                    "type": "integer",
                    "description": "The minimum number of units that must be in the basket to qualify."
                  },
                  "minimumBasketSpend": {
                    "nullable": true,
                    "type": "integer",
                    "description": "The minimum amount that must be spent in the basket."
                  }
                }
              },
              "reward": {
                "type": "object",
                "description": "Reward area of the offer\n",
                "properties": {
                  "creditAmount": {
                    "type": "integer",
                    "description": "The amount of points this account should earn when redeemed\n"
                  },
                  "step": {
                    "type": "integer",
                    "description": "The value of the interval when the discount amount should be stepped up."
                  },
                  "floor": {
                    "type": "integer",
                    "description": "The interval value where the credit amount should start increasing from."
                  },
                  "ceiling": {
                    "type": "integer",
                    "nullable": true,
                    "description": "The interval value where the credit amount should stop increasing."
                  },
                  "multiplierValue": {
                    "type": "integer",
                    "description": "The multiplication value to apply to the base issuance of points that would normally be awarded for the transaction."
                  }
                }
              }
            }
          },
          "campaign": {
            "type": "object",
            "description": "Overrides affecting the offer\n",
            "properties": {
              "rules": {
                "type": "object",
                "description": "The campaigns rules\n",
                "properties": {
                  "couponLimit": {
                    "type": "integer",
                    "description": "The amount of times a coupon can be redeemed, 0 is unlimited, 1 is default. If this is not set it will revert to what the campaigns couponLimit is set to\n"
                  }
                }
              }
            }
          },
          "reward": {
            "type": "object",
            "description": "Overrides affecting the reward\n",
            "properties": {
              "discountAmount": {
                "type": "integer",
                "minimum": 1,
                "description": "The discount amount to apply to the basket total.\n"
              },
              "finalAmount": {
                "type": "integer",
                "minimum": 1,
                "description": "The final amount to set the basket total to.\n"
              },
              "percentageAmount": {
                "type": "number",
                "minimum": 1,
                "description": "A percentage amount to be discounted. This must be an integer unless `allowDecimal` is enabled in the Unit.\n"
              },
              "discountValue": {
                "type": "integer",
                "minimum": 1,
                "description": "The discount value to increase with every interval.\n"
              }
            }
          }
        }
      },
      "accountBalancesEntity": {
        "type": "object",
        "description": "The object of balances. Some balances only apply to certain types of accounts. See notes below on balances.",
        "properties": {
          "available": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "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": {
            "type": "integer",
            "description": "The total spend balance. Applicable only to CONTINUITY type Accounts. If totalSpend is not provided on creation, this will be set to 0."
          },
          "totalUnits": {
            "type": "integer",
            "description": "The total units balance. Applicable only to CONTINUITY type Accounts. If totalUnits is not provided on creation, this will be set to 0."
          },
          "transactionCount": {
            "type": "integer",
            "description": "The transaction counter. Applicable only to CONTINUITY type Accounts. If transactionCount is not provided on creation, this will be set to 0."
          },
          "current": {
            "type": "integer",
            "description": "The current balance. Applicable only to accounts of type POINTS and STAMP. If not provided on creation, this will be set to 0."
          },
          "usable": {
            "type": "integer",
            "description": "The usable balance. Applicable only to accounts of type POINTS. If not provided on creation, this will be set to 0."
          },
          "locked": {
            "type": "integer",
            "description": "The locked balance. Applicable only to accounts of type POINTS. If not provided on creation, this will be set to 0."
          },
          "lifetime": {
            "type": "integer",
            "description": "The lifetime balance. Applicable only to accounts of type POINTS and STAMP. If not provided on creation, this will be set to 0."
          },
          "objectivesMet": {
            "type": "integer",
            "description": "The number of completed objectives. Applicable to only accounts of type QUEST."
          }
        }
      },
      "accountStatusEntity": {
        "type": "string",
        "description": "Account Status",
        "default": "ACTIVE",
        "enum": [
          "ACTIVE",
          "BLOCKED",
          "CANCELLED",
          "DELETED",
          "EXPIRED",
          "INACTIVE",
          "INVALIDATED",
          "LOCKED",
          "STOLEN",
          "USED",
          "SUSPENDED"
        ]
      },
      "defaultErrorEntity": {
        "type": "object",
        "required": [
          "errorCode",
          "errorMessage"
        ],
        "properties": {
          "errorCode": {
            "type": "string",
            "description": "Internal Error Code",
            "enum": [
              "AA",
              "AF",
              "ALR",
              "AALR",
              "AT",
              "CE",
              "CI",
              "CLPPR",
              "CILR",
              "CORQ",
              "CP",
              "CR",
              "CTNR",
              "CU",
              "CX",
              "DSN",
              "ELE",
              "FES",
              "IFU",
              "IH",
              "ILA",
              "IOC",
              "IP",
              "IPR",
              "IR",
              "ITID",
              "IW",
              "LIR",
              "LNA",
              "LPR",
              "MAC",
              "MAR",
              "MLV",
              "MNA",
              "MPA",
              "MTLE",
              "NF",
              "OC",
              "P",
              "RF",
              "RFL",
              "RW",
              "RWI",
              "TBR",
              "TBS",
              "TEXP",
              "TULR",
              "U",
              "UAS",
              "UV",
              "VA",
              "VC",
              "VI",
              "VL",
              "VNL",
              "VPUF",
              "VSM",
              "VU",
              "VUA",
              "VURC",
              "VURI",
              "VXP",
              "WLNF",
              "WTF",
              "WTNF"
            ]
          },
          "errorMessage": {
            "type": "string",
            "description": "Human Friendly Error Message"
          }
        },
        "x-enum": [
          {
            "errorCode": "AA",
            "errorMessage": "Invalid Access to API Method"
          },
          {
            "errorCode": "AF",
            "errorMessage": "Authorisation Failed"
          },
          {
            "errorCode": "ALR",
            "errorMessage": "Account Limit Reached"
          },
          {
            "errorCode": "AT",
            "errorMessage": "Account Type"
          },
          {
            "errorCode": "CE",
            "errorMessage": "Configuration Error"
          },
          {
            "errorCode": "CI",
            "errorMessage": "Campaign Inactive"
          },
          {
            "errorCode": "CILR",
            "errorMessage": "Campaign Issuance Limit Reached"
          },
          {
            "errorCode": "CLPPR",
            "errorMessage": "Campaign Limit Per Period Reached"
          },
          {
            "errorCode": "CORQ",
            "errorMessage": "Consumer Required"
          },
          {
            "errorCode": "CP",
            "errorMessage": "Campaign Pending"
          },
          {
            "errorCode": "CR",
            "errorMessage": "Campaign Removed"
          },
          {
            "errorCode": "CTNR",
            "errorMessage": "Consumer Type Not Recognized"
          },
          {
            "errorCode": "CU",
            "errorMessage": "Campaign Unknown"
          },
          {
            "errorCode": "CX",
            "errorMessage": "Campaign Expired"
          },
          {
            "errorCode": "DSN",
            "errorMessage": "Duplicated Serial Number"
          },
          {
            "errorCode": "ELE",
            "errorMessage": "Exchange Limit Exceeded"
          },
          {
            "errorCode": "FES",
            "errorMessage": "Scheduling Format Incorrect"
          },
          {
            "errorCode": "IFU",
            "errorMessage": "Insufficient Funds"
          },
          {
            "errorCode": "IH",
            "errorMessage": "Invalid Header set"
          },
          {
            "errorCode": "ILA",
            "errorMessage": "Invalid Load Amount"
          },
          {
            "errorCode": "IOC",
            "errorMessage": "Improper Offer Configuration"
          },
          {
            "errorCode": "IP",
            "errorMessage": "Invalid Parameter"
          },
          {
            "errorCode": "IPR",
            "errorMessage": "IP Address Rejected"
          },
          {
            "errorCode": "IR",
            "errorMessage": "Invalid Request"
          },
          {
            "errorCode": "ITID",
            "errorMessage": "Invalid Transaction ID"
          },
          {
            "errorCode": "IW",
            "errorMessage": "Voucher Can Not Be Created"
          },
          {
            "errorCode": "LIR",
            "errorMessage": "Outlet Identifier Required"
          },
          {
            "errorCode": "LNA",
            "errorMessage": "Outlet Not Allowed"
          },
          {
            "errorCode": "LPR",
            "errorMessage": "Outlet Prohibited by Campaign Settings"
          },
          {
            "errorCode": "MAC",
            "errorMessage": "Maximum Number of Code Variations"
          },
          {
            "errorCode": "MAR",
            "errorMessage": "Minimum Amount Required"
          },
          {
            "errorCode": "MLV",
            "errorMessage": "Maximum Voucher Value Exceeded"
          },
          {
            "errorCode": "MNA",
            "errorMessage": "Method Not Allowed"
          },
          {
            "errorCode": "MPA",
            "errorMessage": "Missing Parameter"
          },
          {
            "errorCode": "MTLE",
            "errorMessage": "Max Active Tokens Limit Exceeded"
          },
          {
            "errorCode": "NF",
            "errorMessage": "Not Found"
          },
          {
            "errorCode": "NPP",
            "errorMessage": "No Points Pending"
          },
          {
            "errorCode": "OC",
            "errorMessage": "Campaign has no Offer"
          },
          {
            "errorCode": "P",
            "errorMessage": "Privileges"
          },
          {
            "errorCode": "RF",
            "errorMessage": "Rollback Failure"
          },
          {
            "errorCode": "RFL",
            "errorMessage": "Redemption failed: Max redemption limit ... per period ... has been exceeded"
          },
          {
            "errorCode": "RW",
            "errorMessage": "Voucher Can Not Be Redeemed"
          },
          {
            "errorCode": "RWI",
            "errorMessage": "Token can not be Redeemed at this time. Blocked by redemption windows."
          },
          {
            "errorCode": "TBR",
            "errorMessage": "Minimum time since last redemption has not passed"
          },
          {
            "errorCode": "TBS",
            "errorMessage": "Minimum time since last stamp has not passed"
          },
          {
            "errorCode": "TEXP",
            "errorMessage": "Token Expired"
          },
          {
            "errorCode": "TULR",
            "errorMessage": "Token Usage Limit Reached"
          },
          {
            "errorCode": "U",
            "errorMessage": "Unknown Error"
          },
          {
            "errorCode": "UAS",
            "errorMessage": "Transaction Not Allowed by current account status"
          },
          {
            "errorCode": "UV",
            "errorMessage": "Voucher Unknown"
          },
          {
            "errorCode": "VA",
            "errorMessage": "Voucher already been sent"
          },
          {
            "errorCode": "VC",
            "errorMessage": "Voucher Cancelled"
          },
          {
            "errorCode": "VI",
            "errorMessage": "Voucher Invalid"
          },
          {
            "errorCode": "VL",
            "errorMessage": "Voucher Locked"
          },
          {
            "errorCode": "VNL",
            "errorMessage": "Voucher Not Locked"
          },
          {
            "errorCode": "VPUF",
            "errorMessage": "Voucher You don't have privileges to unlock this token"
          },
          {
            "errorCode": "VSM",
            "errorMessage": "Voucher Serial Mismatch"
          },
          {
            "errorCode": "VU",
            "errorMessage": "Voucher already redeemed"
          },
          {
            "errorCode": "VUA",
            "errorMessage": "No vouchers available for this campaign"
          },
          {
            "errorCode": "VURC",
            "errorMessage": "No Voucher Available to Redeem for Campaign"
          },
          {
            "errorCode": "VURI",
            "errorMessage": "No Voucher Available to Redeem for this Identity"
          },
          {
            "errorCode": "VXP",
            "errorMessage": "Voucher Expired"
          },
          {
            "errorCode": "WLNF",
            "errorMessage": "Wallet Link Not Found"
          },
          {
            "errorCode": "WTF",
            "errorMessage": "Wallet Transaction Failure"
          },
          {
            "errorCode": "WTNF",
            "errorMessage": "Wallet Transaction Not Found"
          }
        ]
      },
      "walletRecommendationsEntity": {
        "type": "object",
        "description": "Recommendations successfully accepted.",
        "properties": {
          "total": {
            "type": "integer",
            "format": "int32",
            "description": "Successfully processed Entities count."
          },
          "failed": {
            "type": "object",
            "description": "Failed AIR atomic operations details.",
            "properties": {
              "total": {
                "type": "integer",
                "format": "int32",
                "description": "Failures item count."
              },
              "results": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/defaultErrorEntity"
                }
              }
            }
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "meta": {
                  "$ref": "#/components/schemas/metaEntity"
                },
                "type": {
                  "type": "string",
                  "description": "Wallet flag informing what is the type of that particular wallet. Could be defined per Client as part of the Onboarding process."
                },
                "dates": {
                  "$ref": "#/components/schemas/datesEntity"
                },
                "state": {
                  "type": "string",
                  "description": "Additional flag, list of possible enum values could be defined per Client, as part of the Onboarding process."
                },
                "status": {
                  "type": "string",
                  "description": "Status of the EE Wallet.",
                  "enum": [
                    "ACTIVE",
                    "DELETED",
                    "INACTIVE",
                    "SUSPENDED",
                    "TERMINATED",
                    "MERGED"
                  ]
                },
                "balances": {
                  "type": "object",
                  "description": "The object of balances. Some balances only apply to certain types of accounts. See notes below on balances.",
                  "properties": {
                    "available": {
                      "type": "integer",
                      "description": "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": {
                      "type": "integer",
                      "description": "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."
                    }
                  },
                  "additionalProperties": false
                },
                "walletId": {
                  "type": "string",
                  "description": "Wallet ID."
                },
                "accountId": {
                  "type": "string",
                  "description": "The account id related to this transaction."
                },
                "overrides": {
                  "$ref": "#/components/schemas/accountOverridesEntity"
                },
                "campaignId": {
                  "type": "string",
                  "description": "Campaign ID."
                },
                "clientType": {
                  "type": "string",
                  "description": "Account client type."
                },
                "dateCreated": {
                  "type": "string",
                  "description": "Date this Account was created.",
                  "pattern": "/\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\\d|3[0-1])T[0-2]\\d:[0-5]\\d:[0-5]\\d[+-][0-2]\\d:[0-5]\\d/",
                  "example": "2017-01-17T13:20:48+00:00"
                },
                "lastUpdated": {
                  "type": "string",
                  "description": "Date this Account was last updated.",
                  "pattern": "/\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2]\\d|3[0-1])T[0-2]\\d:[0-5]\\d:[0-5]\\d[+-][0-2]\\d:[0-5]\\d/",
                  "example": "2017-01-17T13:20:48+00:00"
                },
                "mobileWallet": {
                  "type": "string",
                  "description": "The URL that returns a digital platform wallet."
                },
                "relationships": {
                  "$ref": "#/components/schemas/walletRelationshipsEntity"
                }
              }
            }
          },
          "successful": {
            "type": "object",
            "required": [
              "total",
              "results"
            ],
            "description": "Successfully process accounts.",
            "properties": {
              "total": {
                "type": "integer",
                "format": "int32",
                "description": "Successfully processed Entities count."
              },
              "results": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/walletAccountEntity"
                }
              }
            }
          }
        }
      }
    }
  }
}
```