> ## 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.

# Registra uma batida de ponto individual



## OpenAPI

````yaml https://api.pre.pontua.tech/api/public/doc-json post /registro-ponto
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:
  /registro-ponto:
    post:
      tags:
        - Registro de Ponto
      summary: Registra uma batida de ponto individual
      operationId: RegistroPontoController_RegistrarPonto
      parameters:
        - name: numeroRegistrosRetorno
          required: false
          in: query
          description: >-
            Número de últimos registros de ponto que aparecerão no retorno da
            requisição
          schema:
            example: '6'
            type: string
      requestBody:
        required: true
        description: Formato do registro de ponto
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegistroRequisicaoDto'
            examples:
              Registro simples:
                value:
                  dataHora: '2024-04-01T08:10:00.000Z'
                  tipoDeRegistro: SIMPLE
                  online: true
                  dadosCustomizados:
                    fusoHorario: SAO_PAULO
                    tipoDispositivoRegistro: '01'
                    enderecoIP: 247.14.144.97
                    localizacaoMockada: false
                    dispositivo:
                      modelo: iPhone 11
                      chave: 123-abc
                      plataforma: iOS
              Registro por geolocalização:
                value:
                  dataHora: '2024-04-01T08:10:00.000Z'
                  tipoDeRegistro: GEOLOCATION
                  online: true
                  dadosCustomizados:
                    fusoHorario: SAO_PAULO
                    tipoDispositivoRegistro: '01'
                    enderecoIP: 247.14.144.97
                    localizacaoMockada: false
                    dispositivo:
                      modelo: iPhone 11
                      chave: 123-abc
                      plataforma: iOS
                  dadosRegistro:
                    latitude: -23.5505
                    longitude: -46.6333
                    endereco: >-
                      Rua Exemplo, 123 - Bairro Exemplo, Cidade Exemplo - ES,
                      Brasil
              Registro por foto:
                value:
                  dataHora: '2024-04-01T08:10:00.000Z'
                  tipoDeRegistro: PHOTO_SIMPLE
                  online: true
                  dadosCustomizados:
                    fusoHorario: SAO_PAULO
                    tipoDispositivoRegistro: '01'
                    enderecoIP: 247.14.144.97
                    localizacaoMockada: false
                    dispositivo:
                      modelo: iPhone 11
                      chave: 123-abc
                      plataforma: iOS
                  dadosRegistro:
                    foto: >-
                      iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
                    rostoAparecendo: true
              Registro por foto e localização:
                value:
                  dataHora: '2024-04-01T08:10:00.000Z'
                  tipoDeRegistro: PHOTO_LOCATION
                  online: true
                  dadosCustomizados:
                    fusoHorario: SAO_PAULO
                    tipoDispositivoRegistro: '01'
                    enderecoIP: 247.14.144.97
                    localizacaoMockada: false
                    dispositivo:
                      modelo: iPhone 11
                      chave: 123-abc
                      plataforma: iOS
                  dadosRegistro:
                    foto: >-
                      iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
                    rostoAparecendo: true
                    latitude: -23.5505
                    longitude: -46.6333
                    endereco: >-
                      Rua Exemplo, 123 - Bairro Exemplo, Cidade Exemplo - ES,
                      Brasil
              Registro por reconhecimento facial:
                value:
                  dataHora: '2024-04-01T08:10:00.000Z'
                  tipoDeRegistro: FACIAL_RECOGNITION
                  online: true
                  dadosCustomizados:
                    fusoHorario: SAO_PAULO
                    tipoDispositivoRegistro: '01'
                    enderecoIP: 247.14.144.97
                    localizacaoMockada: false
                    dispositivo:
                      modelo: iPhone 11
                      chave: 123-abc
                      plataforma: iOS
                  dadosRegistro:
                    foto: >-
                      iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
                    rostoAparecendo: true
                    latitude: -23.5505
                    longitude: -46.6333
                    endereco: >-
                      Rua Exemplo, 123 - Bairro Exemplo, Cidade Exemplo - ES,
                      Brasil
      responses:
        '201':
          description: Registro de ponto criado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegistrosRespostaDto'
              examples:
                Resposta retornando os últimos registros:
                  value:
                    pagina: 0
                    limite: 10
                    total: 3
                    unidades:
                      - dataHora: '2024-05-02T07:22:43.230Z'
                        nome: Nelson da Silva
                        cpf: '15217510056'
                        tipo: PHOTO_SIMPLE
                        endereco: Avenida Afonso Pena, 237, Belo Horizonte, MG
                        NSR: '2307'
                        hashCode: >-
                          c0fc3c713f09a43384ac08f7d91fca430dcbc6466fff9284ce4571bdc2
                        criadoEm: '2024-05-02T07:22:43.230Z'
                        tipoOrigem: '01'
                        online: true
                        tipoRegistroBatida: ENTRADA
                        tipoAmbiente: INDIVIDUAL
                        fusoHorario: SAO_PAULO
                        colaboradorId: 123-abc
                        inconsistencias:
                          - ENDERECO_IP_AUSENTE_OU_NAO_CADASTRADO
                      - dataHora: '2024-05-02T12:22:43.230Z'
                        nome: Nelson da Silva
                        cpf: '15217510056'
                        tipo: PIN
                        endereco: Avenida Afonso Pena, 237, Belo Horizonte, MG
                        NSR: '2308'
                        hashCode: c0fc3c713f09a43365tyhj46yt4kjytty8j4gf45h8gf4h
                        criadoEm: '2024-05-02T12:22:43.230Z'
                        tipoOrigem: '01'
                        online: true
                        tipoRegistroBatida: SAIDA
                        tipoAmbiente: COLETIVO
                        fusoHorario: SAO_PAULO
                        colaboradorId: 123-abc
                        coletorId: 123-abc
                        inconsistencias: []
                Resposta para registro coletivo de reconhecimento facial, quando dois colaboradores são encontrados para o mesmo rosto:
                  value:
                    registro:
                      coletorId: 123-abc
                      dataHora: '2024-04-01T08:10:00.000Z'
                      tipoDeRegistro: FACIAL_RECOGNITION
                      online: true
                      tokenRecFacial: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVC
                      dadosCustomizados:
                        fusoHorario: SAO_PAULO
                        tipoDispositivoRegistro: '01'
                        enderecoIP: 247.14.144.97
                        localizacaoMockada: false
                        dispositivo:
                          modelo: iPhone 11
                          chave: 123-abc
                          plataforma: iOS
                      dadosRegistro:
                        latitude: -16
                        longitude: -49
                        endereco: Rua lugar nenhum, 237
                        rostoAparecendo: true
                        foto: null
                    colaboradores:
                      - colaboradorId: 123-abc
                        nome: Fulano de Tal
                        numeroDocumento: 549.682.400-15
                        cargo: Desenvolvedor
                        dataNascimento: '1970-07-23T00:00:00.000Z'
                        unidadeNegocio:
                          unidadeNegocioId: abc-123
                          nome: Unidade 1
                      - colaboradorId: 456-def
                        nome: Prestador de serviço Fulano de Tal
                        numeroDocumento: 45.335.922/0001-98
                        cargo: Desenvolvedor
                        dataNascimento: '1970-07-23T00:00:00.000Z'
                        unidadeNegocio:
                          unidadeNegocioId: def-456
                          nome: Unidade 2
        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:
    RegistroRequisicaoDto:
      type: object
      properties:
        dataHora:
          format: date-time
          type: string
          description: Data e horário
          example: '2024-04-30T14:48:00.000Z'
        originalDateTime:
          type: string
          description: Data e horário em formato ISO 8601
          example: '2024-04-30T14:48:00.000-03:00'
          format: date-time
        tipoDeRegistro:
          type: string
          description: Tipo do registro de ponto
          default: SIMPLE
          enum:
            - SIMPLE
            - GEOLOCATION
            - PHOTO_SIMPLE
            - PHOTO_LOCATION
            - FACIAL_RECOGNITION
        dadosRegistro:
          description: Dados do registro
          allOf:
            - $ref: '#/components/schemas/DadosRegistroDto'
        online:
          type: boolean
          description: O registro foi feito online
          example: true
        dadosCustomizados:
          description: Dados customizados do registro
          allOf:
            - $ref: '#/components/schemas/DadosCustomizadosRegistroDto'
      required:
        - dataHora
        - tipoDeRegistro
        - online
        - dadosCustomizados
    RegistrosRespostaDto:
      type: object
      properties:
        pagina:
          type: number
          description: Pagina retornada dos dados
          example: 0
        limite:
          type: number
          description: Quantidade de itens retornados na consulta
          example: 10
        total:
          type: number
          description: Quantidade total de unidades para consultar
          example: 5
        unidades:
          description: Resultado da consulta
          type: array
          items:
            $ref: '#/components/schemas/RegistroRespostaDto'
      required:
        - pagina
        - total
        - unidades
    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
    DadosRegistroDto:
      type: object
      properties:
        foto:
          type: string
          description: Foto em formato base64
          example: >-
            iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=
        rostoAparecendo:
          type: boolean
          description: O rosto da pessoa está aparecendo na foto
          example: true
        colaboradorIdRecFacial:
          type: string
          description: ID do colaborador identificado pelo reconhecimento facial
          example: 123-456abc
          deprecated: true
        latitude:
          type: number
          description: Latitude
          example: 45
        longitude:
          type: number
          description: Longitude
          example: 110
        endereco:
          type: string
          description: Endereço
          example: Avenida Afonso Pena, 237, Belo Horizonte, MG
    DadosCustomizadosRegistroDto:
      type: object
      properties:
        localizacaoMockada:
          type: boolean
          description: Localização por GPS falsa
          example: true
        dispositivo:
          description: Dados do dispositivo do usuário
          allOf:
            - $ref: '#/components/schemas/DadosDipositivoUsuarioDto'
        fusoHorario:
          type: string
          description: Fuso horário
          default: SAO_PAULO
          enum:
            - MANAUS
            - NORONHA
            - RIO_BRANCO
            - SAO_PAULO
        tipoDispositivoRegistro:
          type: string
          description: Tipo do dispositivo usado para o registro
          default: '01'
          enum:
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
        enderecoIP:
          type: string
          description: Endereço IP
          example: 230.65.205.50
      required:
        - dispositivo
        - fusoHorario
        - tipoDispositivoRegistro
    RegistroRespostaDto:
      type: object
      properties:
        dataHora:
          type: string
          description: Data e horário
          example: '2024-05-02T14:22:43.230Z'
          format: date-time
        nome:
          type: string
          description: Nome do colaborador
          example: Nelson da Silva
        cpf:
          type: string
          description: CPF do colaborador
          example: '15217510056'
        tipo:
          type: string
          description: Tipo do registro de ponto
          default: SIMPLE
          enum:
            - GEOLOCATION
            - SIMPLE
            - FACIAL_RECOGNITION
            - QR_CODE
            - PHOTO_SIMPLE
            - PHOTO_LOCATION
            - PIN
        endereco:
          type: string
          description: Endereço
          example: Avenida Afonso Pena, 237, Belo Horizonte, MG
        NSR:
          type: string
          description: NSR
          example: '2307'
        hashCode:
          type: string
          description: Código hash sha-256
          example: c0fc3c713f09a43384ac08f7d91fca430dcbc6466fff9284ce4571bdc2c8f9f9
        criadoEm:
          type: string
          description: Data de registro no banco
          example: '2024-05-02T14:22:43.230Z'
          format: date-time
        tipoOrigem:
          type: string
          description: Tipo do dispositivo usado para o registro
          default: '01'
          enum:
            - '01'
            - '02'
            - '03'
            - '04'
            - '05'
        online:
          type: boolean
          description: O registro foi feito online
          example: true
        tipoRegistroBatida:
          type: string
          description: Tipo de batida do registro (entrada ou saída)
          default: ENTRADA
          enum:
            - ENTRADA
            - SAIDA
        tipoAmbiente:
          type: string
          description: Tipo de ambiente do registro (individual ou coletivo)
          default: INDIVIDUAL
          enum:
            - INDIVIDUAL
            - COLETIVO
            - AFD
            - PRE_ASSINALADO
        fusoHorario:
          type: string
          description: Fuso horário
          default: SAO_PAULO
          enum:
            - MANAUS
            - NORONHA
            - RIO_BRANCO
            - SAO_PAULO
        colaboradorId:
          type: string
          description: ID do colaborador
          example: 123-456abc
        relogioId:
          type: string
          description: ID do relógio de ponto
          example: 123-456abc
        coletorId:
          type: string
          description: ID do coletor, para o caso de registro coletivo
          example: 123-456abc
        relatorioId:
          type: string
          description: >-
            ID do relatório, para o caso de registro criado por importação de
            relatório
          example: 123-456abc
        coletorDescricao:
          type: string
          description: Descrição do coletor, para o caso de registro coletivo
          example: Piso 01
        indevido:
          type: boolean
          description: O registro foi considerado indevido
          example: false
        criadoPorAjuste:
          type: boolean
          description: O registro foi criado por ajuste
          example: false
        invalidadoPorAjuste:
          type: boolean
          description: O registro foi considerado indevido devido a ajuste
          example: false
        inconsistencias:
          type: array
          description: Inconsistências (ou ocorrências) do registro
          default:
            - ENDERECO_IP_AUSENTE_OU_NAO_CADASTRADO
          items:
            type: string
            enum:
              - ENDERECO_IP_AUSENTE_OU_NAO_CADASTRADO
              - LOCALIZACAO_NAO_CONTEMPLADA_PELA_BATIDA
              - HORARIO_DE_PONTO_IDENTICO_NOS_ULTIMOS_5_DIAS
              - REGISTRO_FEITO_COM_LOCALIZACAO_POR_GPS_FALSA
              - REGISTRO_FEITO_EM_FUSO_HORARIO_DIFERENTE_DO_DEFINIDO_NO_CADASTRO
              - LIMITE_DE_REGISTROS_POR_DIA_EXCEDIDO
              - REGISTRO_FEITO_EM_DIA_NAO_CONTEMPLADO_PELO_TURNO
              - REGISTRO_FEITO_EM_TIPO_DE_DIA_DE_TRABALHO_COMPENSADO
              - REGISTRO_FEITO_EM_TIPO_DE_DIA_DE_TRABALHO_DSR
              - REGISTRO_FEITO_EM_TIPO_DE_DIA_DE_TRABALHO_FOLGA
              - REGISTRO_FEITO_EM_UM_FERIADO
              - REGISTRO_FEITO_EM_UM_PERIODO_DE_FERIAS_OU_AFASTAMENTO
              - REGISTRO_FEITO_EM_MENOS_DE_5_MINUTOS_APOS_O_ANTERIOR
              - DISPOSITIVO_RESTRITO_OU_NAO_PERTENCENTE_AO_COLABORADOR
              - >-
                O_COLABORADOR_IDENTIFICADO_PELO_RECONHECIMENTO_FACIAL_NAO_E_O_MESMO_QUE_ESTA_LOGADO
              - NAO_FOI_IDENTIFICADO_UM_ROSTO_NA_FOTO
              - BATIDA_DE_PONTO_OFFLINE_NAO_PERMITIDA
              - IMPORTACAO_AFD_DE_REGISTRO_EM_JORNADA_COM_AJUSTE
              - COLABORADOR_SEM_PERMISSAO_PARA_REGISTRAR_PONTO
        statusInconstencias:
          type: string
          description: Status das inconsistências (ou ocorrências) do registro
          default: PENDENTE
          enum:
            - APROVADO
            - PENDENTE
            - RECUSADO
      required:
        - dataHora
        - nome
        - cpf
        - tipo
        - endereco
        - NSR
        - hashCode
        - criadoEm
        - tipoOrigem
        - online
        - tipoRegistroBatida
        - tipoAmbiente
        - fusoHorario
        - criadoPorAjuste
        - invalidadoPorAjuste
        - inconsistencias
    DadosDipositivoUsuarioDto:
      type: object
      properties:
        modelo:
          type: string
          description: Modelo do dispositivo
          example: iPhone 11
        chave:
          type: string
          description: Chave de identificação do dispositivo
          example: 123-456abc
        plataforma:
          type: string
          description: Plataforma
          example: iOS
      required:
        - modelo
        - chave
        - plataforma

````