> ## Documentation Index
> Fetch the complete documentation index at: https://developers.pontua.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Cria colaborador externo (terceirizado/visitante)

> Cadastra um colaborador **externo** — terceirizado, prestador de serviço, visitante recorrente — para que ele possa registrar ponto na sua UN sem ter vínculo CLT direto.

**Diferença para `POST /colaborador`:**
- Externo **não exige** vínculo organizacional completo (departamento/cargo/equipe)
- **Não entra** em fechamentos de folha
- **Pode** registrar ponto, ter foto e fazer login no app

**Casos de uso:**
- Prestador de manutenção que vem semanalmente
- Funcionário de empresa terceirizada que opera dentro da sua planta
- Auditor externo que precisa registrar entrada/saída

**Atenção:**
- O CPF informado precisa ser único na sua UN (mesma regra de colaboradores normais).
- Para promover um externo a colaborador CLT depois, use `PATCH /colaborador/:id` para preencher os vínculos organizacionais.
- LGPD: dados do externo seguem as mesmas regras de retenção dos colaboradores regulares.



## OpenAPI

````yaml https://api.pre.pontua.tech/api/public/doc-json post /colaborador/externo
openapi: 3.0.0
info:
  title: Pontua Public API
  description: >-
    API oficial da Pontua para integrações de clientes externos. Autentique com
    o token gerado no dashboard em **Configurações → API**. Envie o token no
    header `Authorization: Bearer <SEU_TOKEN>`.
  version: '1.0'
  contact: {}
servers: []
security: []
tags: []
paths:
  /colaborador/externo:
    post:
      tags:
        - Colaborador
      summary: Cria colaborador externo (terceirizado/visitante)
      description: >-
        Cadastra um colaborador **externo** — terceirizado, prestador de
        serviço, visitante recorrente — para que ele possa registrar ponto na
        sua UN sem ter vínculo CLT direto.


        **Diferença para `POST /colaborador`:**

        - Externo **não exige** vínculo organizacional completo
        (departamento/cargo/equipe)

        - **Não entra** em fechamentos de folha

        - **Pode** registrar ponto, ter foto e fazer login no app


        **Casos de uso:**

        - Prestador de manutenção que vem semanalmente

        - Funcionário de empresa terceirizada que opera dentro da sua planta

        - Auditor externo que precisa registrar entrada/saída


        **Atenção:**

        - O CPF informado precisa ser único na sua UN (mesma regra de
        colaboradores normais).

        - Para promover um externo a colaborador CLT depois, use `PATCH
        /colaborador/:id` para preencher os vínculos organizacionais.

        - LGPD: dados do externo seguem as mesmas regras de retenção dos
        colaboradores regulares.
      operationId: ColaboradorController_NovoUsuarioExterno
      parameters: []
      requestBody:
        required: true
        description: Dados mínimos do colaborador externo (nome, CPF, foto opcional)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColaboradorExternoDto'
            examples:
              Usuário externo:
                value:
                  nomeCompleto: João Carlos da Silva
                  email: joao.silva@pontua.com.br
                  telefone: '11999999999'
                  numeroRegistro: '64394537509'
                  userType: USER
              Gestor externo:
                value:
                  nomeCompleto: Pedro Henrique Fonseca
                  email: pedro.fonseca@pontua.com.br
                  telefone: '11888888888'
                  numeroRegistro: '45389349253'
                  userType: GESTOR
              Admin externo:
                value:
                  nomeCompleto: Larissa Oliveira
                  email: larissa.oliveira@pontua.com.br
                  telefone: '11777777777'
                  numeroRegistro: '44996671513'
                  userType: ADMIN
      responses:
        '201':
          description: >-
            Colaborador externo criado com `colaboradorId` para uso em outras
            rotas
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetColaboradorExternoDto'
              examples:
                Usuário externo:
                  value:
                    colaboradorId: JOAO.9
                    nomeCompleto: João Carlos da Silva
                    email: joao.silva@pontua.com.br
                    telefone: '11999999999'
                    numeroRegistro: '64394537509'
                    userType: USER
                Gestor externo:
                  value:
                    colaboradorId: PEDRO.8
                    nomeCompleto: Pedro Henrique Fonseca
                    email: pedro.fonseca@pontua.com.br
                    telefone: '11888888888'
                    numeroRegistro: '45389349253'
                    userType: GESTOR
                Admin externo:
                  value:
                    colaboradorId: LARISSA.7
                    nomeCompleto: Larissa Oliveira
                    email: larissa.oliveira@pontua.com.br
                    telefone: '11777777777'
                    numeroRegistro: '44996671513'
                    userType: ADMIN
        default:
          description: "\n\t\t\t400 - Bad Request: A solicitação não está no formato correto.\n\t\t\t401 - Unauthorized: A solicitação não foi autorizada. Verifique se o token de acesso é válido.\n\t\t\t403 - Forbidden: Acesso proibido! Requer um nível de permissão mais elevado.\n\t\t\t404 - Not Found: O recurso solicitado não foi encontrado.\n\t\t\t500 - Internal Server Error: Erro de execução no servidor!\n\t\t\t"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      deprecated: false
      security:
        - bearer: []
components:
  schemas:
    ColaboradorExternoDto:
      type: object
      properties:
        nomeCompleto:
          type: string
          description: Nome completo
          example: João Carlos da Silva
        email:
          type: string
          description: E-mail
          example: email@email.com
        telefone:
          type: string
          description: Número de telefone
          example: 11 99999-9999
        numeroRegistro:
          type: string
          description: Número de CPF ou CNPJ
          example: 123.456.789-00
        userType:
          type: string
          description: Tipo de acesso do colaborador
          default: ADMIN
          enum:
            - ADMIN
            - GESTOR
            - USER
      required:
        - nomeCompleto
        - email
        - telefone
        - numeroRegistro
        - userType
    GetColaboradorExternoDto:
      type: object
      properties:
        nomeCompleto:
          type: string
          description: Nome completo
          example: João Carlos da Silva
        email:
          type: string
          description: E-mail
          example: email@email.com
        telefone:
          type: string
          description: Número de telefone
          example: 11 99999-9999
        numeroRegistro:
          type: string
          description: Número de CPF ou CNPJ
          example: 123.456.789-00
        userType:
          type: string
          description: Tipo de acesso do colaborador
          default: ADMIN
          enum:
            - ADMIN
            - GESTOR
            - USER
        colaboradorId:
          type: string
          description: ID do colaborador
          example: JOAO.9
        senhaProvisoria:
          type: string
          description: Senha provisória para um colaborador recém-criado
          example: trc4dbu7
      required:
        - nomeCompleto
        - email
        - telefone
        - numeroRegistro
        - userType
        - colaboradorId
    ErrorDto:
      type: object
      properties:
        service:
          type: string
          description: Rota solicitada
        method:
          type: string
          description: Método http
        message:
          description: Mensagem do erro
          oneOf:
            - type: string
              example: message erro
            - type: array
              items:
                type: string
                example:
                  - erro 1
                  - erro 2
      required:
        - service
        - method
        - message

````