YOUK — Documentação da API
A API do YOUK permite que o sistema do parceiro (folha de pagamento, RH, ponto ou qualquer outro) envie documentos aos colaboradores de forma automática. Cada documento enviado é entregue ao colaborador diretamente no aplicativo YOUK, onde ele pode visualizar e, quando necessário, assinar digitalmente.
https://api.youk.com.br/v1
O que é um evento?
Na API do YOUK, evento é o nome dado a um documento enviado para um colaborador.
Qualquer tipo de documento pode ser enviado, sempre em formato PDF: recibo de pagamento,
recibo de férias, 13º salário, informe de rendimentos, espelho de folha de ponto, notificação de advertência
ou qualquer outro documento do seu processo, usando o tipo CUSTOMIZADO.
Fluxo de integração
-
Enviar o documento — faça um
POST /v1/eventoscom o PDF em base64 e os dados do colaborador. A resposta retorna ouiddo documento. -
Acompanhar a entrega — consulte
GET /v1/eventos/:idpara saber o status de entrega e de assinatura do documento. -
Baixar o documento assinado — quando o documento for assinável e o colaborador assinar,
baixe o PDF assinado em
GET /v1/eventos/:id/download_assinado.
Cadastro automático
Ao enviar um documento, o colaborador, o departamento, os grupos e o tipo do documento são cadastrados automaticamente caso ainda não existam. Colaborador, departamento e grupos são atualizados com o conteúdo do payload quando já existem; o tipo do documento, quando já existe, é reutilizado sem alterações. Não é necessário cadastrar o colaborador antes de enviar o primeiro documento.
Formato das requisições
A API aceita e retorna JSON com codificação UTF-8. Nas requisições POST,
envie o cabeçalho Content-Type: application/json. Todos os campos do payload são textuais
(string), exceto quando indicado como boolean, objeto ou lista.
Autenticação
Todas as requisições (exceto GET /v1/health) exigem um
token de acesso enviado no cabeçalho Authorization, no formato Bearer.
O token é obtido pelo gestor da empresa na página administrativa do YOUK (manager.youk.com.br), na área de integrações.
curl --location 'https://api.youk.com.br/v1/eventos/kr7e9QlVOZsR6Qws0hmp' \
--header 'Authorization: Bearer SEU_TOKEN'
Erros de autenticação
| Situação | Status HTTP | Corpo da resposta |
|---|---|---|
Cabeçalho Authorization ausente |
403 |
{"message":"Acesso não permitido."} |
| Token inválido, expirado ou revogado | 401 |
{"code":403,"message":"Autenticação não é válida ou está expirada."} |
Observação: no erro de token inválido, o campo code do corpo difere do status HTTP retornado.
Utilize o status HTTP como referência para o tratamento de erros.
Erros
Erros são retornados com o status HTTP correspondente e um corpo JSON com o código, a mensagem e, quando disponível, detalhes adicionais.
| Status | Significado |
|---|---|
200 |
Requisição processada com sucesso. |
400 |
Dados inválidos no payload. Corrija os campos apontados antes de reenviar. |
401 |
Token de acesso inválido, expirado ou revogado. |
403 |
Acesso não permitido (sem token, conta desativada ou recurso de outro integrador). |
404 |
Recurso não encontrado. |
409 |
Conflito com o estado atual do recurso. |
500 |
Falha interna. Tente novamente; se persistir, contate o suporte do YOUK. |
Erros de validação
Quando o payload possui campos inválidos, a resposta traz status 400 e a lista completa de
erros em details.erros. Cada item indica o campo em field, usando notação com
ponto para campos aninhados (por exemplo, colaborador.nome) e prefixo com o número do item
para listas (por exemplo, [1]grupos.descricao).
{
"code": 400,
"message": "Evento inválido",
"details": {
"valid": false,
"erros": [
{
"code": 400,
"message": "colaborador.nome - Precisa ter entre 2 e 120 caracteres",
"field": "colaborador.nome"
}
]
}
}
Endereço não encontrado
Requisições para um caminho inexistente retornam 404:
{
"code": 404,
"message": "Endereço '/v1/caminho-invalido' não encontrado.",
"details": {
"metodo": "GET"
}
}
Status da API
/v1/health
Verifica se a API está disponível. Não exige autenticação e pode ser usado em monitoramentos e testes de conectividade.
curl --location 'https://api.youk.com.br/v1/health'
{
"status": "ok"
}
Enviar documento
/v1/eventos
Envia um documento em PDF para um colaborador. O documento é entregue no aplicativo YOUK e, quando marcado como assinável, o colaborador é solicitado a assiná-lo digitalmente.
Se o colaborador, o departamento ou os grupos ainda não existirem, eles são criados automaticamente com os dados do payload; se já existirem, são atualizados. O tipo do documento é criado automaticamente quando não existe; quando já existe (localizado pela descrição), é reutilizado sem alterações. A empresa deve estar cadastrada previamente no manager.youk.com.br.
Campos do payload
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
arquivo_base64 |
string | Sim | Conteúdo do PDF codificado em base64. Precisa ser um PDF válido (o conteúdo codificado inicia com JVBERi0) com no máximo 5 MB. |
data_referencia |
string | Sim | Data de referência (competência) do documento. O formato depende do tipo do documento — veja a tabela em Tipo do documento. |
tipo |
objeto | Não (padrão CUSTOMIZADO) |
Tipo do documento enviado. Quando não informado, o documento é tratado como CUSTOMIZADO. Veja Tipo do documento. |
colaborador |
objeto | Sim | Colaborador que receberá o documento. Veja Colaborador. |
externo_id |
string | Não | Identificador do documento no sistema parceiro, com 1 a 128 caracteres. Recomendado para facilitar o rastreio. |
periodo |
objeto | Não | Período de referência do documento. Quando informado, os campos inicial e final são obrigatórios, no formato yyyy-mm para o tipo FERIAS e yyyy para os demais tipos. |
opcoes.assinavel |
boolean | Não (padrão true) |
Quando true, o colaborador deverá assinar o documento no aplicativo. |
opcoes.retificar_anteriores |
boolean | Não (padrão true) |
Quando true, documentos anteriores equivalentes (mesmo colaborador, tipo e referência) são retificados, ou seja, substituídos por este envio. |
Tipo do documento (tipo)
Indica ao YOUK qual documento está sendo enviado. Use um dos tipos pré-definidos ou
CUSTOMIZADO para qualquer outro documento.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tipo |
string | Não (padrão CUSTOMIZADO) |
Um dos valores da tabela abaixo. Valores não informados ou desconhecidos são tratados como CUSTOMIZADO. |
descricao |
string | Não | Nome do documento exibido ao colaborador, com 2 a 60 caracteres. Quando não informado, usa a descrição padrão do tipo (tabela abaixo). |
observacao |
string | Não | Observação complementar, com até 200 caracteres. |
externo_id |
string | Não | Identificador do tipo no sistema parceiro. |
uid |
string | Não | Identificador do tipo no YOUK. |
Valor de tipo.tipo |
Descrição padrão | Formato de data_referencia |
|---|---|---|
PAGAMENTO |
Recibo de pagamento | yyyy-mm |
PAGAMENTO_COMPLEMENTAR |
Recibo pagamento complementar | yyyy-mm |
FERIAS |
Recibo de férias | yyyy |
DECIMO_TERCEIRO |
Recibo de 13º | yyyy |
INFORME_RENDIMENTOS |
Informe de rendimentos | yyyy |
ESPELHO_FOLHA_PONTO |
Espelho de folha de ponto | yyyy-mm |
NOTIFICACAO_ADVERTENCIA |
Notificação de advertência | yyyy-mm-dd |
CUSTOMIZADO |
Customizado | yyyy-mm-dd |
Colaborador (colaborador)
Destinatário do documento. O colaborador é localizado pelo uid, depois pelo
externo_id e por último pelo documento na empresa informada.
Se não for encontrado, é criado automaticamente; se for encontrado, os dados são atualizados.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nome |
string | Sim | Nome completo do colaborador, com 2 a 120 caracteres. |
documento |
string | Sim | CPF válido do colaborador, com ou sem formatação. Não pode ser alterado depois do cadastro. |
documento_tipo |
string | Sim | Aceito apenas CPF. |
empresa |
objeto | Sim | Empresa do colaborador, já cadastrada no YOUK. A empresa de um colaborador já cadastrado não pode ser alterada. Veja Empresa. |
externo_id |
string | Não | Identificador do colaborador no sistema parceiro. Recomendado para manter a sincronização; não pode ser alterado enquanto o colaborador estiver ativo. |
uid |
string | Não | Identificador do colaborador no YOUK. |
ativo |
boolean | Não (padrão true) |
Colaborador inativo não pode receber documentos. |
data_admissao |
string | Não (padrão data atual) |
Data de admissão no formato yyyy-mm-dd. |
data_desligamento |
string | Não | Data de desligamento no formato yyyy-mm-dd, menor ou igual à data atual. Quando informada, o colaborador é marcado como inativo. |
codigo_cartao_ponto |
string | Não | Código do cartão de ponto do colaborador. |
contato.telefone |
string | Não | Telefone de contato, com até 20 caracteres. |
endereco |
objeto | Não | Endereço do colaborador. Veja Endereço. |
departamento |
objeto | Não | Departamento do colaborador. Veja Departamento e grupos. |
grupos |
lista de objetos | Não | Grupos do colaborador, com no máximo 5 grupos. Veja Departamento e grupos. |
Empresa (colaborador.empresa)
uid ou pelo documento — informe pelo menos um dos dois.
Cadastre a empresa previamente no manager.youk.com.br.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nome_razao |
string | Sim | Razão social da empresa, com 2 a 120 caracteres. |
documento |
string | Sim | Documento da empresa, validado conforme o documento_tipo. Exemplo de CNPJ: 11.222.333/0001-81. |
documento_tipo |
string | Sim | Aceitos: CPF, CNPJ, CAEPF e CNO. |
externo_id |
string | Não | Identificador da empresa no sistema parceiro. |
uid |
string | Não | Identificador da empresa no YOUK. |
nome_fantasia |
string | Não | Nome fantasia, com 2 a 120 caracteres. |
Endereço (endereco)
Todos os campos do endereço são opcionais.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
logradouro |
string | Não | Menos de 120 caracteres. |
numero |
string | Não | Menos de 60 caracteres. |
bairro |
string | Não | Menos de 120 caracteres. |
cidade |
string | Não | Menos de 120 caracteres. |
estado_sigla |
string | Não | Sigla de um estado brasileiro, com 2 caracteres (ex.: SP, RJ). |
pais |
string | Não | País do endereço. Aceito Brasil. |
complemento |
string | Não | Menos de 120 caracteres. |
cep |
string | Não | CEP formatado, no padrão 00000-000 (ex.: 25710-140). |
Departamento e grupos (departamento e grupos)
Estruturas idênticas usadas para organizar os colaboradores. São criados automaticamente quando
não existem e atualizados quando já existem. O departamento é ignorado quando a
descricao não é informada.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
descricao |
string | Sim | Nome do departamento ou grupo exibido no YOUK, com 2 a 60 caracteres. |
externo_id |
string | Não | Identificador no sistema parceiro. Recomendado para manter a sincronização. |
observacao |
string | Não | Até 200 caracteres. |
uid |
string | Não | Identificador no YOUK. |
Exemplo de requisição
curl --location 'https://api.youk.com.br/v1/eventos' \
--header 'Authorization: Bearer SEU_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"externo_id": "REC-2025-06-0001",
"tipo": {
"externo_id": "1",
"tipo": "PAGAMENTO"
},
"data_referencia": "2025-06",
"arquivo_base64": "JVBERi0xLjQK...",
"colaborador": {
"externo_id": "12345",
"nome": "João da Silva",
"documento": "111.444.777-35",
"documento_tipo": "CPF",
"data_admissao": "2024-01-15",
"contato": {
"telefone": "(21) 99999-0000"
},
"endereco": {
"logradouro": "Rua das Flores",
"numero": "12",
"bairro": "Centro",
"cidade": "Teresópolis",
"estado_sigla": "RJ",
"pais": "Brasil",
"complemento": "Fundos",
"cep": "25710-140"
},
"empresa": {
"externo_id": "77",
"nome_razao": "Empresa Exemplo LTDA",
"documento": "11.222.333/0001-81",
"documento_tipo": "CNPJ"
},
"departamento": {
"externo_id": "10",
"descricao": "Comercial"
},
"grupos": [
{
"externo_id": "5",
"descricao": "Supervisores"
}
]
},
"opcoes": {
"assinavel": true,
"retificar_anteriores": true
}
}'
Resposta
{
"uid": "kr7e9QlVOZsR6Qws0hmp"
}
uid retornado: ele é o identificador usado em
GET /v1/eventos/:id e em
GET /v1/eventos/:id/download_assinado.
Erros
| Status | Situação |
|---|---|
400 |
Payload inválido — a lista de campos com problema é retornada em details.erros (veja Erros). |
400 |
O colaborador está inativo, a empresa está desativada ou o tipo do documento está desativado. |
404 |
Empresa não encontrada com os dados informados. |
403 |
Conta desativada ou limite de colaboradores da licença atingido. |
409 |
Conflito ao tentar alterar o externo_id de um departamento ou grupo já existente. |
500 |
Falha interna ao salvar o documento. |
Consultar documento
/v1/eventos/:id
Consulta a situação de um documento enviado: se já foi entregue ao colaborador e, quando assinável,
se já foi assinado. Substitua :id pelo uid retornado no envio do documento.
curl --location 'https://api.youk.com.br/v1/eventos/kr7e9QlVOZsR6Qws0hmp' \
--header 'Authorization: Bearer SEU_TOKEN'
{
"id": "kr7e9QlVOZsR6Qws0hmp",
"status_entrega": "ENTREGUE",
"assinatura": {
"assinavel": true,
"status": "PENDENTE"
}
}
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
id |
string | Identificador do documento no YOUK. |
status_entrega |
string | Situação da entrega ao colaborador (tabela abaixo). |
assinatura.assinavel |
boolean | Indica se o documento exige assinatura do colaborador. |
assinatura.status |
string | Situação da assinatura: PENDENTE, REJEITADO ou ASSINADO. Não é retornado quando o documento não é assinável. |
Valor de status_entrega |
Significado |
|---|---|
AGUARDANDO_APROVACAO |
O colaborador ainda não aceitou o vínculo com a empresa; o documento fica aguardando essa etapa para ser enviado. |
REJEITADO |
O colaborador rejeitou o vínculo com a empresa; o documento fica retido até que o vínculo seja aceito. |
ENTREGUE |
Documento entregue ao colaborador e disponível no aplicativo YOUK. |
Valor de assinatura.status |
Significado |
|---|---|
PENDENTE |
Aguardando a assinatura do colaborador no aplicativo. |
REJEITADO |
Documento rejeitado pelo colaborador; em processo de ajuste com o gestor. |
ASSINADO |
Documento assinado; o PDF assinado está disponível para download. |
Erros
| Status | Situação |
|---|---|
404 |
Documento não encontrado, cancelado, ou já retificado/removido por um envio mais recente. |
403 |
O documento não pertence a esta integração — a consulta só está disponível para documentos enviados pela mesma integração. |
500 |
Falha interna na consulta. |
Baixar documento assinado
/v1/eventos/:id/download_assinado
Baixa o PDF assinado pelo colaborador. Disponível apenas para documentos enviados como assináveis
(opcoes.assinavel = true) e que já foram assinados — acompanhe pelo campo
assinatura.status da consulta.
Substitua :id pelo uid retornado no envio do documento.
curl --location 'https://api.youk.com.br/v1/eventos/kr7e9QlVOZsR6Qws0hmp/download_assinado' \
--header 'Authorization: Bearer SEU_TOKEN'
{
"arquivo": "JVBERi0xLjQK..."
}
O campo arquivo contém o PDF assinado codificado em base64.
Erros
| Status | Situação |
|---|---|
400 |
O documento não é assinável. |
400 |
O documento ainda não foi assinado pelo colaborador. |
404 |
Documento não encontrado, cancelado, já retificado/removido, ou arquivo assinado indisponível. |
403 |
O documento não pertence a esta integração. |
500 |
Falha interna no download. |