POST
/api/v1/espelhos-pontoSolicitar geração de Espelho de Ponto
Recebe o mesmo snapshot fechado da jornada e inicia a geração assíncrona de um PDF por empregado. Cada colaborador pode trazer espelho_exibicao, com a grade Data, Escala, Marcações, Ocorrência, Motivo e Resultados e o bloco ordenado de totais; esse bloco é sempre mantido integralmente na mesma página. A trilha opcional aprovacao.gestor e aprovacao.colaborador continua separada; quando o aceite do colaborador ainda não ocorreu, envie colaborador=null, e o PDF indicará que o aceite digital não foi registrado. O YouuREP calcula o código de integridade a partir do snapshot recebido, acrescenta o registro e o hash do INPI e assina obrigatoriamente cada PDF em PAdES. Para a mesma empresa, empregado e período, uma nova versão preliminar substitui a anterior somente após ser persistida; quando gestor e colaborador constam no snapshot, o arquivo é definitivo e solicitações futuras reutilizam sua geração. Requer arquivos:write e aceita Idempotency-Key. Se a geração idempotente anterior tiver falhado, uma nova chamada recoloca a mesma geração na fila sem criar outro identificador.
Autenticação:
🔑 API Key
Corpo
empresa_idnumberObrigatório
ID da empresa no YouuREP.
snapshotobjectObrigatório
Snapshot completo e validado do período. colaboradores[].espelho_exibicao é opcional e define a apresentação fiel da grade e dos totais; clientes antigos sem esse bloco continuam compatíveis com o layout derivado dos campos fiscais. Em colaboradores[].aprovacao, gestor e colaborador são opcionais e podem ser null. Gestor aceita nome, papel e aprovado_em; colaborador aceita nome, documento e aceito_em. Datas devem estar em ISO 8601 com offset. Não envie um aceite que não tenha sido autenticado.
assinar_espelhobooleanCampo legado mantido por compatibilidade. A assinatura PAdES é sempre aplicada, mesmo quando o campo é omitido ou enviado como false.
Respostas
{
"ok": true,
"data": {
"geracao_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"criado": true,
"correlacao_id": "36c9f170-8120-4d70-a36a-830e08d37071"
}
}curl --request POST \
'https://rep-gestor.youuponto.com/api/v1/espelhos-ponto' \
--header 'x-api-key: yk_sua_api_key' \
--header 'Content-Type: application/json' \
--data '{
"empresa_id": 1,
"snapshot": {
"schema_version": "1.0",
"snapshot_id": "550e8400-e29b-41d4-a716-446655440000",
"generated_at": "2026-07-24T13:18:00-03:00",
"source_system": "YOUPONTO",
"empresa": {
"id_externo": "empresa-demo",
"rep_p_id": 1,
"razao_social": "Empresa Demonstração Ltda.",
"nome_fantasia": "Empresa Demonstração",
"cnpj_cpf": "46630611000114"
},
"periodo": {
"inicio": "2026-07-01",
"fim": "2026-07-31"
},
"programa": {
"nome": "YouuPonto",
"versao": "1.0",
"desenvolvedor_tipo": "1",
"desenvolvedor_documento": "46630611000114",
"desenvolvedor_nome": "YOUU JOB TECNOLOGIA LTDA",
"desenvolvedor_email": "youujob@youujob.com"
},
"reps": [],
"colaboradores": [
{
"id_externo": "2c31f45a-1437-4bb5-9032-00cd5248b3fa",
"rep_p_id": 123,
"nome": "Bruno Fabio",
"cpf": "12345678909",
"matricula": "00123",
"data_admissao": "2024-01-15",
"cargo": "Analista",
"horarios_contratuais": [],
"dias": [],
"totais": {
"Horas Previstas": "184:00",
"Horas Trabalhadas": "176:21",
"Horas Extras": "00:00",
"Indenização intrajornada": "00:00",
"Banco de Horas": "+04:00",
"Adicional Noturno": "00:00",
"Faltas": "00:00",
"Déficits de jornada": "00:00"
},
"espelho_exibicao": {
"linhas": [
{
"data": "2026-07-21",
"data_rotulo": "21/07 Ter",
"escala": "5x2",
"marcacoes": "08:00 (Auto), 12:00 (Auto), 13:00 (Auto), 17:00 (Auto)",
"ocorrencias": [],
"ocorrencia_fallback": [],
"motivo": "",
"resultados": [
"Horas Trabalhadas: 08:00",
"Horas Previstas: 08:00"
]
}
],
"totais": [
{
"descricao": "Horas Previstas",
"total": "184:00"
},
{
"descricao": "Horas Trabalhadas",
"total": "176:21"
},
{
"descricao": "Horas Extras",
"total": "00:00"
},
{
"descricao": "Indenização intrajornada",
"total": "00:00"
},
{
"descricao": "Banco de Horas",
"total": "+04:00"
},
{
"descricao": "Adicional Noturno",
"total": "00:00"
},
{
"descricao": "Faltas",
"total": "00:00"
},
{
"descricao": "Déficits de jornada",
"total": "00:00"
}
]
},
"aprovacao": {
"gestor": {
"nome": "Administrador YouuPonto",
"papel": "superadmin",
"aprovado_em": "2026-07-21T20:38:00-03:00"
},
"colaborador": null
}
}
]
},
"assinar_espelho": true
}'Exemplos de Resposta
{
"ok": true,
"data": {
"geracao_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending",
"criado": true,
"correlacao_id": "36c9f170-8120-4d70-a36a-830e08d37071"
}
}