Skip to content

Latest commit

 

History

History
5527 lines (3867 loc) · 74.5 KB

reference.md

File metadata and controls

5527 lines (3867 loc) · 74.5 KB

Reference

Deployment

$client->deployment->licenseStatus() -> ?DeploymentLicenseStatusResponse

🔌 Usage

$client->deployment->licenseStatus();

Doc

$client->doc->head($docId, $request) -> ?DocHead200Response

🔌 Usage

$client->doc->head(
    'docId',
    new HeadDocRequest([]),
);

⚙️ Parameters

$docId: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->changes($docId, $layerName, $request) -> ?DocChanges200Response

📝 Description

Each change stands on its own and names itself by opId: a refused change rolls back alone, and the answer lists every change in order, applied with its result or refused with its error. Asked again under its opId, a change gets the same answer, refusals included; a different change under an answered opId is refused (IdempotencyKeyReused). { opId, undoOf } undoes an earlier change of the caller, here or in an earlier request; an undo leaves alone what was changed since, and the undo of an undo redoes. A redaction, a flatten, a form repair or a completed signature ends undo for the changes before it (UndoUnavailable). Each op is checked against its own capability: annotation ops need doc.annotate.modify, form values doc.forms.fill, form structure doc.forms.modify, metadata doc.metadata.modify. Bytes (a stamp's drawing, an attached file, a signature's artwork) travel as multipart: a JSON body part, each op naming its files by role as resources: { <role>: '<key>' }, and each file as the part resource:<key>. At most 64 changes per request and 512 ops per change.

🔌 Usage

$client->doc->changes(
    'docId',
    'layerName',
    new DocChangesRequest([
        'changes' => [
            new DocChangesRequestChangesItem([
                'opId' => 'opId',
            ]),
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$changes: array

$client->doc->download($docId, $layerName, $request) -> string

🔌 Usage

$client->doc->download(
    'docId',
    'layerName',
    new DownloadDocRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->manifest($docId, $layerName, $request) -> ?DocManifest200Response

🔌 Usage

$client->doc->manifest(
    'docId',
    'layerName',
    new ManifestDocRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->render($docId, $layerName, $pageKey, $request) -> string

📝 Description

Render parameters (viewport, format) pass as flat dotted query keys, e.g. ?viewport.kind=width&viewport.width=800; the full grammar is documented with the viewer.

🔌 Usage

$client->doc->render(
    'docId',
    'layerName',
    'pageKey',
    new RenderDocRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->text($docId, $layerName, $pageKey, $request) -> ?DocText200Response

🔌 Usage

$client->doc->text(
    'docId',
    'layerName',
    'pageKey',
    new TextDocRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

Shares

$client->shares->exchange($request) -> ?SharesExchange200Response

📝 Description

Unauthenticated, but requires a browser Origin header, checked against the grant allowlist. Unknown, revoked, and disabled tokens are indistinguishable (404). Passphrase-protected grants return 422 SharePasswordRequired until password is supplied. Mounted only when the deployment can sign (HS256 mode).

🔌 Usage

$client->shares->exchange(
    new SharesExchangeRequest([
        'shareToken' => 'shareToken',
    ]),
);

⚙️ Parameters

$shareToken: string

$password: ?string

$client->shares->list($tenantId, $request) -> ?SharesList200Response

🔌 Usage

$client->shares->list(
    'tenantId',
    new ListSharesRequest([]),
);

⚙️ Parameters

$tenantId: string

$limit: ?int

$cursor: ?string

$docId: ?string

$client->shares->create($tenantId, $request) -> ?SharesCreate200Response

📝 Description

The returned share id is the public share token. Mounted only when the deployment can sign (HS256 mode) — exchange mints session JWTs, so grants exist only where minting does.

🔌 Usage

$client->shares->create(
    'tenantId',
    new SharesCreateRequest([
        'docId' => 'docId',
        'scope' => [
            'scope',
        ],
    ]),
);

⚙️ Parameters

$tenantId: string

$docId: string

$layerName: ?string

$scope: array

$origins: ?array

$password: ?string

$sessionTtlSeconds: ?int

$expiresAt: ?int

$client->shares->get($tenantId, $shareId) -> ?SharesGet200Response

🔌 Usage

$client->shares->get(
    'tenantId',
    'shareId',
);

⚙️ Parameters

$tenantId: string

$shareId: string

$client->shares->delete($tenantId, $shareId)

🔌 Usage

$client->shares->delete(
    'tenantId',
    'shareId',
);

⚙️ Parameters

$tenantId: string

$shareId: string

$client->shares->update($tenantId, $shareId, $request) -> ?SharesUpdate200Response

🔌 Usage

$client->shares->update(
    'tenantId',
    'shareId',
    new SharesUpdateRequest([]),
);

⚙️ Parameters

$tenantId: string

$shareId: string

$scope: ?array

$origins: ?array

$password: ?string

$sessionTtlSeconds: ?int

$disabled: ?bool

$expiresAt: ?int

Tenants

$client->tenants->list($request) -> ?TenantsList200Response

🔌 Usage

$client->tenants->list(
    new ListTenantsRequest([]),
);

⚙️ Parameters

$limit: ?int

$cursor: ?string

$client->tenants->create($request) -> ?TenantsCreate200Response

🔌 Usage

$client->tenants->create(
    new TenantsCreateRequest([
        'id' => 'id',
    ]),
);

⚙️ Parameters

$id: string

$name: ?string

$client->tenants->get($tenantId) -> ?TenantsGet200Response

🔌 Usage

$client->tenants->get(
    'tenantId',
);

⚙️ Parameters

$tenantId: string

$client->tenants->delete($tenantId)

📝 Description

Destroys the tenant and everything in its namespace — documents, layers, stored bytes, audit history. Irreversible.

🔌 Usage

$client->tenants->delete(
    'tenantId',
);

⚙️ Parameters

$tenantId: string

$client->tenants->resume($tenantId)

🔌 Usage

$client->tenants->resume(
    'tenantId',
);

⚙️ Parameters

$tenantId: string

$client->tenants->suspend($tenantId, $request)

📝 Description

Instantly reversible with resume. The API token is exempt, so a suspended tenant can still be inspected, exported, resumed, or deleted.

🔌 Usage

$client->tenants->suspend(
    'tenantId',
    new TenantsSuspendRequest([]),
);

⚙️ Parameters

$tenantId: string

$reason: ?string

$client->tenants->usage($tenantId, $request) -> ?TenantsUsage200Response

📝 Description

Facts only — no limits or billing state. Views count share exchanges plus authorized /v1/access grants, deduplicated across the two.

🔌 Usage

$client->tenants->usage(
    'tenantId',
    new UsageTenantsRequest([]),
);

⚙️ Parameters

$tenantId: string

$period: ?string

Documents

$client->documents->list($tenantId, $request) -> ?DocumentsList200Response

🔌 Usage

$client->documents->list(
    'tenantId',
    new ListDocumentsRequest([]),
);

⚙️ Parameters

$tenantId: string

$limit: ?int

$cursor: ?string

$state: ?string

$client->documents->get($tenantId, $id) -> ?DocumentsGet200Response

🔌 Usage

$client->documents->get(
    'tenantId',
    'id',
);

⚙️ Parameters

$tenantId: string

$id: string

$client->documents->delete($tenantId, $id)

🔌 Usage

$client->documents->delete(
    'tenantId',
    'id',
);

⚙️ Parameters

$tenantId: string

$id: string

$client->documents->commit($tenantId, $id, $request) -> ?DocumentsCommit200Response

🔌 Usage

$client->documents->commit(
    'tenantId',
    'id',
    new DocumentsCommitRequest([
        'sha256' => 'sha256',
    ]),
);

⚙️ Parameters

$tenantId: string

$id: string

$sha256: string

$client->documents->download($tenantId, $id) -> string

🔌 Usage

$client->documents->download(
    'tenantId',
    'id',
);

⚙️ Parameters

$tenantId: string

$id: string

$client->documents->thumbnail($tenantId, $id) -> string

🔌 Usage

$client->documents->thumbnail(
    'tenantId',
    'id',
);

⚙️ Parameters

$tenantId: string

$id: string

$client->documents->uploadProxy($tenantId, $id, $request) -> ?DocumentsUploadProxy200Response

📝 Description

This bounded origin-mediated fallback must only be used after documents.init returns upload.kind=proxy. Auto mode prefers a presigned object-store PUT whenever available.

🔌 Usage

$client->documents->uploadProxy(
    'tenantId',
    'id',
    new UploadProxyDocumentsRequest([
        'file' => File::createFromString("example_file", "example_file"),
    ]),
);

⚙️ Parameters

$tenantId: string

$id: string

$client->documents->importFrom($tenantId, $request) -> ?DocumentsImportFrom200Response

📝 Description

Default mode is synchronous and bounded: the response returns only after the transfer verified and committed (or failed). mode=async (connection sources only) answers 202 immediately and an in-process worker performs the transfer with leased, fenced retries; poll the document until ready/failed. The deployment import policy gates scheme, network range, and size; sources must declare a length. CloudPDF copies and owns the bytes — the source is never referenced in place. A 502 marks a retryable upstream failure: retry with the same idempotencyKey to resume the same document. URL sources are capabilities and never echoed back. Connection sources name operator-registered storage (bucket/prefix scope, allowed credential classes, and tenant bindings are deployment configuration); revision is provider-interpreted (S3 VersionId, GCS generation, Azure version id).

🔌 Usage

$client->documents->importFrom(
    'tenantId',
    new DocumentsImportFromRequest([
        'source' => DocumentsImportFromRequestSource::url(new DocumentsImportFromRequestSourceUrl([
            'url' => 'url',
        ])),
    ]),
);

⚙️ Parameters

$tenantId: string

$source: DocumentsImportFromRequestSource — Where CloudPDF pulls the bytes from. The two shapes differ in who supplies the authority to read, not in which storage vendor holds the file.

$expected: ?DocumentsImportFromRequestExpected — Integrity pins, enforced when present. When absent, the server-observed values become authoritative.

$metadata: ?array

$idempotencyKey: ?string — Retrying with the same key resumes the same document rather than importing a second copy — including after a 502.

$dedupMode: ?string — always-create (default) creates a new document every time. reuse-existing returns a document that already holds the same content instead of storing it twice.

$docId: ?string

$mode: ?string — sync (default) holds the response open for the whole transfer. async answers 202 with the document pending and transfers in the background; it requires a connection source, and filesystem connections additionally require expected.sha256.

$client->documents->init($tenantId, $request) -> ?DocumentsInit200Response

🔌 Usage

$client->documents->init(
    'tenantId',
    new DocumentsInitRequest([
        'contentLength' => 1.1,
        'contentSha256' => 'contentSha256',
    ]),
);

⚙️ Parameters

$tenantId: string

$contentLength: float

$contentSha256: string

$metadata: ?array

$idempotencyKey: ?string

$dedupMode: ?string — always-create (default) creates a new document every time. reuse-existing returns a document that already holds the same content instead of storing it twice.

$docId: ?string

$uploadTtlSec: ?float

$uploadPreference: ?string

Tokens

$client->tokens->issue($tenantId, $request) -> ?TokensIssue200Response

📝 Description

kind "tenant" requires the API token — authority mints only downward. Mounted only when the deployment can sign (HS256 mode); asymmetric deployments mint with their own private key.

🔌 Usage

$client->tokens->issue(
    'tenantId',
    new IssueTokensRequest([
        'body' => TokensIssueRequest::doc(new TokensIssueRequestDoc([
            'sub' => 'sub',
            'docId' => 'docId',
            'scope' => [
                'scope',
            ],
            'expiresIn' => 1,
        ])),
    ]),
);

⚙️ Parameters

$tenantId: string

$request: TokensIssueRequest

$client->tokens->revoke($tenantId, $jti, $request)

📝 Description

Mounted only when the deployment enables token revocation.

🔌 Usage

$client->tokens->revoke(
    'tenantId',
    'jti',
    new TokensRevokeRequest([]),
);

⚙️ Parameters

$tenantId: string

$jti: string

$reason: ?string

$expiresAtSeconds: ?int

Doc Annotations

$client->doc->annotations->listAll($docId, $layerName, $request) -> ?AnnotationList

📝 Description

Returns one entry per page plus the audit-log cursor for reconciling subsequent document events. Page order is unspecified; join by page (a PageRef) when display order matters.

🔌 Usage

$client->doc->annotations->listAll(
    'docId',
    'layerName',
    new ListAllAnnotationsRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->annotations->list($docId, $layerName, $pageKey, $request) -> ?AnnotationList

🔌 Usage

$client->doc->annotations->list(
    'docId',
    'layerName',
    'pageKey',
    new ListAnnotationsRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->annotations->create($docId, $layerName, $pageKey, $request) -> ?DocAnnotationsCreate200Response

📝 Description

Doc JWTs may instead carry collab scopes (annotations:create:self, …) that refine per-annotation authorship rules; the API token is exempt from both.

🔌 Usage

$client->doc->annotations->create(
    'docId',
    'layerName',
    'pageKey',
    new CreateAnnotationsRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->annotations->delete($docId, $layerName, $pageKey, $annotKey, $request) -> ?DocAnnotationsDelete200Response

🔌 Usage

$client->doc->annotations->delete(
    'docId',
    'layerName',
    'pageKey',
    'annotKey',
    new DeleteAnnotationsRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$annotKey: string — The annotation's address on the page: obj:N, its indirect object number, or base:N for an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation's ref carries for life.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$client->doc->annotations->update($docId, $layerName, $pageKey, $annotKey, $request) -> ?DocAnnotationsUpdate200Response

🔌 Usage

$client->doc->annotations->update(
    'docId',
    'layerName',
    'pageKey',
    'annotKey',
    new UpdateAnnotationsRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$annotKey: string — The annotation's address on the page: obj:N, its indirect object number, or base:N for an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation's ref carries for life.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->annotations->readAppearance($docId, $layerName, $pageKey, $annotKey, $request) -> string

🔌 Usage

$client->doc->annotations->readAppearance(
    'docId',
    'layerName',
    'pageKey',
    'annotKey',
    new ReadAppearanceAnnotationsRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$annotKey: string — The annotation's address on the page: obj:N, its indirect object number, or base:N for an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation's ref carries for life.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->annotations->exportAppearance($docId, $layerName, $pageKey, $request) -> string

🔌 Usage

$client->doc->annotations->exportAppearance(
    'docId',
    'layerName',
    'pageKey',
    new ExportAppearanceAnnotationsRequest([
        'body' => [
            'string' => [
                'key' => "value",
            ],
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$request: array

$client->doc->annotations->flatten($docId, $layerName, $pageKey, $request) -> ?DocAnnotationsFlatten200Response

🔌 Usage

$client->doc->annotations->flatten(
    'docId',
    'layerName',
    'pageKey',
    new FlattenAnnotationsRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->annotations->reorder($docId, $layerName, $pageKey, $request) -> ?DocAnnotationsReorder200Response

🔌 Usage

$client->doc->annotations->reorder(
    'docId',
    'layerName',
    'pageKey',
    new DocAnnotationsReorderRequest([
        'refs' => [
            AnnotationRef::objectNumber(new AnnotationRefObjectNumber([
                'page' => new PageRef([
                    'kind' => PageRefKind::ObjectNumber->value,
                    'objectNumber' => 1,
                ]),
                'objectNumber' => 1,
            ])),
        ],
        'position' => AnnotationPositionZero::Start->value,
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$refs: array

$position: string|AnnotationPositionAfter

Doc Forms

$client->doc->forms->list($docId, $layerName, $request) -> ?DocFormsList200Response

🔌 Usage

$client->doc->forms->list(
    'docId',
    'layerName',
    new ListFormsRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->forms->reorderCalculations($docId, $layerName, $request) -> ?DocFormsReorderCalculations200Response

🔌 Usage

$client->doc->forms->reorderCalculations(
    'docId',
    'layerName',
    new DocFormsReorderCalculationsRequest([
        'fields' => [
            FormFieldRef::objectNumber(new FormFieldRefObjectNumber([
                'objectNumber' => 1,
            ])),
        ],
        'position' => FieldPositionZero::Start->value,
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$fields: array

$position: string|FieldPositionAfter

$client->doc->forms->setValue($docId, $layerName, $fieldKey, $request) -> ?DocFormsSetValue200Response

🔌 Usage

$client->doc->forms->setValue(
    'docId',
    'layerName',
    'fieldKey',
    new SetValueFormsRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$fieldKey: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->forms->reset($docId, $layerName, $request) -> ?DocFormsReset200Response

🔌 Usage

$client->doc->forms->reset(
    'docId',
    'layerName',
    new DocFormsResetRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$refs: ?array

$client->doc->forms->deleteWidget($docId, $layerName, $pageKey, $annotKey, $request) -> ?DocFormsDeleteWidget200Response

🔌 Usage

$client->doc->forms->deleteWidget(
    'docId',
    'layerName',
    'pageKey',
    'annotKey',
    new DeleteWidgetFormsRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$annotKey: string — The annotation's address on the page: obj:N, its indirect object number, or base:N for an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation's ref carries for life.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$client->doc->forms->updateWidget($docId, $layerName, $pageKey, $annotKey, $request) -> ?DocFormsUpdateWidget200Response

🔌 Usage

$client->doc->forms->updateWidget(
    'docId',
    'layerName',
    'pageKey',
    'annotKey',
    new DocFormsUpdateWidgetRequest([
        'patch' => new WidgetPatch([]),
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$annotKey: string — The annotation's address on the page: obj:N, its indirect object number, or base:N for an annotation the uploaded file stored inline (without an object number of its own), the position it was born at in the page's /Annots. The name the annotation's ref carries for life.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$patch: WidgetPatch

$client->doc->forms->reorderWidgets($docId, $layerName, $pageKey, $request) -> ?DocFormsReorderWidgets200Response

🔌 Usage

$client->doc->forms->reorderWidgets(
    'docId',
    'layerName',
    'pageKey',
    new DocFormsReorderWidgetsRequest([
        'widgets' => [
            AnnotationRef::objectNumber(new AnnotationRefObjectNumber([
                'page' => new PageRef([
                    'kind' => PageRefKind::ObjectNumber->value,
                    'objectNumber' => 1,
                ]),
                'objectNumber' => 1,
            ])),
        ],
        'position' => AnnotationPositionZero::Start->value,
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$widgets: array

$position: string|AnnotationPositionAfter

Doc Metadata

$client->doc->metadata->get($docId, $layerName, $request) -> ?DocumentMetadata

🔌 Usage

$client->doc->metadata->get(
    'docId',
    'layerName',
    new GetMetadataRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

Doc Pages

$client->doc->pages->setScale($docId, $layerName, $pageKey, $request) -> ?DocPagesSetScale200Response

🔌 Usage

$client->doc->pages->setScale(
    'docId',
    'layerName',
    'pageKey',
    new DocPagesSetScaleRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$measure: ?DocPagesSetScaleRequestMeasure

$client->doc->pages->viewports($docId, $layerName, $pageKey, $request) -> ?DocPagesViewports200Response

🔌 Usage

$client->doc->pages->viewports(
    'docId',
    'layerName',
    'pageKey',
    new ViewportsPagesRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$pageKey: string — The page's address, obj:N: the page's indirect object number, the durable identity every PageLayout.ref carries. Mirrors annotKey and fieldKey.

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->pages->delete($docId, $layerName, $request) -> ?DocPagesDelete200Response

🔌 Usage

$client->doc->pages->delete(
    'docId',
    'layerName',
    new DeletePagesRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->pages->extract($docId, $layerName, $request) -> string

📝 Description

A read, not a mutation: the source document is untouched and no event is published. Body is {"pages": PageRef[]}; the response body is the new PDF.

🔌 Usage

$client->doc->pages->extract(
    'docId',
    'layerName',
    new ExtractPagesRequest([
        'body' => [
            'string' => [
                'key' => "value",
            ],
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$request: array

$client->doc->pages->flatten($docId, $layerName, $request) -> ?DocPagesFlatten200Response

🔌 Usage

$client->doc->pages->flatten(
    'docId',
    'layerName',
    new FlattenPagesRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->pages->insert($docId, $layerName, $request) -> ?DocPagesInsert200Response

📝 Description

Multipart: a JSON body part {"position"?: PagePosition, "resources": {"source": "<key>"}} (position omitted → the end), and the standalone PDF whose pages are copied in as the part resource:<key>. The inserted copies get fresh page object numbers, returned in insertion order.

🔌 Usage

$client->doc->pages->insert(
    'docId',
    'layerName',
    new InsertPagesRequest([
        'file' => File::createFromString("example_file", "example_file"),
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$client->doc->pages->insertBlank($docId, $layerName, $request) -> ?DocPagesInsertBlank200Response

📝 Description

Body is {"size": {"width", "height"}, "count"?, "position"?} — size in PDF points, count in [1, 100], position a PagePosition (omitted → the end).

🔌 Usage

$client->doc->pages->insertBlank(
    'docId',
    'layerName',
    new InsertBlankPagesRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->pages->setName($docId, $layerName, $request) -> ?DocPagesSetName200Response

🔌 Usage

$client->doc->pages->setName(
    'docId',
    'layerName',
    new SetNamePagesRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->pages->removeName($docId, $layerName, $request) -> ?DocPagesRemoveName200Response

🔌 Usage

$client->doc->pages->removeName(
    'docId',
    'layerName',
    new RemoveNamePagesRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

$client->doc->pages->reorder($docId, $layerName, $request) -> ?DocPagesReorder200Response

🔌 Usage

$client->doc->pages->reorder(
    'docId',
    'layerName',
    new DocPagesReorderRequest([
        'pages' => [
            new PageRef([
                'kind' => PageRefKind::ObjectNumber->value,
                'objectNumber' => 1,
            ]),
        ],
        'position' => PagePositionZero::Start->value,
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$pages: array

$position: string|PagePositionAfter

$client->doc->pages->rotate($docId, $layerName, $request) -> ?DocPagesRotate200Response

🔌 Usage

$client->doc->pages->rotate(
    'docId',
    'layerName',
    new RotatePagesRequest([
        'body' => [
            'key' => "value",
        ],
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$request: array

Doc Redactions

$client->doc->redactions->apply($docId, $layerName, $request) -> ?DocRedactionsApply200Response

🔌 Usage

$client->doc->redactions->apply(
    'docId',
    'layerName',
    new DocRedactionsApplyRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$idempotencyKey: ?string — Names the change: 1 to 255 printable ASCII characters. A retry under the same key on the same layer answers with what the first request committed, and changes nothing.

$pages: ?array

$annotations: ?array

Doc Signatures

$client->doc->signatures->list($docId, $layerName, $request) -> ?DocSignaturesList200Response

📝 Description

Describes the bytes the layer is over: the base version's signatures plus the layer's own edits as the last revision. Signed bytes (contents, digests, revision prefixes) are served per base version under /versions.

🔌 Usage

$client->doc->signatures->list(
    'docId',
    'layerName',
    new ListSignaturesRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->signatures->cancel($docId, $layerName, $signingId, $request) -> ?DocSignaturesCancel200Response

🔌 Usage

$client->doc->signatures->cancel(
    'docId',
    'layerName',
    'signingId',
    new CancelSignaturesRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$signingId: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->signatures->complete($docId, $layerName, $signingId, $request) -> ?DocSignaturesComplete200Response

📝 Description

cms is the detached CMS over the prepared digest, base64. expectedVersion must be what prepare returned. Idempotent by signing id: the same CMS again answers already-completed. Every layer of the document then sits over the new version; refetch the manifest after a completion.

🔌 Usage

$client->doc->signatures->complete(
    'docId',
    'layerName',
    'signingId',
    new DocSignaturesCompleteRequest([
        'cms' => 'cms',
        'expectedVersion' => new DocSignaturesCompleteRequestExpectedVersion([
            'baseSha256' => 'baseSha256',
            'editsVersion' => 1,
        ]),
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$signingId: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$cms: string

$expectedVersion: DocSignaturesCompleteRequestExpectedVersion

$client->doc->signatures->analysis($docId, $layerName, $request) -> ?DocSignaturesAnalysis200Response

📝 Description

Exactly one of since.signature=<index> or since.revision=<index>; the layer's pending edits are the end. level=fill|annotate|lta|none evaluates exploratorily and never becomes a verdict. For history between two base revisions use the version analysis.

🔌 Usage

$client->doc->signatures->analysis(
    'docId',
    'layerName',
    new AnalysisSignaturesRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$sinceSignature: ?int

$sinceRevision: ?int

$level: ?string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->signatures->prepare($docId, $layerName, $request) -> ?DocSignaturesPrepare200Response

📝 Description

Multipart: a JSON body part (field, subFilter, digest, contentsSize, signer, certify, lock), naming the appearance PDF it may carry as resources: { appearance: '<key>' }, and that PDF as the part resource:<key>. A certification (certify.permission) additionally requires doc.sign.certify. The layer is read-only until the signing completes, is cancelled, or expires (15 minutes). A layer behind the document head cannot sign (StaleBase).

🔌 Usage

$client->doc->signatures->prepare(
    'docId',
    'layerName',
    new PrepareSignaturesRequest([
        'file' => File::createFromString("example_file", "example_file"),
    ]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

Doc Versions

$client->doc->versions->list($docId, $request) -> ?DocVersionsList200Response

📝 Description

Every completed signature publishes a new version. Never cached: the list grows.

🔌 Usage

$client->doc->versions->list(
    'docId',
    new ListVersionsRequest([]),
);

⚙️ Parameters

$docId: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->versions->analysis($docId, $sha, $request) -> ?DocVersionsAnalysis200Response

📝 Description

Exactly one of since.signature / since.revision; until=<revision> defaults to the last. The same answer for every layer and every caller.

🔌 Usage

$client->doc->versions->analysis(
    'docId',
    'sha',
    new AnalysisVersionsRequest([]),
);

⚙️ Parameters

$docId: string

$sha: string

$sinceSignature: ?int

$sinceRevision: ?int

$level: ?string

$until: ?int

$policy: ?int

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->versions->download($docId, $sha, $request) -> string

🔌 Usage

$client->doc->versions->download(
    'docId',
    'sha',
    new DownloadVersionsRequest([]),
);

⚙️ Parameters

$docId: string

$sha: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->versions->revision($docId, $sha, $index, $request) -> string

🔌 Usage

$client->doc->versions->revision(
    'docId',
    'sha',
    1,
    new RevisionVersionsRequest([]),
);

⚙️ Parameters

$docId: string

$sha: string

$index: int

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->versions->signatures($docId, $sha, $request) -> ?DocVersionsSignatures200Response

🔌 Usage

$client->doc->versions->signatures(
    'docId',
    'sha',
    new SignaturesVersionsRequest([]),
);

⚙️ Parameters

$docId: string

$sha: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->versions->signatureContents($docId, $sha, $fieldKey, $request) -> string

📝 Description

fieldKey is the field's fully qualified name, token-text encoded (the same encoding attachment keys use).

🔌 Usage

$client->doc->versions->signatureContents(
    'docId',
    'sha',
    'fieldKey',
    new SignatureContentsVersionsRequest([]),
);

⚙️ Parameters

$docId: string

$sha: string

$fieldKey: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

$client->doc->versions->signatureDigest($docId, $sha, $fieldKey, $algorithm, $request) -> string

📝 Description

What a CMS verifier compares its message digest to.

🔌 Usage

$client->doc->versions->signatureDigest(
    'docId',
    'sha',
    'fieldKey',
    SignatureDigestVersionsRequestAlgorithm::Sha1->value,
    new SignatureDigestVersionsRequest([]),
);

⚙️ Parameters

$docId: string

$sha: string

$fieldKey: string

$algorithm: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.

Doc Metadata Custom

$client->doc->metadata->custom->get($docId, $layerName, $request) -> ?array

🔌 Usage

$client->doc->metadata->custom->get(
    'docId',
    'layerName',
    new GetCustomRequest([]),
);

⚙️ Parameters

$docId: string

$layerName: string

$documentPassword: ?string — Base64-encoded password for an encrypted document. Valid only with the API token (403 anywhere else). An encrypted document answers 422 DocPasswordRequired when the header is absent. Viewer doc JWTs use the SDK password-session flow instead.