SignaturesApi
The Signatures panel, headless. Metadata only: the SDK does not validate a signature cryptographically — present what it reports as "the document declares a signature", never as "the signature is valid". The panel is described under Document features.
A certification signature says what may change after it (SignatureInfo.changesAllowed, the certification level): 'none', 'forms' (filling and signing) or 'annotations' (those and comments). The SDK enforces it as Acrobat does: in the document API, a write the level forbids rejects with INVALID_STATE unless the call passes invalidateSignatures: true, and doc.forms.setValues() rejects every field as read_only at 'none'. A signed document with no certification (an approval signature) is not restricted. A signed document is always saved as one incremental update on the bytes it was signed over, so a change the certification allows reads in Acrobat as made after signing, not as a broken signature; see doc.save().
Usage
const signatures = await doc.signatures.list(); const certified = signatures.find((s) => s.signed && s.changesAllowed !== null); if (certified) console.log('Certified: changes allowed =', certified.changesAllowed);
Reading
changesAllowed), whether it is signed (signed). Says whether a document is signed and what its certification allows. A signature field nested under a parent field (a dotted name) counts too, though the document's own list of signature fields does not include it. Without the extract feature each reason is ''. Needs no feature.Promise<SignatureInfo[]> Each { index, reason, signedAt, subFilter, changesAllowed, signed }: reason ('' when absent), signedAt (when it was signed, as the signature says; null when it does not), subFilter (the signature's format as the file names it, 'adbe.pkcs7.detached' …, or ''), changesAllowed ('none' | 'forms' | 'annotations': what the signer allowed afterwards; null when unsaid) and signed (whether it holds signature bytes, or is a field still to be signed).DOCUMENT_CLOSED— the document has been closed.
const signed = (await doc.signatures.list()).some((s) => s.signed); if (signed) showNotice('Changes are saved after the signed version');