{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/wordline/main/json-schema/wordline-modify-company-request-schema.json",
  "title": "ModifyCompanyRequest",
  "x-generated": "2026-10-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/wordline-company-api-openapi.yml#/components/schemas/ModifyCompanyRequest",
  "x-wl-patch-request": true,
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "description": "DEPRECATED",
      "default": true
    },
    "commercialStatus": {
      "type": "string",
      "description": "Refer to Customer.commercialStatus"
    },
    "corporateName": {
      "type": "string",
      "description": "Refer to Customer.corporateName"
    },
    "nationalFiscalIdentifier": {
      "type": "string",
      "description": "Refer to Customer.nationalFiscalIdentifier"
    },
    "preferredCorrespondenceLanguage": {
      "type": "string",
      "description": "Refer to Customer.preferredCorrespondenceLanguage"
    },
    "type": {
      "type": "string",
      "description": "Refer to Customer.type"
    },
    "size": {
      "type": "string",
      "description": "Refer to Customer.size"
    },
    "businessArea": {
      "type": "string",
      "description": "Refer to Customer.businessArea"
    },
    "activityCode": {
      "type": "string",
      "description": "Refer to Customer.activityCode"
    },
    "revenue": {
      "type": "string",
      "description": "Refer to Customer.revenue"
    },
    "legalForm": {
      "type": "string",
      "description": "Refer to Customer.legalForm"
    },
    "vatCode": {
      "type": "string",
      "description": "Refer to Customer.vatCode"
    },
    "partnerExternalReference": {
      "type": "string",
      "description": "External Reference provided by the issuer"
    },
    "specificFields": {
      "type": "object",
      "description": "The issuer can update Specific Fields for the company. \nIt is a list of external data {\"label\":\"value\"} separated by a \",\" related to the company (pass-thru data) that can be provided by e.g. the issuer for information or for usage by other systems.\nA new data can be added or an existing data can be updated {\"label1\":\"newValue\"} or removed {\"label2\":\"null\"}.\nAny existing data that is not present in this list is not updated in the company.\nThose provided data have no impact on our system business processes.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "contacts": {
      "type": "array",
      "description": "The list of Contacts for the Company",
      "items": {
        "$ref": "#/$defs/ModifyCompanyRequestContact"
      }
    }
  },
  "$defs": {
    "ModifyAddressRequestMailAddress": {
      "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": "ModifyAddressRequest.MailAddress"
    },
    "ModifyCompanyRequestContact": {
      "x-wl-patch-request": true,
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Refer to Contact.lastName"
        },
        "firstName": {
          "type": "string",
          "description": "Refer to Contact.firstName "
        },
        "description": {
          "type": "string",
          "description": "Refer to Contact.description "
        },
        "courtesyTitle": {
          "type": "string",
          "description": "Refer to Customer.courtesyTitle "
        },
        "sex": {
          "type": "string",
          "description": "Refer to Contact.sex"
        },
        "departmentName": {
          "type": "string",
          "description": "Refer to Contact.departmentName"
        },
        "birthDate": {
          "type": "string",
          "format": "date-time",
          "description": "Refer to Contact.birthDate "
        },
        "postalAddress": {
          "description": "The postal adress of the contact",
          "allOf": [
            {
              "$ref": "#/$defs/ModifyAddressRequestMailAddress"
            }
          ]
        }
      },
      "title": "ModifyCompanyRequestContact"
    }
  }
}