openapi: '3.1.0'
info: 
  version: July 31, 2026
  title: Treezor PCI DSS API
  description: |
    If Treezor has contacted you to migrate to the PCI DSS-compliant services, some endpoints have changed to adapt to those new services. 
    They replace their equivalent among the current endpoints.

    Those endpoints can only be used for cards created or migrated to PCI DSS services.

    Read more in the [PCI DSS integration](/guide/cards/pci-dss.html) article.
  contact: 
    name: Treezor
    url: https://treezor.com
  license:
    name: Proprietary
    url: https://treezor.com
servers:
  - url: https://yourcompanyname.preprod.secure.treezor.co
    description: Sandbox environment
  - url: https://yourcompanyname.secure.treezor.co
    description: Production environment

security:
  - mTLS: []

tags:
  - name: Cards
    description: |
      The Card object represents a Physical or Virtual Card issued with Treezor services.

      Following your [Card Program](/guide/cards/introduction.html#card-program) and your agreement with Treezor, you can issue, manage, and configure cards with options, restrictions, and limits to best suit your use case.

      For non-PCI endpoints, see the main [API Reference](/api-reference/api-endpoints.html#tag/cards).

      _Related articles: [Cards](/guide/cards/introduction.html) | [Creation](/guide/cards/creation.html) | [Modifications](/guide/cards/modification.html) | [Restrictions & limits](/guide/cards/restrictions-limits.html)_
  - name: In-App Cryptograms
    description: |
      Digitization cryptograms are used to enroll the card directly from the end user's device.

      Treezor offers a series of endpoints to get such cryptograms from Google Pay (OPC) and Apple Pay (ActivationData/EncryptedPassData/EphemeralPublicKey).

      _Related articles: [Cards](/guide/cards/introduction.html) | [X-Pay](/guide/cards/x-pay-google-apple.html)_
  - name: Users
    description: |
      The User object usually represents your customers, also referred to as end users. They can either be physical users or legal entities.

      For non-PCI endpoints, see the main [API Reference](/api-reference/api-endpoints.html#tag/users).

      _Related articles: [Physical Users](/guide/users/physical.html) | [Legal Entities](/guide/users/legal-entity.html) | [Users](/guide/users/introduction.html)_

paths:
  /cards:
    post:
      tags:
        - Cards
      summary: Create Card
      operationId: createCard
      description: |
        Create a new card, which can be either virtual or physical depending on your agreement with Treezor. To use a card you will need to activate it ([`/v1/cards/{cardId}/Activate`](/api-reference/api-endpoints.html#tag/Cards/activateCard)).
        
        This endpoint requires per-session [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - $ref: '#/components/parameters/Authorization'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required: ["userId","medium","walletId","permsGroup","cardPrint"]
              properties:
                sca:
                  description: Strong Customer Authentication Proof (mandatory if not delegated mode)
                  type: string
                userId:
                  description: The unique identifier of the cardholder.
                  type: integer
                medium:
                  description: |
                    The type of card to create, depending on your [Card Program](/guide/cards/introduction.html#card-program). 
                    Can be: `physical` or `virtual`.

                    Note that if your card program allows for virtual card conversion, you must use the [convert virtual card to physical](/api-reference/api-endpoints.html#tag/Cards/convertVirtual) endpoint, which is not PCI DSS-specific.
                  type: string
                  enum:
                    - "physical"
                    - "virtual"
                walletId:
                  description: The unique identifier of the Wallet the card is attached to.
                  type: integer
                permsGroup:
                  description: |
                    Permissions defining which features are enabled for the Card. See the [Permissions Groups](/guide/cards/restrictions-limits.html#permission-groups-permsgroup) article for more information.
                  type: string
                  enum:
                    - TRZ-CU-001
                    - TRZ-CU-002
                    - TRZ-CU-003
                    - TRZ-CU-004
                    - TRZ-CU-005
                    - TRZ-CU-006
                    - TRZ-CU-007
                    - TRZ-CU-008
                    - TRZ-CU-009
                    - TRZ-CU-010
                    - TRZ-CU-011
                    - TRZ-CU-012
                    - TRZ-CU-013
                    - TRZ-CU-014
                    - TRZ-CU-015
                    - TRZ-CU-016
                accessTag:
                  description: |
                    A unique identifier used to enforce [Idempotency](/guide/api-basics/idempotency.html).
                  type: string
                  maxLength: 250
                cardTag:
                  description: |
                    Custom attribute to use as you see fit. Learn more in the [Object tags](/guide/api-basics/objects-tags.html#objects-tags) article.
                    
                    Format: hc characters and `/` `!` `-` `_` `.` `*` `'` `(` `)`
                  type: string
                  maxLength: 250
                batchDeliveryId:
                  description: |
                    Batch delivery identifier, which value must be between `1` and `238327`.
                    
                    This feature is not enabled by default, see [Customization](/guide/cards/creation.html#batch-delivery-batchdeliveryid) for more information.
                  type: integer
                freeCustomizedInfo:
                  description: |
                    More customized text to be displayed on the card.

                    If populated, it must: 
                    * Be alphanumeric
                    * Contain at most 50 characters
                    * Not contain `!"#%'(),:;<>?@[]^` or the backtick symbol.
                  type: string
                  maxLength: 50
                letterCustomizedInfo:
                  description: |
                    Customized text for the letter that is joined to the card.

                    If populated, it must:
                    * Be alphanumeric
                    * Contain at most 50 characters
                    * Not contain `!"#%'(),:;<>?@[]^` or the backtick symbol.
                  type: string
                  maxLength: 50
                limitAtmYear:
                  type: integer
                  description: ATM operations limit for a sliding year. No default value.
                limitAtmMonth:
                  type: integer
                  description: ATM operations limit for a sliding month. No default value.
                limitAtmWeek:
                  type: integer
                  description: ATM operations limit for a sliding week. Default value €2000.
                  default: 2000
                limitAtmDay:
                  type: integer
                  description: ATM operations limit for a single day. Default value €1000.
                  default: 1000
                limitAtmAll:
                  type: integer
                  description: ATM operations limit from beginning. No default value.
                limitPaymentYear:
                  type: integer
                  description: POS operations limit for a sliding year. No default value.
                limitPaymentMonth:
                  type: integer
                  description: POS operations limit for a sliding month. No default value.
                limitPaymentWeek:
                  type: integer
                  description: POS operations limit for a sliding week. Default value €3000.
                  default: 3000
                limitPaymentDay:
                  type: integer
                  description: POS operations limit for a single day. Default value €2000.
                  default: 2000
                limitPaymentAll:
                  type: integer
                  description: POS operations limit from beginning. No default value.
                paymentDailyLimit:
                  type: number
                  format: float
                  description: | 
                    POS operations limit for a single day including cents. The decimal delimiter must be ".". No default value.

                    For food vouchers use cases only.
                pin:
                  description: The PIN code value of the card.
                  type: string
                cardPrint:
                  description: |
                    The [Card Program](introduction.html#card-program) to associate to the Card and the options provided with it. This information is shared with you by Treezor.
                  type: string
                anonymous:
                  description: |
                    Whether the cards are to belong to [Anonymous Users](/guide/users/physical.html#anonymous-users). If so set the value to `1`, otherwise `0`.
                    When set to `1`, there is no embossed name on the card.
                  type: integer
                sendToParent:
                  description: | 
                    Whether the card should be sent to the cardholder's Parent User or Source User. 
                    When set to `1`, the delivery address fields will be automatically filled in with the parent or source user's address.
                  type: integer
                  enum: [0,1]
                sourceUserId:
                  description: |
                    The unique identifier of the source User to use for the card delivery address when `sendToParent` is set to `1`. 

                    If not provided, the cardholder's `parentUserId` is used instead (legacy behavior).
                  type: integer
                mccRestrictionGroupId:
                  description: |
                    The merchant category restriction group (`mccRestrictionGroup`) to apply to the card.
                  type: integer
                merchantRestrictionGroupId:
                  description: |
                    The merchant Id restriction group (`merchantRestrictionGroupId`) to apply to the card.
                  type: integer
                countryRestrictionGroupId:
                  description: |
                    The country restriction group (`countryRestrictionGroupId`) to apply to the card.
                  type: integer
                embossLegalName:
                  description: |
                    When set to `true`, embosses the corresponding user's `legalName` on the card. See the [embossed name](/guide/cards/creation.html#embossed-name-embossedname) article for more information.

                    Depending on the configuration, the legal name may be displayed regardless of the value of this field.
                  default: false
                  type: boolean
                logoId:
                  description: |
                    The file name of the logo for the card. Learn more in the [Logo](/guide/cards/creation.html#logo-logoid) article.
                  type: string
                  maxLength: 30
                  example: "MyLogoFile.png"
                logoBackId:
                  description: |
                    The file name of the logo for the back of the card. Learn more in the [Back Logo](/guide/cards/creation.html#back-logo-logobackid) article.
                  type: string
                  maxLength: 30
                  example: "MyBackLogoFile.png"
                designCode:
                  description: |
                    The design code of the card. Max. 2 characters. Learn more in the [Designs](/guide/cards/creation.html#designs-designcode) article.
                  type: string
                  format: alphanumeric
                  maxLength: 2
                packageId:
                  type: string
                  maxLength: 8
                  description: Packaging reference for card shipping. Max. 8 characters.
                  example: "Pkg123"
                customizedInfo:
                  description: |
                    Customized text to be displayed on the card.

                    If populated, it must: 
                    * Be alphanumeric
                    * Contain at most 27 characters
                    * Not contain `!"#%'(),:;<>?@[]^` or the backtick symbol.
                  type: string
                  maxLength: 27
                deliveryMethod:
                  type: string
                  description: | 
                    The method the manufacturer uses to send the cards (e.g., delivery with or without tracking). 
                    Learn more in the [Card Delivery Method](/guide/cards/creation.html#card-delivery-method-deliverymethod) article.
                pinMailer:
                  type: integer
                  description: |
                    You can request the card manufacturer to send the card PIN code by letter.
                    Learn more in the [Pin Mailer](/guide/cards/creation.html#pin-mailer-pinmailer) article.
                  enum: [0,1]
                cardLanguages:
                  type: string
                  format: ISO 639-1 alpha-2
                  maxLength: 8
                  description: |
                    The language preferences for the card for [ATMs](/guide/overview/glossary.html#automated-teller-machine-atm), in the order of preference. For instance, for French and English, you have to enter "fren".

                    While this information is well taken into account in the card configuration, please note that the API will not return the value.
                    
                    Must be alphabetic and max. 8 characters. Format: [ISO 639-1 alpha 2](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).
                  example: "fren"
                isTemporary:
                  type: boolean
                  default: false
                  description: |
                    Whether the virtual card is temporary. If set to `true`, then you can create a virtual card with a predefined lifespan and spending limit.
                    In such cases, the `expiryDate` must be defined. See [Creating Temporary Cards](/guide/cards/creation.html#creating-temporary-cards) for more information.
                startDate:
                  type: string
                  format: date
                  description: |
                    The date of activation of a temporary card. This field can only be filled when `isTemporary` is set to `true`.
                  example: "2025-01-01"
                expiryDate:
                  type: string
                  format: date
                  description: |
                    The date until which the card is valid. This field is required when `isTemporary` is set to `true`.
                  example: "2025-01-31"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  cards:
                    type: array
                    items:
                      $ref: '#/components/schemas/Cards'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal error
  /cards/{cardId}/tokenize:
    post:
      tags:
        - Cards
      summary: Tokenize Card
      operationId: cardTokenize
      description: |
        Tokenize the card securely. PAN and CVV are then available using the `GET /cards/{cardId}/pan` endpoint.
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - in: path
          name: cardId
          schema:
            type: string
          required: true
          description: The unique identifier of the card.
      requestBody:
        content:
          application/json:
            schema:
              required:
                - userId
              type: object
              properties:
                userId:
                  type: string
                  description: The unique identifier of the user.
      responses:
        '204':
          description: successful tokenize card data.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /cards/{cardId}/assignUser:
    put:
      tags:
        - Cards
      operationId: putAssignUser
      summary: Assign User
      description: Reassign an **inactive** card from one userID to another.
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - in: path
          name: cardId
          schema:
            type: string
          description: The unique identifier of the card.
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                currentUserId:
                  type: string
                  description: |
                    Current card's user ID.
                newUserId:
                  type: string
                  description: |
                    New card's user ID.
                accessTag:
                  description: |
                    A unique identifier used to enforce [Idempotency](/guide/api-basics/idempotency.html).
                  type: string
                  maxLength: 250
      responses:
        '204':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal error
  /cards/{cardId}/cardImage:
    post:
      tags:
        - Cards
      operationId: postCardImage
      summary: Rebuild Card Image
      description: |
        Create a fresh card image ready for download. Useful when changing card design, company name, or when retrieving the image results in a 404.
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - name: cardId
          schema:
            type: string
          description: The unique identifier of the card.
          in: path
          required: true
      requestBody:
        content:
          application/json:
            schema:
              required:
                - userId
              type: object
              properties:
                userId:
                  type: integer
                  description: The unique identifier of the cardholder.
      responses:
        '204':
          description: Successfully saved card image.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostBadRequest'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
    get:
      tags:
        - Cards
      operationId: getCardImage
      summary: Get Card Image
      description: |
        Download the encrypted card image of a given cardId.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - name: cardId
          schema:
            type: string
          description: The unique identifier of the card.
          in: path
          required: true
        - name: userId
          schema:
            type: string
          description: The unique identifier of the cardholder.
          in: query
          required: true
        - name: algorithm
          schema:
            $ref: '#/components/schemas/Algorithm'
          in: query
          required: true
        - name: userPublicKey
          schema:
            $ref: '#/components/schemas/PublicKeyBase64'
          in: query
          required: true
        - name: sca
          description: |
            Strong Customer Authentication Proof (mandatory if not delegated mode)
          schema:
            type: string
          in: query
        - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  encryptedCardImage:
                    type: string
                    description: The base64-encoded encrypted card image.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /cards/{cardId}/changePIN:
    put:
      tags:
        - Cards
      operationId: putChangePin
      summary: Change Card PIN
      description: | 
        Change the Card PIN code knowing the current one.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - in: path
          name: cardId
          description: The unique identifier of the card.
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              required:
                - userId
                - currentPIN
                - newPIN
                - confirmPIN
                - sca
              type: object
              properties:
                userId:
                  type: string
                  description: The unique identifier of the cardholder.
                currentPIN:
                  type: string
                  description: The current PIN code of the card.
                newPIN:
                  type: string
                  description: The new PIN code of the card.
                confirmPIN:
                  type: string
                  description: The confirmation of the new PIN code of the card.              
                # accessTag:
                #   type: string
                #   description: |
                #     A unique identifier used to enforce [Idempotency](/guide/api-basics/idempotency.html).
                #   maxLength: 250
                sca:
                  type: string
                  description: |
                    Strong Customer Authentication Proof (mandatory if not delegated mode).
      responses:
        '204':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal error
  /cards/{cardId}/pan:
    get:
      tags:
        - Cards
      operationId: getPAN
      summary: Get PAN & CVV
      description: |
        Get the secured Primary Account Number (PAN) and Card Validation Code (CVV) of a given card ID.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - name: cardId
          schema:
            type: string
          description: The unique identifier of the card.
          in: path
          required: true
        - name: algorithm
          schema:
            $ref: '#/components/schemas/Algorithm'
          in: query
          required: true
        - name: userId
          schema:
            type: string
          description: The unique identifier of the cardholder.
          in: query
          required: true
        - name: withCVV
          schema:
            type: boolean
          description: |
            Whether the CVV is available in addition to the PAN in the encrypted response.
          in: query
          required: false
        - name: userPublicKey
          schema:
            $ref: '#/components/schemas/PublicKeyBase64'
          in: query
          required: true
        - name: sca
          schema:
            type: string
          description: Strong Customer Authentication Proof (mandatory if not delegated mode)
          in: query
        - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: successful get pan.
          content:
            application/json:
              schema:
                type: object
                properties:
                  encryptedCardData:
                    type: string
                    description: The base64-encoded encrypted card data, which includes the PAN and optionally the CVV depending on the request `withCVV` attribute value.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /cards/{cardId}/pin:
    get:
      tags:
        - Cards
      operationId: getPIN
      summary: Get PIN
      description: |
        Retrieve the current secured Personal Identifier Number (PIN) of a given card.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - name: cardId
          description: The unique identifier of the card.
          schema:
            type: string
          in: path
          required: true
        - name: userPublicKey
          schema:
            $ref: '#/components/schemas/PublicKeyBase64'
          in: query
          required: true
        - name: algorithm
          schema:
            $ref: '#/components/schemas/Algorithm'
          in: query
          required: true
        - name: userId
          description: The unique identifier of the cardholder.
          schema:
            type: integer
          in: query
          required: true
        - name: sca
          description: Strong Customer Authentication Proof (mandatory if not delegated mode)
          schema:
            type: string
          in: query
        - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: successful get pin.
          content:
            application/json:
              schema:
                type: object
                properties:
                  encryptedPIN:
                    type: string
                    description: |
                      The base64-encoded encrypted card PIN, which includes the PAN and optionally the CVV depending on the request `withCVV` attribute value.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /cards/{cardId}/renew:
    post:
      tags:
        - Cards
      operationId: postRenew
      summary: Renew Card
      description: |
        Manually renew an active card (physical or virtual). The card status must be UNLOCK.
      parameters:
        - name: cardId
          description: The unique identifier of the card.
          schema:
            type: string
          in: path
          required: true
        - $ref: '#/components/parameters/Authorization'
      requestBody:
        content:
          application/json:
            schema:
              required:
                - userId
                - pinRenewOption
              type: object
              properties:
                userId:
                  type: string
                  description: The unique identifier of the cardholder.
                accessTag:
                  type: string
                  description: |
                    A unique identifier used to enforce [Idempotency](/guide/api-basics/idempotency.html).
                  maxLength: 250
                pinRenewOption:
                  type: integer
                  description: | 
                    Whether to keep the PIN code of the previous card. Set to:
                    
                      * `0` for an automatically generated new PIN code.
                      * `1` to keep the previous code.
                  enum: [0,1]
      responses:
        '200':
          description: Successful renew card.
          content:
            application/json:
              schema:
                type: object
                properties:
                  cards:
                    type: array
                    items:
                      $ref: '#/components/schemas/Cards'
        '204':
          description: Already renewed.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal error
  /cards/{cardId}/setPIN:
    put:
      tags:
        - Cards
      operationId: putSetPin
      summary: Set Card PIN
      description: |
        Overwrite the Card PIN code.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - name: cardId
          description: The unique identifier of the card.
          in: path
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              required:
                - userId
                - newPIN
                - confirmPIN
                - sca
              type: object
              properties:
                userId:
                  type: string
                  description: The unique identifier of the cardholder.
                newPIN:
                  type: string
                  description: The new PIN code of the card.
                confirmPIN:
                  type: string
                  description: The confirmation of the new PIN code of the card.              
                sca:
                  type: string
                  description: |
                    Strong Customer Authentication Proof (mandatory if not delegated mode).
      responses:
        '204':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal error
  /cards/{cardId}/inappcryptogram/mastercard/apple-pay:
    post:
      tags:
        - In-App Cryptograms
      operationId: postInappApple
      summary: Generate Apple Pay Cryptogram (Mastercard)
      description: |
        Generate an Apple Pay cryptogram for Mastercard digitization process.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - name: cardId
          in: path
          description: The unique identifier of the vard.
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppleGenerateCryptogramRequest'
      responses:
        '200':
          description: successful cryptogram generation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateCryptogramResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /cards/{cardId}/inappcryptogram/mastercard/google-pay:
    post:
      tags:
        - In-App Cryptograms
      operationId: postInappGpay
      summary: Generate Google Pay Cryptogram (Mastercard)
      description: |
        Generate a Google Pay cryptogram for Mastercard digitization process.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - name: cardId
          in: path
          description: The unique identifier of the card.
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleGenerateCryptogramRequest'
      responses:
        '200':
          description: successful cryptogram generation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateCryptogramResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /cards/{cardId}/inappcryptogram/visa/apple-pay:
    post:
      tags:
        - In-App Cryptograms
      operationId: postVisaInappApple
      summary: Generate Apple Pay Cryptogram (Visa)
      description: |
        Generate an Apple Pay cryptogram for Visa digitization process.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - name: cardId
          in: path
          description: The unique identifier of the vard.
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppleGenerateCryptogramRequest'
      responses:
        '200':
          description: successful cryptogram generation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateCryptogramResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /cards/{cardId}/inappcryptogram/visa/google-pay:
    post:
      tags:
        - In-App Cryptograms
      operationId: postVisaInappGpay
      summary: Generate Google Pay Cryptogram (Visa)
      description: |
        Generate a Google Pay cryptogram for Visa digitization process.

        This endpoint requires per-operation [SCA](/guide/strong-customer-authentication/introduction.html).
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - name: cardId
          in: path
          description: The unique identifier of the card.
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sca:
                  type: string
                  description: Strong Customer Authentication Proof (mandatory if not delegated mode)
                userId:
                  type: string
                  description: The unique identifier of the user (Treezor).
                additionalData:
                  type: object
                  properties:
                    clientWalletProvider:
                      type: string
                      description: Client Wallet Provider is the token requestor’s ID (TRID).
                    clientWalletAccountID:
                      type: string
                      description: Client-provided consumer ID that identifies the Wallet Account Holder entity.
                    clientDeviceID:
                      type: string
                      description: Stable device identification set by Wallet Provider.
                    clientAppID:
                      type: string
                      description: Unique identifier for the client application
      responses:
        '200':
          description: successful cryptogram generation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateCryptogramResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /inappcryptogram/{credentials}:
    get:
      tags:
        - In-App Cryptograms
      operationId: getInapp
      summary: Get Digitization Cryptogram
      description: |
        Retrieve the digitization data from the previously generated credentials. Data structures are different for each requester.

        **Specific URL**: Please contact your _Treezor Implementation Manager_ for the specific URL to use instead of the baseURL.
      parameters:
        - name: credentials
          schema:
            type: string
            description: Credentials to use for digitization.
          in: path
          required: true
      responses:
        '200':
          description: successful cryptogram retrieval.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveCryptogramResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '500':
          description: Internal server error.
  /users:
    post:
      tags:
        - Users
      operationId: postUsers
      summary: Create User
      description: |
        Create a new physical user or legal entity.
      parameters:
        - $ref: '#/components/parameters/Authorization'
      requestBody:
        content:
          application/json:
            schema:
              required:
                - userTypeId
                - specifiedUSPerson
                - email
              type: object
              properties:
                userTypeId:
                  type: integer
                  description: |
                    The type of the user. May be one of the following:
                    * `1` – Natural person (default)
                    * `2` – Business entity
                    * `3` – Non - governmental organization
                    * `4` – Governmental organization

                    You may read more about [Users](/guide/users/introduction.html)
                  enum: [1, 2, 3, 4]
                userTag:
                  type: string
                  maxLength: 250
                  description: |
                    Custom attribute to use as you see fit. Learn more in the [Object tags](/guide/api-basics/objects-tags.html#objects-tags) article.
                    
                    <br>Format: hc characters and `/` `!` `-` `_` `.` `*` `'` `(` `)`
                parentUserId:
                  type: integer
                  description: The unique identifier of the parent user (if any).
                parentType:
                  type: string
                  description: |
                    The type of relationship between the parent and the current users.

                    You may read more about [parent-children relationships](/guide/users/parent-children.html).
                  enum:
                    - shareholder
                    - employee
                    - leader
                specifiedUSPerson:
                  type: integer
                  description: |
                    Should be set to `1` for any citizen or resident of the United States, e.g. at least one of the following conditions is true: 
                    * `country` or `secondaryCountry` = US (the address or the secondary address is in the US)
                    * `nationality` or `nationalityOther` = US (the user has the US nationality)
                    * `birthCountry` = US (the user is born in the US)
            
                    When set to `1`, the user must have a US tax residence declared.
            
                    Should be set to `0` otherwise.
            
                    You may read more about who is considered a US Person in the [dedicated article](/guide/users/tax-residence.html).
                  enum: [0, 1]
                controllingPersonType:
                  type: integer
                  description: |
                    Type of relationship:
                    * `0` – None (default)
                    * `1` – Shareholder
                    * `2` – Other_relationship
                    * `3` – Director

                    You may read more about [parent-children relationships](/guide/users/parent-children.html).
                  enum: [1, 2, 3, 4]
                employeeType:
                  type: integer
                  description: | 
                    Type of user role:
                    * `0` – None (default)
                    * `1` – Leader
                    * `2` – Employee
                  enum: [1, 2, 3, 4]
                entityType:
                  type: integer
                  deprecated: true
                  enum: [1, 2, 3, 4, 5]
                title:
                  type: string
                  description: |
                    The title of the user, which can be one of the following:
                    * `M` – Stands for mister (Mr.)
                    * `MME` – Stands for misses (Mrs.)
                    * `MLLE` – Stands for miss
                    * `MX` – Gender-neutral title
                  enum:
                    - M
                    - MME
                    - MLLE
                    - MX
                firstname:
                  type: string
                  minLength: 1
                  maxLength: 150
                  description: | 
                    The first name of the Physical User (`userTypeId` `1`).

                    Accepts ISO 8859-15 characters except: `!`, `"`, `#`, `$`, `%`, `&`, `(`, `)`, `*`, `+`, `/`, `<`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `_`, `{`, `|`, `}`, `~`, `¡`, `¢`, `£`, `€`, `¥`, `Š`, `§`, `š`, `©`, `ª`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `µ`, `¶`, `·`, `¹`, `º`, `»`, `¿`, `÷`.

                    A character cannot be repeated more than 3 times in a row.
                lastname:
                  type: string
                  minLength: 1
                  maxLength: 150
                  description: |
                    The last name of the Physical User (`userTypeId` `1`).

                    Accepts ISO 8859-15 characters except: `!`, `"`, `#`, `$`, `%`, `&`, `(`, `)`, `*`, `+`, `/`, `<`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `_`, `{`, `|`, `}`, `~`, `¡`, `¢`, `£`, `€`, `¥`, `Š`, `§`, `š`, `©`, `ª`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `µ`, `¶`, `·`, `¹`, `º`, `»`, `¿`, `÷`.

                    A character cannot be repeated more than 3 times in a row.
                middleNames:
                  type: string
                  minLength: 1
                  maxLength: 150
                  description: |
                    The middle names of the Physical User (`userTypeId` `1`), if any. Several middle names must be separated by a comma.

                    Accepts ISO 8859-15 characters except: `!`, `"`, `#`, `$`, `%`, `&`, `(`, `)`, `*`, `+`, `/`, `<`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `_`, `{`, `|`, `}`, `~`, `¡`, `¢`, `£`, `€`, `¥`, `Š`, `§`, `š`, `©`, `ª`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `µ`, `¶`, `·`, `¹`, `º`, `»`, `¿`, `÷`.

                    A character cannot be repeated more than 3 times in a row.
                birthday:
                  type: string
                  format: date
                  description: | 
                    The birth date of the Physical User (`userTypeId` `1`). The user can't be more than a 100 years old upon reation.
                  example: "1990-10-29"
                email:
                  type: string
                  maxLength: 200
                  description: |
                    The email of the User. Must be valid and unique.

                    Please note only active users are checked for email uniqueness. `CANCELED` user emails can be reused to facilitate account re-creation.
                address1:
                  type: string
                  minLength: 3
                  maxLength: 150
                  oneOf:
                    - title: France (FR)
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                      description: |
                        The User postal address (main) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                      example: "14 Rue de la Paix"
                    - title: Other countries
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                      description: |
                        The User postal address (main) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Full ISO 8859-15 standard character set.
                      example: "123 Main Street"
                address2:
                  type: string
                  minLength: 3
                  maxLength: 150
                  oneOf:
                    - title: France (FR)
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                      description: |
                        The User postal address (complement) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                    - title: Other countries
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                      description: |
                        The User postal address (complement) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Full ISO 8859-15 standard character set.
                address3:
                  type: string
                  minLength: 3
                  maxLength: 150
                  oneOf:
                    - title: France (FR)
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                      description: |
                        The User postal address (complement2) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                    - title: Other countries
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                      description: |
                        The User postal address (complement2) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Full ISO 8859-15 standard character set.
                postcode:
                  oneOf:
                    - title: European 5-Digit Format
                      type: string
                      # pattern: '^\d{5}$'
                      minLength: 5
                      maxLength: 5
                      description: The postal code of the address. Applicable for BE, DE, ES, FR, IT. Must always correspond with the provided city.
                      example: "75001"
                    - title: International Format
                      type: string
                      maxLength: 20
                      format: ISO 8859-15 subset
                      # pattern: "^[a-zA-Z0-9'\\-,. áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ€]+$"
                      description: The postal code of the address. Applicable for all other countries. Must always correspond with the provided city.
                      example: "SW1A 1AA"
                city:
                  type: string
                  description: The User address city.
                state:
                  type: string
                  maxLength: 100
                  # pattern: "^[a-zA-ZÀ-ÖØ-öø-ÿœÆŒŠšŽžŸ\\s'-]+$"
                  description: |
                    The state of the user address.
                    
                    **Validation Rules:**
                    - **Characters:** Supports the ISO 8859-15 set, including standard letters, accented characters, spaces, hyphens, and apostrophes.
                    - **Anti-Spam:** A character cannot be repeated more than 3 times consecutively (e.g., "AAAA" is invalid).
                country:
                  type: string
                  description: The country of the user's address.
                  format: ISO  3166-1 alpha-2
                distributionCountry:
                  type: [string, "null"]
                  description: | 
                    The country in which the end user is using your services. Available values may vary depending on your configuration, see [Distribution Country](/guide/users/introduction.html#distribution-country-distributioncountry) for more information.

                    This field is only required when you operate in multiple countries. Otherwise, it either defaults to your country or is set to `null`.
                  format: ISO 3166-1 alpha-2
                  enum:
                    - FR
                    - ES
                    - IT
                    - DE
                    - BE
                    - NL
                secondaryAddress1:
                  type: string
                  minLength: 3
                  maxLength: 150
                  oneOf:
                    - title: France (FR)
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                      description: |
                        The User secondary postal address (main) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                      example: "14 Rue de la Paix"
                    - title: Other countries
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                      description: |
                        The User secondary postal address (main) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Full ISO 8859-15 standard character set.
                      example: "123 Main Street"
                secondaryAddress2:
                  type: string
                  minLength: 3
                  maxLength: 150
                  oneOf:
                    - title: France (FR)
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                      description: |
                        The User secondary postal address (complement) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                    - title: Other countries
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                      description: |
                        The User secondary postal address (complement) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Full ISO 8859-15 standard character set.
                secondaryAddress3:
                  type: string
                  minLength: 3
                  maxLength: 150
                  oneOf:
                    - title: France (FR)
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                      description: |
                        The User secondary postal address (complement2) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                    - title: Other countries
                      type: string
                      minLength: 3
                      maxLength: 150
                      # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                      description: |
                        The User secondary postal address (complement2) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                        
                        **Characters:** Full ISO 8859-15 standard character set.
                secondaryPostcode:
                  oneOf:
                    - title: European 5-Digit Format
                      type: string
                      # pattern: '^\d{5}$'
                      minLength: 5
                      maxLength: 5
                      description: The postal code of the address. Applicable for BE, DE, ES, FR, IT. Must always correspond with the provided city.
                      example: "75001"
                    - title: International Format
                      type: string
                      maxLength: 20
                      format: ISO 8859-15 subset
                      # pattern: "^[a-zA-Z0-9'\\-,. áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ€]+$"
                      description: The postal code of the address. Applicable for all other countries. Must always correspond with the provided city.
                      example: "SW1A 1AA"
                secondaryCity:
                  type: string
                  description: The User secondary address city.
                secondaryState:
                  type: string
                  maxLength: 100
                  # pattern: "^[a-zA-ZÀ-ÖØ-öø-ÿœÆŒŠšŽžŸ\\s'-]+$"
                  description: |
                    The state of the user secondary address.
                    
                    **Validation Rules:**
                    - **Characters:** Supports the ISO 8859-15 set, including standard letters, accented characters, spaces, hyphens, and apostrophes.
                    - **Anti-Spam:** A character cannot be repeated more than 3 times consecutively (e.g., "AAAA" is invalid).
                secondaryCountry:
                  type: string
                  description: | 
                    The User secondary address country. Format: ISO 3166-1 alpha-2
                phone:
                  type: string
                  description: |
                    The phone number of the user in international **E.164 format**. 
                    It must start with a plus sign (`+`) followed by the country code and the national number.
                  # pattern: '^\+[1-9]\d{1,14}$'
                  example: "+33123456789"
                mobile:
                  type: string
                  description: |
                    The mobile phone number of the user in international **E.164 format**. 
                    It must start with a plus sign (`+`) followed by the country code and the national number.
                  # pattern: '^\+[1-9]\d{1,14}$'
                  example: "+33123456789"
                nationality:
                  type: string
                  description: | 
                    The User nationality. Format: ISO 3166-1 alpha-2
                nationalityOther:
                  type: string
                  description: |
                    The User other nationality. Format: ISO 3166-1 alpha-2
                placeOfBirth:
                  type: string
                  maxLength: 100
                  # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s'-]+$"
                  description: |
                    The city in which the Physical User was born.
                    
                    **Validation Rules:**
                    - **Geographic Accuracy:** Must be an existing city located within the provided `birthCountry`.
                    - **Characters:** Alphanumeric characters, spaces, hyphens, and apostrophes are allowed.
                    - **Forbidden:** Special symbols (e.g., `/`, `@`, `#`, `!`) and commas are prohibited.
                    - **ISO 8859-15:** Supports standard European accented characters and ligatures.
                  example: "Aix-en-Provence"
                birthCountry: 
                  type: string
                  description: |
                    The User country of Birth. Format: ISO 3166-1 alpha-2
                occupation:
                  type: string
                  minLength: 1
                  maxLength: 200
                  description: |
                    Free field to specify the occupation of the Physical User (`userTypeId` `1`).

                    Accepts ISO 8859-15 characters except: `!`, `"`, `#`, `$`, `%`, `&`, `(`, `)`, `*`, `+`, `/`, `<`, `=`, `>`, `?`, `@`, `[`, `\`, `]`, `_`, `{`, `|`, `}`, `~`, `¡`, `¢`, `£`, `€`, `¥`, `Š`, `§`, `š`, `©`, `ª`, `«`, `¬`, `®`, `¯`, `°`, `±`, `²`, `³`, `µ`, `¶`, `·`, `¹`, `º`, `»`, `¿`, `÷`.

                    A character cannot be repeated more than 3 times in a row.
                incomeRange:
                  type: string
                  description: Deprecated. Use `monthlyIncomeRange` instead.
                  deprecated: true
                  enum:
                    - 0-18
                    - 19-23
                    - 24-27
                    - 28-35
                    - 36-56
                    - 57-*
                legalName:
                  oneOf:
                    - title: French SIREN Format
                      type: string
                      minLength: 1
                      maxLength: 100
                      # pattern: "^[a-zA-Z0-9ÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸàâäçéèêëîïôöùûüÿæœÆŒ .,\\[\\]{}€@#\\-:( )/=' +?!\"%&*;<>=°_]+$"
                      description: |
                        The official name of the legal entity (or self-employed user) as registered with national authorities. Compliant with the French SIREN naming standards; must follow the SIREN referential (supports specific accents, ligatures like 'œ', and symbols).

                        If you're issuing cards, please not this value automatically populates the `embossedLegalName` field which has a max. length of 20 characters.
                    - title: European Standard Format
                      type: string
                      format: ISO 8859-15
                      minLength: 1
                      maxLength: 100
                      # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                      description: | 
                        The official name of the legal entity (or self-employed user) as registered with national authorities. Standard ISO 8859-15 characters for ES, IT, DE, BE, NL.

                        If you're issuing cards, please not this value automatically populates the `embossedLegalName` field which has a max. length of 20 characters.
                legalRegistrationNumber:
                  oneOf:
                    - title: France (SIREN/SIRET)
                      type: string
                      # pattern: '^\d{9,14}$'
                      description: |
                        The official registration number of the legal entity. 
                        Mandatory for FR. Numeric characters only (9 or 14 digits).
                        If provided, the `country` field must be present as well.
                      example: "12345678901234"
                    - title: Spain (NIF)
                      type: string
                      # pattern: '^[A-Z]\d{7}[A-Z0-9]$'
                      description: |
                        The official registration number of the legal entity. 
                        Mandatory for ES. Structure: 1 letter + 7 digits + 1 control character (letter or digit).
                        If provided, the `country` field must be present as well.
                      example: "A1234567B"
                    - title: Italy (Numero REA)
                      type: string
                      # pattern: '^[A-Z]{2}\d+$'
                      description: |
                        The official registration number of the legal entity.
                        Mandatory for IT. Structure: 2-letter Provincial Code + digits.
                        If provided, the `country` field must be present as well.
                      example: "RM123456"
                    - title: Germany & Global (Alphanumeric)
                      type: string
                      # pattern: '^[a-zA-Z0-9]+$'
                      description: |
                        The official registration number of the legal entity. 
                        Optional for DE. Alphanumeric for all other countries.
                        If provided, the `country` field must be present as well.
                      example: "HRB12345"
                legalTvaNumber:
                  type: string
                  minLength: 3
                  maxLength: 20
                  description: |
                    The VAT number of the legal entity.
                    
                    This field is referred to as **Codice fiscale** in Italy and **Umsatzsteuer-ID** in Germany.
                    
                    **KYB Requirements:**
                    - **Mandatory:** For Italy (IT) and Spain (ES).
                    - **Optional:** For France (FR) and Germany (DE).
                  # pattern: '^[a-zA-Z0-9]{3,20}$'
                  example: "IT12345678901"
                legalRegistrationDate:
                  type: string
                  format: date
                  description: | 
                    The date on which the legal entity was officially registered with the relevant national authorities. Must be in the past.
                  example: "2020-01-21"
                legalForm:
                  type: string
                  description: |
                    The legal form/category of the company. 

                    You may check out [the authoritative list](https://www.insee.fr/fr/information/2028129)
                legalShareCapital:
                  type: integer
                  description: The Business share capital.
                legalSector:
                  type: string
                  description: |
                    The Business Sector of the company (NAF or NACE code in France). The expected format depends on `legalSectorType`

                    If the value is one of the following, the `userTypeId` must be `3`: `9411Z`, `9412Z`, `9420Z`, `9491Z`, `9492Z`, `9499Z`.

                    You may check out [the authoritative list](https://www.insee.fr/fr/information/2120875)
                legalAnnualTurnOver:
                  type: string
                  description: The Business annual turnover (in k€).
                  enum:
                    - 0-39
                    - 40-99
                    - 100-249
                    - 250-999
                    - 1000-2999
                    - 3000-9999
                    - 10000-99999
                    - 100000-*
                legalNetIncomeRange:
                  type: string
                  description: The Business net income range (in k€). Negative values are only accepted for legal entities.
                  enum:
                    - '*--500'
                    - '-499--150'
                    - '-149--50'
                    - '-49--10'
                    - '-9--1'
                    - 0-4
                    - 5-9
                    - 10-49
                    - 50-149
                    - 150-499
                    - 500-*
                legalNumberOfEmployeeRange:
                  type: string
                  description: The Business number of employees.
                  enum:
                    - '0'
                    - 1-9
                    - 10-99
                    - 100-249
                    - 250-*
                effectiveBeneficiary:
                  type: integer
                  description: The effective beneficiary shares of the legal entity (e.g., for a beneficiary holding 70% of a company, value must be `70`). For shareholders only.
                language: 
                  type: string
                  description: |
                    The User preferred language. Format: ISO 639-1
                taxNumber:
                  type: string
                  deprecated: true
                  description: Deprecated. Your must use the `taxResidence` endpoint.
                taxResidence:
                  type: string
                  deprecated: true
                  description: Deprecated. Your must use the `taxResidence` endpoint.
                position:
                  type: string
                  description: The geographic activity coverage (for NGOs only).
                personalAssets:
                  type: string
                  description: Deprecated. You must use `personalAssetsRange` instead.
                  deprecated: true
                  enum:
                    - 0-2
                    - 3-22
                    - 23-128
                    - 129-319
                    - 320-464
                    - 465-
                activityOutsideEu:
                  type: integer
                  description: |
                    For Users obligated to complete a due diligence questionnaire regarding sanctions and embargoes. 

                    Whether the entity and its business units, subsidiaries, and joint ventures have a commercial activity outside of the European Union.

                    Can be:
                    * `0` – False
                    * `1` – True. When set to this value, the next attributes become mandatory. 

                    See the [Sanctions and embargo](/guide/users/legal-entity.html#sanctions-and-embargo) article for more information.
                  enum:
                    - 0
                    - 1
                economicSanctions:
                  type: integer
                  description: |
                    For Users obligated to complete a due diligence questionnaire regarding sanctions and embargoes, and for which the `activityOutsideEu` value is set to `1`.

                    Whether the entity, its subsidiaries, entities, employees, directors, beneficial owners, or joint ventures are subject to Economic Sanctions.

                    Can be:
                    * `0` – False
                    * `1` – True 

                    See the [Sanctions and embargo](/guide/users/legal-entity.html#sanctions-and-embargo) article for more information.
                  enum:
                    - 0
                    - 1
                residentCountriesSanctions:
                  type: integer
                  description: |
                    For Users obligated to complete a due diligence questionnaire regarding sanctions and embargoes, and for which the `activityOutsideEu` value is set to `1`.

                    Whether the entity, its subsidiaries, or joint ventures, located within or operating from any countries or territories are subject to Comprehensive Sanctions. 

                    Can be:
                    * `0` – False
                    * `1` – True 

                    See the [Sanctions and embargo](/guide/users/legal-entity.html#sanctions-and-embargo) article for more information.
                  enum:
                    - 0
                    - 1
                involvedSanctions:
                  type: integer
                  description: |
                    For Users obligated to complete a due diligence questionnaire regarding sanctions and embargoes, and for which the `activityOutsideEu` value is set to `1`.

                    Whether the entity, its subsidiaries, or joint ventures, are engaged in transactions, investments, business, or other dealings that directly or indirectly involve or benefit:
                    * Any countries or territories subject to Comprehensive Sanctions (Cuba, Iran, North Korea, Syria, Crimea, Ukrainian Oblasts not controlled by the government, or Russia), or 
                    * Any person or entity which is the target of any Sanctions (“Sanctioned Targets”).

                    Can be:
                    * `0` – False
                    * `1` – True 

                    See the [Sanctions and embargo](/guide/users/legal-entity.html#sanctions-and-embargo) article for more information.
                  enum:
                    - 0
                    - 1
                entitySanctionsQuestionnaire:
                  type: integer
                  description: |
                    For Users obligated to complete a due diligence questionnaire regarding sanctions and embargoes, and for which the `activityOutsideEu` value is set to `1`.

                    Defines the scope to which the `activityOutsideEu` field applies:
                    * `0` – Not applicable
                    * `1` – Only the legal entity
                    * `2` – The legal entity and all its subsidiaries held at 100%
                    * `3` – The legal entity and all its subsidiaries held at 50% or more
                    * `4` – The legal entity and a list of subsidiaries

                    See the [Sanctions and embargo](/guide/users/legal-entity.html#sanctions-and-embargo) article for more information.

                  enum: [0, 1, 2, 3, 4]
                timezone:
                  type: string
                  description: |
                    The User timezone in the [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) format.
                    The timezones have unique names in the form "Area/Location" (e.g. "America/New_York", "Europe/Paris").

                    It may be used to enforce a card `paymentDailyLimit` based on the cardholder's timezone.
                occupationType:
                  type: string
                  deprecated: true
                  description: Deprecated. Use `occupationCategory` instead.
                  enum:
                    - self_employed
                    - public_sector_employees
                    - private_sector_employees
                    - retired_people_and_students
                    - without_any_professional_activity
                sourceOfFunds:
                  type: string
                  description: The source of funds for opening an account for a company or self-employed person.
                  enum: 
                    - donation
                    - inheritance
                    - loan 
                    - lottery
                    - pension
                    - proceeds_from_investment
                    - proceeds_from_sale
                    - salary
                    - saving
                legalSectorType:
                  type: string
                  description: |
                    Qualify the type of data in the `legalSector` field:
                    * If it is set to NACE the legalSector needs to be in a NACE format (4 digits). 
                    * If it is set to NAF (or not set at all) the legalSector needs to be in a NAF format (4 digits followed by a capital letter).
                  enum:
                    - NAF
                    - NACE
                isOnStockExchange:
                  type: integer
                  description: |
                    The user is a corporation and is quoted on an organized stock exchange.
                    * `0` – No
                    * `1` – Yes
                  enum: [0, 1]
                webauthn:
                  type: string
                  description: |
                    The `PublicKeyCredential` after the WebAuthn Register, encoded in base64.

                    See the [Web Native enrollment](/guide/strong-customer-authentication/user-enrollment.html#web-native-enrollment) article for more information.
                passcode:
                  type: string
                  description: |
                    Required if the `webauthn` field is provided. Must be base64 encoded and encrypted.

                    See the [Web Native enrollment](/guide/strong-customer-authentication/user-enrollment.html#web-native-enrollment) article for more information.
                occupationCategory:
                  type: [integer, "null"]
                  description: |
                    Type of occupation of the user. See [Occupation Category](/guide/users/physical.html#occupation-category-occupationcategory) for the list of values.
                  enum: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
                personalAssetsRange:
                  type: [integer, "null"]
                  description: |
                    The personal assets range of the user. See [Personal Assets Range](/guide/users/physical.html#personal-assets-range-personalassetsrange) for the list of values.
                  enum: [0,1,2,3,4,5,6,7]
                monthlyIncomeRange:
                  type: integer
                  description: |
                    Net monthly income of the user. See [Monthly Income Range](/guide/users/physical.html#monthly-income-range-monthlyincomerange) for the list of values.
                  enum: [1,2,3,4,5,6,7]
                scaWalletTag:
                  type: string
                  maxLength: 256
                  description: |
                    Custom value for the SCA Wallet [when enrolling a new user](/guide/strong-customer-authentication/user-enrollment.html#new-user-enrollment). Can be used to name the device for which the new SCA Wallet is created. 
                  example: "iPhone16"
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserObject'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '400':
          description: Bad Request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
components:
  securitySchemes:
    mTLS:
      type: mutualTLS
      description: Mutual TLS (client certificate) authentication.
  parameters: 
    Authorization:
      name: Authorization
      in: header
      required: true
      description: |
        Authorization header that contains a Bearer JWT. <br> See the [Authentication](/guide/api-basics/authentication.html) article for more information.
      schema:
        type: string
        example: 'Bearer YOUR_SECRET_TOKEN'

  schemas:
    Algorithm:
      type: string
      description: |
        Algorithm used to cipher.
      enum: [ "OPENPGP_ARMOR", "LIBSODIUM_HEX" ]
    Cards:
      type: object
      properties:
        cardId:
          type: integer
          description: The unique identifier of the card.
        userId:
          type: integer
          description: The unique identifier of the cardholder.
        walletId:
          type: integer
          description: The unique identifier of the Wallet the card is attached to.
        designCode:
          type: [string, "null"]
          format: alphanumeric
          maxLength: 2
          description: |
            The design code of the card. Max. 2 characters. Learn more in the [Designs](/guide/cards/creation.html#designs-designcode) article.
        eventAlias:
          type: string
          deprecated: true
        eventName:
          type: string
          description: Name of the Wallet, inherited from the wallet the card is attached to.
        physical:
          type: integer
          description: |
            Whether the card is a physical card.
          enum: [0,1]
        walletCardtransactionId:
          type: integer
          description: | 
            The card technical wallet, for Treezor usage only. See [Card Transaction Wallet](/guide/wallets/introduction.html#card-transaction-wallet-type-14-18) for more information.
        mccRestrictionGroupId:
          type: [integer, "null"]
          description: |
            The merchant category restriction group (`mccRestrictionGroup`) applied to the card.
        merchantRestrictionGroupId:
          type: [integer, "null"]
          description: |
            The merchant Id restriction group (`merchantRestrictionGroupId`) applied to the card.
        countryRestrictionGroupId:
          type: [integer, "null"]
          description: |
            The country restriction group (`countryRestrictionGroupId`) applied to the card.
        publicToken:
          type: string
          minLength: 9
          maxLength: 9
          description: |
            The 9-character long string printed on the Card. It can be used to [activate](/guide/cards/creation.html#activation) the card.
        cardTag:
          type: string
          maxLength: 250
          description: |
            Custom attribute to use as you see fit. Learn more in the [Object tags](/guide/api-basics/objects-tags.html#objects-tags) article.
                    
            Format: hc characters and `/` `!` `-` `_` `.` `*` `'` `(` `)`
        statusCode:
          type: string
          description: | 
            The plaintext value of the [Card status](/guide/cards/introduction.html#card-status-statuscode).
          enum: [ 'UNLOCK', 'LOCK', 'LOST', 'STOLEN', 'DESTROYED', 'LOCK_INTERNAL', 'EXPIRED', 'CUSTOM_LOCK' ]
        isLive:
          type: integer
          description: |
            Whether the card is active. Set to `1` once activated. See [Activation](/guide/cards/creation.html#activation) for more information.
          enum: [0,1]
        pinTryExceeds:
          type: integer
          description: |
            Whether the Card is locked because the cardholder entered 3 erroneous PIN codes in a row. Set to `1` when the card is PIN-locked. 
                  
            See [PIN Unlock](/guide/cards/modification.html#unlock-pin) for more information.
          enum: [0,1]
        maskedPan:
          type: string
          description: |
            The [Primary Account Number (PAN)](/guide/overview/glossary.html#primary-account-number-pan) of the card, with the middle numbers redacted for safety.
          example: "519872******3333"
        embossedName:
          type: string
          maxLength: 20
          description: | 
            The cardholder name embossed on the card. See the [embossed name](/guide/cards/creation.html#embossed-name-embossedname) article for more information.
          example: "ALEX OAK"
        expiryDate:
          type: string
          description: | 
            The date on which the card expires. 
            The [`card.expiryAlert`](/guide/cards/events.html#structure-of-a-card-expiryalert) webhook is sent a month before the `expiryDate` for you to anticipate [Renewal](/guide/cards/renewal.html).
                  
            Format: `YYYY-MM-DD`
          example: "2029-07-04"
        CVV:
          type: string
          description: | 
            The verification code of the card. This field is to be deprecated and hence may return a value of `000`. 
        startDate:
          type: string
          format: date
          description: The date on which the card was activated.
          example: "2029-07-04"
        endDate:
          type: string
          description: The date on which the card reaches a final cardStatus (e.g., `DESTROYED`, `EXPIRED`).
          example: "2029-07-04"
        countryCode:
          type: string
          format: ISO 3166-1 alpha-2
          description: Inherited from the cardholder's country.
          example: "FR"
        currencyCode:
          type: string
          format: ISO 4217
          description: The currency of the card, in the [ISO 4217](/guide/api-basics/data-format.html#currencies) format.
          example: "EUR"
        lang:
          type: [string, "null"]
          deprecated: true
        deliveryTitle:
          type: string
          description: |
            The title inherited from the User object (cardholder or parent depending on the `sendToParent` value).
            
            Can be one of the following:
            * `M` – Stands for mister (Mr.)
            * `MME` – Stands for missus (Mrs.)
            * `MLLE` – Stands for miss
            * `MX` – Gender-neutral title
          example: "MX"
          enum:
            - M
            - MME
            - MLLE
            - MX
        deliveryLastname:
          type: string
          maxLength: 20
          description: |
            The last name or the `legalName` inherited from the User object (cardholder or parent depending on the `sendToParent` value). This value is truncated at 20 characters.
          example: "Oak"
        deliveryFirstname:
          type: string
          maxLength: 20
          description: |
            The first name of the user inherited from the User object (cardholder or parent depending on the `sendToParent` value). This value is truncated at 20 characters.
          example: "Morgan"
        deliveryAddress1:
          type: string
          maxLength: 50
          description: |
            The postal address (main) inherited from the User object (cardholder or parent depending on the `sendToParent` value). 
            
            This value cannot contain carriage return and is truncated at 50 characters. We advise you abide by the [mail carrier limitations](/guide/api-basics/data-format.html#addresses).
        deliveryAddress2:
          type: string
          maxLength: 50
          description: |
            The postal address (complement) inherited from the User object (cardholder or parent depending on the `sendToParent` value). 
            
            This value cannot contain carriage return and is truncated at 50 characters. We advise you abide by the [mail carrier limitations](/guide/api-basics/data-format.html#addresses).
        deliveryAddress3:
          type: string
          maxLength: 35
          description: |
            The postal address (complement2) inherited from the User object (cardholder or parent depending on the `sendToParent` value). 
            
            This value cannot contain carriage return and is truncated at 35 characters.
        deliveryPostcode:
          type: string
          maxLength: 10
          description: |
            The postal code of the address inherited from the User object (cardholder or parent depending on the `sendToParent` value). 
        deliveryCity:
          type: string
          description: |
            The city of the address inherited from the User object (cardholder or parent depending on the `sendToParent` value). 
          maxLength: 20
        deliveryCountry:
          type: string
          format: ISO 3166-1 alpha-2
          description: |
            The country of the postal address inherited from the User object (cardholder or parent depending on the `sendToParent` value). 
          example: "FR"
        mobileSent:
          type: string
          description: Inherited from the cardholder' `phone`.
        limitsGroup:
          type: string
        permsGroup:
          type: string
          description: |
            A code for a [preset of permissions](/guide/cards/restrictions-limits.html#options-permission-groups). It indicates whether the card main options (contactless, online payments, withdrawals, and international payments) are activated or not.
          enum:
            - TRZ-CU-001
            - TRZ-CU-002
            - TRZ-CU-003
            - TRZ-CU-004
            - TRZ-CU-005
            - TRZ-CU-006
            - TRZ-CU-007
            - TRZ-CU-008
            - TRZ-CU-009
            - TRZ-CU-010
            - TRZ-CU-011
            - TRZ-CU-012
            - TRZ-CU-013
            - TRZ-CU-014
            - TRZ-CU-015
            - TRZ-CU-016
        cardDesign:
          type: string
          description: | 
            The `cardPrint` identifier, which defines the options and design of the card as part of your [Card Program](introduction.html#card-program).
        virtualConverted:
          type: integer
          description: |
            Whether or not the card is a Virtual Card that has been converted into a Physical Card. Values can be:
              * `1` – Physical card converted from a virtual card
              * `0` – Not converted, virtual card only
          enum: [0, 1]
        optionAtm:
          type: integer
          description: | 
            Whether the card is usable on ATMs (withdrawal). See [Options & Permission groups](/guide/cards/restrictions-limits.html#options-permission-groups) for more information.
          enum: [0,1]
        optionForeign:
          type: integer
          description: |
            Whether the card is usable abroad. See [Options & Permission groups](/guide/cards/restrictions-limits.html#options-permission-groups) for more information.
          enum: [0,1]
        optionOnline:
          type: integer
          description: | 
            Whether the card is usable online. See [Options & Permission groups](/guide/cards/restrictions-limits.html#options-permission-groups) for more information.
          enum: [0,1]
        optionNfc:
          type: integer
          description: | 
            Whether the card can be used for contactless payments. See [Options & Permission groups](/guide/cards/restrictions-limits.html#options-permission-groups) for more information.
          enum: [0,1]
        limitAtmYear:
          type: integer
          description: | 
            The ATM operations limit of the corresponding card for a sliding year.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 0
        limitAtmMonth:
          type: integer
          description: | 
            ATM operations limit of the corresponding card for a sliding month.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 0
        limitAtmWeek:
          type: integer
          description: | 
            ATM operations limit of the corresponding card for a sliding week.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 2000
        limitAtmDay:
          type: integer
          description: | 
            ATM operations limit of the corresponding card for a single day.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 1000
        limitAtmAll:
          type: integer
          description: | 
            ATM operations limit of the corresponding card from beginning.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 0
        limitPaymentYear:
          type: integer
          description: |
            POS operations limit of the corresponding card for a sliding year.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 0
        limitPaymentMonth:
          type: integer
          description: | 
            POS operations limit of the corresponding card for a sliding month.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 0
        limitPaymentWeek:
          type: integer
          description: | 
            POS operations limit of the corresponding card for a sliding week.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 3000
        limitPaymentDay:
          type: integer
          description: | 
            POS operations limit of the corresponding card for a single day.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 2000
        limitPaymentAll:
          type: integer
          description: | 
            POS operations limit of the corresponding card for a single day.

            See [Payment & Withdrawal limits](/guide/cards/restrictions-limits.html#payment-withdrawal-limits) for more information.
          example: 2000
        paymentDailyLimit:
          type: number
          format: float
          description: | 
            POS operations limit for a single day including cents. The decimal delimiter must be ".". No default value.

            For food vouchers use cases only.
        restrictionGroupLimits:
          type: array
          items:
            type: object
            properties:
              paymentDailyLimit:
                type: number
                format: float
                exclusiveMinimum: 0
              mccRestrictionGroups:
                type: integer
                format: int64
                exclusiveMinimum: 0
              countryRestrictionGroups:
                type: integer
                format: int64
                exclusiveMinimum: 0
              merchantIdRestrictionGroups:
                type: integer
                format: int64
                exclusiveMinimum: 0
          minItems: 1
        totalAtmYear:
          type: number
          format: float
          example: 5236.33
          description: The card yearly withdrawal amount.
        totalAtmMonth:
          type: number
          format: float
          example: 5236.33
          description: The card monthly withdrawal amount.
        totalAtmWeek:
          type: number
          format: float
          example: 5236.33
          description: The card weekly withdrawal amount.
        totalAtmDay:
          type: integer
          description: The card daily withdrawal amount.
        totalAtmAll:
          type: number
          format: float
          example: 5236.33
          description: The card total withdrawal amount.
        totalPaymentYear:
          type: number
          format: float
          example: 5236.33
          description: The card yearly spent amount.
        totalPaymentMonth:
          type: number
          format: float
          example: 5236.33
          description: The card monthly spent amount.
        totalPaymentWeek:
          type: number
          format: float
          example: 5236.33
          description: The card weekly spent amount.
        totalPaymentDay:
          type: number
          format: float
          example: 5236.33
          description: The card daily spent amount.
        totalPaymentAll:
          type: number
          format: float
          example: 5236.33
          description: The card total spent amount.
        createdBy:
          type: integer
        createdDate:
          type: string
          # pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
          description: | 
            Date `YYYY-MM-DD HH:mm:ss`
          example: "2025-01-10 15:49:53"
        modifiedBy:
          type: integer
        modifiedDate:
          type: string
          # pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
          description: | 
            Date `YYYY-MM-DD HH:mm:ss`
          example: "2025-01-10 15:49:53"
        renewalType:
          type: string
          description: |
            Indicates how the Card is to be renewed. `A` for automatic renewal, `N` for non-automatic renewal.
          enum: ["A", "N"]
        renewalDate:
          type: string
          description: Date on which the card was renewed (field populated for the original card only). YYYY-MM-DD.
        originalCardId:
          type: integer
          description: The unique identifier of the original Card (field populated for renewed cards only).
        cancellationNumber:
          type: string
          description: | 
            Number generated when the card `statusCode` is set to `STOLEN` or `LOST`.
        totalRows:
          type: integer
          description: |
            The total numbers of objects matching your search, for pagination purposes. Only valued in the first object of the returned page, `null` otherwise.
        logoId:
          type: string
          maxLength: 30
          description: |
            The file name of the logo for the card. Learn more in the [Logo](/guide/cards/creation.html#logo-logoid) article.
          example: "MyLogoFile.png"
        logoBackId:
          type: string
          description: |
            The file name of the logo for the back of the card. Learn more in the [Back Logo](/guide/cards/creation.html#back-logo-logobackid) article.
          maxLength: 30
          example: "MyBackLogoFile.png"
        packageId:
          type: string
          maxLength: 8
          description: Packaging reference for card shipping. Max. 8 characters.
          example: "Pkg123"
        customizedInfo:
          type: string
          description: Customized text to be displayed on the card.
        letterCustomizedInfo:
          type: string
          description: Customized text for the letter that is joined to the card.
        freeCustomizedInfo:
          type: string
          description:  More customized text to be displayed on the card.
        deliveryMethod:
          type: [integer, "null"]
          description: | 
            The method the manufacturer uses to send the cards (e.g., delivery with or without tracking). 
            Learn more in the [Card Delivery Method](/guide/cards/creation.html#card-delivery-method-deliverymethod) article.
        pinMailer:
          type: [integer, "null"]
          description: Whether the card manufacturer to send the card PIN code by letter.
          enum: [0,1]
        batchDeliveryId:
          type: [integer, "null"]
          description: Batch delivery identifier.
        sendToParent: 
          type: integer
          description: Whether the card should be sent to the cardholder's Parent User. 
          enum: [0,1]
        isTemporary:
          type: boolean
          default: false
          description: Whether the virtual card is a [temporary](/guide/cards/creation.html#creating-temporary-cards) one.
    UserObject:
      type: object
      properties:
        users:
          type: array
          items:
            type: object
            properties:
              userId:
                type: integer
                description: The unique identifier of the User.
                example: 12345
              userStatus:
                type: string
                description: The status of the User.
                enum:
                  - CANCELED
                  - PENDING
                  - VALIDATED
              userTypeId:
                type: integer
                description: The type of the user.
                enum: [1, 2, 3, 4]
              userTag:
                type: string
                maxLength: 250
                description: |
                  Custom attribute to use as you see fit. Learn more in the [Object tags](/guide/api-basics/objects-tags.html#objects-tags) article.
                  
                  Format: hc characters and `/` `!` `-` `_` `.` `*` `'` `(` `)`
              parentUserId:
                type: integer
                description: The unique identifier of the parent user (if any).
              parentType:
                type: string
                description: |
                  The type of relationship between the parent and the current users.

                  You may read more about [parent-children relationships](/guide/users/parent-children.html).
                enum:
                  - ''
                  - employee
                  - leader
                  - shareholder
              controllingPersonType:
                type: integer
                description: |
                  Type of relationship:
                  * `0` – None (default)
                  * `1` – Shareholder
                  * `2` – Other_relationship
                  * `3` – Director

                  You may read more about [parent-children relationships](/guide/users/parent-children.html).
                enum: [0, 1, 2, 3]
              employeeType:
                type: integer
                description: | 
                  The role of the user in [parent-children relationships](/guide/users/parent-children.html):
                  * `0` – None (default)
                  * `1` – Leader
                  * `2` – Employee
                enum: [0, 1, 2]
                default: 0
              specifiedUSPerson:
                type: integer
                description: |
                  When set to `1`, the user must have a US tax residence declared.
            
                  Should be set to `0` otherwise.
            
                  You may read more about who is considered a US Person in the [dedicated article](/guide/users/tax-residence.html).
                enum: [0, 1]
              title:
                type: string
                description: |
                  The title of the user, which can be one of the following:
                  * `M` – Stands for mister (Mr.)
                  * `MME` – Stands for missus (Mrs.)
                  * `MLLE` – Stands for miss
                  * `MX` – Gender-neutral title
                enum:
                  - ''
                  - 'M'
                  - 'MLLE'
                  - 'MME'
                  - 'MX'
              firstname:
                type: string
                description: The first name of the User.
                example: Alex
              lastname:
                type: string
                description: The last name of the User.
                example: Oak
              middleNames:
                type: string
                description: The middle names of the User, if any.
              birthday:
                type: string
                format: date
                description: |
                  The birth date of the User.
                example: "1990-10-29"
              email:
                type: string
                maxLength: 200
                description: |
                  The email of the User. Must be valid and unique.

                  Please note only active users are checked for email uniqueness. `CANCELED` user emails can be reused to facilitate account re-creation.
                example: "aoak@example.com"
              address1:
                type: string
                minLength: 3
                maxLength: 150
                oneOf:
                  - title: France (FR)
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                    description: |
                      The User postal address (main) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                    example: "14 Rue de la Paix"
                  - title: Other countries
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                    description: |
                      The User postal address (main) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Full ISO 8859-15 standard character set.
                    example: "123 Main Street"
              address2:
                type: string
                minLength: 3
                maxLength: 150
                oneOf:
                  - title: France (FR)
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                    description: |
                      The User postal address (complement) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                  - title: Other countries
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                    description: |
                      The User postal address (complement) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Full ISO 8859-15 standard character set.
              address3:
                type: string
                minLength: 3
                maxLength: 150
                oneOf:
                  - title: France (FR)
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                    description: |
                      The User postal address (complement2) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                  - title: Other countries
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                    description: |
                      The User postal address (complement2) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Full ISO 8859-15 standard character set.
              postcode:
                oneOf:
                  - title: European 5-Digit Format
                    type: string
                    # pattern: '^\d{5}$'
                    minLength: 5
                    maxLength: 5
                    description: The postal code of the address. Applicable for BE, DE, ES, FR, IT. Must always correspond with the provided city.
                    example: "75001"
                  - title: International Format
                    type: string
                    maxLength: 20
                    format: ISO 8859-15 subset
                    # pattern: "^[a-zA-Z0-9'\\-,. áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ€]+$"
                    description: The postal code of the address. Applicable for all other countries. Must always correspond with the provided city.
                    example: "SW1A 1AA"
              city:
                type: string
                description: The User address city.
              state:
                type: string
                maxLength: 100
                # pattern: "^[a-zA-ZÀ-ÖØ-öø-ÿœÆŒŠšŽžŸ\\s'-]+$"
                description: |
                  The state of the user address.
                  
                  **Validation Rules:**
                  - **Characters:** Supports the ISO 8859-15 set, including standard letters, accented characters, spaces, hyphens, and apostrophes.
                  - **Anti-Spam:** A character cannot be repeated more than 3 times consecutively (e.g., "AAAA" is invalid).
              country:
                type: string
                format: ISO 3166-1 alpha-2
                description: The User address country.
                example: "FR"
              countryName:
                type: string
                description: The name of the country.
                example: "France"
              distributionCountry:
                type: [string, "null"]
                description: | 
                  The country in which the end user is using your services.
                format: ISO 3166-1 alpha-2
                example: "FR"
                enum:
                  - BE
                  - DE
                  - ES
                  - FR
                  - IT
                  - NL
              secondaryAddress1:
                type: string
                minLength: 3
                maxLength: 150
                oneOf:
                  - title: France (FR)
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                    description: |
                      The User secondary postal address (main) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                    example: "14 Rue de la Paix"
                  - title: Other countries
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                    description: |
                      The User secondary postal address (main) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Full ISO 8859-15 standard character set.
                    example: "123 Main Street"
              secondaryAddress2:
                type: string
                minLength: 3
                maxLength: 150
                oneOf:
                  - title: France (FR)
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                    description: |
                      The User secondary postal address (complement) for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                  - title: Other countries
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                    description: |
                      The User secondary postal address (complement) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Full ISO 8859-15 standard character set.
              secondaryAddress3:
                type: string
                minLength: 3
                maxLength: 150
                oneOf:
                  - title: France (FR)
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s.,\\[\\]{}€@#\\-:( )/=' +?!\"%*;°_]+$"
                    description: |
                      The User secondary postal address (complement2 for users whose `distributionCountry` is `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Supports uppercase/lowercase letters with accents, digits, spaces, and the following symbols: `., [] {} € @ # - : ( ) / = ' + ? ! " % & * ; ° _`.
                  - title: Other countries
                    type: string
                    minLength: 3
                    maxLength: 150
                    # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                    description: |
                      The User secondary postal address (complement2) for users whose `distributionCountry` is other than `FR`. Cannot contain carriage return and cannot have the same character more than 3 times in a row.
                      
                      **Characters:** Full ISO 8859-15 standard character set.
              secondaryPostcode:
                oneOf:
                  - title: European 5-Digit Format
                    type: string
                    # pattern: '^\d{5}$'
                    minLength: 5
                    maxLength: 5
                    description: The postal code of the address. Applicable for BE, DE, ES, FR, IT. Must always correspond with the provided city.
                    example: "75001"
                  - title: International Format
                    type: string
                    maxLength: 20
                    format: ISO 8859-15 subset
                    # pattern: "^[a-zA-Z0-9'\\-,. áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ€]+$"
                    description: The postal code of the address. Applicable for all other countries. Must always correspond with the provided city.
                    example: "SW1A 1AA"
              secondaryCity:
                type: string
              secondaryState:
                type: string
                maxLength: 100
                # pattern: "^[a-zA-ZÀ-ÖØ-öø-ÿœÆŒŠšŽžŸ\\s'-]+$"
                description: |
                  The state of the user secondary address.
                  
                  **Validation Rules:**
                  - **Characters:** Supports the ISO 8859-15 set, including standard letters, accented characters, spaces, hyphens, and apostrophes.
                  - **Anti-Spam:** A character cannot be repeated more than 3 times consecutively (e.g., "AAAA" is invalid).
              secondaryCountry:
                type: string
                description: Format ISO 3166-1 alpha-2
                format: ISO 3166-1 alpha-2
                example: "FR"
              clientId:
                type: string
                description: The clientId of the Treezor environment.
                example: "12345"
              phone:
                type: string
                description: |
                  The phone number of the user in international **E.164 format**. 
                  It must start with a plus sign (`+`) followed by the country code and the national number.
                # pattern: '^\+[1-9]\d{1,14}$'
                example: "+33123456789"
              mobile:
                type: string
                description: |
                  The mobile phone number of the user in international **E.164 format**. 
                  It must start with a plus sign (`+`) followed by the country code and the national number.
                # pattern: '^\+[1-9]\d{1,14}$'
                example: "+33123456789"
              nationality:
                type: string
                description: Format ISO 3166-1 alpha-2
                format: ISO 3166-1 alpha-2
                example: "FR"
              nationalityOther:
                type: string
                description: Format ISO 3166-1 alpha-2
                format: ISO 3166-1 alpha-2
                example: "FR"
              placeOfBirth:
                type: string
                maxLength: 100
                # pattern: "^[a-zA-Z0-9À-ÖØ-öø-ÿœÆŒ\\s'-]+$"
                description: |
                  The city in which the Physical User was born.
                  
                  **Validation Rules:**
                  - **Geographic Accuracy:** Must be an existing city located within the provided `birthCountry`.
                  - **Characters:** Alphanumeric characters, spaces, hyphens, and apostrophes are allowed.
                  - **Forbidden:** Special symbols (e.g., `/`, `@`, `#`, `!`) and commas are prohibited.
                  - **ISO 8859-15:** Supports standard European accented characters and ligatures.
                example: "Aix-en-Provence"
              birthCountry:
                type: string
                description: The country in which the User was born.
                format: ISO 3166-1 alpha-2
                example: "FR"
              occupation:
                type: string
                description: Free field to specify the occupation of the user. 
              incomeRange:
                type: string
                deprecated: true
              legalName:
                oneOf:
                  - title: French SIREN Format
                    type: string
                    minLength: 1
                    maxLength: 100
                    # pattern: "^[a-zA-Z0-9ÀÂÄÇÉÈÊËÎÏÔÖÙÛÜŸàâäçéèêëîïôöùûüÿæœÆŒ .,\\[\\]{}€@#\\-:( )/=' +?!\"%&*;<>=°_]+$"
                    description: |
                      The official name of the legal entity (or self-employed user) as registered with national authorities. Compliant with the French SIREN naming standards; must follow the SIREN referential (supports specific accents, ligatures like 'œ', and symbols).

                      If you're issuing cards, please not this value automatically populates the `embossedLegalName` field which has a max. length of 20 characters.
                  - title: European Standard Format
                    type: string
                    format: ISO 8859-15
                    minLength: 1
                    maxLength: 100
                    # pattern: "^[\\u0020-\\u007E\\u00A0-\\u00FF\\u0152\\u0153\\u0160\\u0161\\u0178\\u017D\\u017E\\u20AC]+$"
                    description: | 
                      The official name of the legal entity (or self-employed user) as registered with national authorities. Standard ISO 8859-15 characters for ES, IT, DE, BE, NL.

                      If you're issuing cards, please not this value automatically populates the `embossedLegalName` field which has a max. length of 20 characters.
              legalNameEmbossed:
                type: string
                description: |
                  Populated from the `legalName` value.
                maxLength: 20
              legalRegistrationNumber:
                oneOf:
                  - title: France (SIREN/SIRET)
                    type: string
                    # pattern: '^\d{9,14}$'
                    description: |
                      The official registration number of the legal entity. 
                      Mandatory for FR. Numeric characters only (9 or 14 digits).
                      If provided, the `country` field must be present as well.
                    example: "12345678901234"
                  - title: Spain (NIF)
                    type: string
                    # pattern: '^[A-Z]\d{7}[A-Z0-9]$'
                    description: |
                      The official registration number of the legal entity. 
                      Mandatory for ES. Structure: 1 letter + 7 digits + 1 control character (letter or digit).
                      If provided, the `country` field must be present as well.
                    example: "A1234567B"
                  - title: Italy (Numero REA)
                    type: string
                    # pattern: '^[A-Z]{2}\d+$'
                    description: |
                      The official registration number of the legal entity.
                      Mandatory for IT. Structure: 2-letter Provincial Code + digits.
                      If provided, the `country` field must be present as well.
                    example: "RM123456"
                  - title: Germany & Global (Alphanumeric)
                    type: string
                    # pattern: '^[a-zA-Z0-9]+$'
                    description: |
                      The official registration number of the legal entity. 
                      Optional for DE. Alphanumeric for all other countries.
                      If provided, the `country` field must be present as well.
                    example: "HRB12345"
              legalTvaNumber:
                type: string
                minLength: 3
                maxLength: 20
                description: |
                  The VAT number of the legal entity.
                  
                  This field is referred to as **Codice fiscale** in Italy and **Umsatzsteuer-ID** in Germany.
                  
                  **KYB Requirements:**
                  - **Mandatory:** For Italy (IT) and Spain (ES).
                  - **Optional:** For France (FR) and Germany (DE).
                # pattern: '^[a-zA-Z0-9]{3,20}$'
                example: "IT12345678901"
              legalRegistrationDate:
                type: string
                format: date
                description: | 
                  The date on which the legal entity was officially registered with the relevant national authorities. Must be in the past.
                example: "2020-01-21"
              legalForm:
                type: string
                description: |
                  The legal form/category of the company. See the [Legal Forms](/guide/users/introduction.html#legal-forms-legalform) section for more information.
              legalShareCapital:
                type: integer
              entityType:
                type: integer
                deprecated: true
                enum: [1, 2, 3, 4, 5]
              legalSector:
                type: string
                description: |
                  The business sector of the legal entity. Either a 4-digit code if NACE or a 5-digit code followed by an uppercase letter if NAF, depending on the value of the `legalSectorType`.
              legalAnnualTurnOver:
                type: string
                description: The Business annual turnover (in k€).
                enum:
                  - ''
                  - '0-39'
                  - '40-99'
                  - '100-249'
                  - '250-999'
                  - '1000-2999'
                  - '3000-9999'
                  - '10000-99999'
                  - '100000-*'
              legalNetIncomeRange:
                type: string
                description: The Business net income range (in k€). Negative values are only accepted for legal entities.
                enum:
                  - ''
                  - '*--500'
                  - '-499--150'
                  - '-149--50'
                  - '-49--10'
                  - '-9--1'
                  - '0-4'
                  - '5-9'
                  - '10-49'
                  - '50-149'
                  - '150-499'
                  - '500-*'
              legalNumberOfEmployeeRange:
                type: string
                description: The number of employees of the legal entity.
                enum:
                  - ''
                  - '1-9'
                  - '10-99'
                  - '100-249'
                  - '250-*'
              effectiveBeneficiary:
                type: integer
                description: The effective beneficiary shares of the legal entity (e.g., for a beneficiary holding 70% of a company, value must be `70`). For shareholders only.
              kycLevel:
                type: integer
                description: |
                  * `0` – NONE
                  * `1` – LIGHT
                  * `2` – REGULAR
                  * `3` – STRONG
                  * `4` – REFUSED
                  * `5` – PREVALIDATED
                  * `6` – ENHANCED
                enum: [0, 1, 2, 3, 4, 5, 6]
              kycReview:
                type: integer
                description: |
                  * `0` – NONE
                  * `1` – PENDING
                  * `2` – VALIDATED
                  * `3` – REFUSED
                  * `4` – INVESTIGATING (deprecated)
                  * `5` – CLOSED (deprecated)
                  * `6` – REVIEW_OPEN
                  * `7` – REVIEW_PENDING
                enum: [0, 1, 2, 3, 6, 7]
              kycReviewComment:
                type: string
                description: |
                  A comment set by Treezor upon [KYC review](/guide/user-verification/introduction.html). It concatenates information for each KYC Review update, with the date, the `kycReview` and `kycLevel` values, and the comment from Treezor.
              isFreezed:
                type: integer
                deprecated: true
                description: deprecated
              isFrozen:
                type: integer
                description: |
                  Indicates that the user is under restriction and some operations are blocked. See [Restricted users](/guide/users/restricted-users.html#types-of-user-restrictions) for more information.
                enum: [0, 1]
              language:
                type: string
                description: |
                    The preferred language of the User, in the ISO 639 (alpha-2) format.
                format: ISO 639-1
                example: "FR"
              optInMailing:
                type: integer
              sepaCreditorIdentifier:
                type: string
                description: |
                  The 13-character long [SEPA Creditor Identifier](/guide/overview/glossary.html#sepa-creditor-identifier-sci) of the User.
                readOnly: true
              taxNumber:
                type: string
                deprecated: true
              taxResidence:
                type: string
                deprecated: true
              position:
                type: string
              personalAssets:
                type: string
                deprecated: True
              activityOutsideEu:
                type: integer
                description: Whether the entity and its business units, subsidiaries, and joint ventures have a commercial activity outside of the European Union.
                enum: [0, 1]
              economicSanctions:
                type: integer
                description: Whether the entity, its subsidiaries, entities, employees, directors, beneficial owners, or joint ventures are subject to Economic Sanctions.
                enum: [0, 1]
              residentCountriesSanctions:
                type: integer
                description: Whether the entity, its subsidiaries, or joint ventures, located within or operating from any countries or territories are subject to Comprehensive Sanctions.
                enum: [0, 1]
              involvedSanctions:
                type: integer
                description: |
                  Whether the entity, its subsidiaries, or joint ventures, are engaged in transactions, investments, business, or other dealings that directly or indirectly involve or benefit:
                  * Any countries or territories subject to Comprehensive Sanctions, or
                  * Any person or entity which is the target of any Sanctions (“Sanctioned Targets”).
                enum: [0, 1]
              entitySanctionsQuestionnaire:
                  type: integer
                  description: |
                    Defines the scope to which the `activityOutsideEu` field applies:
                    * `0` – Not applicable
                    * `1` – Only the legal entity
                    * `2` – The legal entity and all its subsidiaries held at 100%
                    * `3` – The legal entity and all its subsidiaries held at 50% or more
                    * `4` – The legal entity and a list of subsidiaries

                    See the [Sanctions and embargo](/guide/users/legal-entity.html#sanctions-and-embargo) article for more information.
                  enum: [0, 1, 2, 3, 4]
              sanctionsQuestionnaireDate:
                type: string
                # pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
                description: Date YYYY-MM-DD HH:mm:ss
              timezone:
                type: string
                example: "Paris/France"
              occupationType:
                type: string
                description: Deprecated. Use `occupationCategory` instead.
                deprecated: true
                enum:
                  - '' 
                  - 'private_sector_employees'
                  - 'public_sector_employees'
                  - 'retired_people_and_students'
                  - 'self_employed'
                  - 'without_any_professional_activity'
              sourceOfFunds:
                type: string
                description: The source of funds for opening an account for a company or self-employed person
                enum:
                  - ''
                  - 'donation'
                  - 'inheritance'
                  - 'loan' 
                  - 'lottery'
                  - 'pension'
                  - 'proceeds_from_investment'
                  - 'proceeds_from_sale'
                  - 'salary'
                  - 'saving'
              legalSectorType:
                type: string
                description: | 
                  Qualify the type of data in the `legalSector` field 
                    * If it is set to NACE the legalSector needs to be in a NACE format (4 digits). 
                    * If it is set to NAF (or not set at all) the legalSector needs to be in a NAF format (4 digits followed by a capital letter).
                enum:
                  - ''
                  - 'NACE'
                  - 'NAF'
              isOnStockExchange:
                type: integer
                description: |
                  The user is a corporation and is quoted on an organized stock exchange.
                    * `0` – No
                    * `1` – Yes
                enum: [0, 1]
              codeStatus:
                type: string
                description: |
                  See [User Status](/guide/users/introduction.html#user-status-codestatus) for more information.
                enum:
                  - "110005"
                  - "110006"
                  - "110009"
                  - "110012"
              informationStatus:
                type: string
                description: | 
                  Additional information regarding the `codeStatus`, if any.
              createdDate:
                type: string
                # pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
                description: | 
                  The date and time at which the User was created.

                  Format: `YYYY-MM-DD HH:mm:ss`
                example: "2025-01-10 15:49:53"
              modifiedDate:
                type: string
                # pattern: '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$'
                description: | 
                  The date and time at which the User was last updated.

                  Format: `YYYY-MM-DD HH:mm:ss`
                example: "2025-01-10 15:49:53"
              walletCount:
                type: integer
                description: The number of Wallets owned by the User.
                example: 2
              payinCount:
                type: integer
                description: The number of payins made to this user.
                example: 14
              totalRows:
                type: integer
                description: |
                  The total numbers of objects matching your search, for pagination purposes. Only valued in the first object of the returned page, `null` otherwise.
              occupationCategory:
                type: [integer, "null"]
                description: |
                  Type of occupation of the user. See [Occupation Category](/guide/users/physical.html#occupation-category-occupationcategory) for the list of values.
                enum: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
              personalAssetsRange:
                  type: [integer, "null"]
                  description: |
                    The personal assets range of the user. See [Personal Assets Range](/guide/users/physical.html#personal-assets-range-personalassetsrange) for the list of values.
                  enum: [0,1,2,3,4,5,6,7]
              monthlyIncomeRange:
                type: [integer, "null"]
                description: |
                  Net monthly income of the user. See [Monthly Income Range](/guide/users/physical.html#monthly-income-range-monthlyincomerange) for the list of values.
                enum: [1,2,3,4,5,6,7]
              birthCityCode:
                type: [string, "null"]
                description: Always set to null.
                example: null
    Errors:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                example: invalid_request
              code:
                type: string
                example: resource_not_found_error
              message:
                type: string
                example: The userId field is required
              docUrl:
                type: string
                example: https://docs.treezor.com/guide/api-basics/response-codes.html 
    AppleGenerateCryptogramRequest:
      type: object
      properties:
        sca:
          description: Strong Customer Authentication Proof (mandatory if not delegated mode)
          type: string
        userId:
          type: string
          description: The unique identifier of the User (Treezor).
        additionalData:
          type: object
          description: Object required only for requester Apple Pay. otherwise, it is ignored.
          properties:
            certificateChain:
              type: array
              description: Certificate chain from Apple Pay.
              items:
                type: string
            nonce:
              type: string
              description: Nonce from Apple Pay.
            nonceSignature:
              type: string
              description: Nonce signature from Apple Pay.
    GoogleGenerateCryptogramRequest:
      type: object
      properties:
        sca:
          type: string
          description: Strong Customer Authentication Proof (mandatory if not delegated mode).
        userId:
          type: string
          description: User ID from Treezor.
        serverSessionId:
          type: string
          description: |
            The Google server session ID, required when using the Google OPC flow.
            
            This ID is provided by the Google Pay SDK and is used to generate the encrypted OPC payload.
          example: "GoogleSession123"
    GenerateCryptogramResponse:
      type: object
      description: Contains a token that will be used by requesters with inapp digitization
      properties:
        credentials:
          type: string
          description: Credentials to use for digitization.
    PostBadRequest:
      type: object
      description: |
        Indicates that the server cannot understand or process the request due to a client side error.
      properties:
        errors:
          $ref: '#/components/schemas/Errors'
    PublicKeyBase64:
      type: string
      description: |
        Public key base64-encoded.
        | Chosen Algorithm in request | Minimum key size         |
        | --------------------------- | ------------------------ |
        | OPENPGP_ARMOR               | RSA 2048 bits            |
        | LIBSODIUM_HEX               | Elliptic Curve 256 bits  |
    RetrieveCryptogramResponse:
      type: object
      description: Contains digitization data.
      properties:
        issuerInitiatedDigitizationData:
          type: string
          description: |
            base64-encoded json digitization data.
            Once issuerInitiatedDigitizationData content base64 decoded, you will have:
            - Apple: {"activationData" : "BASE64_ENCODED_CONTENT", encryptedPassData : "BASE64_ENCODED_CONTENT", ephemeralPublicKey : "BASE64_ENCODED_CONTENT"}
            - Other: {"cardInfo":{"publicKeyFingerprint":"value","encryptedKey":"value","oaepHashingAlgorithm":"value","iv":"value","encryptedData":"value"},"tokenizationAuthenticationValue":"value"}
        googleOPC:
          type: string
          description: |
            The Google Opaque Payment Card (OPC) payload, returned when `googleServerSessionId` was provided in the initial request.
            
            This is a base64-encoded PGP-encrypted payload containing the card data for Google Pay provisioning.

