{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/wordline/main/json-schema/wordline-add-corporate-employee-cards-and-accounts-request-schema.json",
  "title": "AddCorporateEmployeeCardsAndAccountsRequest",
  "x-generated": "2026-10-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/wordline-corporate-contract-api-openapi.yml#/components/schemas/AddCorporateEmployeeCardsAndAccountsRequest",
  "type": "object",
  "required": [
    "addCorporateEmployeeCardsAndAccounts"
  ],
  "properties": {
    "customers": {
      "description": "The issuer has to provide customers (here usually 1 employee only) which don't already exist in our system in a dedicated list (customers).\nFor each new customer, the issuer :\n- can provide an unique external reference: whether this external reference is already assigned to an existing customer for this issuer in our system then the cards and accounts creation request is denied\n- must provide mandatory fields and a correlation id that can be used in the addCorporateEmployeeCardsAndAccounts part to assign the customer, not yet created in our system, as card account owner, cardholder, etc",
      "type": "array",
      "items": {
        "$ref": "#/$defs/CreateCorporateContractRequestCustomer"
      }
    },
    "addCorporateEmployeeCardsAndAccounts": {
      "description": "It is possible to add one or several employees with cards and accounts (configured in a product extension).\nUsually this API is used to add one employee only with its new card and card account.",
      "allOf": [
        {
          "$ref": "#/$defs/CreateCorporateContractRequestAddCorporateEmployeeCardsAndAccounts"
        }
      ]
    }
  },
  "$defs": {
    "AccountIdentifier": {
      "type": "object",
      "properties": {
        "accountReference": {
          "type": "string",
          "description": "Account reference is to identify the Account calculated by the system (algorithm is configurable per issuer). Either the account number or the issuerAccountExternalReference is provided, or, if both are provided then only the account number is used."
        },
        "issuerAccountExternalReference": {
          "type": "string",
          "description": "Issuer account external reference is to identify the Account. Either the account number or the issuerAccountExternalReference is provided, or, if both are provided then only the account number is used. Algorithm configurable by issuer, can be generated by the system if there is an externalReferenceGeneratorAlgorithm."
        }
      },
      "title": "AccountIdentifier"
    },
    "AccountModel": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Type of an account model\nPossible values:\n•\teventFeeModel\n•\ttransactionFeeModel\n•\tmarkupFeeModel\n•\trestrictionModel\n•\tdebitInterestModel\n•\tinterestModel\n•\tdirectDebitAmountModel\n•\taccountAmountDueModel \n•\tstatementModel"
        },
        "reference": {
          "type": "string",
          "description": "Reference to the particular model that has been selected in selectedModels"
        },
        "originalModelReference": {
          "type": "string",
          "description": "DEPRECATED"
        }
      },
      "title": "AccountModel"
    },
    "AdvertisementFlags": {
      "type": "object",
      "properties": {
        "general": {
          "type": "boolean",
          "description": "General advertisement flag. By default, value is false.\nIf this flag is false, other flags are ignored (email, letter, phone, statement, sms flags)."
        },
        "email": {
          "type": "boolean",
          "description": "Indicates if the email advertisement is enabled (true) or not (false). By default, value is false."
        },
        "letter": {
          "type": "boolean",
          "description": "Indicates if the letter advertisement is enabled (true) or not (false). By default, value is false."
        },
        "phone": {
          "type": "boolean",
          "description": "Indicates if the phone advertisement is enabled (true) or not (false). By default, value is false."
        },
        "statement": {
          "type": "boolean",
          "description": "Indicates if the statement advertisement is enabled (true) or not (false). By default, value is false."
        },
        "sms": {
          "type": "boolean",
          "description": "Indicates if the sms advertisement is enabled (true) or not (false). By default, value is false."
        }
      },
      "description": "Specify possible channels used to provide advertisements",
      "title": "AdvertisementFlags"
    },
    "Amount": {
      "type": "object",
      "required": [
        "value",
        "exponent",
        "isoCode"
      ],
      "properties": {
        "value": {
          "type": "integer",
          "format": "int64",
          "description": "Integer amount value. Ex. if it is two hundred euros and 17 cents, then amount value is 20017 (exponent = 2 digits for currency=EUR)"
        },
        "exponent": {
          "type": "integer",
          "format": "int32",
          "description": "Exponent of Amount. Number of decimal digits."
        },
        "isoCode": {
          "type": "string",
          "description": "Currency code of amount\nThe currency in ISO4217 alphabetic format.\nExample: EUR for Euro"
        }
      },
      "title": "Amount"
    },
    "AuthorizationDataValidation": {
      "type": "object",
      "description": "The issuer can update cardholder data used by the Front Office for verification (AVS/ANI).",
      "properties": {
        "firstName": {
          "type": "string",
          "description": "First name of the cardholder"
        },
        "lastName": {
          "type": "string",
          "description": "Last name of the cardholder"
        },
        "secondFirstName": {
          "type": "string",
          "description": "Second first name of the cardholder"
        },
        "streetName": {
          "type": "string",
          "description": "Street name of the cardholder address"
        },
        "zipCode": {
          "type": "string",
          "description": "Zip code of the cardholder address"
        },
        "birthDate": {
          "type": "string",
          "format": "date-time",
          "description": "Birth date of the cardholder"
        }
      }
    },
    "CardContractModel": {
      "type": "object",
      "properties": {
        "reference": {
          "type": "string",
          "description": "Reference of a card contract model"
        },
        "type": {
          "type": "string",
          "description": "Type of a card contract model\nPossible values: CARD_CREATION_MODEL, CARD_AUTONUMBERING_MODEL, TECHNOLOGY_AND_APPLICATION_MODEL, EVENT_FEE_MODEL, CARD_RENEWAL_MODEL, CARD_REPLACEMENT_MODEL, PIN_PRODUCTION_MODEL, DISTRIBUTION_MODEL"
        }
      },
      "title": "CardContractModel"
    },
    "CreateAddressRequestMailAddress": {
      "type": "object",
      "required": [
        "country"
      ],
      "properties": {
        "typeCode": {
          "type": "string",
          "description": "DEPRECATED"
        },
        "courtesyTitle": {
          "type": "string",
          "description": "Courtesy title of the address. Free text"
        },
        "line1": {
          "type": "string",
          "description": "Address line 1 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line2": {
          "type": "string",
          "description": "Address line 2 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line3": {
          "type": "string",
          "description": "Address line 3 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line4": {
          "type": "string",
          "description": "Address line 4 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line5": {
          "type": "string",
          "description": "Address line 5 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "buildingNumber": {
          "type": "string",
          "description": "Building number of the address (optional)"
        },
        "boxNumber": {
          "type": "string",
          "description": "Box number of the address (optional)"
        },
        "streetName": {
          "type": "string",
          "description": "Street name of the address (optional)"
        },
        "postCode": {
          "type": "string",
          "description": "zip code of the address (optional)"
        },
        "townName": {
          "type": "string",
          "description": "City corresponding to the address"
        },
        "countrySubdivision": {
          "type": "string",
          "description": "Subdivision of the country (optional)"
        },
        "country": {
          "type": "string",
          "description": "Code of the country (mandatory). Free text. The value can be subject to a validation process if a specific rule has been configured at issuer level. The value can be optional if a specific rule has been configured."
        }
      },
      "title": "CreateAddressRequest.MailAddress"
    },
    "CreateAddressRequestPhoneNumber": {
      "type": "object",
      "required": [
        "localPhoneNumber"
      ],
      "properties": {
        "countryCode": {
          "type": "string",
          "description": "Country dialing code (optional). Free text. It is recommended to provide a region dialing code (e.g. +33, +49)."
        },
        "localPhoneNumber": {
          "type": "string",
          "description": "Free text (mandatory). It’s recommended to provide an international phone number in accordance with the value provided in the country code Ex : - country code = ‘+’33’ and localPhoneNumber = ‘0622334455’ - country code = empty and localPhoneNumber = ‘+33622334455’             The value can be subject to a validation process if a specific rule has been configured at issuer level."
        }
      },
      "title": "CreateAddressRequest.PhoneNumber"
    },
    "CreateCorporateContractRequestAccount": {
      "type": "object",
      "properties": {
        "issuerAccountExternalReference": {
          "type": "string",
          "description": "The issuer can provide the external reference for the new account (maximum length of 255 characters).This external reference must be unique per issuer.\nIf not provided, the external reference is calculated by our system if a generation algorithm is configured at account hierarchy level (ExternalReferenceGeneratorAlgorithm), else the issuer account external reference will be empty."
        },
        "accountTemplateReference": {
          "type": "string",
          "description": "The issuer must provide the account template reference to identify the account to be created (optional if only one account has to be created in the product extension)."
        },
        "accountOwnerRequestCorrelationId": {
          "type": "string",
          "description": "Not to be provided if the account owner is the same as the contract owner.\nOtherwise the issuer can provide the correlation id of the new customer or company which represent the account owner (defined in the data block CreateCorporateContractRequest.Customer or in CreateCorporateContractRequest.Company)."
        },
        "accountOwnerIdentifier": {
          "description": "Not to be provided if the account owner is the same as the contract owner.\nOtherwise if the account owner already exists in our system then the issuer has to provide the customer reference or the issuer external customer reference of the existing customer or company. If the account owner does not exist in our system then accountOwnerRequestCorrelationId has to be filled.",
          "allOf": [
            {
              "$ref": "#/$defs/CustomerIdentifier"
            }
          ]
        },
        "accountGuarantorRequestCorrelationId": {
          "type": "string",
          "description": "The issuer can provide the correlation id of the new customer or company which represent the account guarantor (defined in the data block CreateCorporateContractRequest.Customer or in CreateCorporateContractRequest.Company)."
        },
        "accountGuarantorIdentifier": {
          "description": "If the account guarantor already exists in our system then the issuer can provide the customer reference or the issuer external customer reference of the existing customer or company.",
          "allOf": [
            {
              "$ref": "#/$defs/CustomerIdentifier"
            }
          ]
        },
        "selectedModels": {
          "type": "array",
          "description": "The issuer can provide specific account model reference, otherwise the default one from the account template is used.\n\nList of possible models:\n•\trestrictionModel\n•\tstatementModel\n•\tdebitInterestModel\n•\tcreditInterestModel\n•\ttransactionFeeModel\n•\tmarkupFeeModel                ",
          "items": {
            "$ref": "#/$defs/AccountModel"
          }
        },
        "closureCalendarReference": {
          "type": "string",
          "description": "The issuer can provide a specific closure calendar reference, otherwise the default one from the account template is used."
        },
        "name": {
          "type": "string",
          "description": "The issuer can provide the name of the account.\nRefer to Account.name"
        },
        "iban": {
          "type": "string",
          "description": "Refer to Account.iban\nHas to be provided if the IBAN is configured as mandatory in product configuration.\nIf the IBAN is mandatory and the IBAN is not provided, an error occurs\nIf the IBAN is mandatory and the IBAN is provided, the IBAN checksum is performed. If the check is ko (=invalid IBAN), an errors occurs.\nIf  the IBAN is not mandatory and the IBAN is provided during the account creation, the IBAN is stored as received without any check."
        },
        "ibanOwnerName": {
          "type": "string",
          "description": "Refer to Account.ibanOwnerName\nIf Issuer expects to produce direct debits and outgoing credit transfers, it is recommended the Iban owner name to be always provided, except if the payment processing channel is SEPA and SEPA mandate UMR is provided (comes from another system)."
        },
        "secondIban": {
          "type": "string",
          "description": "Refer to Account.secondIban"
        },
        "bic": {
          "type": "string",
          "description": "Refer to Account.bic"
        },
        "sepaIndicator": {
          "type": "boolean",
          "description": "The issuer can indicate if the payment processing channel is SEPA or not (also valid for outgoing credit transfer processing channel).\nIf payment processing channel is SEPA (SEPA indicator is true) and payment mode is AUTOPAYMENT (Direct debit without confirmation), then SEPA mandate data must be provided.\nSEPA indicator default value is false."
        },
        "sepaMandate": {
          "$ref": "#/$defs/CreateCorporateContractRequestSepaMandate"
        },
        "creditLimitAmount": {
          "description": "The issuer can provide a specific credit limit amount (within the minimum/maximum range defined in the restriction model for the credit limit) to replace the default permanent credit limit value.",
          "allOf": [
            {
              "$ref": "#/$defs/Amount"
            }
          ]
        },
        "accountMembershipNumber1": {
          "type": "string",
          "description": "The issuer can provide the membership number 1 of the account."
        },
        "accountMembershipNumber2": {
          "type": "string",
          "description": "The issuer can provide the membership number 2 of the account."
        },
        "specificFields": {
          "type": "object",
          "description": "The issuer can provide Specific Fields for the new account. \nIt is a list of external data {\"label\":\"value\"} separated by a \",\" related to the account (pass-thru data) that can be provided by e.g. the issuer for information or for usage by other systems.\nExample : {\"label1\":\"value1\",\"label2\":\"value2\"}\nThose provided data have no impact on our system business processes.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "payingAccountType": {
          "type": "string",
          "description": "The paying account type can be provided by the issuer or if not provided it is retrieved from the account template.\nIn case it is mandatory in the issuer configuration then the provided value should be the same than the one provided for the account hierarchy.\n\nPossible values:\n- ROOT_PAYS\n- ITSELF_PAYS\n\nSee examples described for CreateCorporateContractRequest.AccountHierarchy.hierarchyPayingAccountType\n\nIn case no payingAccountType is provided on the account hierarchy, then the possible values are:\n- ROOT_PAYS\n- ITSELF_PAYS\n- ENTITY_PAYS"
        },
        "paymentMode": {
          "type": "string",
          "description": "The payment mode can be provided by the issuer or if not provided it is retrieved from the account template.\n\nPossible values:\n- CARDHOLDER_DETERMINED : customer repays its debt by itself (fund transfer to the issuer)\n- AUTOPAYMENT : customer repays its debt via Direct Debit (issued by issuer and paid automatically after X days)"
        },
        "noOtbCheck": {
          "type": "boolean",
          "description": "The issuer can indicate if the Open-to-buy (OTB) must be checked or not when an authorization (authorization system) or a transaction (clearing) is processed.\nThis can be used when there is no need to check the OTB of an account (e.g. for certain levels of a corporate organization)."
        },
        "resetCreditLimit": {
          "type": "boolean",
          "description": "The issuer can indicate if the Open-to-buy should be reset to its maximum Credit limit at Authorization system side as soon as a account cycle is closed. Of course the amount due (minimum payment amount) is considered as to be repaid by the customer by our solution.\nThe default behavior is retrieved from the contract (Corporate only)"
        },
        "liabilityType": {
          "type": "string",
          "description": "The issuer can provide the liability type of the new account (free text). This liability type can be different for each issuer and is stored in our solution for information purpose (e.g. can be used for reporting), not used by any business process."
        },
        "accountDebitOrderDueDateDelay": {
          "type": "integer",
          "description": "The issuer can provide the debit order due date delay for the new account (number of days). This delay is used to calculate the Direct Debit payment date for each cycle of repayment."
        },
        "requestCorrelationId": {
          "type": "string",
          "description": "Unique alias provided by the issuer for each new account (Conditional).\nDuring the corporate contract creation processing, this alias is used to assign the new account to address usage provided in the request (same value as the value provided in entityRequestCorrelationId defined in the data block CreateCorporateContractRequest.AddressUsage)"
        },
        "creditBureauContractFlag": {
          "type": "boolean",
          "description": "The issuer can specify if the Credit Bureau part of the contract has been signed by the credit card owner (pay later).Only for an employee account."
        },
        "corporateContractAddOnsSubscriptions": {
          "type": "array",
          "description": "The issuer can subscribe to additional services (e.g. new letter, travel insurance)",
          "items": {
            "$ref": "#/$defs/CreateCorporateContractRequestAddOnSubscription"
          }
        },
        "payingEntityAccountIdentifier": {
          "description": "The field is used to identify the corresponding entity when the payingAccountType = 'ENTITY_PAYS'. This field provides the possibility to find the exact entity account by its account identifier.",
          "allOf": [
            {
              "$ref": "#/$defs/AccountIdentifier"
            }
          ]
        },
        "payingEntityCompanyExternalReference": {
          "type": "string",
          "description": "The field is used to identify the corresponding entity when the payingAccountType = 'ENTITY_PAYS'. This field provides the possibility to find the exact entity account by the external reference of the corporate entity."
        },
        "payingAccountEntityLevel": {
          "type": "integer",
          "description": "The field is used to identify the corresponding entity when the payingAccountType = 'ENTITY_PAYS'. This field provides the possibility to find the exact entity account by its level number."
        },
        "workingCurrencyCode": {
          "type": "string",
          "description": "Working currency code of the account\nEx : EUR for Euro, USD for dollar, etc.\n\nThe working currency must be allowed by the product.\nIf not provided, the default currency of the product is set.\nAll accounts of the same account hierarchy must have the same currency. "
        }
      },
      "title": "CreateCorporateContractRequest.Account"
    },
    "CreateCorporateContractRequestAddCorporateEmployeeCardsAndAccounts": {
      "type": "object",
      "required": [
        "issuerProductExtensionExternalReference",
        "parentCompanyEntityExternalReference",
        "companyEntityExternalReference"
      ],
      "properties": {
        "issuerProductExtensionExternalReference": {
          "type": "string",
          "description": "The issuer provides the reference of the product extension to be used to add an employee, its card(s) and account(s). Usually an employee is added with its corporate card and related card account."
        },
        "parentCompanyEntityExternalReference": {
          "type": "string",
          "description": "The issuer must provide the external reference of the parent company entity to which the employee cards and accounts have to be attached."
        },
        "corporateEmployeeAccounts": {
          "type": "array",
          "description": "Data related to each employee account have to be provided.",
          "items": {
            "$ref": "#/$defs/CreateCorporateContractRequestCorporateEmployeeAccount"
          }
        },
        "companyEntityExternalReference": {
          "type": "string",
          "description": "The issuer must provide the value of the external reference of the company entity."
        },
        "corporateEmployeeCards": {
          "type": "array",
          "description": "Data related to each employee card have to be provided.",
          "items": {
            "$ref": "#/$defs/CreateCorporateContractRequestCorporateEmployeeCard"
          }
        }
      },
      "title": "CreateCorporateContractRequest.AddCorporateEmployeeCardsAndAccounts"
    },
    "CreateCorporateContractRequestAddOnParameter": {
      "type": "object",
      "properties": {
        "reference": {
          "type": "string",
          "description": "Refer to AddOnServiceParameter.reference"
        },
        "value": {
          "type": "string",
          "description": "Refer to AddOnServiceParameter.value"
        }
      },
      "title": "CreateCorporateContractRequest.AddOnParameter"
    },
    "CreateCorporateContractRequestAddOnSubscription": {
      "type": "object",
      "properties": {
        "addonReference": {
          "type": "string",
          "description": "Refer to AddOnSubscription.addonReference"
        },
        "subscriptionDate": {
          "type": "string",
          "description": "If provided, this date will be used as the starting date of the add-on subscription.",
          "format": "date-time"
        },
        "serviceTypeReference": {
          "type": "string",
          "description": "Refer to AddOnSubscription.serviceType"
        },
        "parameters": {
          "type": "array",
          "description": "The issuer can provide a list of parameters related to the addOn.",
          "items": {
            "$ref": "#/$defs/CreateCorporateContractRequestAddOnParameter"
          }
        }
      },
      "title": "CreateCorporateContractRequest.AddOnSubscription"
    },
    "CreateCorporateContractRequestAddress": {
      "type": "object",
      "required": [
        "addressLabel",
        "addressType"
      ],
      "properties": {
        "addressLabel": {
          "type": "string",
          "description": "Refer to Address.addressLabel"
        },
        "addressType": {
          "type": "string",
          "description": "Refer to Address.addressType"
        },
        "postalAddress": {
          "description": "Refer to Address.postalAddress",
          "allOf": [
            {
              "$ref": "#/$defs/CreateAddressRequestMailAddress"
            }
          ]
        },
        "emailAddress": {
          "description": "Refer to Address.eMail",
          "allOf": [
            {
              "$ref": "#/$defs/EmailAddress"
            }
          ]
        },
        "phone": {
          "description": "Refer to Address.phone",
          "allOf": [
            {
              "$ref": "#/$defs/CreateAddressRequestPhoneNumber"
            }
          ]
        },
        "addressUsages": {
          "type": "array",
          "items": {
            "description": "Refer to Address.addressUsages",
            "allOf": [
              {
                "$ref": "#/$defs/CreateCorporateContractRequestAddressUsage"
              }
            ]
          }
        },
        "mainAddress": {
          "type": "boolean",
          "description": "Deprecated"
        },
        "issuerAddressExternalReference": {
          "type": "string",
          "description": "Refer to AddressIdentifier.issuerAddressExternalReference"
        }
      },
      "title": "CreateCorporateContractRequest.Address"
    },
    "CreateCorporateContractRequestAddressUsage": {
      "type": "object",
      "required": [
        "addressUsageName",
        "serviceCode"
      ],
      "properties": {
        "addressUsageName": {
          "type": "string",
          "description": "The business process for which the address usage is defined such as CARD_DELIVERY, PIN_MAILER_DELIVERY, STATEMENT_DELIVERY."
        },
        "entityReference": {
          "type": "string",
          "description": "This field is filled by the User while adding the usage to a particular Address of the Customer. It can be eg a card contract reference, card account reference. It is an optional field."
        },
        "serviceCode": {
          "type": "string",
          "description": "The Service for which the address usage is defined : CARD_SERVICE, ACCOUNT_SERVICE, …"
        },
        "entityRequestCorrelationId": {
          "type": "string",
          "description": "The issuer can provide the correlation id of the new entity (card contract or account) which linked to the address usage (account defined in the data block CreateCorporateContractRequest.Account and card contract defined in the data block CreateCorporateContractRequest.CardContract -  field : requestCorrelationId)."
        },
        "entityType": {
          "type": "string",
          "description": "If a correlation id is filled for an entity reference, the entity type must be provided to indicate if the entity is related to a card contract or to an account.\nPossible values:\n- CARD_CONTRACT\n- ACCOUNT",
          "enum": [
            "ACCOUNT",
            "CARD_CONTRACT"
          ]
        }
      },
      "title": "CreateCorporateContractRequest.AddressUsage"
    },
    "CreateCorporateContractRequestCard": {
      "type": "object",
      "description": "Card related data to be provided for the creation of the card.",
      "properties": {
        "pan": {
          "type": "string",
          "description": "The issuer can provide the Primary Account Number (PAN) or card number if this is allowed by the product configuration only. The provided PAN must belong to the card product BIN range."
        },
        "panSequenceNumber": {
          "type": "string",
          "description": "PAN sequence number of the card. It will be possible to override PSN at the time of card creation if it is allowed in card creation model configuration"
        },
        "issuerCardExternalReference": {
          "type": "string",
          "description": "The issuer can provide the external reference for the new card (maximum length is 50 characters). This external reference must be unique per issuer.\nIf not provided, the external reference is calculated by the system if a reference generation algorithm is configured for the issuer else the issuer card external reference will be empty."
        },
        "embossingLine5": {
          "type": "string",
          "description": "The issuer must provide the embossing line 5 if required within card Technology and Application model. Otherwise the issuer can provide it and the embossing line 5 will be sent to the embosser."
        },
        "expiryDate": {
          "type": "string",
          "description": "The issuer can provide the expiry date of the card if allowed by the product configuration (note that the provided expiry date must belong to the range allowed by the product, e.g. [expiry date calculated by our system - 12 months, expiry date calculated by our system + 12 months].\nIf provided and not allowed then an error is raised.\nFormat is MMYY (month and year)."
        },
        "pinInheritanceCardReference": {
          "type": "string",
          "description": "Deprecated"
        },
        "pinInheritanceCardIdentifier": {
          "description": "If the PIN inheritance is authorized for the issuer, the issuer can provide the reference of a card (card reference in the Issuing Back Office system or external card reference provided by the issuer) to inherit the PIN from a another card (if the provided card reference does not exist in the system, no PIN inheritance could be used).",
          "allOf": [
            {
              "$ref": "#/$defs/PinInheritanceCardIdentifier"
            }
          ]
        },
        "specificFields": {
          "type": "object",
          "description": "The issuer can provide Specific Fields for the new card order. \nIt is a list of external data {\"label\":\"value\"} separated by a \",\" related to the card order (pass-thru data) that can be provided by e.g. the issuer for information or for usage by other systems.\nExample : {\"label1\":\"value1\",\"label2\":\"value2\"}\nThose provided data have no impact on our system business processes.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "cardOrder": {
          "$ref": "#/$defs/CreateCorporateContractRequestCardOrder"
        },
        "pinMailerOrder": {
          "$ref": "#/$defs/CreateCorporateContractRequestPinMailerOrder"
        },
        "subBinRangeReference": {
          "type": "string",
          "description": "Reference of the sub BIN range selected for PAN generation.This field applies only if the card product is configured with random PAN generation and sub BIN range references"
        }
      },
      "title": "CreateCorporateContractRequest.Card"
    },
    "CreateCorporateContractRequestCardContract": {
      "type": "object",
      "description": "Data related to each card contract and card have to be provided.\nIf there is no card at creation time then no data to be provided.",
      "properties": {
        "issuerCardContractExternalReference": {
          "type": "string",
          "description": "The issuer can provide the external reference for the new card contract.\nRefer to CardContractIdentifier.cardContractReference."
        },
        "artwork": {
          "type": "string",
          "description": "The issuer can provide the artwork to be used for the card contract creation, among those allowed, instead of the default one retrieved from the card template."
        },
        "cardHolderRequestCorrelationId": {
          "type": "string",
          "description": "Not to be provided if the cardholder is the same as the account owner of the default account of the card.\nOtherwise the issuer can provide the correlation id of the new customer which represent the cardholder (defined in the data block CreateCorporateContractRequest.Customer)."
        },
        "cardHolderIdentifier": {
          "description": "Not to be provided if the cardholder is the same as the account owner of the default account of the card.\nIf the cardholder already exists in our system then the issuer has to provide the customer reference or the issuer external customer reference of the existing customer.\nIf the cardholder does not exist in our system then cardholderRequestCorrelationId has to be filled.",
          "allOf": [
            {
              "$ref": "#/$defs/CustomerIdentifier"
            }
          ]
        },
        "issuerBranchCode": {
          "type": "string",
          "description": "The issuer can provide the issuer branch code of the card contract. If not provided, then the contract issuer branch code is used."
        },
        "forcedEmbossingName": {
          "type": "string",
          "description": "The first line of the name to be embossed on the physical card for the new card can be provided.\nThe field is mandatory depending on the issuer configuration.\nThe character \"*\" is not allowed in the line 1 of the embossing name."
        },
        "forcedEmbossingName2ndLine": {
          "type": "string",
          "description": "The second line of the name to be embossed on the physical card for the new card can be provided (if allowed by the product configuration).\nThe character \"*\" is not allowed in the line 2 of the embossing name."
        },
        "selectedModels": {
          "type": "array",
          "description": "The issuer can replace one or several card contract models by providing new card contract model references, otherwise the default ones from the card contract template are used.\n List of possible models that can be replaced:\n • EVENT_FEE_MODEL \n • DISTRIBUTION_MODEL \n • CARD_CREATION_MODEL \n • TECHNOLOGY_AND_APPLICATION_MODEL \n • PIN_PRODUCTION_MODEL ",
          "items": {
            "$ref": "#/$defs/CardContractModel"
          }
        },
        "specificFields": {
          "type": "object",
          "description": "The issuer can provide Specific Fields for the new card contract. \nIt is a list of external data {\"label\":\"value\"} separated by a \",\" related to the card contract (pass-thru data) that can be provided by e.g. the issuer for information or for usage by other systems.\nExample : {\"label1\":\"value1\",\"label2\":\"value2\"}\nThose provided data have no impact on our system business processes.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "photoReference": {
          "type": "string",
          "description": "The issuer can provide the photo reference for the new card.\nRefer to Card.photoReference"
        },
        "pictureReference": {
          "type": "string",
          "description": "The issuer can provide the picture reference for the new card.\nRefer to Card.pictureReference"
        },
        "logoReference": {
          "type": "string",
          "description": "A logo reference can be provided for corporate card only (is also used for next cards in case of renewal, replacement)."
        },
        "card": {
          "$ref": "#/$defs/CreateCorporateContractRequestCard"
        },
        "corporateContractAddOnsSubscriptions": {
          "type": "array",
          "description": "The issuer can subscribe to additional services (e.g. new letter, travel insurance)",
          "items": {
            "$ref": "#/$defs/CreateCorporateContractRequestAddOnSubscription"
          }
        },
        "requestCorrelationId": {
          "type": "string",
          "description": "Unique alias provided by the issuer for each new account (Conditional).\nDuring the contract creation processing, this alias is used to assign the new card contract to address usage provided in the request"
        },
        "clickToPayEnrollment": {
          "type": "string",
          "description": "Indicates if the card enrollment in Click to Pay service is requested or not. \nRelevant only if the Click to Pay feature is enabled. If the Click to Pay feature is disabled, the use of this attribute generates an error.\n\nPossible values are :\n- OPT_IN : enrollment of the card in Click to Pay service is requested.\n- OPT_OUT : enrollment of the card in Click to Pay service is not requested. \n\nIf the Click to Pay feature is enabled and the attribute is empty, the default value set on card product is applied.\n\nAs a result :\nIf OPT_IN, the enrollment of the new card in Click to Pay service is requested and will be effective through WL iTSP at card activation\nIf OPT_OUT, the enrollment of the new card in Click to Pay service is not requested."
        },
        "cardClass": {
          "type": "string",
          "description": "The issuer can provide the card class (free text, no business rule). \nExample: \nStandard, Extended "
        },
        "schemeReportDeclarationBehavior": {
          "type": "string",
          "description": "The issuer can indicate if the card events are reported to the scheme. Relevant only if the ABU-VAU program is enabled. If the ABU-VAU program is disabled, the use of this attribute generates an error. Possible values are: OPT_IN: the card events are reported to the scheme, OPT_OUT: the card events are not reported to the scheme. If the ABU-VAU program is enabled and the attribute is empty, the default value set on card product is applied."
        },
        "authorizationDataValidation": {
          "description": "Cardholder data defined at card contract level and used by the Front Office for verification (AVS/ANI)",
          "allOf": [
            {
              "$ref": "#/$defs/AuthorizationDataValidation"
            }
          ]
        }
      },
      "title": "CreateCorporateContractRequest.CardContract"
    },
    "CreateCorporateContractRequestCardOrder": {
      "type": "object",
      "description": "The issuer can provide data related to the card order if physical card is requested.\nIf not provided and required then the default sending mode is retrieved from product configuration.",
      "properties": {
        "specificFields": {
          "type": "object",
          "description": "The issuer can provide Specific Fields for the card order. \nIt is a list of external data {\"label\":\"value\"} separated by a \",\" related to the card order (pass-thru data) that can be provided to the embosser by e.g. the issuer for information or for usage by other systems.\nExample : {\"label1\":\"value1\",\"label2\":\"value2\"}\nThose provided data have no impact on our system business processes.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "cardProducer": {
          "type": "string",
          "description": "The issuer can provide the card producer if it is different than the default one (defined in the card profile)."
        },
        "sendingMode": {
          "type": "string",
          "description": "The issuer can provide the sending mode if a physical card (card order) is requested. Default sending mode is retrieved from configuration.\nExample: Normal, Urgent, Ultra Urgent"
        },
        "skipCardOrderGeneration": {
          "type": "boolean",
          "description": "If this field is true, the card order will not be generated (no plastic).\nBy default, a card order is requested (except if it is a virtual card configured in the Technology and Application model)."
        }
      },
      "title": "CreateCorporateContractRequest.CardOrder"
    },
    "CreateCorporateContractRequestCorporateContractFee": {
      "type": "object",
      "properties": {
        "accountSetupFeeModelReference": {
          "type": "string",
          "description": "Account setup fee model to be used for the account"
        },
        "membershipFeeModelReference": {
          "type": "string",
          "description": "Membership fee model to be used for the account"
        },
        "postingAccountForMembershipFee": {
          "type": "string",
          "description": "The issuer can indicate if the membership fees are paid by the employee (posted to its card account), intermediate entity (posted to the entity account) or by the company (can be posted to the root currently) if the value is different from the default one defined at corporate contract level. \nPossible values:\n- ROOT_ACCOUNT \n- CARD_ACCOUNT\n- ENTITY_ACCOUNT"
        },
        "postingAccountForAccountSetupFee": {
          "type": "string",
          "description": "The issuer can indicate if the account setup fees are paid by the employee (posted to its card account), intermediate entity (posted to the entity account) or by the company (can be posted to the root currently) if the value is different from the default one defined at corporate contract level.\nPossible values:\n- ROOT_ACCOUNT \n- CARD_ACCOUNT\n- ENTITY_ACCOUNT"
        },
        "entityIdentifierMembershipFeePosting": {
          "description": "It is mandatory to provide one of the attributes of this data type in case postingAccountForMembershipFee = ENTITY_ACCOUNT. The issuer will provide the exact entity on which Membership Fee will be posted",
          "allOf": [
            {
              "$ref": "#/$defs/FeePostingEntityIdentifier"
            }
          ]
        },
        "membershipFeePromotionalPeriod": {
          "type": "integer",
          "description": "Membership fee promotional period\nIndicates the period (number of years/months (depending on the frequency defined in the membership fee model)) during which the promotional membership fee amount (if any) is applied from the card creation.\nIf the issuer configuration allows it, it is possible to extend the default promotional period defined in the membership fee model. The value must be greater than the default value and greater than the already passed promotional period."
        },
        "entityIdentifierAccountSetupFeePosting": {
          "description": "It is mandatory to provide one of the attributes of this data type in case postingAccountForAccountSetupFee = ENTITY_ACCOUNT. The issuer will provide the exact entity on which Account Setup Fee will be posted",
          "allOf": [
            {
              "$ref": "#/$defs/FeePostingEntityIdentifier"
            }
          ]
        }
      },
      "title": "CreateCorporateContractRequest.CorporateContractFee"
    },
    "CreateCorporateContractRequestCorporateEmployeeAccount": {
      "type": "object",
      "properties": {
        "deliveryChannel": {
          "description": "The issuer can specify the channel for letter delivery used for this account.\nCurrently, only the values WEB, LETTER or LETTER_AND_WEB can be used.",
          "allOf": [
            {
              "$ref": "#/$defs/DeliveryChannel"
            }
          ]
        },
        "advertisementFlags": {
          "description": "The issuer can specify which advertisement flags are enabled (Email, Letter, Phone, etc.).",
          "allOf": [
            {
              "$ref": "#/$defs/AdvertisementFlags"
            }
          ]
        },
        "waiveFee": {
          "type": "boolean",
          "description": "The issuer can indicate if contract related fees, membership fee and account setup fee, are waived (true) or not (false, by default) for this employee account."
        },
        "postingAccountForMembershipFee": {
          "type": "string",
          "description": "DEPRECATED"
        },
        "postingAccountForAccountSetupFee": {
          "type": "string",
          "description": "DEPRECATED"
        },
        "contractFee": {
          "description": "The issuer can replace both default membership fee and account set up fee models for each account (usually card account). ",
          "allOf": [
            {
              "$ref": "#/$defs/CreateCorporateContractRequestCorporateContractFee"
            }
          ]
        },
        "account": {
          "description": "The issuer must provide data related to the employee account.",
          "allOf": [
            {
              "$ref": "#/$defs/CreateCorporateContractRequestAccount"
            }
          ]
        },
        "entityIdentifierMembershipFeePosting": {
          "description": "DEPRECATED",
          "allOf": [
            {
              "$ref": "#/$defs/FeePostingEntityIdentifier"
            }
          ]
        },
        "entityIdentifierAccountSetupFeePosting": {
          "description": "DEPRECATED",
          "allOf": [
            {
              "$ref": "#/$defs/FeePostingEntityIdentifier"
            }
          ]
        }
      },
      "title": "CreateCorporateContractRequest.CorporateEmployeeAccount"
    },
    "CreateCorporateContractRequestCorporateEmployeeCard": {
      "type": "object",
      "properties": {
        "cardContract": {
          "$ref": "#/$defs/CreateCorporateContractRequestCardContract"
        }
      },
      "title": "CreateCorporateContractRequest.CorporateEmployeeCard"
    },
    "CreateCorporateContractRequestCustomer": {
      "type": "object",
      "required": [
        "lastName",
        "firstName",
        "addresses"
      ],
      "properties": {
        "requestCorrelationId": {
          "type": "string",
          "description": "Unique alias provided by the issuer for each new customer.\nDuring the corporate contract creation processing, this alias is used to assign a new customer to certain customer roles (cardholder, contract owner, account owner, guarantor)."
        },
        "issuerCustomerExternalReference": {
          "type": "string",
          "description": "Refer to CustomerIdentifier.issuerCustomerExternalReference"
        },
        "active": {
          "type": "boolean",
          "description": "DEPRECATED"
        },
        "courtesyTitle": {
          "type": "string",
          "description": "Refer to Customer.courtesyTitle"
        },
        "lastName": {
          "type": "string",
          "description": "Refer to Customer.lastName"
        },
        "firstName": {
          "type": "string",
          "description": "Refer to Customer.firstName"
        },
        "onlineRiskCategory": {
          "type": "string",
          "description": "Categorizes the person for online  risk management.\n List of possible values is defined per Issuer (eg.Business, Student, Teenager, Standard).\n Mandatory if no default value is defined"
        },
        "offlineRiskCategory": {
          "type": "string",
          "description": "Categorizes the person for offline risk management.\n List of possible values is defined per Issuer (eg.Business, Student, Teenager, Standard).\n Mandatory if no default value is defined"
        },
        "commercialStatus": {
          "type": "string",
          "description": "Refer to Customer.commercialStatus"
        },
        "customerReference": {
          "type": "string",
          "description": "DEPRECATED"
        },
        "secondFirstName": {
          "type": "string",
          "description": "Refer to Customer.secondFirstName"
        },
        "maidenName": {
          "type": "string",
          "description": "Refer to Customer.maidenName"
        },
        "sex": {
          "type": "string",
          "description": "Refer to Customer.sex"
        },
        "birthDate": {
          "type": "string",
          "description": "Refer to Customer.birthDate",
          "format": "date-time"
        },
        "birthPlace": {
          "type": "string",
          "description": "Refer to Customer.birthPlace"
        },
        "nationality": {
          "type": "string",
          "description": "Refer to Customer.nationality"
        },
        "profession": {
          "type": "string",
          "description": "Refer to Customer.profession"
        },
        "employerName": {
          "type": "string",
          "description": "Refer to Customer.employerName"
        },
        "employerAddress": {
          "type": "string",
          "description": "Refer to Customer.employerAddress"
        },
        "monthlySalary": {
          "type": "string",
          "description": "Refer to Customer.monthlySalary"
        },
        "maritalStatus": {
          "type": "string",
          "description": "Refer to Customer.maritalStatus"
        },
        "preferredCorrespondenceLanguage": {
          "type": "string",
          "description": "Refer to Customer.preferredCorrespondenceLanguage"
        },
        "picture": {
          "type": "string",
          "description": "Refer to Customer.picture"
        },
        "url1": {
          "type": "string",
          "description": "Refer to Customer.url1"
        },
        "url2": {
          "type": "string",
          "description": "Refer to Customer.url2"
        },
        "secretQuestion": {
          "type": "string",
          "description": "Refer to Customer.secretQuestion"
        },
        "secretAnswer": {
          "type": "string",
          "description": "Refer to Customer.secretAnswer"
        },
        "vatNumber": {
          "type": "string",
          "description": "Refer to Customer.vatNumber"
        },
        "vatCountry": {
          "type": "string",
          "description": "Refer to Customer.vatCountry"
        },
        "customerClass": {
          "type": "string",
          "description": "Refer to Customer.customerClass"
        },
        "employee": {
          "type": "boolean",
          "description": "Refer to Customer.employee"
        },
        "partnerExternalReference": {
          "type": "string",
          "description": "Refer to Customer.partnerExternalReference"
        },
        "doNotContact": {
          "type": "boolean",
          "description": "Refer to Customer.doNotContact"
        },
        "specificFields": {
          "type": "object",
          "description": "The issuer can provide Specific Fields for the new customer.\nIt is a list of external data {\"label\":\"value\"} separated by a \",\" related to the customer (pass-thru data) that can be provided by e.g. the issuer for information or for usage by other systems.\nExample : {\"label1\":\"value1\",\"label2\":\"value2\"}\nThose provided data have no impact on our system business processes.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "addresses": {
          "type": "array",
          "description": "The Main postal address (addressLabel as MAIN_POSTAL_ADDRESS)  has to be provided because used as default address by all business processes if no address usage is defined.\n E.g. if no address usage as CARD_DELIVERY is attached to a customer's address then the Main postal address is used as card order delivery address.",
          "items": {
            "$ref": "#/$defs/CreateCorporateContractRequestAddress"
          }
        }
      },
      "title": "CreateCorporateContractRequest.Customer"
    },
    "CreateCorporateContractRequestPinMailerOrder": {
      "type": "object",
      "description": "The issuer can provide data related to a PIN mailer order if it is configured as required in the PIN production model.\nIf not provided and required then the default sending mode is retrieved from product configuration.",
      "properties": {
        "specificFields": {
          "type": "object",
          "description": "The issuer can provide Specific Fields for the PIN mailer order. \nIt is a list of external data {\"label\":\"value\"} separated by a \",\" related to the PIN mailer order (pass-thru data) that can be provided by e.g. the issuer for information or for usage by other systems.\nExample : {\"label1\":\"value1\",\"label2\":\"value2\"}\nThose provided data have no impact on our system business processes.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "sendingMode": {
          "type": "string",
          "description": "The issuer can provide the sending mode if  a PIN mailer (PIN mailer order) is requested. Default sending mode is retrieved from configuration.\nExample: Normal, Urgent, Ultra Urgent"
        },
        "skipPinMailerOrderGeneration": {
          "type": "boolean",
          "description": "The issuer can provide data related to a PIN mailer order if it is configured as required in the PIN production model.\nIf not provided and required then the default sending mode is retrieved from product configuration."
        }
      },
      "title": "CreateCorporateContractRequest.PinMailerOrder"
    },
    "CreateCorporateContractRequestSepaMandate": {
      "type": "object",
      "description": "The issuer must provide SEPA mandate if payment processing channel is SEPA (SEPA indicator is true) and payment mode is AUTOPAYMENT",
      "required": [
        "mandateContractId"
      ],
      "properties": {
        "mandateContractId": {
          "type": "string",
          "description": "Mandate underlying contract identifier (external reference) used by the issuer. E.g., if the mandate is set up along with the contract creation, it may contain the application number, etc. "
        },
        "debtorId": {
          "type": "string",
          "description": "Deprecated field - not to be used"
        },
        "debtorName": {
          "type": "string",
          "description": "Deprecated field - not to be used"
        },
        "debtorAddressType": {
          "type": "string",
          "description": "Deprecated field - not to be used"
        },
        "debtorPostalAddress": {
          "allOf": [
            {
              "$ref": "#/$defs/SepaMandateMailAddress"
            }
          ],
          "description": "Address lines 1 and 2, street name, building number, post code, town name, country and country subdivision can be provided in certain cases - refer to SEPA rules when debtor's address is required."
        },
        "debtorPhoneNumber": {
          "type": "string",
          "description": "SEPA debtor phone number"
        },
        "debtorEmail": {
          "type": "string",
          "description": "SEPA debtor e-mail"
        },
        "mandateNatureType": {
          "type": "string",
          "description": "SEPA mandate nature type. PAPER_MANDATE is taken as a default.\nList of mandate possible nature types (for future usage only, not to be used):\nCOMPUTING_MIGRATION_NO_SIGNATURE, COMPUTING_MIGRATION_WITH_SIGNATURE, FR_MIGRATION_DOMESTIC_FILES,\nMANDATE_FROMDIGITALIZATION, e_MANDATE, SIGNATURE_MANDATE, MYBANK_e_MANDATE, IDEAL_e_MANDATE"
        },
        "mandateSignDate": {
          "type": "string",
          "description": "The mandate signature date has to be provided except if the SEPA mandate UMR is provided (comes from another system).",
          "format": "date-time"
        },
        "mandateSignCity": {
          "type": "string",
          "description": "SEPA mandate city of signature "
        },
        "sepaMandateUmr": {
          "type": "string",
          "description": "Unique reference to identify the SEPA mandate. Can be provided to our system if mandate is created explicitly by another system."
        },
        "validateMandate": {
          "type": "boolean",
          "description": "Deprecated field - not to be used\nNot to be overridden, as there is a risk for an internal business process."
        },
        "futureMandateExternalReference": {
          "type": "string",
          "description": "Deprecated field - not to be used"
        }
      },
      "title": "CreateCorporateContractRequest.SepaMandate"
    },
    "CustomerIdentifier": {
      "type": "object",
      "description": "Identification of the updated customer either by Issuer customer external reference or by customer reference",
      "properties": {
        "customerReference": {
          "type": "string",
          "description": "Reference computed internally by our system"
        },
        "issuerCustomerExternalReference": {
          "type": "string",
          "description": "Reference provided by the Issuer"
        }
      },
      "title": "CustomerIdentifier"
    },
    "DeliveryChannel": {
      "type": "object",
      "properties": {
        "contractLetterType": {
          "type": "string",
          "description": "Delivery channel used for card contract letters (optional) \nPossible values: EMAIL, WEB, LETTER, LETTER_AND_WEB, PUSH and MOBILE_APP",
          "enum": [
            "EMAIL",
            "WEB",
            "LETTER",
            "LETTER_AND_WEB",
            "PUSH",
            "MOBILE_APP"
          ]
        },
        "disputeLetterType": {
          "type": "string",
          "description": "Delivery channel used for dispute letters (optional) \nPossible values: EMAIL, WEB, LETTER, LETTER_AND_WEB, PUSH and MOBILE_APP",
          "enum": [
            "EMAIL",
            "WEB",
            "LETTER",
            "LETTER_AND_WEB",
            "PUSH",
            "MOBILE_APP"
          ]
        },
        "statementType": {
          "type": "string",
          "description": "Delivery channel used for statements (optional) \nPossible values: EMAIL, WEB, LETTER, LETTER_AND_WEB, PUSH and MOBILE_APP",
          "enum": [
            "EMAIL",
            "WEB",
            "LETTER",
            "LETTER_AND_WEB",
            "PUSH",
            "MOBILE_APP"
          ]
        }
      },
      "description": "Specify the channel for letter delivery used for this contract",
      "title": "DeliveryChannel"
    },
    "EmailAddress": {
      "type": "object",
      "required": [
        "email"
      ],
      "properties": {
        "email": {
          "type": "string",
          "description": "Email address of the Customer (mandatory). The email address should have the following format: aaa@bbb.ccc\naaa, bbb, ccc are character string."
        }
      },
      "title": "EmailAddress"
    },
    "FeePostingEntityIdentifier": {
      "type": "object",
      "properties": {
        "postingEntityAccountIdentifier": {
          "description": "The account identifier of the entity on which Membership Fee or Account setup Fee will be posted",
          "allOf": [
            {
              "$ref": "#/$defs/AccountIdentifier"
            }
          ]
        },
        "postingEntityCompanyExternalReference": {
          "type": "string",
          "description": "The external reference of the entity, provided by the Company, on which Membership Fee or Account setup Fee will be posted"
        },
        "postingEntityLevel": {
          "type": "integer",
          "description": "The corporate entitity level number on which Membership Fee or Account setup Fee will be posted"
        }
      },
      "title": "FeePostingEntityIdentifier"
    },
    "PinInheritanceCardIdentifier": {
      "type": "object",
      "properties": {
        "pinInheritanceCardReference": {
          "type": "string",
          "description": "The reference of the card from which the PIN is inherited."
        },
        "pinInheritanceIssuerCardExternalReference": {
          "type": "string",
          "description": "The external reference of the card from which the PIN is inherited."
        }
      },
      "title": "PinInheritanceCardIdentifier"
    },
    "SepaMandateMailAddress": {
      "type": "object",
      "properties": {
        "typeCode": {
          "type": "string",
          "description": "DEPRECATED"
        },
        "line1": {
          "type": "string",
          "description": "Address line 1 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line2": {
          "type": "string",
          "description": "Address line 2 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line3": {
          "type": "string",
          "description": "Address line 3 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line4": {
          "type": "string",
          "description": "Address line 4 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "line5": {
          "type": "string",
          "description": "Address line 5 (conditional). Free text. A specific issuer algorithm can be activated to e.g. build the line, apply controls (e.g. length restriction)."
        },
        "buildingNumber": {
          "type": "string",
          "description": "Building number of the address (optional)"
        },
        "boxNumber": {
          "type": "string",
          "description": "Box number of the address (optional)"
        },
        "streetName": {
          "type": "string",
          "description": "Street name of the address (optional)"
        },
        "postCode": {
          "type": "string",
          "description": "zip code of the address (optional)"
        },
        "townName": {
          "type": "string",
          "description": "City corresponding to the address"
        },
        "countrySubdivision": {
          "type": "string",
          "description": "Subdivision of the country (optional)"
        },
        "country": {
          "type": "string",
          "description": "Code of the country.Free text."
        }
      },
      "title": "SepaMandateMailAddress"
    }
  }
}