Skip to content

Candidaturas & Funil ​

Uma candidatura representa a inscrição de um candidato em uma vaga. Ela nasce na etapa applied do pipeline da vaga e percorre o funil até um desfecho: contratação, recusa ou desistência. O status da candidatura é sempre derivado da etapa em que ela se encontra — não é possível alterá-lo diretamente.

Além da consulta e da atualização de dados básicos (avaliação, origem, carta de apresentação), esta API oferece as ações do funil (mover, rejeitar, contratar, colocar em espera) e as notas de colaboração do time, com controle de visibilidade.

Headers obrigatórios

Todas as requisições devem incluir o header X-Ats-Id (UUID) com o identificador da instância ATS, além de Authorization: Bearer {token} com o token de um usuário do staff (guard atsUser). O acesso é limitado às empresas às quais o usuário pertence, conforme o seu papel (RBAC).


Estrutura de Dados Principal ​

Uma candidatura contém as seguintes informações principais:

CampoTipoDescrição
atsJobIdNumberID da vaga.
atsCandidateIdNumberID do candidato (pool de talentos da instância).
atsPipelineIdNumberID do pipeline da vaga.
atsStageIdNumberID da etapa atual.
statusEnumactive, on_hold, hired, rejected ou withdrawn (derivado da etapa).
sourceEnumOrigem: job_board, career_site, referral, sourced, import, agency ou other.
ratingNumberAvaliação do staff, de 1 a 5 (nula até a primeira avaliação).
coverLetterStringCarta de apresentação enviada pelo candidato.
atsRejectionReasonIdNumberID do motivo de recusa (quando rejeitada).
rejectionNoteStringObservação livre registrada na recusa.
appliedAtStringData/hora da inscrição (ISO 8601).
stageChangedAtStringData/hora da última mudança de etapa.
lastActivityAtStringData/hora da última atividade na candidatura.
hiredAt / rejectedAt / withdrawnAtStringPreenchidos no respectivo desfecho.

Consulta e Edição ​

Listar Candidaturas ​

Lista as candidaturas da instância, com paginação e filtros. Usuários sem papel de administração veem apenas as candidaturas das empresas às quais têm acesso.

http
GET /v1/ats/user/applications

Parâmetros de Query ​

NomeTipoObrigatórioDescrição
pagenumberNãoO número da página (mínimo: 1).
perPagenumberNãoItens por página (entre 1 e 100, padrão: 25).
orderByenumNãoOrdena por id, appliedAt, lastActivityAt ou stageChangedAt.
orderDirectionenumNãoDireção da ordenação: asc ou desc.
atsJobIdnumberNãoFiltra por vaga.
atsStageIdnumberNãoFiltra por etapa atual.
statusenumNãoFiltra por status: active, on_hold, hired, rejected ou withdrawn.
sourceenumNãoFiltra por origem (job_board, career_site, referral, sourced, import, agency, other).
ratingnumberNãoFiltra por avaliação (1 a 5).
searchstringNãoBusca por nome ou e-mail do candidato (máx. 150 caracteres).
appliedFromstringNãoInscrições a partir desta data (YYYY-MM-DD).
appliedTostringNãoInscrições até esta data (YYYY-MM-DD).

Exemplo de Requisição ​

bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/applications?atsJobId=1&status=active&orderBy=appliedAt&orderDirection=desc" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Accept: application/json"

Respostas ​

200 OK

Retorna um objeto de paginação contendo a lista de candidaturas, cada uma com a etapa atual, a vaga e o candidato.

json
{
  "meta": {
    "currentPage": 1,
    "perPage": 25
  },
  "data": [
    {
      "id": 1,
      "atsId": 1,
      "atsJobId": 1,
      "atsCandidateId": 1,
      "atsPipelineId": 1,
      "atsStageId": 1,
      "status": "active",
      "source": "job_board",
      "rating": null,
      "appliedAt": "2026-09-11T02:34:31.641+00:00",
      "stageChangedAt": "2026-09-11T02:34:31.641+00:00",
      "lastActivityAt": "2026-09-11T02:35:46.183+00:00",
      "createdAt": "2026-09-11T02:34:31.648+00:00",
      "updatedAt": "2026-09-11T02:35:46.187+00:00",
      "atsStage": {
        "id": 1,
        "name": "New",
        "type": "applied",
        "position": 1
      },
      "atsJob": {
        "id": 1,
        "title": "Desenvolvedor Full Stack Pleno",
        "atsCompanyId": 1
      },
      "atsCandidate": {
        "id": 1,
        "firstName": "Maria",
        "lastName": "Silva",
        "email": "maria.silva@email.com",
        "headline": "Desenvolvedora Full Stack Plena"
      }
    }
  ]
}

422 Unprocessable Entity

Erro de validação nos parâmetros de consulta.

json
{
  "errors": [
    {
      "message": "The rating field must be between 1 and 5",
      "rule": "range",
      "field": "rating"
    }
  ]
}

Obter Candidatura por ID ​

Recupera a visão completa de uma candidatura: dados do candidato (perfil, experiências, formação, links), currículo anexado, respostas às perguntas da vaga, notas, entrevistas, avaliações e o histórico de transições de etapa.

http
GET /v1/ats/user/applications/:id

Parâmetros de Rota ​

NomeTipoObrigatórioDescrição
idnumberSimO ID da candidatura.

Exemplo de Requisição ​

bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/applications/1" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Accept: application/json"

Respostas ​

200 OK

Retorna a candidatura completa com todos os relacionamentos.

json
{
  "id": 1,
  "atsId": 1,
  "atsJobId": 1,
  "atsCandidateId": 1,
  "atsPipelineId": 1,
  "atsStageId": 1,
  "status": "active",
  "source": "job_board",
  "sourceDetails": {},
  "referredByUserId": null,
  "atsFileId": 1,
  "coverLetter": "Olá! Tenho 5 anos de experiência com desenvolvimento full stack, atuando principalmente com Node.js, TypeScript e PostgreSQL.",
  "rating": null,
  "atsRejectionReasonId": null,
  "rejectionNote": null,
  "appliedAt": "2026-09-11T02:34:31.641+00:00",
  "stageChangedAt": "2026-09-11T02:34:31.641+00:00",
  "lastActivityAt": "2026-09-11T02:35:46.183+00:00",
  "hiredAt": null,
  "rejectedAt": null,
  "withdrawnAt": null,
  "createdAt": "2026-09-11T02:34:31.648+00:00",
  "updatedAt": "2026-09-11T02:35:46.187+00:00",
  "atsJob": {
    "id": 1,
    "title": "Desenvolvedor Full Stack Pleno",
    "atsCompanyId": 1
  },
  "atsCandidate": {
    "id": 1,
    "firstName": "Maria",
    "lastName": "Silva",
    "email": "maria.silva@email.com",
    "phone": "+55 11 98765-4321",
    "headline": "Desenvolvedora Full Stack Plena",
    "summary": "Profissional com 5 anos de experiência em desenvolvimento web.",
    "city": "São Paulo",
    "country": "Brasil",
    "timezone": "America/Sao_Paulo",
    "skills": ["Node.js", "TypeScript", "React", "PostgreSQL"],
    "experiences": [
      {
        "title": "Desenvolvedora Full Stack Plena",
        "company": "Tech Corp",
        "current": true,
        "endDate": null,
        "startDate": "2022-03",
        "description": "Desenvolvimento de APIs REST e interfaces web."
      }
    ],
    "educations": [
      {
        "degree": "Bacharelado em Ciência da Computação",
        "endDate": "2019-12",
        "startDate": "2016-02",
        "institution": "Universidade de São Paulo"
      }
    ],
    "links": {
      "github": "https://github.com/mariasilva",
      "linkedin": "https://www.linkedin.com/in/maria-silva"
    },
    "createdAt": "2026-09-11T01:19:59.812+00:00"
  },
  "atsApplicationNotes": [],
  "atsEvaluations": [],
  "atsInterviews": [],
  "referredByUser": null,
  "atsStage": {
    "id": 1,
    "name": "New",
    "type": "applied",
    "position": 1
  },
  "atsFile": {
    "id": 1,
    "name": "curriculo.pdf",
    "extension": "pdf",
    "mime": "application/pdf",
    "size": 115579,
    "url": "https://s3.sa-east-1.amazonaws.com/tavares-dev/files/7af7ff84-4b0e-4ee8-becb-308d88dc7997.pdf",
    "hash": "7af7ff84-4b0e-4ee8-becb-308d88dc7997"
  },
  "atsApplicationStageHistories": [
    {
      "id": 1,
      "atsApplicationId": 1,
      "fromStageId": null,
      "toStageId": 1,
      "changedByUserId": null,
      "secondsInFrom": null,
      "changedAt": "2026-09-11T02:34:31.641+00:00",
      "toStage": {
        "id": 1,
        "name": "New",
        "type": "applied"
      },
      "fromStage": null
    }
  ],
  "atsRejectionReason": null,
  "atsApplicationAnswers": [
    {
      "id": 1,
      "atsJobQuestionId": 1,
      "valueText": "Sim, tenho disponibilidade para início imediato.",
      "valueJson": null,
      "atsFileId": null,
      "atsJobQuestion": {
        "id": 1,
        "label": "Você tem experiência com TypeScript?",
        "type": "single_choice"
      }
    }
  ]
}

404 Not Found

Ocorre quando a candidatura não existe na instância.

Atualizar Candidatura ​

Atualiza os dados gerenciados pelo staff: avaliação, origem e carta de apresentação. A etapa e o status não são alterados por este endpoint — use as ações do funil.

http
PUT /v1/ats/user/applications/:id

Payload (Body) ​

AtributoTipoObrigatórioDescrição
ratingnumberNãoAvaliação da candidatura, de 1 a 5.
sourceenumNãoOrigem: job_board, career_site, referral, sourced, import, agency ou other.
coverLetterstringNãoCarta de apresentação.

Exemplo de Requisição ​

bash
curl -X PUT "https://api.us.basis.tavares.in/v1/ats/user/applications/1" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "rating": 4,
    "source": "career_site"
  }'

Respostas ​

204 No Content

Atualização concluída com sucesso.

422 Unprocessable Entity

Erro de validação nos campos enviados (por exemplo, rating fora do intervalo 1–5).

json
{
  "errors": [
    {
      "message": "The rating field must be between 1 and 5",
      "rule": "range",
      "field": "rating"
    }
  ]
}

404 Not Found

Ocorre quando a candidatura não existe na instância.

Obter Kanban da Vaga ​

Retorna as etapas do pipeline da vaga, em ordem, cada uma com seus cartões de candidatura — o formato exato para montar o quadro Kanban no frontend.

http
GET /v1/ats/user/jobs/:jobId/kanban

Parâmetros de Rota ​

NomeTipoObrigatórioDescrição
jobIdnumberSimO ID da vaga.

Exemplo de Requisição ​

javascript
fetch('https://api.us.basis.tavares.in/v1/ats/user/jobs/1/kanban', {
  headers: {
    'X-Ats-Id': '3fa85f64-5717-4562-b3fc-2c963f66afa6',
    'Authorization': 'Bearer {token}'
  }
})
  .then(response => response.json())
  .then(data => console.log(data));

Respostas ​

200 OK

Retorna um array de etapas com suas candidaturas em applications.

json
[
  {
    "id": 1,
    "name": "New",
    "type": "applied",
    "position": 1,
    "applications": [
      {
        "id": 1,
        "atsStageId": 1,
        "atsCandidateId": 1,
        "rating": 4,
        "status": "active",
        "appliedAt": "2026-09-11T02:34:31.641+00:00",
        "atsCandidate": {
          "id": 1,
          "firstName": "Maria",
          "lastName": "Silva",
          "email": "maria.silva@email.com"
        }
      }
    ]
  },
  {
    "id": 2,
    "name": "Screening",
    "type": "screening",
    "position": 2,
    "applications": []
  }
]

404 Not Found

Ocorre quando a vaga não existe na instância.


Ações do Funil ​

As ações do funil conduzem a candidatura pelo pipeline. Todas exigem papel de gestão na empresa da vaga e seguem as regras abaixo.

AçãoRotaEfeito
movePATCH /v1/ats/user/applications/:id/moveMove para a etapa informada em toStageId.
rejectPATCH /v1/ats/user/applications/:id/rejectMove para a etapa rejected, com motivo e nota.
hirePATCH /v1/ats/user/applications/:id/hireMove para a etapa hired.
holdPATCH /v1/ats/user/applications/:id/holdDefine o status on_hold, sem mudar de etapa.

Regras de negócio:

  • Candidaturas hired ou withdrawn estão encerradas e não aceitam movimentação (422 APPLICATION_CLOSED).
  • A etapa de destino deve pertencer ao pipeline da vaga (422 STAGE_PIPELINE_MISMATCH).
  • Em pipelines com isEnforceSequential, só é permitido avançar ou voltar uma etapa por vez (422 INVALID_STAGE_MOVE). Etapas terminais (hired/rejected) são sempre permitidas.
  • O status é derivado do tipo da etapa: hired define status hired + hiredAt; rejected define status rejected + rejectedAt; sair de rejected/on_hold para uma etapa não terminal reativa a candidatura (active).
  • Toda transição grava um registro de histórico (from/to, quem moveu e secondsInFrom, o tempo em segundos na etapa anterior) — a base das métricas de tempo por etapa e time-to-hire.

Mover de Etapa ​

Move a candidatura para outra etapa do pipeline da vaga.

http
PATCH /v1/ats/user/applications/:id/move

Payload (Body) ​

AtributoTipoObrigatórioDescrição
toStageIdnumberSimID da etapa de destino (deve existir na instância e pertencer ao pipeline da vaga).

Exemplo de Requisição ​

bash
curl -X PATCH "https://api.us.basis.tavares.in/v1/ats/user/applications/1/move" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "toStageId": 2
  }'

Respostas ​

200 OK

Retorna a candidatura atualizada, com a nova etapa, stageChangedAt e lastActivityAt renovados.

json
{
  "id": 1,
  "atsId": 1,
  "atsJobId": 1,
  "atsCandidateId": 1,
  "atsPipelineId": 1,
  "atsStageId": 2,
  "status": "active",
  "source": "career_site",
  "sourceDetails": {},
  "referredByUserId": null,
  "atsFileId": 1,
  "coverLetter": "Tenho mais de 5 anos de experiência com desenvolvimento web, atuando principalmente com Node.js, TypeScript e PostgreSQL.",
  "rating": 4,
  "atsRejectionReasonId": null,
  "rejectionNote": null,
  "appliedAt": "2026-09-11T02:34:31.641+00:00",
  "stageChangedAt": "2026-09-11T03:11:59.838+00:00",
  "lastActivityAt": "2026-09-11T03:11:59.838+00:00",
  "hiredAt": null,
  "rejectedAt": null,
  "withdrawnAt": null,
  "createdAt": "2026-09-11T02:34:31.648+00:00",
  "updatedAt": "2026-09-11T03:11:59.843+00:00"
}

422 Unprocessable Entity

Regra de negócio violada ou payload inválido.

json
{
  "code": "APPLICATION_CLOSED"
}
json
{
  "code": "STAGE_PIPELINE_MISMATCH"
}
json
{
  "code": "INVALID_STAGE_MOVE"
}

Rejeitar Candidatura ​

Move a candidatura para a etapa rejected do pipeline, registrando o motivo da recusa (catálogo de motivos) e uma nota livre.

http
PATCH /v1/ats/user/applications/:id/reject

Payload (Body) ​

AtributoTipoObrigatórioDescrição
atsRejectionReasonIdnumberNãoID do motivo de recusa (deve existir na instância).
rejectionNotestringNãoObservação livre sobre a recusa (máx. 2000 caracteres).

Exemplo de Requisição ​

bash
curl -X PATCH "https://api.us.basis.tavares.in/v1/ats/user/applications/1/reject" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "atsRejectionReasonId": 1,
    "rejectionNote": "Candidato com bom perfil técnico, porém sem a experiência mínima exigida em Node.js e TypeScript para esta posição."
  }'

Respostas ​

200 OK

Retorna a candidatura com status rejected, etapa rejected e rejectedAt preenchido.

json
{
  "id": 1,
  "atsId": 1,
  "atsJobId": 1,
  "atsCandidateId": 1,
  "atsPipelineId": 1,
  "atsStageId": 6,
  "status": "rejected",
  "source": "career_site",
  "sourceDetails": {},
  "referredByUserId": null,
  "atsFileId": 1,
  "coverLetter": "Tenho mais de 5 anos de experiência com desenvolvimento web, atuando principalmente com Node.js, TypeScript e PostgreSQL.",
  "rating": 4,
  "atsRejectionReasonId": 1,
  "rejectionNote": "Candidato com bom perfil técnico, porém sem a experiência mínima exigida em Node.js e TypeScript para esta posição.",
  "appliedAt": "2026-09-11T02:34:31.641+00:00",
  "stageChangedAt": "2026-09-11T03:14:57.028+00:00",
  "lastActivityAt": "2026-09-11T03:14:57.103+00:00",
  "hiredAt": null,
  "rejectedAt": "2026-09-11T03:14:57.028+00:00",
  "withdrawnAt": null,
  "createdAt": "2026-09-11T02:34:31.648+00:00",
  "updatedAt": "2026-09-11T03:14:57.106+00:00"
}

422 Unprocessable Entity

Motivo de recusa inexistente na instância ou candidatura encerrada (APPLICATION_CLOSED).

Contratar Candidato ​

Move a candidatura para a etapa hired do pipeline, encerrando o processo com sucesso.

http
PATCH /v1/ats/user/applications/:id/hire

Exemplo de Requisição ​

bash
curl -X PATCH "https://api.us.basis.tavares.in/v1/ats/user/applications/1/hire" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}"

Respostas ​

200 OK

Retorna a candidatura com status hired, etapa hired e hiredAt preenchido.

json
{
  "id": 1,
  "atsId": 1,
  "atsJobId": 1,
  "atsCandidateId": 1,
  "atsPipelineId": 1,
  "atsStageId": 5,
  "status": "hired",
  "source": "career_site",
  "rating": 4,
  "appliedAt": "2026-09-11T02:34:31.641+00:00",
  "stageChangedAt": "2026-09-11T03:16:28.423+00:00",
  "lastActivityAt": "2026-09-11T03:16:28.423+00:00",
  "hiredAt": "2026-09-11T03:16:28.423+00:00",
  "rejectedAt": null,
  "withdrawnAt": null
}

422 Unprocessable Entity

Ocorre quando a candidatura já está encerrada (APPLICATION_CLOSED).

json
{
  "code": "APPLICATION_CLOSED"
}

Colocar em Espera ​

Define o status da candidatura como on_hold, sem alterar a etapa atual. Útil para pausar processos sem recusar o candidato. Para retomar, basta mover a candidatura para uma etapa não terminal — o status volta a ser active.

http
PATCH /v1/ats/user/applications/:id/hold

Exemplo de Requisição ​

bash
curl -X PATCH "https://api.us.basis.tavares.in/v1/ats/user/applications/1/hold" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}"

Respostas ​

200 OK

Retorna a candidatura com status on_hold e lastActivityAt atualizado.

json
{
  "id": 1,
  "atsId": 1,
  "atsJobId": 1,
  "atsCandidateId": 1,
  "atsPipelineId": 1,
  "atsStageId": 2,
  "status": "on_hold",
  "source": "career_site",
  "rating": 4,
  "appliedAt": "2026-09-11T02:34:31.641+00:00",
  "stageChangedAt": "2026-09-11T03:11:59.838+00:00",
  "lastActivityAt": "2026-09-11T03:17:05.016+00:00",
  "hiredAt": null,
  "rejectedAt": null,
  "withdrawnAt": null
}

422 Unprocessable Entity

Ocorre quando a candidatura já está encerrada (APPLICATION_CLOSED).


Notas da Candidatura ​

As notas permitem que o time colabore no contexto de uma candidatura. Cada nota tem uma visibilidade: team (padrão, visível a todo o time) ou private (visível somente ao autor). Somente o autor pode editar uma nota; a exclusão é permitida ao autor ou a usuários owner/admin.

Listar Notas ​

Lista as notas de uma candidatura, com paginação. Notas privadas de outros usuários não aparecem na listagem.

http
GET /v1/ats/user/applications/:applicationId/notes

Parâmetros de Rota ​

NomeTipoObrigatórioDescrição
applicationIdnumberSimO ID da candidatura.

Parâmetros de Query ​

NomeTipoObrigatórioDescrição
pagenumberNãoO número da página (mínimo: 1).
perPagenumberNãoItens por página (entre 1 e 100, padrão: 25).

Exemplo de Requisição ​

bash
curl -X GET "https://api.us.basis.tavares.in/v1/ats/user/applications/1/notes?page=1&perPage=25" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Accept: application/json"

Respostas ​

200 OK

Retorna um objeto de paginação contendo as notas, cada uma com os dados do autor.

json
{
  "meta": {
    "currentPage": 1,
    "perPage": 25
  },
  "data": [
    {
      "id": 1,
      "atsId": 1,
      "atsApplicationId": 1,
      "atsUserId": 1,
      "body": "Candidata demonstrou ótimo domínio de Node.js e TypeScript na entrevista técnica. Recomendo avançar para a etapa final com o gestor.",
      "visibility": "team",
      "createdAt": "2026-09-11T03:17:23.672+00:00",
      "updatedAt": "2026-09-11T03:17:23.672+00:00",
      "atsUser": {
        "id": 1,
        "firstName": "John",
        "lastName": "Doe",
        "avatarUrl": null
      }
    }
  ]
}

Criar Nota ​

Adiciona uma nota à candidatura. O autor é sempre o usuário autenticado.

http
POST /v1/ats/user/applications/:applicationId/notes

Payload (Body) ​

AtributoTipoObrigatórioDescrição
bodystringSimConteúdo da nota (máx. 5000 caracteres).
visibilityenumNãoteam (padrão) ou private (visível somente ao autor).

Exemplo de Requisição ​

bash
curl -X POST "https://api.us.basis.tavares.in/v1/ats/user/applications/1/notes" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "Candidata demonstrou ótimo domínio de Node.js e TypeScript na entrevista técnica. Recomendo avançar para a etapa final com o gestor.",
    "visibility": "team"
  }'

Respostas ​

201 Created

Retorna o ID da nota criada.

json
{
  "id": 1
}

422 Unprocessable Entity

Erro de validação nos campos enviados (por exemplo, body ausente).

json
{
  "errors": [
    {
      "message": "The body field is required",
      "rule": "required",
      "field": "body"
    }
  ]
}

Atualizar Nota ​

Edita o conteúdo ou a visibilidade de uma nota. Somente o autor pode editar.

http
PUT /v1/ats/user/applications/:applicationId/notes/:id

Payload (Body) ​

AtributoTipoObrigatórioDescrição
bodystringNãoNovo conteúdo da nota (máx. 5000 caracteres).
visibilityenumNãoteam ou private.

Exemplo de Requisição ​

bash
curl -X PUT "https://api.us.basis.tavares.in/v1/ats/user/applications/1/notes/1" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "Candidata aprovada também na avaliação comportamental. Recomendo avançar para a proposta.",
    "visibility": "team"
  }'

Respostas ​

204 No Content

Atualização concluída com sucesso.

403 Forbidden

Ocorre quando o usuário autenticado não é o autor da nota (FORBIDDEN).

json
{
  "code": "FORBIDDEN"
}

Remover Nota ​

Exclui uma nota da candidatura. Permitido ao autor ou a usuários owner/admin.

http
DELETE /v1/ats/user/applications/:applicationId/notes/:id

Exemplo de Requisição ​

bash
curl -X DELETE "https://api.us.basis.tavares.in/v1/ats/user/applications/1/notes/1" \
  -H "X-Ats-Id: 3fa85f64-5717-4562-b3fc-2c963f66afa6" \
  -H "Authorization: Bearer {token}"

Respostas ​

204 No Content

Remoção concluída com sucesso.

403 Forbidden

Ocorre quando o usuário autenticado não é o autor nem owner/admin (FORBIDDEN).