Read PDI Document Status
This API tells the caller where a document is in the archival process — whether it has been received and is queued, whether it has been fully conserved in substitutive storage, or whether it was rejected as a duplicate.
Why This API Exists
When a document is uploaded to the TS Archive system, it is assigned a unique PDI ID that identifies that upload for its entire lifecycle. However, archiving is not an instantaneous process — documents move through several stages before reaching final conservation.
This API exists so that callers can always answer the question: "What happened to the document I uploaded?"
Document Status Values
A document can be in one of the following statuses:
| Status | Meaning |
|---|---|
| Received | The document was successfully uploaded and is being processed. |
| Conserved | The document has been permanently archived. |
| Rejected | The document was not accepted. Check the rejectReason field for details. |
Use Cases
Use this API when you need to:
- Confirm a document was received — check that an upload landed correctly in the queue before batch processing begins.
- Verify conservation is complete — confirm that a document has been fully moved into substitutive storage and is permanently conserved.
- Investigate a rejected upload — find out why a document was not accepted, particularly in cases of duplicate detection.
- Track uploads over time — monitor a document's journey from initial receipt through to final archival.
How to Use the API
Endpoint
GET /api/v3/archive/pdi/status/{id}
Authentication
Authentication is required. Refer to the Authentication page for how to obtain and use a valid JWT token.
Allowed security roles: User, Backoffice, M2M
Request
Pass the document's PDI ID (the unique identification string assigned at upload time) as the path parameter {id}.
GET /api/v3/archive/pdi/status/{id}
Authorization: Bearer <your_jwt_token>
Content-Type: application/json
id(path, required) — The PDI ID assigned to the document at upload time.
Responses
200 OK — PDI found
{
"submitterId": "string",
"holderId": "string",
"documentId": "string",
"pdiStatus": "Status{value=4740, text='PdI Redazione'}",
"statusId": 0,
"rejectReason": "string"
}
Key fields:
pdiStatus— Describes the current stage of the document (received, conserved, or rejected). This is the main field to check.rejectReason— If the document was rejected, this field explains why (e.g. duplicate detected). Empty if the document was accepted.submitterId/holderId/documentId— Identify the submitting party and the document itself.statusId— Numeric code corresponding to the current status.
Tip: If
rejectReasonis populated, your document was not archived. Review the rejection reason and resubmit a corrected document if appropriate.
400 Bad Request
The request was malformed or the provided id is invalid.
{
"timestamp": "2026-02-22T22:06:36.015Z",
"status": "CONTINUE",
"code": "string",
"message": "string"
}
401 Unauthorized
The request is missing a valid authentication token or the token has expired.
{
"timestamp": "2026-02-22T22:06:36.016Z",
"status": "CONTINUE",
"code": "string",
"message": "string"
}
403 Forbidden
The authenticated caller does not have the required permissions to access this resource.
{
"timestamp": "2026-02-22T22:06:36.017Z",
"status": "CONTINUE",
"code": "string",
"message": "string"
}
API Reference
Use the links below to open the interactive OpenAPI (Swagger) documentation for this endpoint in each environment.