Consultar a situação de um inscrito
Três formas de achar a inscrição, todas com a chave:
| Você tem | Chame | Recebe |
|---|---|---|
o número da inscrição (o id do envio) | GET /applications/{id} | a inscrição inteira, com as etapas e o histórico |
| o CPF | GET /applications?candidateCpf=39053344705 | as inscrições desse CPF na instituição |
| o e-mail | GET /applications?candidateEmail=bianca.teixeira%40exemplo.test | as inscrições com esse e-mail na instituição |
Quem pode ver — A chave lê a inscrição de qualquer candidato da instituição, CPF em claro incluído, sem perguntar quem está pedindo. Mostre a situação só a quem provou ser a pessoa no seu sistema: o login do seu site, ou o CPF que ela digitou e você conferiu.
Pelo número
curl "API_BASE/public/v1/admissions/applications/cmu4ucd25000akgmbcxc4gg1d" \
-H "Authorization: Bearer wf_sua_chave_aqui"
{
"id": "cmu4ucd25000akgmbcxc4gg1d",
"status": "UNDER_REVIEW",
"admissionNoticeId": "cmu4sh97w00chp0mb551lq2jq",
"noticeName": "Processo Seletivo 2027.1",
"admissionOfferId": "cmu4sh98800cup0mbmwo0fkkl",
"admissionNoticeEntryFormId": "cmu4sh98200cmp0mb0li3bfwo",
"courseName": "Administração",
"secondChoiceCourseName": null,
"campusName": "Polo Campinas SP",
"campusCity": "Campinas",
"journeyName": "Vestibular",
"examRequired": true,
"journey": [
{ "kind": "REGISTRATION", "position": 1, "state": "DONE", "owner": "CANDIDATE", "exam": null, "evaluation": null },
{
"kind": "EVALUATION",
"position": 2,
"state": "CURRENT",
"owner": "CANDIDATE",
"exam": { "url": null, "opensAt": "2026-10-01T12:00:00.000Z", "closesAt": "2026-10-01T16:00:00.000Z" },
"evaluation": {
"score": null,
"source": null,
"manualScoredAt": null,
"cutoffScore": 5,
"scale": { "min": 0, "max": 10 },
"shortfall": null,
"result": "PENDING",
"attemptsUsed": 0,
"attemptLimit": 3,
"attemptsRemaining": 3,
"decidedBy": null,
"decidedAt": null,
"examPeriodEnded": false
}
},
{ "kind": "PAYMENT", "position": 3, "state": "FUTURE", "owner": "CANDIDATE", "exam": null, "evaluation": null },
{ "kind": "CALL", "position": 4, "state": "FUTURE", "owner": "INSTITUTION", "exam": null, "evaluation": null },
{ "kind": "ENROLLMENT", "position": 5, "state": "FUTURE", "owner": "CANDIDATE", "exam": null, "evaluation": null }
],
"feePolicy": "CHARGED",
"feeAmount": 60,
"candidateName": "Bianca Teixeira",
"candidateEmail": "bianca.teixeira@exemplo.test",
"candidatePhone": "11992220077",
"candidateCpf": "39053344705",
"candidateBirthDate": "2006-02-09T00:00:00.000Z",
"createdAt": "2026-09-17T01:18:30.173Z",
"updatedAt": "2026-09-17T01:18:40.609Z",
"timeline": [
{ "fromStatus": null, "toStatus": "DRAFT", "actorKind": "PARTNER", "reason": null, "at": "2026-09-17T01:18:30.173Z" },
{ "fromStatus": "DRAFT", "toStatus": "SUBMITTED", "actorKind": "PARTNER", "reason": null, "at": "2026-09-17T01:18:40.609Z" },
{ "fromStatus": "SUBMITTED", "toStatus": "UNDER_REVIEW", "actorKind": "SYSTEM", "reason": null, "at": "2026-09-17T01:18:40.609Z" }
]
}
O que mostrar na sua tela, e de onde vem:
| Para dizer | Leia |
|---|---|
| a situação | status. O rótulo de cada uma está em As treze situações |
| em que etapa está, e quem age agora | journey[]: a etapa com state: "CURRENT" e o owner dela. CANDIDATE é a pessoa que precisa agir; INSTITUTION, a secretaria |
| o link e a janela da prova | journey[].exam, na etapa EVALUATION. A url só vem dentro da janela, já com o número da inscrição em applicationId para o portal de prova; opensAt e closesAt vêm sempre que o edital define a janela |
| a nota e o resultado | journey[].evaluation, na etapa EVALUATION do vestibular e do ENEM: a nota que vale, o corte, quanto faltou (shortfall), o result e as tentativas |
| o documento avaliativo | journey[].document, na etapa EVALUATION da Transferência Externa e da 2ª Graduação: o documento exigido, a situação, o arquivo enviado, a observação da secretaria e o prazo. O arquivo nunca vem, e o envio é só do candidato, na área dele |
| o motivo de uma mudança | timeline[].reason: o texto que a secretaria escreveu, ou o motivo automático, como a aprovação pela nota. actorKind diz de que lado veio a mudança, sem dizer quem |
| a taxa | feePolicy (CHARGED ou EXEMPT) e feeAmount |
Todos os campos estão em A inscrição. O rascunho que ainda não tem CPF
responde 404: ele só passa a ser consultável quando o CPF chega.
Pelo CPF ou pelo e-mail
curl "API_BASE/public/v1/admissions/applications?candidateEmail=bianca.teixeira%40exemplo.test" \
-H "Authorization: Bearer wf_sua_chave_aqui"
{ "data": [ { "id": "cmu4ucd25000akgmbcxc4gg1d", "status": "UNDER_REVIEW", "candidateName": "Bianca Teixeira", "candidateCpf": "39053344705", "…": "…", "journey": [], "timeline": [] } ] }
Cada linha tem a forma da consulta pelo número, com duas diferenças: journey e timeline
vêm vazias. Peça pelo número quando precisar delas.
| informe um só | candidateCpf ou candidateEmail. Os dois juntos, ou nenhum, respondem 400 |
| o CPF | 11 dígitos, só números, com os dígitos verificadores corretos |
| o e-mail | comparado inteiro e sem diferenciar maiúsculas: Bianca.Teixeira@Exemplo.test acha bianca.teixeira@exemplo.test. Um pedaço do endereço, como bianca.teixeira, responde 400. Codifique na URL: @ vira %40 e + vira %2B |
| e-mail compartilhado | o e-mail não identifica uma pessoa sozinho: irmãos, ou mãe e filho, podem usar o mesmo. A lista pode trazer pessoas diferentes; confira o candidateCpf de cada linha |
| a ordem | da inscrição alterada mais recentemente para a mais antiga |
| um edital só | acrescente admissionNoticeId={id} |
| nada encontrado | { "data": [] } com 200. Ausência não é erro |
| rascunho sem CPF | não aparece, nem pelo e-mail |
Acompanhar mudanças
A API ainda não avisa mudanças por webhook. O padrão que funciona:
- Guarde o
ide oupdatedAtde cada inscrição. - Releia pelo número quando a pessoa abrir a área dela no seu site e, no seu back-office, uma vez por hora. A situação muda por ação da secretaria ou pela nota, não a cada segundo.
- Mudou o
updatedAt? Leia atimelinepara saber o que aconteceu. Duas coisas mudam sem mexer nele, porque são calculadas na leitura: o link da prova, que aparece quando a janela abre, eexamPeriodEnded. Releia no horário da prova em vez de esperar oupdatedAt. Na Transferência Externa e na 2ª Graduação, o envio do documento avaliativo e o pedido de reenvio mudam oupdatedAtsem entrar natimeline: o que mudou está emjourney[].document. - Pare quando a situação for final:
ENROLLED,REJECTED,ABSENT,CANCELLEDeEXPIREDnão mudam mais.