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.

URL base
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

  1. Enviar o documento — faça um POST /v1/eventos com o PDF em base64 e os dados do colaborador. A resposta retorna o uid do documento.
  2. Acompanhar a entrega — consulte GET /v1/eventos/:id para saber o status de entrega e de assinatura do documento.
  3. 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.

Importante: a empresa nunca é criada pela API. Ela precisa estar cadastrada previamente na página administrativa (manager.youk.com.br). A API apenas localiza a empresa já existente pelos dados informados no payload.

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.

Esta documentação também está disponível em formato JSON, para consumo por ferramentas e agentes: https://api.youk.com.br/documentacao.json.

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.

Exemplo de requisição autenticada
curl --location 'https://api.youk.com.br/v1/eventos/kr7e9QlVOZsR6Qws0hmp' \
--header 'Authorization: Bearer SEU_TOKEN'
Guarde o token com segurança. Gerar um novo token na página administrativa invalida o token anterior. Não exponha o token em aplicações de front-end nem em repositórios de código.

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

Exemplo — 400 Bad Request
{
    "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:

Exemplo — 404 Not Found
{
    "code": 404,
    "message": "Endereço '/v1/caminho-invalido' não encontrado.",
    "details": {
        "metodo": "GET"
    }
}

Status da API

GET /v1/health

Verifica se a API está disponível. Não exige autenticação e pode ser usado em monitoramentos e testes de conectividade.

Exemplo de requisição
curl --location 'https://api.youk.com.br/v1/health'
Resposta — 200 OK
{
    "status": "ok"
}

Enviar documento

POST /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)

A empresa não é criada nem alterada por este endpoint. Ela é localizada pelo 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
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

200 OK
{
    "uid": "kr7e9QlVOZsR6Qws0hmp"
}
Guarde o 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

GET /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.

Exemplo de requisição
curl --location 'https://api.youk.com.br/v1/eventos/kr7e9QlVOZsR6Qws0hmp' \
--header 'Authorization: Bearer SEU_TOKEN'
Resposta — 200 OK
{
    "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

GET /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.

Exemplo de requisição
curl --location 'https://api.youk.com.br/v1/eventos/kr7e9QlVOZsR6Qws0hmp/download_assinado' \
--header 'Authorization: Bearer SEU_TOKEN'
Resposta — 200 OK
{
    "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.