# Generate Document (Sync)

Generate one or more documents synchronously from Apex.

> Kind: Apex method · Updated: 2026-07-01

## Signature

```apex
global static List<GeneratedDocument> generateDocumentSync(
  List<Types.DocGenRequestInput> payloads,
  String runAs
)
```

### Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| payloads | List&lt;<a href="#/apex-type-docgen-request-input">Types.DocGenRequestInput</a>&gt; | required | A List of Types.DocGenRequestInput — one entry per document to generate. |
| runAs | String | required | Username to attribute the operation to; usually a static value such as 'integrationUser'. |

## Return Type

List<GeneratedDocument&gt; — one entry per generated document.

## Example

```apex
cldfs.DocGenParams dcp = new cldfs.DocGenParams();
dcp.PdfViewPassword = 'admin';
dcp.PdfOwnerPassword = 'superadmin';
dcp.LockPdf = true;
dcp.AllowPdfPrinting = true;
dcp.AllowFillingPdfFormFields = true;

cldfs.Types.DocGenRequestInput docGenInputs = new cldfs.Types.DocGenRequestInput(
  '681b4169c697ffdc2aab2731',
  new Map<String, String>{ 'userId' => '005dL000008FbqgQAC', 'recordId' => '003dL00000YsapJQAR'},
  'pdf',
  new cldfs.Resource(
    '68887db5ef0b3ca7534dbbd5',
    'folder',
    null,
    'cloudfiles',
    'workspace'
  ),
  dcp
);
List<cldfs.Types.DocGenRequestInput> payload = new List<cldfs.Types.DocGenRequestInput>{
  docGenInputs
};
List<cldfs.GeneratedDocument> generatedDocuments = cldfs.Client.generateDocumentSync(
  payload,
  'integrationUser'
);
```
