# Create Staff Member Creates a staff member in the operator account of the token. firstName and lastName are required. When an externalReference is sent it must not be used by another user yet, otherwise the call returns 409. ID documents sent in idDocuments are created together with the staff member. 🔒 Required permission: STAFF_API:create Endpoint: POST /api/external/staff Version: 1.8.0 Security: API_AUTHENTICATION ## Request fields (application/json): - `firstName` (string, required) - `lastName` (string, required) - `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" - `gender` (string) Enum: "FEMALE", "MALE", "OTHER" - `birthDate` (string) Format yyyy-MM-dd. - `birthPlace` (string) - `birthCountry` (string) Exactly 3 characters. - `nationality` (string) Exactly 3 characters. - `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) - `employedSince` (string) Format yyyy-MM-dd. - `employedUntil` (string) Format yyyy-MM-dd. - `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) Enum: "ACTIVE", "DELETED", "INACTIVE", "MIGRATED_US" - `siflType` (string) Enum: "CONTROL", "NON_CONTROL", "SECURITY" - `personnelNumber` (string) - `weight` (number) - `externalReference` (string) Must not already be used by another user. A used value returns 409. - `isIncludedInMasterCrewList` (boolean) - `idDocuments` (array) - `idDocuments.document` (object) - `idDocuments.document.customName` (string) - `idDocuments.document.fileSize` (integer) - `idDocuments.document.id` (integer) - `idDocuments.document.imageSizeX` (integer) - `idDocuments.document.imageSizeY` (integer) - `idDocuments.document.isThumbnail` (boolean) - `idDocuments.document.name` (string) - `idDocuments.document.originalName` (string) - `idDocuments.document.uuid` (string) - `idDocuments.expirationDate` (string) - `idDocuments.externalReference` (string) - `idDocuments.internalId` (integer) - `idDocuments.issueAuthority` (string) - `idDocuments.issueCountry` (string) - `idDocuments.issueDate` (string) - `idDocuments.issuePlace` (string) - `idDocuments.main` (boolean) - `idDocuments.number` (string) - `idDocuments.passportExternalReference` (string) - `idDocuments.visaType` (string) - `radiationProtectionRegistryId` (string) ## Response 201 fields (application/json): - `id` (string) FL3XX 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" - `gender` (string) Enum: "FEMALE", "MALE", "OTHER" - `birthDate` (string) Format yyyy-MM-dd. - `birthPlace` (string) - `birthCountry` (string) Exactly 3 characters. - `nationality` (string) Exactly 3 characters. - `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) Format yyyy-MM-dd. - `employedUntil` (string) Format yyyy-MM-dd. - `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) Enum: "ACTIVE", "DELETED", "INACTIVE", "MIGRATED_US" - `siflType` (string) Enum: "CONTROL", "NON_CONTROL", "SECURITY" - `personnelNumber` (string) - `weight` (number) - `externalReference` (string) - `isIncludedInMasterCrewList` (boolean) - `idDocuments` (array) - `idDocuments.document` (object) - `idDocuments.document.customName` (string) - `idDocuments.document.fileSize` (integer) - `idDocuments.document.id` (integer) - `idDocuments.document.imageSizeX` (integer) - `idDocuments.document.imageSizeY` (integer) - `idDocuments.document.isThumbnail` (boolean) - `idDocuments.document.name` (string) - `idDocuments.document.originalName` (string) - `idDocuments.document.uuid` (string) - `idDocuments.expirationDate` (string) - `idDocuments.internalId` (integer) - `idDocuments.issueAuthority` (string) - `idDocuments.issueCountry` (string) - `idDocuments.issueDate` (string) - `idDocuments.issuePlace` (string) - `idDocuments.main` (boolean) - `idDocuments.number` (string) - `idDocuments.passportExternalReference` (string) - `idDocuments.visaType` (string) - `radiationProtectionRegistryId` (string) ## Response 400 fields (application/json): - `title` (string) Example: "not_found" - `message` (string) Example: "Resource [12345] not found" - `errors` (array) ## Response 401 fields (application/json): - `title` (string) Example: "not_found" - `message` (string) Example: "Resource [12345] not found" - `errors` (array) ## Response 403 fields (application/json): - `title` (string) Example: "not_found" - `message` (string) Example: "Resource [12345] not found" - `errors` (array) ## Response 409 fields (application/json): - `title` (string) Example: "not_found" - `message` (string) Example: "Resource [12345] not found" - `errors` (array) ## Response 500 fields (application/json): - `title` (string) Example: "not_found" - `message` (string) Example: "Resource [12345] not found" - `errors` (array)