Skip to main content
Version: 1.0.0

Archive Listing


Browse and search the company's GoBD archive, or list the archive rows of a single invoice. An invoice can have more than one archive row — a Peppol reception, for example, archives both the Access Point payload and the invoice document inside it.

List archive rows​

Endpoint​

PropertyValue
URLGET /germany/archive/{companyId}/rows
MethodGET
AuthR-Auth: <company-jwt>
Base URLStage Environment https://api-stage.docnova.ai/
Production Environment https://api.docnova.ai/

Example Request​

curl --location '{{baseUrl}}/germany/archive/{{companyId}}/rows?direction=OUTGOING&page=0&size=50' \
--header 'R-Auth: {{companyJwt}}'

Path parameters​

ParameterTypeRequiredDescription
companyIdUUIDYesCompany UUID

Query parameters​

ParameterTypeRequiredDefaultDescription
periodFromdateNo—Filter from this invoice issue date (yyyy-MM-dd); rows without an issue date are filtered by reception/archive date instead
periodTodateNo—Filter up to this invoice issue date (yyyy-MM-dd)
directionstringNocaller's visible directionsINCOMING or OUTGOING. Omit to see every direction the caller may view
kindstringNo—Archived document kind. See Document kind values
statusstringNo—Archive status. See Status values
copyQualifierstringNo—See Copy qualifier values
invoiceNumberstringNo—Filter by invoice number
expiredbooleanNofalsetrue to show only rows whose retention period has ended
pageintegerNo0Page number, 0-indexed
sizeintegerNo50Results per page, maximum 200

Response​

{
"content": [
{
"id": "7c3fbe0a-8a3a-4e4c-9a1a-1f1f2d3c4b5a",
"invoiceId": "f5e6d7c8-1234-5678-9abc-def012345678",
"invoiceNumber": "INV-2026-001",
"invoiceDirection": "OUTGOING",
"issueDate": "2026-06-01",
"documentKind": "TRANSMITTED_ORIGINAL",
"status": "ARCHIVED",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"archivedAt": "2026-06-01T10:05:00",
"retentionUntil": "2034-12-31T23:59:59",
"retentionBasisNote": null,
"legalHold": false,
"createdTime": "2026-06-01T10:00:00",
"copyQualifier": "ORIGINAL",
"unprocessable": false,
"validationNote": null
}
],
"totalElements": 1,
"totalPages": 1,
"number": 0,
"size": 50,
"numberOfElements": 1,
"first": true,
"last": true,
"empty": false
}

Response fields​

FieldDescription
content[].idArchive row UUID
content[].invoiceIdInvoice UUID
content[].invoiceNumberInvoice number
content[].invoiceDirectionINCOMING or OUTGOING
content[].issueDateInvoice issue date
content[].documentKindWhat this row holds. See Document kind values
content[].statusArchive status. See Status values
content[].sha256SHA-256 checksum of the archived bytes
content[].archivedAtWhen the copy was written to the archive, if archived
content[].retentionUntilEnd of the statutory retention period
content[].retentionBasisNoteNote when the retention end was derived without a plausible issue date
content[].legalHoldtrue while a legal hold blocks the retention clock
content[].createdTimeWhen the archive row was created
content[].copyQualifierWhat the copy is. See Copy qualifier values
content[].unprocessabletrue for a received file kept without an invoice record because it could not be processed
content[].validationNoteWhy the file is unprocessable, if applicable
totalElementsTotal number of matching rows across all pages
totalPagesTotal number of pages
numberCurrent page number, 0-indexed
sizePage size
numberOfElementsNumber of rows on this page
first / lastWhether this is the first / last page
emptytrue if this page has no rows

Error responses​

HTTPerrorTypeMeaning
400INVALID_ARGUMENTperiodTo is before periodFrom
400GERMANY_ARCHIVE_NOT_AVAILABLEThe company is not archived under the German GoBD rules
403AUTHORIZATION_FAILEDCaller has no view rights for either direction, or requested a direction it may not view
403GERMANY_AUDITOR_ACCESS_EXPIREDCaller's time-limited auditor access (Z1) has ended

List archive rows of an invoice​

Endpoint​

PropertyValue
URLGET /germany/archive/{companyId}/invoice/{invoiceId}
MethodGET
AuthR-Auth: <company-jwt>
Base URLStage Environment https://api-stage.docnova.ai/
Production Environment https://api.docnova.ai/

Example Request​

curl --location '{{baseUrl}}/germany/archive/{{companyId}}/invoice/{{invoiceId}}' \
--header 'R-Auth: {{companyJwt}}'

Path parameters​

ParameterTypeRequiredDescription
companyIdUUIDYesCompany UUID
invoiceIdUUIDYesInvoice UUID

Response​

[
{
"id": "7c3fbe0a-8a3a-4e4c-9a1a-1f1f2d3c4b5a",
"invoiceId": "f5e6d7c8-1234-5678-9abc-def012345678",
"invoiceNumber": "INV-2026-001",
"invoiceDirection": "INCOMING",
"issueDate": "2026-06-01",
"documentKind": "RECEIVED_PEPPOL_PAYLOAD",
"status": "ARCHIVED",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"archivedAt": "2026-06-01T10:05:00",
"retentionUntil": "2034-12-31T23:59:59",
"retentionBasisNote": null,
"legalHold": false,
"createdTime": "2026-06-01T10:00:00",
"copyQualifier": "ORIGINAL",
"unprocessable": false,
"validationNote": null
},
{
"id": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"invoiceId": "f5e6d7c8-1234-5678-9abc-def012345678",
"invoiceNumber": "INV-2026-001",
"invoiceDirection": "INCOMING",
"issueDate": "2026-06-01",
"documentKind": "RECEIVED_XML",
"status": "ARCHIVED",
"sha256": "1a79a4d60de6718e8e5b326e338ae533f8e8b1ff2b0b822cd15d6c15b0f00a08",
"archivedAt": "2026-06-01T10:05:01",
"retentionUntil": "2034-12-31T23:59:59",
"retentionBasisNote": null,
"legalHold": false,
"createdTime": "2026-06-01T10:00:00",
"copyQualifier": "ORIGINAL",
"unprocessable": false,
"validationNote": null
}
]

Response fields are the same as List archive rows above, returned as a plain array instead of a page. An invoiceId with no archive rows returns an empty array, not an error.

Error responses​

HTTPerrorTypeMeaning
400GERMANY_ARCHIVE_NOT_AVAILABLEThe company is not archived under the German GoBD rules
403AUTHORIZATION_FAILEDCaller has no view rights for either invoice direction
403GERMANY_AUDITOR_ACCESS_EXPIREDCaller's time-limited auditor access (Z1) has ended

Document kind values​

ValueDescription
RECEIVED_PEPPOL_PAYLOADThe Access Point payload as received, the whole object
RECEIVED_XMLThe invoice document inside a received Peppol payload
RECEIVED_ORIGINALA received file (e-mail, SFTP, portal upload) as it came in
TRANSMITTED_ORIGINALAn issued invoice exactly as it was handed to the recipient (Peppol, e-mail)
ISSUED_ORIGINALAn outgoing invoice issued outside Docnova, as handed over or generated at intake
RECEIVED_UNPROCESSABLEA received file that is an invoice but could not be processed, kept without an invoice record
SIGNATUREA signature file associated with the archived document

Status values​

ValueDescription
PENDINGEnqueued for archiving
ARCHIVEDCopied to the write-once-read-many archive bucket
FAILEDArchiving failed and will be retried
UNPROVABLEThe original bytes cannot be proven, so nothing was copied

Copy qualifier values​

ValueDescription
ORIGINALThe bytes exactly as received, transmitted, or handed over
GENERATED_AT_INTAKEThe source system handed over data, not a document; this is the document Docnova generated from it at intake
NON_ORIGINAL_COPYNo original was kept; this is the operational document Docnova stored, archived later