{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/wordline/main/json-schema/wordline-modify-account-future-update-request-schema.json",
  "title": "ModifyAccountFutureUpdateRequest",
  "x-generated": "2026-10-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/wordline-account-future-update-api-openapi.yml#/components/schemas/ModifyAccountFutureUpdateRequest",
  "type": "object",
  "properties": {
    "futureChangeDate": {
      "description": "Refer to AccountFutureUpdate.futureChangeDate",
      "type": "string",
      "format": "date-time"
    },
    "iban": {
      "description": "Refer to Account.iban\nHas to be provided as part of future update mandate input, except if the SEPA mandate UMR is provided (comes from another system).",
      "type": "string"
    },
    "updateReason": {
      "description": "Refer to AccountFutureUpdate.updateReason",
      "type": "string"
    },
    "ibanOwnerName": {
      "description": "Refer to Account.ibanOwnerName\nHas to be provided as part of future update mandate input, except if the SEPA mandate UMR is provided (comes from another system).",
      "type": "string"
    },
    "bic": {
      "description": "Refer to Account.bic",
      "type": "string"
    },
    "amountDueFixedAmount": {
      "description": "Refer to Account.amountDueFixedAmount",
      "allOf": [
        {
          "$ref": "#/$defs/Amount"
        }
      ]
    },
    "amountDueMinAmount": {
      "description": "Refer to Account.amountDueMinAmount",
      "allOf": [
        {
          "$ref": "#/$defs/Amount"
        }
      ]
    },
    "greaterOrLesserAmountDue": {
      "description": "Refer to Account.greaterOrLesserAmountDue",
      "type": "string"
    },
    "amountDuePercentage": {
      "description": "Refer to Account.amountDuePercentage",
      "type": "string"
    },
    "directDebitFixedAmount": {
      "description": "Refer to Account.directDebitFixedAmount",
      "allOf": [
        {
          "$ref": "#/$defs/Amount"
        }
      ]
    },
    "directDebitPercentage": {
      "description": "Refer to Account.directDebitPercentage",
      "type": "string"
    },
    "selectedModels": {
      "type": "array",
      "description": "Select the required model from the list.",
      "items": {
        "$ref": "#/$defs/AccountModel"
      }
    },
    "sepaIndicator": {
      "type": "boolean",
      "description": "Refer to AccountFutureUpdate.sepaIndicator"
    },
    "secondIban": {
      "type": "string",
      "description": "Refer to Account.secondIban"
    },
    "paymentMode": {
      "type": "string",
      "description": "Refer to Account.paymentMode"
    },
    "sepaMandateUmr": {
      "description": "Refer to Account.sepaMandateUmr\nThe unique reference to identify the SEPA mandate can be provided to our system if mandate is created explicitly by another system.",
      "type": "string"
    },
    "debtorPhoneNumber": {
      "description": "Refer to AccountFutureUpdate.debtorPhoneNumber",
      "type": "string"
    },
    "debtorEmail": {
      "description": "Refer to AccountFutureUpdate.debtorEmail",
      "type": "string"
    },
    "debtorPostalAddress": {
      "description": "Refer to AccountFutureUpdate.debtorPostalAddress",
      "allOf": [
        {
          "$ref": "#/$defs/SepaMandateMailAddress"
        }
      ]
    },
    "mandateContractId": {
      "description": "Refer to AccountFutureUpdate.mandateContractId",
      "type": "string"
    },
    "mandateNatureType": {
      "description": "Refer to AccountFutureUpdate.mandateNatureType",
      "type": "string"
    },
    "mandateSignDate": {
      "description": "Refer to AccountFutureUpdate.mandateSignDate\nHas to be provided as part of future update mandate input, except if the SEPA mandate UMR is provided (comes from another system).",
      "type": "string",
      "format": "date-time"
    },
    "mandateSignCity": {
      "description": "Refer to AccountFutureUpdate.mandateSignCity",
      "type": "string"
    }
  },
  "$defs": {
    "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"
    },
    "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"
    },
    "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"
    }
  }
}