Register diplomas (registrar only)
This page is for institutions that register diplomas issued by other institutions. The organization must be of type Registradora (registrar) or Emissora e Registradora.
A registration request (requisição de registro) is the registrar's side of a diploma. It starts from the academic documentation XML signed by the issuer. The registrar reviews it, fills in the registration data, and Digiploma generates the diploma XML, collects the registrar's signatures in Lacuna Signer, and makes the signed file available to the issuer.
How requests arrive
There is no operation to create a single request. Requests are created:
- from a batch of signed academic documentation XML files, sent to you by the issuers;
- automatically, when an issuer in the same Digiploma instance that has a partnership with your organization sends an emission
(
registrationTypeSubscription; see Issue only); - automatically, when an issuer on another Digiploma instance integrated with yours sends an emission (
Integration).
Statuses
status | Meaning |
|---|---|
CreatedAwaitingAcceptance | Received; waiting to be accepted, when the instance requires acceptance. |
Accepted | Accepted for review. |
Created | Received; waiting for review. |
Approved | The review found the data consistent with the supporting documents. |
Rejected | The review found problems. The request ends here. |
Registered | The registration data was sent; the diploma XML is waiting for signatures. |
Signed | The diploma XML is signed. |
SentToIssuer | The signed diploma XML was delivered to the issuer's instance (Integration). |
Canceled | Canceled. |
Created ───────────────────────────────┬─► Approved ─► Registered ─► Signed ─► SentToIssuer
CreatedAwaitingAcceptance ─► Accepted ─┘
A request is rejected from Created, CreatedAwaitingAcceptance or Accepted, and canceled from any status.
Review a request
GET /api/registrations/{id}/info returns what you need to check that the student's data matches the supporting documents
(documentação comprobatória): the diploma data (dadosDiploma), the academic documentation (the student's private data, the statement
of responsibility and the list of supporting documents) and files, one entry per supporting document, each with a ticketUrl to download
its PDF. The issuer's designation act (ato de designação) is also listed, and can be downloaded with
GET /api/registrations/{id}/responsibility-term-ticket. GET /api/registrations/{id}/academic-documentation-ticket downloads the
academic documentation XML as received.
Then conclude the review:
| Operation | Allowed from | Body | Result |
|---|---|---|---|
POST /api/registrations/{id}/acceptance | CreatedAwaitingAcceptance | {reason} (optional) | Accepted. Fails with RegistrationDoesNotRequireAcceptance when the instance does not require acceptance. |
POST /api/registrations/{id}/approval | Created, Accepted | {reason} (optional) | Approved (RegistrationCannotBeApproved otherwise). |
POST /api/registrations/{id}/rejection | Created, CreatedAwaitingAcceptance, Accepted | {reason} | Rejected (RegistrationCannotBeRejected otherwise). After approval, cancel the request instead. |
reason takes up to 1000 characters.
Register the diploma
POST /api/registrations/{id}/registration-data registers an Approved request (RegistrationCannotBeRegistered otherwise):
{
"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…"
}
| Field | Description |
|---|---|
dadosRegistro.livroRegistro | The registration book data: the book (livroRegistro); either the registration number (numeroRegistro) or the page and sequence numbers (numeroFolhaDoDiploma and numeroSequenciaDoDiploma); the optional process number (processoDoDiploma); the graduation, issue and registration dates; and the person responsible for the registration (responsavelRegistro). |
dadosRegistro.iesRegistradora | The registrar's data. When omitted, it is taken from the organization's settings. |
dadosRegistro.assinantes | Optional. The registrar's representatives who sign DadosRegistro. When filled, the signers of the registration stage must be exactly these people. |
dadosRegistro.informacoesProcessoJudicial | Required for a diploma issued by judicial decision. |
documentFlowId / documentFlow | The signers: a saved flow of type Registration, or registrationFlow (the registrar's representatives, e-CPF) and storageFlow (one e-CNPJ signature of the registrar). Required only for requests that did not come from a batch, which already has its flow. |
newFolderName / signerFolderId | The Signer folder for the document, when the request did not come from a batch. |
Digiploma computes the validation code (RegistrationInvalidVerificationCode if another request already has it), generates the diploma
XML, sends it to Signer and sets the request to Registered. Signer collects the registration signatures on DadosRegistro and then the
archiving signature on the whole file. When the document is concluded, the request becomes Signed.
Deliver the diploma XML
GET /api/registrations/{id}/xml-ticket returns a ticket to download the signed diploma XML
(RegistrationNotSigned until it is signed). For a request that came from a batch, send this file to the issuer, which completes its
emission with it. For Subscription and Integration requests, Digiploma delivers it automatically.
Cancel a request
POST /api/registrations/{id}/cancellation cancels a request in any status except Canceled:
{ "cancellationReason": "ErroDeFato", "reason": "Número de registro duplicado" }
If the diploma XML is already signed, this annuls the registration, and cancellationReason is required (CancellationReasonRequired),
with the same values as for diplomas. A document still waiting for signatures is deleted
from Signer. For Subscription and Integration requests, the issuer's emission is canceled too, or, if the diploma already exists there,
the diploma is annulled with the same reason.
Read and search
GET /api/registrations/{id}returns the request;GET /api/registrations/{id}/historyreturns its status changes, newest first.GET /api/registrationsreturns a page of requests. Besides the paging parameters, it filters byStatus,BatchId, creation date (StartDateUtcinclusive,EndDateUtcexclusive),IsSigned=trueandQ(student's CPF, name or social name, or course). Results are sorted by update date.
Webhooks
| Event | When |
|---|---|
RegistrationCreated | The request was received. |
RegistrationAccepted, RegistrationApproved, RegistrationRejected | The request was accepted, approved or rejected. |
RegistrationRegistered | The registration data was sent. |
RegistrationSigned | The diploma XML was signed. |
RegistrationCanceled | The request was canceled. |
See Webhooks for the payloads.
Operation reference
| Operation | Description |
|---|---|
GET /api/registrations | List registration requests |
GET /api/registrations/{id} | Get a request |
GET /api/registrations/{id}/info | Get the data for the review |
GET /api/registrations/{id}/history | Get the status history |
POST /api/registrations/{id}/acceptance | Accept a request |
POST /api/registrations/{id}/approval | Approve a request |
POST /api/registrations/{id}/rejection | Reject a request |
POST /api/registrations/{id}/registration-data | Register the diploma |
POST /api/registrations/{id}/cancellation | Cancel a request |
GET /api/registrations/{id}/xml-ticket | Download the signed diploma XML |
GET /api/registrations/{id}/academic-documentation-ticket | Download the academic documentation XML |
GET /api/registrations/{id}/responsibility-term-ticket | Download the issuer's designation act |