---
title: "Create Wallets and Identities"
method: POST
path: "/services/wallet"
tags: ["Services"]
---

# Create Wallets and Identities

`POST /services/wallet`

This API method allows the calling application to create a Wallet with one or more Identities within single API call.

## Request body

- WalletServicesCreatePayload
  - `type` string, required — Type of the Wallet to be created; e.g. CONSUMER
  - `status` 'ACTIVE' | 'DELETED' | 'INACTIVE' | 'SUSPENDED' | 'TERMINATED', required — Wallet status
  - `state` string — Wallet state
  - `friendlyName` string — The friendly name of the wallet
  - `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
  - `relationships` object
    - `child` WalletCreatePayload[]
      - `type` string, required — Type of the Wallet to be created; e.g. CONSUMER
      - `status` 'ACTIVE' | 'DELETED' | 'INACTIVE' | 'SUSPENDED' | 'TERMINATED', required — Wallet status
      - `state` string — Wallet state
      - `friendlyName` string — The friendly name of the wallet
      - `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
    - `parent` WalletCreatePayload[]
      - `type` string, required — Type of the Wallet to be created; e.g. CONSUMER
      - `status` 'ACTIVE' | 'DELETED' | 'INACTIVE' | 'SUSPENDED' | 'TERMINATED', required — Wallet status
      - `state` string — Wallet state
      - `friendlyName` string — The friendly name of the wallet
      - `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
    - `associate` WalletCreatePayload[]
      - `type` string, required — Type of the Wallet to be created; e.g. CONSUMER
      - `status` 'ACTIVE' | 'DELETED' | 'INACTIVE' | 'SUSPENDED' | 'TERMINATED', required — Wallet status
      - `state` string — Wallet state
      - `friendlyName` string — The friendly name of the wallet
      - `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
  - `identities` WalletIdentityCreatePayload[]
    - `type` string, required — Type of the Identity
    - `friendlyName` string — Identity friendly name
    - `value` string — Identity value
    - `safeValue` string — Identity safe value (e.g. "original value salted and hashed") - safeValue could then be used in external systems like analytics, referencing original identity, provide uniqueness within a retailer, but without exposing sensitive information like card number.
    - `secret` string — Identity secret
    - `dates` DatesEntity
      - `start` string, date-time
      - `end` string, date-time
    - `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
    - `state` string — Identity state
    - `status` 'ACTIVE' | 'DELETED' | 'INACTIVE' | 'LOST' | 'STOLEN' | 'SUSPENDED' | 'TERMINATED', required — Identity status

## Response `201`

Created

- WalletServicesEntity
  - `walletId` string, required — Wallet ID
  - `friendlyName` string, required — Friendly Name of the Wallet
  - `status` 'ACTIVE' | 'SUSPENDED' | 'INACTIVE', required — Status of the Wallet.
  - `type` string, required — `TYPE` of that particular wallet. Could be defined per AIR Tenant as part of the Client Onboarding process and then used, if this list is not defined only NULL values are available.
  - `state` string, required — `STATE` of that particular wallet. Could be defined per AIR Tenant as part of the Client Onboarding process and then used, if this list is not defined only NULL values are available.
  - `relationships` WalletRelationshipsEntity, required
    - `parent` string[] — an Array of Wallet IDs that current Wallet should be / is parent
    - `child` string[] — an Array of Wallet IDs that current Wallet should be / is child
    - `associate` string[] — an Array of existing Wallet IDs that current Wallet should be / is associated to
    - `donor` string[] — an Array of existing Wallet IDs that current Wallet is donating into
  - `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
  - `dateCreated` string, date-time, required — Wallet creation date time
  - `lastUpdated` string, date-time, required — Wallet last updated date time
  - `identities` 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)

## Other responses

- `400` — Bad Request.
- `401` — Unauthorized.
- `403` — Forbidden.
- `409` — Conflict
- `415` — Unsupported Media Type
- `423` — Locked
- `429` — Too Many Requests
- `500` — Server Error

---

[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)
