Skip to main content
Faceponto is a Brazilian electronic time and attendance platform that records employee clock-ins and clock-outs through facial recognition, on mobile devices and shared tablets. It manages employee registries, work schedules and absences, and validates each punch against the employee’s registered photo, location and device.

Configuring Faceponto as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Faceponto option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need the email and password of a Faceponto user for this connection. These are the same credentials used to sign in to Faceponto itself, and the data Nekt can extract is limited to what that user is allowed to see, so we recommend using an account with administrative access. The following configurations are available:
  • Email: Email address used to sign in to Faceponto.
  • Password: Password for the Faceponto account.
  • Start Date: The earliest date from which punches and absences will be synced. Defaults to 90 days ago when left empty.
  • Lookback Days: (Default: 30) How many days before the last synced date to re-read on each run. Absences are dated by the day the employee was absent, but are often entered into Faceponto weeks later. Since Faceponto offers no filter on the entry date, re-reading a trailing window is the only way to capture them.
  • Requests Per Minute: (Default: 9) How many requests per minute the connector is allowed to send. Only raise this if Faceponto has lifted the rate limit for your account.
Once you’re done, click Next.
Faceponto limits each account to 10 requests per minute and returns at most 15 records per request. The connector paces itself to stay within this limit, which means large date ranges take a long time to sync: roughly one hour of syncing per month of punch history. Scheduled runs after the first one only fetch new data and are much faster. Choose your Start Date with this in mind.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.
Photos and attachments (foto, anexo) are returned by Faceponto as temporary links that expire within the hour. The connector stores the stable part of the link, which identifies the file but cannot be opened directly.

Fields by stream

Below you’ll find all available data streams from Faceponto and their corresponding fields:
Employees registered in the account. Synced in full on every run.Key Fields:
  • colaborador_id - Unique identifier of the employee in Faceponto
  • nome - Full name of the employee
  • cpf - Employee’s CPF (Brazilian taxpayer number)
  • matricula - Payroll registration number identifying the employee
Role and Location:
  • nome_funcao - Name of the job role the employee performs
  • nomecontratante - Name of the contracting entity or work site the employee is assigned to
  • nome_superlocacao - Name of the parent location grouping the employee’s work site
  • nome_sublocacao - Name of the sub-location within the employee’s work site
Schedule and Status:
  • carga_id - Identifier of the working-hours load (carga horária) assigned to the employee
  • folga - Number of rest days in the employee’s work cycle
  • foto - URL of the employee’s reference photo used for facial recognition
  • isAssinatura - Whether the employee has a registered handwritten signature
  • isTermo - Whether the employee has accepted the system’s terms of use
Work schedules (shift patterns) defined in the account. Synced in full on every run.Key Fields:
  • escala_id - Unique identifier of the work schedule, as a UUID
  • nome - Name of the work schedule, such as “Escala 12x36 (Entrada 06:00)”
  • tipo - Numeric code for the schedule type (weekly, special or on-call shift)
  • qt_colaboradores - Number of employees currently assigned to this schedule
The day-by-day expected working hours that make up each work schedule. One row per schedule and day.Key Fields:
  • escala_id - Identifier of the work schedule this day belongs to, matching escalas.escala_id
  • rel_escala_horario_id - Unique identifier of the link between the schedule and this day’s hours
  • horario_padrao_id - Identifier of the standard hours pattern applied on this day, as a UUID
  • dia - Day the hours apply to
  • horario - Comma-separated clock times the employee is expected to punch on this day, such as “06:00,12:00,13:00,18:00”. Empty on a rest day
Schedule Attributes:
  • escala_nome - Name of the work schedule this day belongs to
  • escala_tipo - Numeric code for the schedule type
  • escala_tipo_string - Human-readable schedule type, such as “Semanal”, “Especial” or “Plantão”
  • escala_tolerancia - Tolerance in minutes allowed around the expected punch times before a punch counts as late or early
  • escala_is_show_folha - Whether rest days are shown on the timesheet for this schedule
Catalogue of reasons an absence can be justified with. A small lookup table that gives faltas.justificativa_id its meaning.Key Fields:
  • justificativa_id - Unique identifier of the justification type
  • nome_justificativa - Human-readable name of the justification, such as “Atestado Médico” or “Licença de Paternidade”
Absences registered against employees. Supports incremental sync on data_falta.Key Fields:
  • falta_id - Unique identifier of the absence record
  • data_falta - Day the employee was absent. Used as the incremental replication key. This is the date of the absence itself, not the date the record was created
  • colaborador_id - Identifier of the absent employee
Employee Information:
  • nome - Full name of the employee
  • cpf - Employee’s CPF (Brazilian taxpayer number)
  • matricula - Payroll registration number of the employee
  • nome_funcao - Name of the job role the employee performs
  • nomecontratante - Name of the contracting entity or work site the employee is assigned to
  • foto - URL of the employee’s reference photo
Absence Attributes:
  • justificativa_id - Identifier of the justification given, matching justificativas.justificativa_id
  • isJustificada - Whether the absence was justified. Unjustified absences are always full-day
  • isAnexo - Whether a supporting document, such as a medical certificate, is attached
  • isAssinatura - Whether the absence record carries the employee’s signature
  • isTermo - Whether the employee accepted the terms attached to the absence
Full detail for each absence listed in the faltas stream. Requires the faltas stream to be selected as well.Key Fields:
  • falta_id - Unique identifier of the absence record
  • data_falta - Day the employee was absent
  • data_cadastro - Moment the absence record was created in Faceponto, often days after the absence itself
  • ativo - Whether the absence record is still active. Deactivated records remain readable
Employee Information:
  • colaborador_id - Identifier of the absent employee
  • colaborador_nome - Full name of the absent employee
  • colaborador_cpf - Absent employee’s CPF (Brazilian taxpayer number)
  • colaborador_matricula - Payroll registration number of the absent employee
  • colaborador_funcao_nome - Name of the job role the absent employee performs
  • colaborador_locacao_nome - Name of the work location the absent employee is assigned to
Absence Attributes:
  • isDiaInteiro - Whether the absence covers the entire working day. When false, duracao holds the partial length
  • isJustificada - Whether the absence was justified
  • isDescontar - Whether the absence should be deducted from the employee’s pay
  • duracao - Length of a partial absence, as HH:mm
  • justificativa_id - Identifier of the justification given, matching justificativas.justificativa_id
  • nome_justificativa - Name of the justification given for the absence
  • descricao - Free-text description entered alongside the absence
Medical Certificate:
  • cid - ICD code (Classificação Internacional de Doenças) from the medical certificate
  • crm - Registration number of the doctor who issued the medical certificate
  • especialidade_id - Identifier of the medical speciality recorded for the absence
  • especialidade_medica - Name of the medical speciality recorded for the absence
Attachments and Audit:
  • anexo - URL of the document attached to the absence
  • observacao - Note attached to the day of the absence, as a JSON object
  • rastreio - Audit trail recording who created and last changed the absence and when, as a JSON object
Individual clock-in and clock-out punches. Supports incremental sync on data_ponto. This is by far the highest-volume stream.Key Fields:
  • ponto_id - Unique identifier of the punch record
  • data_ponto - Moment the punch was registered. Used as the incremental replication key
  • tipo - Direction of the punch: “Entrada” for a clock-in, “Saída” for a clock-out
  • colaborador_id - Identifier of the employee who registered the punch
Employee Information:
  • nome - Full name of the employee
  • cpf - Employee’s CPF (Brazilian taxpayer number)
  • matricula - Payroll registration number of the employee
  • nomecontratante - Name of the contracting entity or work site the employee is assigned to
Capture Details:
  • latitude - Latitude captured by the device when the punch was registered, when location was available
  • longitude - Longitude captured by the device when the punch was registered, when location was available
  • foto - URL of the photo taken at the moment of the punch