---
title: "Registrar diplomas (apenas registradora)"
description: "Registro de diplomas emitidos por outras instituições na API do Digiploma: requisição de registro, XML do diploma e assinaturas da registradora."
canonical: "https://docs.lacunasoftware.com/articles/digiploma/api/registrations"
locale: "pt-BR"
product: "Digiploma"
last_updated: "2026-10-12"
---

# Registrar diplomas (apenas registradora)

Esta página é para instituições que **registram** diplomas emitidos por outras instituições. A organização precisa ser do tipo
**Registradora** ou **Emissora e Registradora**.

A **requisição de registro** é a parte do diploma que cabe à registradora. Ela parte do **XML da documentação acadêmica** assinado pela
emissora. A registradora revisa esse XML e preenche os dados de registro; o Digiploma então gera o **XML do diploma**, coleta as
assinaturas da registradora no Lacuna Signer e disponibiliza o arquivo assinado para a emissora.

## Como as requisições chegam

Não há operação para criar uma requisição avulsa. As requisições são criadas:

* a partir de um [lote](https://docs.lacunasoftware.com/articles/digiploma/api/batches) de arquivos XML da documentação acadêmica assinados, enviados a você pelas emissoras;
* automaticamente, quando uma emissora da mesma instância do Digiploma que tem parceria com a sua organização envia uma emissão
  (`registrationType` `Subscription`; veja [Apenas emissão](https://docs.lacunasoftware.com/articles/digiploma/api/emissions#como-a-emissão-chega-à-registradora));
* automaticamente, quando uma emissora de outra instância do Digiploma integrada à sua envia uma emissão (`Integration`).

## Status

| `status` | Significado |
|---|---|
| `CreatedAwaitingAcceptance` | Recebida; aguardando aceitação, quando a instância exige aceitação. |
| `Accepted` | Aceita para revisão. |
| `Created` | Recebida; aguardando revisão. |
| `Approved` | A revisão concluiu que os dados estão de acordo com a documentação comprobatória. |
| `Rejected` | A revisão encontrou problemas. A requisição termina aqui. |
| `Registered` | Os dados de registro foram enviados; o XML do diploma está aguardando assinaturas. |
| `Signed` | O XML do diploma está assinado. |
| `SentToIssuer` | O XML do diploma assinado foi entregue à instância da emissora (`Integration`). |
| `Canceled` | Cancelada. |

```text
Created ───────────────────────────────┬─► Approved ─► Registered ─► Signed ─► SentToIssuer
CreatedAwaitingAcceptance ─► Accepted ─┘
```

Uma requisição pode ser recusada a partir de `Created`, `CreatedAwaitingAcceptance` ou `Accepted`, e cancelada a partir de qualquer
status.

## Revisar uma requisição

`GET /api/registrations/{id}/info` retorna o que você precisa para conferir se os dados do aluno correspondem à documentação comprobatória:
os dados do diploma (`dadosDiploma`), a documentação acadêmica (os dados privados do aluno, o termo de responsabilidade e a lista de
documentos comprobatórios) e `files`, com uma entrada para cada documento comprobatório, cada uma com uma `ticketUrl` para baixar o PDF.
O ato de designação da emissora também aparece na lista e pode ser baixado com `GET /api/registrations/{id}/responsibility-term-ticket`.
`GET /api/registrations/{id}/academic-documentation-ticket` baixa o XML da documentação acadêmica tal como foi recebido.

Em seguida, conclua a revisão:

| Operação | Permitida a partir de | Corpo | Resultado |
|---|---|---|---|
| `POST /api/registrations/{id}/acceptance` | `CreatedAwaitingAcceptance` | `{reason}` (opcional) | `Accepted`. Falha com `RegistrationDoesNotRequireAcceptance` quando a instância não exige aceitação. |
| `POST /api/registrations/{id}/approval` | `Created`, `Accepted` | `{reason}` (opcional) | `Approved` (caso contrário, `RegistrationCannotBeApproved`). |
| `POST /api/registrations/{id}/rejection` | `Created`, `CreatedAwaitingAcceptance`, `Accepted` | `{reason}` | `Rejected` (caso contrário, `RegistrationCannotBeRejected`). Depois da aprovação, cancele a requisição em vez de recusá-la. |

`reason` aceita até 1.000 caracteres.

## Registrar o diploma

`POST /api/registrations/{id}/registration-data` registra uma requisição `Approved` (caso contrário, `RegistrationCannotBeRegistered`):

```json
{
  "dadosRegistro": {
    "livroRegistro": {
      "livroRegistro": "12",
      "numeroRegistro": "3456",
      "dataColacaoGrau": "2026-07-10",
      "dataExpedicaoDiploma": "2026-08-01",
      "dataRegistroDiploma": "2026-08-15",
      "responsavelRegistro": { "nome": "Ana Ribeiro", "cpf": "12345678909" }
    }
  },
  "documentFlowId": "a71c…"
}
```

| Campo | Descrição |
|---|---|
| `dadosRegistro.livroRegistro` | Os dados do livro de registro: o livro (`livroRegistro`); o número de registro (`numeroRegistro`) ou os números de folha e de sequência (`numeroFolhaDoDiploma` e `numeroSequenciaDoDiploma`); o número do processo, opcional (`processoDoDiploma`); as datas de colação de grau, de expedição e de registro; e o responsável pelo registro (`responsavelRegistro`). |
| `dadosRegistro.iesRegistradora` | Os dados da registradora. Quando omitido, são obtidos das configurações da organização. |
| `dadosRegistro.assinantes` | Opcional. Os representantes da registradora que assinam `DadosRegistro`. Quando preenchido, os signatários da etapa de registro precisam ser exatamente essas pessoas. |
| `dadosRegistro.informacoesProcessoJudicial` | Obrigatório para diploma emitido por decisão judicial. |
| `documentFlowId` / `documentFlow` | Os signatários: um fluxo salvo do tipo `Registration`, ou `registrationFlow` (os representantes da registradora, com e-CPF) e `storageFlow` (uma assinatura com o e-CNPJ da registradora). Obrigatório só para requisições que não vieram de um lote, já que o lote tem o próprio fluxo. |
| `newFolderName` / `signerFolderId` | A pasta do Signer para o documento, quando a requisição não veio de um lote. |

O Digiploma calcula o código de validação (`RegistrationInvalidVerificationCode` se outra requisição já tiver esse código), gera o XML do
diploma, envia esse XML ao Signer e muda a requisição para `Registered`. O Signer coleta as assinaturas de registro em `DadosRegistro` e,
depois, a assinatura de arquivamento no arquivo inteiro. Quando o documento é concluído, a requisição passa a `Signed`.

## Entregar o XML do diploma

`GET /api/registrations/{id}/xml-ticket` retorna um [ticket](https://docs.lacunasoftware.com/articles/digiploma/api#downloads-e-tickets) para baixar o XML do diploma assinado
(`RegistrationNotSigned` até ele ser assinado). Para uma requisição que veio de um lote, envie esse arquivo à emissora, que conclui a
emissão com ele. Para requisições `Subscription` e `Integration`, o Digiploma faz a entrega automaticamente.

## Cancelar uma requisição

`POST /api/registrations/{id}/cancellation` cancela uma requisição em qualquer status, exceto `Canceled`:

```json
{ "cancellationReason": "ErroDeFato", "reason": "Número de registro duplicado" }
```

Se o XML do diploma já estiver assinado, o cancelamento anula o registro, e `cancellationReason` é obrigatório
(`CancellationReasonRequired`), com os mesmos valores aceitos para [diplomas](https://docs.lacunasoftware.com/articles/digiploma/api/degrees#anular-ou-restaurar-um-diploma). Um documento que
ainda aguarda assinaturas é excluído do Signer. Para requisições `Subscription` e `Integration`, a emissão da emissora também é cancelada
ou, se o diploma já existir lá, o diploma é anulado com o mesmo motivo.

## Consultar e pesquisar

* `GET /api/registrations/{id}` retorna a requisição; `GET /api/registrations/{id}/history` retorna as mudanças de status dela, da mais
  recente para a mais antiga.
* `GET /api/registrations` retorna uma página de requisições. Além dos [parâmetros de paginação](https://docs.lacunasoftware.com/articles/digiploma/api#paginação), filtra por `Status`,
  `BatchId`, data de criação (`StartDateUtc` inclusive, `EndDateUtc` exclusive), `IsSigned=true` e `Q` (CPF, nome ou nome social do
  aluno, ou curso). Os resultados são ordenados pela data de atualização.

## Webhooks

| Evento | Quando |
|---|---|
| `RegistrationCreated` | A requisição foi recebida. |
| `RegistrationAccepted`, `RegistrationApproved`, `RegistrationRejected` | A requisição foi aceita, aprovada ou recusada. |
| `RegistrationRegistered` | Os dados de registro foram enviados. |
| `RegistrationSigned` | O XML do diploma foi assinado. |
| `RegistrationCanceled` | A requisição foi cancelada. |

Os dados de cada evento estão em [Webhooks](https://docs.lacunasoftware.com/articles/digiploma/api/webhooks).

## Referência das operações

| Operação | Descrição |
|---|---|
| `GET /api/registrations` | Listar requisições de registro |
| `GET /api/registrations/{id}` | Obter uma requisição |
| `GET /api/registrations/{id}/info` | Obter os dados para a revisão |
| `GET /api/registrations/{id}/history` | Obter o histórico de status |
| `POST /api/registrations/{id}/acceptance` | Aceitar uma requisição |
| `POST /api/registrations/{id}/approval` | Aprovar uma requisição |
| `POST /api/registrations/{id}/rejection` | Recusar uma requisição |
| `POST /api/registrations/{id}/registration-data` | Registrar o diploma |
| `POST /api/registrations/{id}/cancellation` | Cancelar uma requisição |
| `GET /api/registrations/{id}/xml-ticket` | Baixar o XML do diploma assinado |
| `GET /api/registrations/{id}/academic-documentation-ticket` | Baixar o XML da documentação acadêmica |
| `GET /api/registrations/{id}/responsibility-term-ticket` | Baixar o ato de designação da emissora |
