Acesso e Segurança (sam)

2.0info: 2.61.0 Portaria description: Gestao de Portaria x-senior-domain: Acesso e Segurança x-senior-domain-path: sam x-senior-service-path: lobby contact: name: Senior X Platform url: https://dev.senior.com.br email: seniorx-dev@senior.com.brhost: api.senior.com.br /sam/lobbysecurityDefinitions: bearerAuth: type: apiKey in: header name: Authorization – application/json – application/jsonparameters: clientId: name: client_id type: string in: header required: true description: Identificação da aplicação cadastrada no portal do desenvolvedor (api.xplatform.com.br)paths: /createPersonProvisoryCredentialCard: post: description: Cria credencial temporária para uma pessoa previamente cadastrada, visitantes podem ser cadastradas utilizando a ação createVisitorProvisoryCredentialCard x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: #/definitions/createPersonProvisoryCredential responses: 200: description: Ok schema: type: object required: – id properties: id: type: integer description: Identificador da credencial situation: #/definitions/credentialSituation endDate: type: string description: Data de expiração da credencial startDate: type: string description: Data de início da credencial person: #/definitions/personRecord role: #/definitions/roleRecord schedulingId: type: integer description: Identificador do agendamento cardCredentialList: #/definitions/informationCardCredentialRecord virtualLobbyId: type: integer description: A portaria virtual onde foi emitida a credencial provisoryCredentialReason: #/definitions/provisoryCredentialReasonRecord lobby: #/definitions/lobbyRecord default: description: Error response schema: #/definitions/genericError /createVisitorProvisoryCredentialCard: post: description: Cria credencial para um visitante x-senior-event: false deprecated: false tags: – Endpoints security: – bearerAuth: [] parameters: – #/parameters/clientId – name: input in: body required: true schema: #/definitions/createVisitorProvisoryCredential responses: 200: description: Ok schema: type: object required: – id properties: id: type: integer description: Identificador da credencial situation: #/definitions/credentialSituation endDate: type: string description: Data de expiração da credencial startDate: type: string description: Data de início da credencial person: #/definitions/personRecord role: #/definitions/roleRecord schedulingId: type: integer description: Identificador do agendamento cardCredentialList: #/definitions/informationCardCredentialRecord virtualLobbyId: type: integer description: A portaria virtual onde foi emitida a credencial provisoryCredentialReason: #/definitions/provisoryCredentialReasonRecord lobby: #/definitions/lobbyRecord default: description: Error response schema: #/definitions/genericErrordefinitions: credentialSituation: type: string enum: – RELEASED – BLOCKED cardTechnology: type: string enum: – BARCODE_CARD – RFID_CARD – SMART_CARD biometricManufacturer: type: string enum: – NONE – FINGERPRINT_SAGEM – FINGERPRINT_SUPREMA – FINGERPRINT_VIRDI – FINGERPRINT_NITGEN – FINGERPRINT_CAMA – FINGERPRINT_INNOVATRICS – HANDKEY_IR – FACIAL – FINGERPRINT_SECUKEY – FACIAL_VISICA procedureType: type: string enum: – NOT_REQUIRES_INFORMATION_GATHERING – REQUIRES_INFORMATION_GATHERING – CONSENT physicalLocationStatus: type: string enum: – DISABLED – ENABLED visitSituation: type: string enum: – PENDING – IN_PROGRESS – FINISHED – NOT_OCCURRED visitLimitControl: type: string enum: – DOES_NOT_CONTROL – ALERT – BLOCK visitorInvitationStatus: type: string enum: – CREATED – SENT – ACCEPTED – REFUSED – EXPIRED visitorSituation: type: string enum: – CHECK_IN_PENDING – CHECK_IN_REALIZED – VISITING – CHECK_OUT_REALIZED – CHECK_IN_NOT_REALIZED – CHECK_IN_EXPIRED credentialOrigin: type: string enum: – UNKNOWN – LOBBY – SELF_SERVICE_TERMINAL timeValidityType: type: string enum: – HOUR – DAY personSituationType: type: string enum: – ACTIVE – BLOCKED phoneType: type: string enum: – UNDEFINED – WORK – MOBILE – HOME – OTHERS statusHistoric: type: string enum: – FUTURE – PRESENT – PAST blockingType: type: string enum: – DEFINITIVE – TEMPORARY availability: type: string enum: – ABSENT – AVAILABLE createVisitorProvisoryCredential: type: object required: – isCheckedOverlap – cardCredentialList – endDate – roleId – visitor – schedulingId properties: isCheckedOverlap: type: boolean description: Se deve suspender a credencial existente cardCredentialList: type: array items: #/definitions/informationCardCredentialRecord description: Lista de cartões de credenciais a serem cadastradas provisoryCredentialReasonId: type: integer description: Id do motivo da credencial provisória, cadastro pela entidade provisoryCredentialReason. É utilizado apenas para consultas e estatísticas startDate: type: string description: A data de início da credencial format: date-time endDate: type: string description: A data de expiração da credencial format: date-time biometricManufacturer: #/definitions/biometricManufacturer biometricId: type: integer description: O identificador da biometria da pessoa virtualLobbyId: type: integer description: O identificador da portaria virtual, cadastro pelo serviço virtualLobby roleId: type: integer description: O papel da credencial que o visitante vai assumir, usado principalmente para visitantes sem cadastro prévio, cadastro em sam-aplicacao-backend/entities/role visitor: #/definitions/visitor schedulingId: type: integer description: O agendamento relacionado à credencial, id da entidade scheduling, apenas para visitas agendadas credentialOrigin: #/definitions/credentialOrigin selfServiceTerminalId: type: integer description: id do terminal de autoatendimento informationCardCredentialRecord: type: object required: – cardTechnology – cardNumber properties: id: type: integer description: Código identificador cardTechnology: #/definitions/cardTechnology cardNumber: type: integer description: Número do Cartão visitor: type: object properties: id: type: integer description: ID personId: type: integer description: Visitante scheduling: #/definitions/scheduling visitorSituation: #/definitions/visitorSituation company: #/definitions/visitorCompany locator: type: string description: Código localizador checkinDate: type: string description: Data do Checkin format: date-time entranceDate: type: string description: Data de entrada format: date-time checkoutDate: type: string description: Data do checkout format: date-time personVehicleId: type: integer description: Id da Associação da Pessoa com Veículo createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time scheduling: type: object required: – title – expectedEndDate – visitType – visitSituation properties: id: type: integer description: ID type: string description: Título da visita expectedStartDate: type: string description: Data prevista de início do agendamento format: date-time expectedEndDate: type: string description: Data prevista de fim do agendamento format: date-time visitType: #/definitions/visitType physicalLocation: #/definitions/physicalLocation visitedPeople: type: array items: #/definitions/visitedPerson description: Lista de visitados visitors: type: array items: #/definitions/visitor description: Lista de visitantes schedulingResources: type: array items: #/definitions/schedulingResource description: Recursos da visita visitSituation: #/definitions/visitSituation lobby: #/definitions/lobby personProcedures: type: array items: #/definitions/personProcedure description: Procedimentos realizados visitorInvitations: type: array items: #/definitions/visitorInvitation description: Lista de convites para visitantes createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time visitType: type: object required: – name – role – usedBySelfServiceTerminal – sendEmailToVisited properties: id: type: integer description: ID name: type: string description: Nome do tipo de visita visitProcedures: type: array items: #/definitions/visitProcedure description: Procedimentos da visita role: #/definitions/role visitResources: type: array items: #/definitions/visitResource description: Recursos padrão do tipo de visita usedBySelfServiceTerminal: type: boolean description: Flag se o tipo de visita é utilizado pelo totem sendEmailToVisited: type: boolean description: Flag se envia email de notificação ao visitado integratedWithGAS: type: boolean description: Possui integração com Ronda Senior allowsVisitorInvitation: type: boolean description: Permite convite para visitante allowsDeliveryOfCredentialByBot: type: boolean description: Permite entrega de credencial via bot createFacialCredential: type: boolean description: Cria credencial facial createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time visitProcedure: type: object required: – procedure – required properties: id: type: integer description: ID visitType: #/definitions/visitType procedure: #/definitions/procedure required: type: boolean description: Flag sinalizando se execução do procedimento é obrigatória integratedWithGAS: type: boolean description: Possui integração com Ronda Senior createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time procedure: type: object required: – name – validityDays properties: id: type: integer description: ID name: type: string description: Nome do procedimento description: type: string description: Descrição do procedimento validityDays: type: integer description: Validade do procedimento em dias integratedWithGAS: type: boolean description: Possui integração com Ronda Senior consent: #/definitions/consent procedureType: #/definitions/procedureType createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time consent: type: object required: – consentTerm – name properties: id: type: integer description: ID consentTerm: type: integer description: Termo de consentimento name: type: string description: Nome do termo de consentimento allowsPrinting: type: boolean description: Permite impressão do termo de consentimento sendEmail: type: boolean description: Envia email com informações para visualização do termo de consentimento createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time role: type: object required: – name – usedByProvisory – receiveVisit properties: id: type: integer description: ID name: type: string description: Nome usedByProvisory: type: boolean description: Papel Utilizado pelo Provisório receiveVisit: type: boolean description: Papel que Recebe Visita visitResource: type: object properties: id: type: integer description: ID visitType: #/definitions/visitType lobbyResource: #/definitions/lobbyResource createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time lobbyResource: type: object required: – name properties: id: type: integer description: ID name: type: string description: Nome do recurso visitResources: type: array items: #/definitions/visitResource description: Tipo de Visita ligados ao Recurso createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time physicalLocation: type: object required: – parent – name – status properties: id: type: integer description: ID parent: type: integer description: Local Físico Pai name: type: string description: Nome status: #/definitions/physicalLocationStatus visitedPerson: type: object properties: id: type: integer description: ID personId: type: integer description: Visitado scheduling: #/definitions/scheduling createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time schedulingResource: type: object properties: id: type: integer description: ID scheduling: #/definitions/scheduling lobbyResource: #/definitions/lobbyResource quantity: type: integer description: Quantidade note: type: string description: Observação createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time lobby: type: object required: – name – physicalLocation – provisoryCredentialValidityInDays – schedulingCredentialValidityInHours – isActive – visitLimitControl properties: id: type: integer description: ID name: type: string description: Nome da portaria physicalLocation: #/definitions/physicalLocation provisoryCardPhotoValidityInDays: type: integer description: Validade da foto do colaborador em dias scheduledVisitPhotoValidityInDays: type: integer description: Validade da foto do visitante em dias provisoryCredentialValidityInDays: type: integer description: Validade da credencial provisória em dias schedulingCredentialValidityInHours: type: integer description: Validade da credencial de visitante em horas schedulingToleranceInMinutes: type: integer description: Tolerância no agendamento em minutos provisoryCredentialsMonthlyLimit: type: integer description: Limite mensal de credenciais provisórias isActive: type: boolean description: Estado da portaria integratedWithGAS: type: boolean description: Possui integração com Ronda Senior schedulingReportId: type: string description: Identificador do Relatório de Agendamento na Plataforma usesCredential: type: boolean description: Utiliza credencial lobbyCredentialTechnologies: type: array items: #/definitions/lobbyCredentialTechnology description: Tecnologia disponível para credencial visitLimitControl: #/definitions/visitLimitControl limitOfDaysWithVisitPerWeek: type: integer description: Limite de dias com visita por semana linkToBot: type: string description: Link para o bot createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time lobbyCredentialTechnology: type: object properties: id: type: integer description: ID lobby: #/definitions/lobby cardTechnology: #/definitions/cardTechnology createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time personProcedure: type: object required: – personId – procedure properties: id: type: integer description: ID personId: type: integer description: Visitante procedure: #/definitions/procedure completionDate: type: string description: Data de finalização do procedimento format: date-time responsibleUser: type: string description: Responsável pela finalização do procedimento procedureDetails: type: string description: Detalhes do procedimento scheduling: #/definitions/scheduling consentEvidences: type: array items: #/definitions/consentEvidence description: Evidências de Consentimento createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time consentEvidence: type: object required: – evidencedBy – evidenceDate – person – consentTermVersion properties: id: type: integer description: ID evidencedBy: type: string description: Evidenciado por evidenceDate: type: string description: Data da evidência format: date-time person: type: integer description: Pessoa que consentiu com o termo consentTermVersion: type: integer description: Versão do termo de consentimento recipientEmail: type: string description: Email do destinatário emailSent: type: boolean description: Email enviado personProcedure: #/definitions/personProcedure createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time visitorInvitation: type: object properties: id: type: integer description: ID scheduling: #/definitions/scheduling visitorEmail: type: string description: Email do visitante locator: type: string description: Código localizador do visitante invitationStatus: #/definitions/visitorInvitationStatus botConversationId: type: string description: ID da convera do Bot consentTermVersionId: type: integer description: ID da versão do termo de consentimento consentDate: type: string description: Data do consentimento format: date-time documentTypeId: type: integer description: ID do tipo de documento document: type: string description: Documento visitorName: type: string description: Nome do visitante personId: type: integer description: ID da pessoa visitor: #/definitions/visitor createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time visitorCompany: type: object required: – name properties: id: type: integer description: ID name: type: string description: Nome createdBy: type: string description: createdDate: type: string description: format: date-time lastModifiedBy: type: string description: lastModifiedDate: type: string description: format: date-time createPersonProvisoryCredential: type: object required: – isCheckedOverlap – cardCredentialList – endDate – personId – lobbyId properties: isCheckedOverlap: type: boolean description: Se deve suspender a credencial existente cardCredentialList: type: array items: #/definitions/informationCardCredentialRecord description: Lista de cartões de credenciais a serem cadastradas provisoryCredentialReasonId: type: integer description: Id do motivo da credencial provisória, cadastro pela entidade provisoryCredentialReason. É utilizado apenas para consultas e estatísticas startDate: type: string description: A data de início da credencial format: date-time endDate: type: string description: A data de expiração da credencial format: date-time biometricManufacturer: #/definitions/biometricManufacturer biometricId: type: integer description: O identificador da biometria da pessoa virtualLobbyId: type: integer description: O identificador da portaria virtual, cadastro pelo serviço virtualLobby personId: type: integer description: O identificador da pessoa que receberá a credencial, cadastro em sam-aplicacao-backend/entities/person lobbyId: type: integer description: O identificador da portaria, cadastro pela entidade lobby credentialOrigin: #/definitions/credentialOrigin selfServiceTerminalId: type: integer description: Id do terminal de autoatendimento provisoryCredentialReasonRecord: type: object required: – reasonInPortuguese – reasonInEnglish – reasonInSpanish – validityTime – timeValidityType – isActive properties: id: type: integer description: ID reasonInPortuguese: type: string description: Motivo em Português reasonInEnglish: type: string description: Motivo em Inglês reasonInSpanish: type: string description: Motivo em Espanhol validityTime: type: integer description: Tempo de Validade timeValidityType: #/definitions/timeValidityType isActive: type: boolean description: Motivo Ativo personRecord: type: object required: – id properties: id: type: integer description: ID name: type: string description: Nome photoDate: type: string description: Data da atualização da foto format: date-time lastAccessDate: type: string description: Último acesso format: date-time currentPhysicalLocation: #/definitions/physicalLocationRecord situation: #/definitions/personSituationType lastAccessAllowedDate: type: string description: Data do último acesso permitido format: date-time lastAccessAllowedPhysicalLocation: #/definitions/physicalLocationRecord documents: type: array items: #/definitions/documentRecord description: Documento phones: type: array items: #/definitions/phoneRecord description: Telefone emails: type: array items: #/definitions/emailRecord description: Email personRoles: type: array items: #/definitions/personRoleRecord description: Papéis da pessoa situations: type: array items: #/definitions/personSituationRecord description: Lista de situação da pessoa groups: type: array items: #/definitions/groupPersonRecord description: Grupos availability: #/definitions/availability organizationalStructures: type: array items: #/definitions/organizationalStructurePersonRecord description: Estruturas organizacionais physicalLocationRecord: type: object required: – parent – name – status properties: id: type: integer description: ID parent: type: integer description: Local físico pai name: type: string description: Nome status: #/definitions/physicalLocationStatus documentRecord: type: object required: – id – documentType – document properties: id: type: integer description: ID documentType: #/definitions/documentTypeRecord document: type: string description: Documento documentTypeRecord: type: object required: – id – name – label – required properties: id: type: integer description: ID name: type: string description: Nome do tipo de documento label: type: string description: Label do documento mask: type: string description: Máscara do documento required: type: boolean description: Documento obrigatório phoneRecord: type: object required: – id – number properties: id: type: integer description: ID preferential: type: boolean description: Telefone Preferencial idd: type: integer description: DDI/IDD (International Direct Dialing) number: type: string description: Número do telefone phoneExtension: type: string description: Ramal phoneType: #/definitions/phoneType emailRecord: type: object required: – id – email properties: id: type: integer description: ID preferential: type: boolean description: Email Preferencial email: type: string description: Endereço do email personRoleRecord: type: object required: – id – startDate properties: id: type: integer description: ID person: #/definitions/personRecord role: #/definitions/roleRecord startDate: type: string description: Data início format: date-time endDate: type: string description: Data fim format: date-time status: #/definitions/statusHistoric personRoleSuspensions: type: array items: #/definitions/personRoleSuspensionRecord description: Suspensões de papéis roleRecord: type: object required: – id – name – usedByProvisory – receiveVisit properties: id: type: integer description: ID name: type: string description: Nome usedByProvisory: type: boolean description: Papel utilizado pelo provisório receiveVisit: type: boolean description: Papel que Recebe Visita personRoles: type: array items: #/definitions/personRoleRecord description: Relação pessoa papel roleAccessPhysicalLocations: type: array items: #/definitions/roleAccessPhysicalLocationRecord description: Relação de papel que acessa o local físico roleAccessPhysicalLocationRecord: type: object required: – id – role – physicalLocation properties: id: type: integer description: ID role: #/definitions/roleRecord physicalLocation: #/definitions/physicalLocationRecord personRoleSuspensionRecord: type: object required: – id – startDate – justification properties: id: type: integer description: ID personRole: #/definitions/personRoleRecord startDate: type: string description: Data início format: date-time endDate: type: string description: Data fim format: date-time justification: type: string description: Justificativa status: #/definitions/statusHistoric personSituationRecord: type: object required: – id – person – blockDate – blockReason properties: id: type: integer description: ID person: #/definitions/personRecord blockDate: type: string description: Data do bloqueio format: date-time blockReason: type: string description: Motivo do bloqueio unblockDate: type: string description: Data do desbloqueio format: date-time unblockProcedure: type: string description: Procedimento de desbloqueio unblockJustification: type: string description: Justificativa do desbloqueio blockingType: #/definitions/blockingType groupPersonRecord: type: object required: – id – person – group properties: id: type: integer description: ID person: #/definitions/personRecord group: #/definitions/groupRecord groupRecord: type: object required: – id – parent – name properties: id: type: integer description: ID parent: type: integer description: ID do pai name: type: string description: Nome do grupo physicalLocation: #/definitions/physicalLocationRecord people: type: array items: #/definitions/groupPersonRecord description: Pessoas do grupo organizationalStructurePersonRecord: type: object properties: id: type: integer description: ID organizationalStructure: #/definitions/organizationalStructureRecord organizationalStructureRecord: type: object required: – parent – organizationalStructureType – description – integrated properties: id: type: integer description: ID parent: type: integer description: Estrutura organizacional pai organizationalStructureType: #/definitions/organizationalStructureTypeRecord description: type: string description: Descrição integrated: type: boolean description: Realiza Validação de Papel organizationalStructureTypeRecord: type: object required: – name properties: id: type: integer description: ID name: type: string description: Nome lobbyRecord: type: object properties: id: type: integer description: ID name: type: string description: Nome da portaria genericError: properties: message: type: string description: Messaging describing the error. reason: type: string description: A symbolic code identifying the category of the reason of the error. enum: – BAD_REQUEST – UNAUTHORIZED – PAYMENT_REQUIRED – FORBIDDEN – OBJECT_NOT_FOUND – REQUEST_TIMEOUT – GONE – UNPROCESSABLE – INTERNAL_ERROR – NOT_IMPLEMENTED – SERVICE_UNAVAILABLE – INSUFFICIENT_STORAGE