# Create a new staff member Creates a new staff member in the system Endpoint: POST /api/external/staff Version: 1.8.0 Security: API_AUTHENTICATION ## Request fields (application/json): - `firstName` (string, required) First name of the staff member Example: "John" - `lastName` (string, required) Last name of the staff member Example: "Doe" - `middleName` (string) Middle name of the staff member Example: "Michael" - `acronym` (string) Acronym or initials Example: "JMD" - `email` (string) Business email address Example: "john.doe@company.com" - `privateEmail` (string) Private email address Example: "john.doe@personal.com" - `phone` (string) Business phone number Example: "+1-555-123-4567" - `privatePhone` (string) Private phone number Example: "+1-555-987-6543" - `mobile` (string) Business mobile number Example: "+1-555-111-2222" - `privateMobile` (string) Private mobile number Example: "+1-555-333-4444" - `salutation` (string) Enum: "Mr", "Mrs", "Miss", "Ms", "unDef", "Dr", "Ing", "Prof", "Mag", "Captain", "Prince", "Princess", "Shaikh", "Shaikhah", "HRH", "HE", "Sir", "Lady", "Mx", "HM", "Sr", "Fr", "Br", "Rev", "Dr_Med", "Prof_Dr", "Lord", "Hon", "Premier", "Deputy_Premier", "Commissioner", "Dame" - `gender` (string) Gender of the staff member Enum: "MALE", "FEMALE", "OTHER" - `birthDate` (string) Date of birth in format yyyy-MM-dd Example: "1985-05-15" - `birthPlace` (string) Place of birth Example: "New York" - `birthCountry` (string) Birth country code (3 characters, e.g., USA, GBR) Example: "USA" - `nationality` (string) Nationality code (3 characters, e.g., USA, GBR) Example: "USA" - `addresses` (array) - `addresses.buildingDetails` (string) Building details Example: "14th" - `addresses.city` (string) City Example: "Lisbon" - `addresses.country` (string) Country Example: "Portugal" - `addresses.externalReference` (string) External reference Example: "External ref" - `addresses.latitude` (number) Latitude Example: 0.1 - `addresses.links` (object) - `addresses.links.empty` (boolean) - `addresses.longitude` (number) longitude Example: 0.1 - `addresses.recipient` (string) Recipient Example: "Recipient" - `addresses.street` (string) Street Example: "My Street" - `addresses.type` (string) Enum: "WORK", "HOME", "OTHER", "APIS" - `addresses.zip` (string) ZIP Code Example: 111111 - `jobTitle` (string) Job title Example: "Senior Pilot" - `employedSince` (string) Employment start date in format yyyy-MM-dd Example: "2020-01-15" - `employedUntil` (string,null) Employment end date in format yyyy-MM-dd - `roles` (array) List of staff roles Enum: "PILOT", "DISPATCH", "EMP", "FLIGHT_ATTENDANT", "OBE", "MANAGER", "ACCOUNTANT", "SALES", "GUARDIAN", "OPS", "RAMP", "OFFICE", "FLIGHT_RELEASE", "CABIN_ATTENDANT", "CABIN_REPRESENTATIVE", "CUSTOMER_SERVICE", "FLIGHT_OPERATIONS", "FLIGHT_STATION_ENGINEER", "MAINTENANCE", "STAFF_STUDENT", "HUMAN_RESOURCES", "FINANCE", "CAMO", "INSTRUCTOR", "STUFF_EXAMINER", "ATO", "EXTERNAL_STAFF", "FREELANCE_PILOT", "FREELANCE_FLIGHT_STATION_ENGINEER", "FREELANCE_FLIGHT_ATTENDANT", "FREELANCE_CABIN_REPRESENTATIVE", "CONTRACT_PILOT", "EXAMINER", "SUB_CHARTER_CREW", "OWNER_HIRED_FLIGHT_ATTENDANT", "OWNER_HIRED_PILOT", "EXTERNAL_STAFF_STUDENT", "EXTERNAL_INSTRUCTOR", "STUDENT_PILOT", "EXTERNAL_ATO", "CONTRACT_FLIGHT_ATTENDANT", "MED", "MED_SUPPORT", "MED_DIRECTOR", "MED_OFFICE", "FLIGHT_DOCTOR", "FLIGHT_PEDIATRICIAN", "FLIGHT_NURSE", "MEDIC" - `status` (string) Status of the staff member Enum: "ACTIVE", "INACTIVE", "DELETED", "MIGRATED_US" - `siflType` (string) SIFL type classification Enum: "CONTROL", "NON_CONTROL", "SECURITY" - `personnelNumber` (string) Personnel number Example: "EMP-001" - `weight` (number) Weight in kilograms Example: 75.5 - `externalReference` (string) External reference identifier for the staff member Example: "staff_ext_12345" - `isIncludedInMasterCrewList` (boolean) Whether the staff member is included in the master crew list Example: true - `idDocuments` (array) - `idDocuments.copy` (object) - `idDocuments.copy.creationDate` (string) - `idDocuments.copy.customName` (string) - `idDocuments.copy.entityName` (string) - `idDocuments.copy.fileSize` (integer) - `idDocuments.copy.id` (integer) - `idDocuments.copy.imageSizeX` (integer) - `idDocuments.copy.imageSizeY` (integer) - `idDocuments.copy.isThumbnail` (boolean) - `idDocuments.copy.name` (string) - `idDocuments.copy.originalName` (string) - `idDocuments.copy.refEntityId` (integer) - `idDocuments.copy.status` (string) - `idDocuments.copy.thumbnail` (object) - `idDocuments.copy.uuid` (string) - `idDocuments.deleted` (boolean) - `idDocuments.expirationDate` (string) - `idDocuments.issueAuthority` (string) - `idDocuments.issueCountry` (object) - `idDocuments.issueCountry.capital` (string) - `idDocuments.issueCountry.continent` (string) - `idDocuments.issueCountry.currencyCode` (string) - `idDocuments.issueCountry.domain` (string) - `idDocuments.issueCountry.intname` (string) - `idDocuments.issueCountry.ioc` (string) - `idDocuments.issueCountry.iso2` (string) - `idDocuments.issueCountry.iso3` (string) - `idDocuments.issueCountry.phone` (string) - `idDocuments.issueCountryId` (integer) - `idDocuments.issueDate` (string) - `idDocuments.issuePlace` (string) - `idDocuments.lastMailSent` (string) - `idDocuments.main` (boolean) - `idDocuments.number` (string) - `idDocuments.passportId` (integer) - `idDocuments.state` (string) - `idDocuments.userId` (integer) - `idDocuments.visaType` (string) - `radiationProtectionRegistryId` (string) Radiation protection registry ID Example: "XYZ123456789" ## Response 201 fields (application/json): - `id` (string) Internal ID of the staff member - `firstName` (string) - `lastName` (string) - `middleName` (string) - `acronym` (string) - `email` (string) - `privateEmail` (string) - `phone` (string) - `privatePhone` (string) - `mobile` (string) - `privateMobile` (string) - `salutation` (string) Enum: "Mr", "Mrs", "Miss", "Ms", "unDef", "Dr", "Ing", "Prof", "Mag", "Captain", "Prince", "Princess", "Shaikh", "Shaikhah", "HRH", "HE", "Sir", "Lady", "Mx", "HM", "Sr", "Fr", "Br", "Rev", "Dr_Med", "Prof_Dr", "Lord", "Hon", "Premier", "Deputy_Premier", "Commissioner", "Dame" - `gender` (string) Gender of the staff member Enum: "MALE", "FEMALE", "OTHER" - `birthDate` (string) - `birthPlace` (string) - `birthCountry` (string) - `nationality` (string) - `addresses` (array) - `addresses.buildingDetails` (string) Building details Example: "14th" - `addresses.city` (string) City Example: "Lisbon" - `addresses.country` (string) Country Example: "Portugal" - `addresses.externalReference` (string) External reference Example: "External ref" - `addresses.internalId` (integer) Internal ID Example: 334455 - `addresses.latitude` (number) Latitude Example: 0.1 - `addresses.links` (object) - `addresses.links.empty` (boolean) - `addresses.longitude` (number) longitude Example: 0.1 - `addresses.recipient` (string) Recipient Example: "Recipient" - `addresses.street` (string) Street Example: "My Street" - `addresses.type` (string) Enum: "WORK", "HOME", "OTHER", "APIS" - `addresses.zip` (string) ZIP Code Example: 111111 - `jobTitle` (string) - `employedSince` (string) - `employedUntil` (string,null) - `roles` (array) Enum: "PILOT", "DISPATCH", "EMP", "FLIGHT_ATTENDANT", "OBE", "MANAGER", "ACCOUNTANT", "SALES", "GUARDIAN", "OPS", "RAMP", "OFFICE", "FLIGHT_RELEASE", "CABIN_ATTENDANT", "CABIN_REPRESENTATIVE", "CUSTOMER_SERVICE", "FLIGHT_OPERATIONS", "FLIGHT_STATION_ENGINEER", "MAINTENANCE", "STAFF_STUDENT", "HUMAN_RESOURCES", "FINANCE", "CAMO", "INSTRUCTOR", "STUFF_EXAMINER", "ATO", "EXTERNAL_STAFF", "FREELANCE_PILOT", "FREELANCE_FLIGHT_STATION_ENGINEER", "FREELANCE_FLIGHT_ATTENDANT", "FREELANCE_CABIN_REPRESENTATIVE", "CONTRACT_PILOT", "EXAMINER", "SUB_CHARTER_CREW", "OWNER_HIRED_FLIGHT_ATTENDANT", "OWNER_HIRED_PILOT", "EXTERNAL_STAFF_STUDENT", "EXTERNAL_INSTRUCTOR", "STUDENT_PILOT", "EXTERNAL_ATO", "CONTRACT_FLIGHT_ATTENDANT", "MED", "MED_SUPPORT", "MED_DIRECTOR", "MED_OFFICE", "FLIGHT_DOCTOR", "FLIGHT_PEDIATRICIAN", "FLIGHT_NURSE", "MEDIC" - `status` (string) Status of the staff member Enum: "ACTIVE", "INACTIVE", "DELETED", "MIGRATED_US" - `siflType` (string) SIFL type classification Enum: "CONTROL", "NON_CONTROL", "SECURITY" - `personnelNumber` (string) - `weight` (number) - `externalReference` (string) - `isIncludedInMasterCrewList` (boolean) - `idDocuments` (array) - `idDocuments.copy` (object) - `idDocuments.copy.creationDate` (string) - `idDocuments.copy.customName` (string) - `idDocuments.copy.entityName` (string) - `idDocuments.copy.fileSize` (integer) - `idDocuments.copy.id` (integer) - `idDocuments.copy.imageSizeX` (integer) - `idDocuments.copy.imageSizeY` (integer) - `idDocuments.copy.isThumbnail` (boolean) - `idDocuments.copy.name` (string) - `idDocuments.copy.originalName` (string) - `idDocuments.copy.refEntityId` (integer) - `idDocuments.copy.status` (string) - `idDocuments.copy.thumbnail` (object) - `idDocuments.copy.uuid` (string) - `idDocuments.deleted` (boolean) - `idDocuments.expirationDate` (string) - `idDocuments.issueAuthority` (string) - `idDocuments.issueCountry` (object) - `idDocuments.issueCountry.capital` (string) - `idDocuments.issueCountry.continent` (string) - `idDocuments.issueCountry.currencyCode` (string) - `idDocuments.issueCountry.domain` (string) - `idDocuments.issueCountry.intname` (string) - `idDocuments.issueCountry.ioc` (string) - `idDocuments.issueCountry.iso2` (string) - `idDocuments.issueCountry.iso3` (string) - `idDocuments.issueCountryId` (integer) - `idDocuments.issueDate` (string) - `idDocuments.issuePlace` (string) - `idDocuments.lastMailSent` (string) - `idDocuments.main` (boolean) - `idDocuments.number` (string) - `idDocuments.passportId` (integer) - `idDocuments.state` (string) - `idDocuments.userId` (integer) - `idDocuments.visaType` (string) - `radiationProtectionRegistryId` (string) ## Response 400 fields ## Response 401 fields ## Response 403 fields ## Response 500 fields