[ { "id": "sign-a-document-signer", "title": "Sign a document: create it with one signer", "title_pt": "Assinar um documento: criá-lo com um signatário", "description": "Uploads a PDF, then creates a document whose flow has a single `Signer` action; Signer e-mails the participant an invitation to sign.", "product": "signer", "area": "documents", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithOneSignerScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/get-started", "demo_url": "https://try.lacunasoftware.com/en/signer/sign-a-document", "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "sign-a-document-signer", "title": "Sign a document: create it with one signer", "title_pt": "Assinar um documento: criá-lo com um signatário", "description": "Uploads a PDF, then creates a document whose flow has a single `Signer` action; Signer e-mails the participant an invitation to sign.", "product": "signer", "area": "documents", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithOneSignerScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/get-started", "demo_url": "https://try.lacunasoftware.com/en/signer/sign-a-document", "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "sign-a-document-signer", "title": "Sign a document: create it with one signer", "title_pt": "Assinar um documento: criá-lo com um signatário", "description": "Uploads a PDF, then creates a document whose flow has a single `Signer` action; Signer e-mails the participant an invitation to sign.", "product": "signer", "area": "documents", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithOneSignerScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/get-started", "demo_url": "https://try.lacunasoftware.com/en/signer/sign-a-document", "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithOneSignerScenario.ts", "url": null } }, { "id": "sign-a-document-signer", "title": "Sign a document: create it with one signer", "title_pt": "Assinar um documento: criá-lo com um signatário", "description": "Uploads a PDF, then creates a document whose flow has a single `Signer` action; Signer e-mails the participant an invitation to sign.", "product": "signer", "area": "documents", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithOneSignerScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/get-started", "demo_url": "https://try.lacunasoftware.com/en/signer/sign-a-document", "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-with-attachment-signer", "title": "Create a document with an attachment", "title_pt": "Criar um documento com um anexo", "description": "Uploads the document file and an attachment file, then creates the document with the attachment in `attachments`; `isPrivate` restricts the attachment to the organization's participants (true) or shows it to everyone in the flow (false). Sets `IsPrivate = false`.", "product": "signer", "area": "documents", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithAttachmentScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-with-attachment-signer", "title": "Create a document with an attachment", "title_pt": "Criar um documento com um anexo", "description": "Uploads the document file and an attachment file, then creates the document with the attachment in `attachments`; `isPrivate` restricts the attachment to the organization's participants (true) or shows it to everyone in the flow (false). Sets `isPrivate` to false.", "product": "signer", "area": "documents", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithAttachmentScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-with-attachment-signer", "title": "Create a document with an attachment", "title_pt": "Criar um documento com um anexo", "description": "Uploads the document file and an attachment file, then creates the document with the attachment in `attachments`; `isPrivate` restricts the attachment to the organization's participants (true) or shows it to everyone in the flow (false). Sets `isPrivate: false`.", "product": "signer", "area": "documents", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithAttachmentScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithAttachmentScenario.ts", "url": null } }, { "id": "create-document-with-attachment-signer", "title": "Create a document with an attachment", "title_pt": "Criar um documento com um anexo", "description": "Uploads the document file and an attachment file, then creates the document with the attachment in `attachments`; `isPrivate` restricts the attachment to the organization's participants (true) or shows it to everyone in the flow (false). Sets `isPrivate` to false.", "product": "signer", "area": "documents", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithAttachmentScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-with-description-signer", "title": "Create a document with a description", "title_pt": "Criar um documento com uma descrição", "description": "Creates a one-signer document and sets its `description` text.", "product": "signer", "area": "documents", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithDescriptionScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-with-description-signer", "title": "Create a document with a description", "title_pt": "Criar um documento com uma descrição", "description": "Creates a one-signer document and sets its `description` text.", "product": "signer", "area": "documents", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithDescriptionScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-with-description-signer", "title": "Create a document with a description", "title_pt": "Criar um documento com uma descrição", "description": "Creates a one-signer document and sets its `description` text.", "product": "signer", "area": "documents", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithDescriptionScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithDescriptionScenario.ts", "url": null } }, { "id": "create-document-with-description-signer", "title": "Create a document with a description", "title_pt": "Criar um documento com uma descrição", "description": "Creates a one-signer document and sets its `description` text.", "product": "signer", "area": "documents", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithDescriptionScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-envelope-signer", "title": "Merge several PDFs into one document (envelope)", "title_pt": "Mesclar vários PDFs em um único documento (envelope)", "description": "Uploads two PDFs and creates a single document from both with `isEnvelope = true` and an `envelopeName`, which an envelope must have. Merging only works when every file is a PDF.", "product": "signer", "area": "documents", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithEnvelopeScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#merge-multiple-files-into-a-single-document-envelope", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-envelope-signer", "title": "Merge several PDFs into one document (envelope)", "title_pt": "Mesclar vários PDFs em um único documento (envelope)", "description": "Uploads two PDFs and creates a single document from both with `isEnvelope = true` and an `envelopeName`, which an envelope must have. Merging only works when every file is a PDF.", "product": "signer", "area": "documents", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithEnvelopeScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#merge-multiple-files-into-a-single-document-envelope", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-envelope-signer", "title": "Merge several PDFs into one document (envelope)", "title_pt": "Mesclar vários PDFs em um único documento (envelope)", "description": "Uploads two PDFs and creates a single document from both with `isEnvelope = true` and an `envelopeName`, which an envelope must have. Merging only works when every file is a PDF.", "product": "signer", "area": "documents", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithEnvelopeScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#merge-multiple-files-into-a-single-document-envelope", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithEnvelopeScenario.ts", "url": null } }, { "id": "create-envelope-signer", "title": "Merge several PDFs into one document (envelope)", "title_pt": "Mesclar vários PDFs em um único documento (envelope)", "description": "Uploads two PDFs and creates a single document from both with `isEnvelope = true` and an `envelopeName`, which an envelope must have. Merging only works when every file is a PDF.", "product": "signer", "area": "documents", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithEnvelopeScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#merge-multiple-files-into-a-single-document-envelope", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "upload-file-base64-signer", "title": "Upload a file as Base64", "title_pt": "Fazer upload de um arquivo em Base64", "description": "Reads a PDF, sends its Base64 bytes to the Base64 upload API (`POST /api/uploads/bytes`) and creates a one-signer document from the returned upload id. Uses `uploadFileBytes` with an `UploadsUploadBytesRequest`, then builds the `UploadModel` by hand.", "product": "signer", "area": "documents", "language": "php", "framework": "console", "path": "php/Scenarios/CreateBase64DocumentScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "upload-file-multipart-signer", "title": "Upload a file as multipart/form-data", "title_pt": "Fazer upload de um arquivo como multipart/form-data", "description": "Uploads a PDF with the multipart upload API (`POST /api/uploads`) and prints the result, whose `id` is the upload id that document creation takes. Uses `UploadApi.apiUploadsPost`.", "product": "signer", "area": "documents", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/uploadUsingMultipartFormDataScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/uploadUsingMultipartFormDataScenario.ts", "url": null } }, { "id": "create-document-large-file-signer", "title": "Create a document from a large file", "title_pt": "Criar um documento a partir de um arquivo grande", "description": "Uploads a large PDF with the client's file upload (the comment asks for a file over 10 MB), then creates a one-signer document from it. Caveat: it reads `resources/bigsample.pdf`, which is not in the repository; add your own large PDF there.", "product": "signer", "area": "documents", "language": "php", "framework": "console", "path": "php/Scenarios/CreateLargeDocumentScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/get-started#step-2-upload-the-file", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "generate-document-from-template-signer", "title": "Generate a document from a PDF form template and CSV data", "title_pt": "Gerar um documento a partir de um modelo de formulário PDF e de dados em CSV", "description": "Uploads a PDF form template and a CSV data file, then calls the document generation API with both files and two `Signer` actions. Prints the generation id and does not wait for the generation to finish.", "product": "signer", "area": "documents", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/GenerateDocumentWithTwoOrMoreSignersScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/Contrato-Servicos.pdf", "java/console/src/main/resources/static/Contrato-Servicos.csv" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration-guide", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "generate-document-from-template-signer", "title": "Generate a document from a PDF form template and CSV data", "title_pt": "Gerar um documento a partir de um modelo de formulário PDF e de dados em CSV", "description": "Uploads a PDF form template and a CSV data file, then calls the document generation API with both files and two `Signer` actions. Waits 10 seconds, then checks `getGenerationStatus` for `DONE`.", "product": "signer", "area": "documents", "language": "php", "framework": "console", "path": "php/Scenarios/GenerateDocumentWithTwoOrMoreSignersScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/Contrato-Servicos.pdf", "php/resources/Contrato-Servicos.csv" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration-guide", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-multiple-signers-signer", "title": "Create a document with two or more signers, in any order", "title_pt": "Criar um documento com dois ou mais signatários, em qualquer ordem", "description": "Creates a document with two `Signer` actions and no `step`, so both participants can sign at the same time.", "product": "signer", "area": "flows", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithTwoOrMoreSignersWithoutOrderScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-multiple-signers-signer", "title": "Create a document with two or more signers, in any order", "title_pt": "Criar um documento com dois ou mais signatários, em qualquer ordem", "description": "Creates a document with two `Signer` actions and no `step`, so both participants can sign at the same time.", "product": "signer", "area": "flows", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithTwoOrMoreSignersWithoutOrderScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-multiple-signers-signer", "title": "Create a document with two or more signers, in any order", "title_pt": "Criar um documento com dois ou mais signatários, em qualquer ordem", "description": "Creates a document with two `Signer` actions and no `step`, so both participants can sign at the same time.", "product": "signer", "area": "flows", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithTwoOrMoreSignersWithoutOrderScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithTwoOrMoreSignersWithoutOrderScenario.ts", "url": null } }, { "id": "create-document-multiple-signers-signer", "title": "Create a document with two or more signers, in any order", "title_pt": "Criar um documento com dois ou mais signatários, em qualquer ordem", "description": "Creates a document with two `Signer` actions and no `step`, so both participants can sign at the same time.", "product": "signer", "area": "flows", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithTwoOrMoreSignersWithoutOrderScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-ordered-flow-signer", "title": "Create a document with signers in a fixed order", "title_pt": "Criar um documento com signatários em uma ordem fixa", "description": "Creates a document with two `Signer` actions at `step` 1 and `step` 2; the second participant is notified only after the first one signs.", "product": "signer", "area": "flows", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithTwoOrMoreSignersWithOrderScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-ordered-flow-signer", "title": "Create a document with signers in a fixed order", "title_pt": "Criar um documento com signatários em uma ordem fixa", "description": "Creates a document with two `Signer` actions at `step` 1 and `step` 2; the second participant is notified only after the first one signs.", "product": "signer", "area": "flows", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithTwoOrMoreSignersWithOrderScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-ordered-flow-signer", "title": "Create a document with signers in a fixed order", "title_pt": "Criar um documento com signatários em uma ordem fixa", "description": "Creates a document with two `Signer` actions at `step` 1 and `step` 2; the second participant is notified only after the first one signs.", "product": "signer", "area": "flows", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithTwoOrMoreSignersWithOrderScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithTwoOrMoreSignersWithOrderScenario.ts", "url": null } }, { "id": "create-document-ordered-flow-signer", "title": "Create a document with signers in a fixed order", "title_pt": "Criar um documento com signatários em uma ordem fixa", "description": "Creates a document with two `Signer` actions at `step` 1 and `step` 2; the second participant is notified only after the first one signs.", "product": "signer", "area": "flows", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithTwoOrMoreSignersWithOrderScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-with-approver-signer", "title": "Create a document with an approver", "title_pt": "Criar um documento com um aprovador", "description": "Creates a document whose flow action has type `Approver`: the participant approves the document without signing it.", "product": "signer", "area": "flows", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithApproversScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-with-approver-signer", "title": "Create a document with an approver", "title_pt": "Criar um documento com um aprovador", "description": "Creates a document whose flow action has type `Approver`: the participant approves the document without signing it.", "product": "signer", "area": "flows", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithApproversScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-with-approver-signer", "title": "Create a document with an approver", "title_pt": "Criar um documento com um aprovador", "description": "Creates a document whose flow action has type `Approver`: the participant approves the document without signing it.", "product": "signer", "area": "flows", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithApproversScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithApproversScenario.ts", "url": null } }, { "id": "create-document-with-approver-signer", "title": "Create a document with an approver", "title_pt": "Criar um documento com um aprovador", "description": "Creates a document whose flow action has type `Approver`: the participant approves the document without signing it.", "product": "signer", "area": "flows", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithApproversScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-with-signing-rule-signer", "title": "Create a document with a signing rule (any N of a group)", "title_pt": "Criar um documento com uma regra de assinatura (quaisquer N de um grupo)", "description": "Creates one `SignRule` action with two users in `signRuleUsers` and `numberRequiredSignatures = 1`, so a signature from either of them completes the action.", "product": "signer", "area": "flows", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithSigningRuleScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-with-signing-rule-signer", "title": "Create a document with a signing rule (any N of a group)", "title_pt": "Criar um documento com uma regra de assinatura (quaisquer N de um grupo)", "description": "Creates one `SignRule` action with two users in `signRuleUsers` and `numberRequiredSignatures = 1`, so a signature from either of them completes the action.", "product": "signer", "area": "flows", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithSigningRuleScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-with-signing-rule-signer", "title": "Create a document with a signing rule (any N of a group)", "title_pt": "Criar um documento com uma regra de assinatura (quaisquer N de um grupo)", "description": "Creates one `SignRule` action with two users in `signRuleUsers` and `numberRequiredSignatures = 1`, so a signature from either of them completes the action.", "product": "signer", "area": "flows", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithSigningRuleScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithSigningRuleScenario.ts", "url": null } }, { "id": "create-document-with-signing-rule-signer", "title": "Create a document with a signing rule (any N of a group)", "title_pt": "Criar um documento com uma regra de assinatura (quaisquer N de um grupo)", "description": "Creates one `SignRule` action with two users in `signRuleUsers` and `numberRequiredSignatures = 1`, so a signature from either of them completes the action.", "product": "signer", "area": "flows", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithSigningRuleScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-with-positioned-signatures-signer", "title": "Pre-position a signature on the document", "title_pt": "Pré-posicionar uma assinatura no documento", "description": "Creates a one-signer document whose flow action has a `prePositionedMarks` entry of type `SignatureVisualRepresentation`, which places the signature on a given page, position and size of the uploaded file. The class in this file is named `CreateDocumentWithPositionedSignatures`, without the `Scenario` suffix.", "product": "signer", "area": "flows", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentWithPositionedSignaturesScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#pre-positioning-a-signature-on-the-document", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-with-positioned-signatures-signer", "title": "Pre-position a signature on the document", "title_pt": "Pré-posicionar uma assinatura no documento", "description": "Creates a one-signer document whose flow action has a `prePositionedMarks` entry of type `SignatureVisualRepresentation`, which places the signature on a given page, position and size of the uploaded file.", "product": "signer", "area": "flows", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentWithPositionedSignaturesScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#pre-positioning-a-signature-on-the-document", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-with-positioned-signatures-signer", "title": "Pre-position a signature on the document", "title_pt": "Pré-posicionar uma assinatura no documento", "description": "Creates a one-signer document whose flow action has a `prePositionedMarks` entry of type `SignatureVisualRepresentation`, which places the signature on a given page, position and size of the uploaded file.", "product": "signer", "area": "flows", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentWithPositionedSignaturesScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#pre-positioning-a-signature-on-the-document", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentWithPositionedSignaturesScenario.ts", "url": null } }, { "id": "create-document-with-positioned-signatures-signer", "title": "Pre-position a signature on the document", "title_pt": "Pré-posicionar uma assinatura no documento", "description": "Creates a one-signer document whose flow action has a `prePositionedMarks` entry of type `SignatureVisualRepresentation`, which places the signature on a given page, position and size of the uploaded file.", "product": "signer", "area": "flows", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentWithPositionedSignaturesScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#pre-positioning-a-signature-on-the-document", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "add-signer-to-existing-document-signer", "title": "Add a signer to an existing document", "title_pt": "Adicionar um signatário a um documento existente", "description": "Creates a document, then edits its flow (`POST /api/documents/{id}/flow`) with an `addedFlowActions` entry whose `step` comes after the existing actions, and sends a reminder to every participant whose action is `Pending`. The comment says the new action's step must be greater than or equal to the current pending step.", "product": "signer", "area": "flows", "language": "php", "framework": "console", "path": "php/Scenarios/AddSignerToExistingDocumentScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "edit-flow-action-signer", "title": "Change a participant in an ongoing flow", "title_pt": "Trocar um participante de um fluxo em andamento", "description": "Creates a document, reads its flow actions, then edits the flow (`POST /api/documents/{id}/flow`) with an `editedFlowActions` entry that changes the e-mail address of the first action's participant.", "product": "signer", "area": "flows", "language": "php", "framework": "console", "path": "php/Scenarios/DocumentFlowEditRequestScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#the-flow-flowactions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-pdf-with-cades-signature-signer", "title": "Require a CAdES signature on a PDF", "title_pt": "Exigir uma assinatura CAdES em um PDF", "description": "Creates a one-signer PDF document with `forceCadesSignature = true`, since PAdES is the default for PDF files.", "product": "signer", "area": "signature-formats", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreatePDFDocumentWithCadesSignatureScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-pdf-with-cades-signature-signer", "title": "Require a CAdES signature on a PDF", "title_pt": "Exigir uma assinatura CAdES em um PDF", "description": "Creates a one-signer PDF document with `forceCadesSignature = true`, since PAdES is the default for PDF files.", "product": "signer", "area": "signature-formats", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreatePDFDocumentWithCadesSignatureScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-pdf-with-cades-signature-signer", "title": "Require a CAdES signature on a PDF", "title_pt": "Exigir uma assinatura CAdES em um PDF", "description": "Creates a one-signer PDF document with `forceCadesSignature = true`, since PAdES is the default for PDF files.", "product": "signer", "area": "signature-formats", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createPDFDocumentWithCadesSignatureScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createPDFDocumentWithCadesSignatureScenario.ts", "url": null } }, { "id": "create-pdf-with-cades-signature-signer", "title": "Require a CAdES signature on a PDF", "title_pt": "Exigir uma assinatura CAdES em um PDF", "description": "Creates a one-signer PDF document with `forceCadesSignature = true`, since PAdES is the default for PDF files.", "product": "signer", "area": "signature-formats", "language": "php", "framework": "console", "path": "php/Scenarios/CreatePDFDocumentWithCadesSignatureScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-xml-full-signature-signer", "title": "Sign a whole XML file (XAdES)", "title_pt": "Assinar um arquivo XML inteiro (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` with signature type `FullXml`.", "product": "signer", "area": "signature-formats", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateXMLWithFullDocumentSignatureScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-xml-full-signature-signer", "title": "Sign a whole XML file (XAdES)", "title_pt": "Assinar um arquivo XML inteiro (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` with signature type `FullXml`.", "product": "signer", "area": "signature-formats", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateXmlWithFullDocumentSignatureScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-xml-full-signature-signer", "title": "Sign a whole XML file (XAdES)", "title_pt": "Assinar um arquivo XML inteiro (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` with signature type `FullXml`.", "product": "signer", "area": "signature-formats", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createXmlWithFullDocumentSignatureScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createXmlWithFullDocumentSignatureScenario.ts", "url": null } }, { "id": "create-xml-full-signature-signer", "title": "Sign a whole XML file (XAdES)", "title_pt": "Assinar um arquivo XML inteiro (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` with signature type `FullXml`.", "product": "signer", "area": "signature-formats", "language": "php", "framework": "console", "path": "php/Scenarios/CreateXmlWithFullDocumentSignatureScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-xml-element-signature-signer", "title": "Sign one element of an XML file (XAdES)", "title_pt": "Assinar um elemento de um arquivo XML (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` of type `XmlElement`, identifying the element to sign by the value of its `Id` attribute.", "product": "signer", "area": "signature-formats", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateXMLWithElementSignatureScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-xml-element-signature-signer", "title": "Sign one element of an XML file (XAdES)", "title_pt": "Assinar um elemento de um arquivo XML (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` of type `XmlElement`, identifying the element to sign by the value of its `Id` attribute.", "product": "signer", "area": "signature-formats", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateXMLWithElementSignatureScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-xml-element-signature-signer", "title": "Sign one element of an XML file (XAdES)", "title_pt": "Assinar um elemento de um arquivo XML (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` of type `XmlElement`, identifying the element to sign by the value of its `Id` attribute.", "product": "signer", "area": "signature-formats", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createXMLWithElementSignatureScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createXMLWithElementSignatureScenario.ts", "url": null } }, { "id": "create-xml-element-signature-signer", "title": "Sign one element of an XML file (XAdES)", "title_pt": "Assinar um elemento de um arquivo XML (XAdES)", "description": "Uploads an XML file and gives the signer's flow action `xadesOptions` of type `XmlElement`, identifying the element to sign by the value of its `Id` attribute.", "product": "signer", "area": "signature-formats", "language": "php", "framework": "console", "path": "php/Scenarios/CreateXMLWithElementSignatureScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-digital-degree-signer", "title": "Sign a Brazilian digital diploma (XAdES, Portaria MEC 554/2019)", "title_pt": "Assinar um diploma digital (XAdES, Portaria MEC 554/2019)", "description": "Uploads a diploma XML, declares the `dip` namespace in `xmlNamespaces`, and creates three signer actions: one signs `//dip:DadosDiploma`, one `//dip:DadosRegistro` (XPath, `AppendChild`), and one the full XML.", "product": "signer", "area": "signature-formats", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDigitalDegreeScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample-degree.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-digital-degree-signer", "title": "Sign a Brazilian digital diploma (XAdES, Portaria MEC 554/2019)", "title_pt": "Assinar um diploma digital (XAdES, Portaria MEC 554/2019)", "description": "Uploads a diploma XML, declares the `dip` namespace in `xmlNamespaces`, and creates three signer actions: one signs `//dip:DadosDiploma`, one `//dip:DadosRegistro` (XPath, `AppendChild`), and one the full XML.", "product": "signer", "area": "signature-formats", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDigitalDegreeScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample-degree.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-digital-degree-signer", "title": "Sign a Brazilian digital diploma (XAdES, Portaria MEC 554/2019)", "title_pt": "Assinar um diploma digital (XAdES, Portaria MEC 554/2019)", "description": "Uploads a diploma XML, declares the `dip` namespace in `xmlNamespaces`, and creates three signer actions: one signs `//dip:DadosDiploma`, one `//dip:DadosRegistro` (XPath, `AppendChild`), and one the full XML.", "product": "signer", "area": "signature-formats", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDigitalDegreeScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample-degree.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDigitalDegreeScenario.ts", "url": null } }, { "id": "create-digital-degree-signer", "title": "Sign a Brazilian digital diploma (XAdES, Portaria MEC 554/2019)", "title_pt": "Assinar um diploma digital (XAdES, Portaria MEC 554/2019)", "description": "Uploads a diploma XML, declares the `dip` namespace in `xmlNamespaces`, and creates three signer actions: one signs `//dip:DadosDiploma`, one `//dip:DadosRegistro` (XPath, `AppendChild`), and one the full XML. Also puts the document in a new folder named \"New Folder\".", "product": "signer", "area": "signature-formats", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDigitalDegreeScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample-degree.xml" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "public-signature-with-certificate-signer", "title": "Sign with a digital certificate through the API (public signature)", "title_pt": "Assinar com um certificado digital pela API (assinatura pública)", "description": "Creates a one-signer document, gets the participant's action URL, takes the document key and ticket from it, calls `startPublicSignature` with the signer's certificate, signs the returned hash with the matching private key, and sends the signature to `completePublicSignature`. Loads the certificate and key from `56072386105.pfx` (a Lacuna test certificate, password `1234`, kept in `nodejs/samples`), which you must copy next to the executable; handles RSA or ECDSA keys and SHA-1 to SHA-512.", "product": "signer", "area": "signing", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/PublicSignatureScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf", "nodejs/samples/56072386105.pfx" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#signing-in-your-own-application", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "public-signature-with-certificate-signer", "title": "Sign with a digital certificate through the API (public signature)", "title_pt": "Assinar com um certificado digital pela API (assinatura pública)", "description": "Creates a one-signer document, gets the participant's action URL, takes the document key and ticket from it, calls `startPublicSignature` with the signer's certificate, signs the returned hash with the matching private key, and sends the signature to `completePublicSignature`. Deprecated until it is fixed: `performSignature` is a stub that throws, the `certificate.cer` it loads is not in the repository, and it does not send the ticket; use the .NET or Node.js sample as the reference.", "product": "signer", "area": "signing", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/PublicSignatureScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "deprecated", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#signing-in-your-own-application", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "public-signature-with-certificate-signer", "title": "Sign with a digital certificate through the API (public signature)", "title_pt": "Assinar com um certificado digital pela API (assinatura pública)", "description": "Creates a one-signer document, gets the participant's action URL, takes the document key and ticket from it, calls `startPublicSignature` with the signer's certificate, signs the returned hash with the matching private key, and sends the signature to `completePublicSignature`. Loads the test PFX with node-forge, handles SHA-256 hashes only, and prints the document's validation URL.", "product": "signer", "area": "signing", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/publicSignatureScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf", "nodejs/samples/56072386105.pfx" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#signing-in-your-own-application", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/publicSignatureScenario.ts", "url": null } }, { "id": "electronic-signature-with-signature-image-signer", "title": "Sign electronically with an uploaded signature image", "title_pt": "Assinar eletronicamente com uma imagem de assinatura enviada", "description": "Creates a document with `allowElectronicSignature`, gets the action URL, takes the document key and ticket from it, uploads a PNG, and calls `signElectronicallyWithKey` (`POST /api/documents/keys/{key}/electronic-signature`) with the signature position, the image as initials, and the user's time zone offset.", "product": "signer", "area": "signing", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/ElectronicSignatureWithSignatureImageScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf", "java/console/src/main/resources/static/signature-img.png" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#signing-in-your-own-application", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "embedded-signature-signer", "title": "Sign without leaving your page (embedded signature)", "title_pt": "Assinar sem sair da sua página (assinatura embutida)", "description": "Creates a one-signer document and asks for the participant's action URL; the response's `embedUrl` is what the LacunaSignerWidget renders inside your page. The sample only prints it.", "product": "signer", "area": "embedded-signing", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/EmbeddedSignatureScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/embedded-signature", "demo_url": "https://try.lacunasoftware.com/en/signer/embedded-signature", "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "embedded-signature-signer", "title": "Sign without leaving your page (embedded signature)", "title_pt": "Assinar sem sair da sua página (assinatura embutida)", "description": "Creates a one-signer document and asks for the participant's action URL; the response's `embedUrl` is what the LacunaSignerWidget renders inside your page. The sample only prints it.", "product": "signer", "area": "embedded-signing", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/EmbeddedSignatureScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/embedded-signature", "demo_url": "https://try.lacunasoftware.com/en/signer/embedded-signature", "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "embedded-signature-signer", "title": "Sign without leaving your page (embedded signature)", "title_pt": "Assinar sem sair da sua página (assinatura embutida)", "description": "Creates a one-signer document and asks for the participant's action URL; the response's `embedUrl` is what the LacunaSignerWidget renders inside your page. The sample only prints it.", "product": "signer", "area": "embedded-signing", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/embeddedSignatureScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/embedded-signature", "demo_url": "https://try.lacunasoftware.com/en/signer/embedded-signature", "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/embeddedSignatureScenario.ts", "url": null } }, { "id": "embedded-signature-signer", "title": "Sign without leaving your page (embedded signature)", "title_pt": "Assinar sem sair da sua página (assinatura embutida)", "description": "Creates a one-signer document and asks for the participant's action URL; the response's `embedUrl` is what the LacunaSignerWidget renders inside your page. The sample only prints it.", "product": "signer", "area": "embedded-signing", "language": "php", "framework": "console", "path": "php/Scenarios/EmbeddedSignatureScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/embedded-signature", "demo_url": "https://try.lacunasoftware.com/en/signer/embedded-signature", "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "check-document-status-signer", "title": "Check a document's status and its participants' actions", "title_pt": "Verificar o status de um documento e as ações dos participantes", "description": "Creates a document, reads it back with the document details call, and checks whether the whole flow is concluded and the `status` of each flow action. The comments recommend a webhook instead of polling.", "product": "signer", "area": "tracking", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CheckDocumentStatusScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking#check-document", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "check-document-status-signer", "title": "Check a document's status and its participants' actions", "title_pt": "Verificar o status de um documento e as ações dos participantes", "description": "Creates a document, reads it back with the document details call, and checks whether the whole flow is concluded and the `status` of each flow action. The comments recommend a webhook instead of polling.", "product": "signer", "area": "tracking", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CheckDocumentStatusScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking#check-document", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "check-document-status-signer", "title": "Check a document's status and its participants' actions", "title_pt": "Verificar o status de um documento e as ações dos participantes", "description": "Creates a document, reads it back with the document details call, and checks whether the whole flow is concluded and the `status` of each flow action. The comments recommend a webhook instead of polling. Prints the participants whose action is still `Pending`.", "product": "signer", "area": "tracking", "language": "php", "framework": "console", "path": "php/Scenarios/CheckDocumentStatusScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking#check-document", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "send-signing-reminders-signer", "title": "Send reminders to participants with pending actions", "title_pt": "Enviar lembretes aos participantes com ações pendentes", "description": "Reads the document's flow actions and sends a flow-action reminder for each one (`POST /api/notifications/flow-action-reminder`); only participants with pending actions are notified.", "product": "signer", "area": "tracking", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/NotifyFlowParticipantsScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking#send-signing-reminders", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "send-signing-reminders-signer", "title": "Send reminders to participants with pending actions", "title_pt": "Enviar lembretes aos participantes com ações pendentes", "description": "Reads the document's flow actions and sends a flow-action reminder for each one (`POST /api/notifications/flow-action-reminder`); only participants with pending actions are notified.", "product": "signer", "area": "tracking", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/NotifyFlowParticipantsScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking#send-signing-reminders", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "send-signing-reminders-signer", "title": "Send reminders to participants with pending actions", "title_pt": "Enviar lembretes aos participantes com ações pendentes", "description": "Reads the document's flow actions and sends a flow-action reminder for each one (`POST /api/notifications/flow-action-reminder`); only participants with pending actions are notified.", "product": "signer", "area": "tracking", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/notifyFlowParticipantsScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking#send-signing-reminders", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/notifyFlowParticipantsScenario.ts", "url": null } }, { "id": "send-signing-reminders-signer", "title": "Send reminders to participants with pending actions", "title_pt": "Enviar lembretes aos participantes com ações pendentes", "description": "Reads the document's flow actions and sends a flow-action reminder for each one (`POST /api/notifications/flow-action-reminder`); only participants with pending actions are notified.", "product": "signer", "area": "tracking", "language": "php", "framework": "console", "path": "php/Scenarios/NotifyFlowParticipantsScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/tracking#send-signing-reminders", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "list-documents-signer", "title": "List documents", "title_pt": "Listar documentos", "description": "Lists the organization's documents (`GET /api/documents`) with a name filter `q`, a page size, newest first, and a status filter. Filters with `Status = DocumentFilterStatus.Pending` (the `Status` parameter), which is the current way to filter; `IsConcluded` is deprecated.", "product": "signer", "area": "tracking", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/ListDocumentsScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#list-documents", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "list-documents-signer", "title": "List documents", "title_pt": "Listar documentos", "description": "Lists the organization's documents (`GET /api/documents`) with a name filter `q`, a page size, newest first, and a filter on whether the document is concluded. Filters with `DocumentFilterStatus.CONCLUDED` (the `Status` parameter), which is the current way to filter.", "product": "signer", "area": "tracking", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/ListDocumentsScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#list-documents", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "list-documents-signer", "title": "List documents", "title_pt": "Listar documentos", "description": "Lists the organization's documents (`GET /api/documents`) with a name filter `q`, a page size, newest first, and a status filter. Calls `DocumentsApi.apiDocumentsGet`, whose 16 parameters are positional (`undefined` for unused filters), with `status` set to `DocumentFilterStatus.Pending`, which is the current way to filter; `isConcluded` is deprecated.", "product": "signer", "area": "tracking", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/listDocumentsScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#list-documents", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/listDocumentsScenario.ts", "url": null } }, { "id": "list-documents-signer", "title": "List documents", "title_pt": "Listar documentos", "description": "Lists the organization's documents (`GET /api/documents`) with a name filter `q`, a page size, newest first, and a filter on whether the document is concluded. Legacy: it filters with `setIsConcluded(false)` because `lacuna/signer-client` 1.4.10, the latest release, cannot send `Status`: `listDocuments` builds a query with `IsConcluded` only. The .NET, Java and Node.js samples filter with `Status` (`DocumentFilterStatus`), the current way.", "product": "signer", "area": "tracking", "language": "php", "framework": "console", "path": "php/Scenarios/ListDocumentsScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php" ], "status": "legacy", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#list-documents", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "list-document-flows-signer", "title": "List saved document flows", "title_pt": "Listar os fluxos de documento salvos", "description": "Lists the organization's saved document flows (`GET /api/document-flows`) with a name filter, page size, offset and order, and prints the result. Despite its file name, it does not list documents (`listDocumentsScenario.ts` does). Uses `FlowsApi.apiDocumentFlowsGet`.", "product": "signer", "area": "tracking", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/listDocumentScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration-guide", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/listDocumentScenario.ts", "url": null } }, { "id": "webhook-endpoint-signer", "title": "Receive webhooks with a minimal HTTP endpoint", "title_pt": "Receber webhooks com um endpoint HTTP mínimo", "description": "Listens on `http://localhost:8080/webhook` (`SIGNER_WEBHOOK_PORT` changes the port) with `System.Net.HttpListener`. It answers 401 unless the `Authorization` header matches the token registered with the webhook (`SIGNER_WEBHOOK_TOKEN`), answers 200 before processing the event, ignores an event it already received (keyed on `type`, document `id` and `flowActionId`), and before acting on `DocumentConcluded` reads the document back and checks that its `status` is `Concluded`. Keeps the event keys in memory, then calls `CheckDocumentStatusScenario.HandleWebhook`. `HttpListener` accepts only the `localhost` Host header, so a tunnel must rewrite it (ngrok `--host-header=rewrite`).", "product": "signer", "area": "webhooks", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/WebhookEndpointScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/Scenarios/CheckDocumentStatusScenario.cs" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#best-practices", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "webhook-endpoint-signer", "title": "Receive webhooks with a minimal HTTP endpoint", "title_pt": "Receber webhooks com um endpoint HTTP mínimo", "description": "Listens on `http://localhost:8080/webhook` (`SIGNER_WEBHOOK_PORT` changes the port) with the JDK's `com.sun.net.httpserver.HttpServer`. It answers 401 unless the `Authorization` header matches the token registered with the webhook (`SIGNER_WEBHOOK_TOKEN`), answers 200 before processing the event, ignores an event it already received (keyed on `type`, document `id` and `flowActionId`), and before acting on `DocumentConcluded` reads the document back and checks that its `status` is `Concluded`. Keeps the event keys in memory and processes events on a separate thread, then calls `CheckDocumentStatusScenario.HandleWebhook`.", "product": "signer", "area": "webhooks", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/WebhookEndpointScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CheckDocumentStatusScenario.java" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#best-practices", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "webhook-endpoint-signer", "title": "Receive webhooks with a minimal HTTP endpoint", "title_pt": "Receber webhooks com um endpoint HTTP mínimo", "description": "Listens on `http://localhost:8080/webhook` (`SIGNER_WEBHOOK_PORT` changes the port) with Node's `http` module. It answers 401 unless the `Authorization` header matches the token registered with the webhook (`SIGNER_WEBHOOK_TOKEN`), answers 200 before processing the event, ignores an event it already received (keyed on `type`, document `id` and `flowActionId`), and before acting on `DocumentConcluded` reads the document back and checks that its `status` is `Concluded`. Keeps the event keys in memory, then calls `handleWebhook` from `checkDocumentStatusScenario.ts`.", "product": "signer", "area": "webhooks", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/webhookEndpointScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/scenarios/checkDocumentStatusScenario.ts" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#best-practices", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/webhookEndpointScenario.ts", "url": null } }, { "id": "webhook-endpoint-signer", "title": "Receive webhooks with a minimal HTTP endpoint", "title_pt": "Receber webhooks com um endpoint HTTP mínimo", "description": "Answers on `http://localhost:8080/webhook` under PHP's built-in web server, with `webhook.php` as the router script. It answers 401 unless the `Authorization` header matches the token registered with the webhook (`SIGNER_WEBHOOK_TOKEN`), answers 200 before processing the event, ignores an event it already received (keyed on `type`, document `id` and `flowActionId`), and before acting on `DocumentConcluded` reads the document back and checks that its `status` is `Concluded`. PHP keeps nothing in memory between requests, so each event key is recorded as a file in the temp folder. Then it passes the body to `CheckDocumentStatusScenario::HandleWebhook`.", "product": "signer", "area": "webhooks", "language": "php", "framework": "console", "path": "php/Scenarios/WebhookEndpointScenario.php", "related_files": [ "php/webhook.php", "php/Scenarios/Scenario.php", "php/Scenarios/CheckDocumentStatusScenario.php" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#best-practices", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php -S localhost:8080 webhook.php", "url": null } }, { "id": "webhook-document-events-signer", "title": "Handle document webhooks (signed, approved, refused, concluded)", "title_pt": "Tratar os webhooks de documentos (assinado, aprovado, recusado, concluído)", "description": "A `HandleWebhook` method takes a webhook envelope, switches on its `type` (`DocumentConcluded`, `DocumentRefused`, `DocumentApproved`, `DocumentSigned`) and reads `data` as the matching model. `webhook-endpoint-signer` calls it from an HTTP endpoint. Deserializes `data` with Newtonsoft.Json.", "product": "signer", "area": "webhooks", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CheckDocumentStatusScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/Scenarios/IWebhookHandlerScenario.cs" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "webhook-document-events-signer", "title": "Handle document webhooks (signed, approved, refused, concluded)", "title_pt": "Tratar os webhooks de documentos (assinado, aprovado, recusado, concluído)", "description": "A `HandleWebhook` method takes a webhook envelope, switches on its `type` (`DocumentConcluded`, `DocumentRefused`, `DocumentApproved`, `DocumentSigned`) and reads `data` as the matching model. `webhook-endpoint-signer` calls it from an HTTP endpoint. Re-reads `data` with `signerClient.getGson()`, which is configured for the API's date fields.", "product": "signer", "area": "webhooks", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CheckDocumentStatusScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/IWebhookHandlerScenario.java" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "webhook-document-events-signer", "title": "Handle document webhooks (signed, approved, refused, concluded)", "title_pt": "Tratar os webhooks de documentos (assinado, aprovado, recusado, concluído)", "description": "The exported `handleWebhook` function takes the received webhook body (`{ type, data }`), switches on its `type` (`DocumentConcluded`, `DocumentRefused`, `DocumentApproved`, `DocumentSigned`) and reads `data` as the matching model. `webhook-endpoint-signer` calls it from an HTTP endpoint.", "product": "signer", "area": "webhooks", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/checkDocumentStatusScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/checkDocumentStatusScenario.ts", "url": null } }, { "id": "webhook-document-events-signer", "title": "Handle document webhooks (signed, approved, refused, concluded)", "title_pt": "Tratar os webhooks de documentos (assinado, aprovado, recusado, concluído)", "description": "A `HandleWebhook` method takes a webhook envelope, switches on its `type` (`DocumentConcluded`, `DocumentRefused`, `DocumentApproved`, `DocumentSigned`) and reads `data` as the matching model. `webhook-endpoint-signer` calls it from an HTTP endpoint. Takes the raw JSON body.", "product": "signer", "area": "webhooks", "language": "php", "framework": "console", "path": "php/Scenarios/CheckDocumentStatusScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/Scenarios/IWebhookHandlerScenario.php" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "webhook-invoice-closed-signer", "title": "Handle the invoice-closed billing webhook", "title_pt": "Tratar o webhook de fechamento de fatura", "description": "A `HandleWebhook` method handles `InvoiceClosed`: it prints the invoice period and value, the totals per transaction type, and the billing information. This event comes from the instance billing webhook, which the system administrator configures, not from an organization webhook.", "product": "signer", "area": "webhooks", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/InvoiceWebhookHandlingScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/Scenarios/IWebhookHandlerScenario.cs" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "webhook-invoice-closed-signer", "title": "Handle the invoice-closed billing webhook", "title_pt": "Tratar o webhook de fechamento de fatura", "description": "A `HandleWebhook` method handles `InvoiceClosed`: it prints the invoice period and value, the totals per transaction type, and the billing information. This event comes from the instance billing webhook, which the system administrator configures, not from an organization webhook.", "product": "signer", "area": "webhooks", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/InvoiceWebhookHandlingScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/IWebhookHandlerScenario.java" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "webhook-invoice-closed-signer", "title": "Handle the invoice-closed billing webhook", "title_pt": "Tratar o webhook de fechamento de fatura", "description": "A `HandleWebhook` method handles `InvoiceClosed`: it prints the invoice period and value, the totals per transaction type, and the billing information. This event comes from the instance billing webhook, which the system administrator configures, not from an organization webhook.", "product": "signer", "area": "webhooks", "language": "php", "framework": "console", "path": "php/Scenarios/InvoiceWebhookHandlingScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/Scenarios/IWebhookHandlerScenario.php" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "mark-invoice-paid-signer", "title": "Mark an invoice as paid", "title_pt": "Marcar uma fatura como paga", "description": "Updates an invoice's payment status with `isPaid = true` for a hard-coded invoice id. The comment says this needs an API key with billing administration privileges.", "product": "signer", "area": "billing", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/InvoiceWebhookHandlingScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "mark-invoice-paid-signer", "title": "Mark an invoice as paid", "title_pt": "Marcar uma fatura como paga", "description": "Updates an invoice's payment status with `isPaid = true` for a hard-coded invoice id. The comment says this needs an API key with billing administration privileges.", "product": "signer", "area": "billing", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/InvoiceWebhookHandlingScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "mark-invoice-paid-signer", "title": "Mark an invoice as paid", "title_pt": "Marcar uma fatura como paga", "description": "Updates an invoice's payment status with `isPaid = true` for a hard-coded invoice id. The comment says this needs an API key with billing administration privileges.", "product": "signer", "area": "billing", "language": "php", "framework": "console", "path": "php/Scenarios/InvoiceWebhookHandlingScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/webhooks#events", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "download-document-versions-signer", "title": "Download a document's versions", "title_pt": "Baixar as versões de um documento", "description": "Gets a download ticket (a temporary URL), saves `Original` and fetches its bytes with `GetDocumentBytesAsync`, then saves the signed file (`Signatures`) and the `PrinterFriendlyVersion`, as `downloaded-*.pdf` in the working folder. Both need at least one signature (until then the API answers 422 `DocumentHasNoSignatures`), so it reads `HasSignature` and `Status` first and skips `Signatures` for canceled, refused and expired documents. Set `SignedDocumentId` to a signed document's id; while it is null, the sample creates an unsigned document and saves only `Original`.", "product": "signer", "area": "downloads", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/DownloadDocumentVersionScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#download-document-versions", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "download-document-versions-signer", "title": "Download a document's versions", "title_pt": "Baixar as versões de um documento", "description": "Gets a download ticket (a temporary URL), saves `Original` and fetches its bytes with `getDocumentBytes`, then saves the signed file (`Signatures`) and the `PrinterFriendlyVersion`, as `downloaded-*.pdf` in `java/console`. Both need at least one signature (until then the API answers 422 `DocumentHasNoSignatures`, which `getDocumentContent` reports as a `RestUnreachableException` without the code), so it reads `isHasSignature()` and `getStatus()` first and skips `Signatures` for canceled, refused and expired documents. Set `SIGNED_DOCUMENT_ID` to a signed document's id; while it is null, the sample creates an unsigned document and saves only `Original`.", "product": "signer", "area": "downloads", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/DownloadDocumentVersionScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#download-document-versions", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "download-document-versions-signer", "title": "Download a document's versions", "title_pt": "Baixar as versões de um documento", "description": "Gets a download ticket (a temporary URL), saves `Original` and fetches its bytes from `GET /api/documents/{id}/content-b64`, then saves the signed file (`Signatures`) and the `PrinterFriendlyVersion`, as `nodejs/samples/downloaded-*.pdf`. It passes `responseType: 'arraybuffer'` to `apiDocumentsIdContentGet` so axios keeps the bytes unchanged. Both need at least one signature (until then the API answers 422 `DocumentHasNoSignatures`), so it reads `hasSignature` and `status` first and skips `Signatures` for canceled, refused and expired documents. Set `signedDocumentId` to a signed document's id; while it is null, the sample creates an unsigned document and saves only `Original`.", "product": "signer", "area": "downloads", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/downloadDocumentVersionScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#download-document-versions", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/downloadDocumentVersionScenario.ts", "url": null } }, { "id": "download-document-versions-signer", "title": "Download a document's versions", "title_pt": "Baixar as versões de um documento", "description": "Gets a download ticket (a temporary URL), saves `Original` and its bytes from `GET /api/documents/{id}/content-b64`, then saves the signed file (`Signatures`) and the `PrinterFriendlyVersion`, as `php/resources/downloaded-*.pdf`. Both need at least one signature (until then the API answers 422 `DocumentHasNoSignatures`, and `getDocumentContent` returns that error JSON instead of throwing), so it reads `getHasSignature()` and `getStatus()` first and skips `Signatures` for canceled, refused and expired documents. Set `SIGNED_DOCUMENT_ID` to a signed document's id; while it is null, the sample creates an unsigned document and saves only `Original`.", "product": "signer", "area": "downloads", "language": "php", "framework": "console", "path": "php/Scenarios/DownloadDocumentVersionScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/download-and-list#download-document-versions", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "cancel-document-signer", "title": "Cancel a document", "title_pt": "Cancelar um documento", "description": "Creates a document, then cancels it with a `reason` (`POST /api/documents/{id}/cancellation`).", "product": "signer", "area": "lifecycle", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CancelDocumentScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#cancel-document", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "cancel-document-signer", "title": "Cancel a document", "title_pt": "Cancelar um documento", "description": "Creates a document, then cancels it with a `reason` (`POST /api/documents/{id}/cancellation`).", "product": "signer", "area": "lifecycle", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CancelDocumentScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#cancel-document", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "cancel-document-signer", "title": "Cancel a document", "title_pt": "Cancelar um documento", "description": "Creates a document, then cancels it with a `reason` (`POST /api/documents/{id}/cancellation`).", "product": "signer", "area": "lifecycle", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/cancelDocumentScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#cancel-document", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/cancelDocumentScenario.ts", "url": null } }, { "id": "cancel-document-signer", "title": "Cancel a document", "title_pt": "Cancelar um documento", "description": "Creates a document, then cancels it with a `reason` (`POST /api/documents/{id}/cancellation`).", "product": "signer", "area": "lifecycle", "language": "php", "framework": "console", "path": "php/Scenarios/CancelDocumentScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#cancel-document", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "refuse-document-signer", "title": "Refuse a document as the organization", "title_pt": "Recusar um documento em nome da organização", "description": "Creates a document, then refuses it with a `reason` (`POST /api/documents/{id}/refusal`).", "product": "signer", "area": "lifecycle", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/RefuseDocumentScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#refuse-a-document", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "refuse-document-signer", "title": "Refuse a document as the organization", "title_pt": "Recusar um documento em nome da organização", "description": "Creates a document, then refuses it with a `reason` (`POST /api/documents/{id}/refusal`).", "product": "signer", "area": "lifecycle", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/RefuseDocumentScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#refuse-a-document", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "refuse-document-signer", "title": "Refuse a document as the organization", "title_pt": "Recusar um documento em nome da organização", "description": "Creates a document, then refuses it with a `reason` (`POST /api/documents/{id}/refusal`).", "product": "signer", "area": "lifecycle", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/refuseDocumentScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#refuse-a-document", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/refuseDocumentScenario.ts", "url": null } }, { "id": "refuse-document-signer", "title": "Refuse a document as the organization", "title_pt": "Recusar um documento em nome da organização", "description": "Creates a document, then refuses it with a `reason` (`POST /api/documents/{id}/refusal`).", "product": "signer", "area": "lifecycle", "language": "php", "framework": "console", "path": "php/Scenarios/RefuseDocumentScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#refuse-a-document", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "delete-document-signer", "title": "Delete a document", "title_pt": "Excluir um documento", "description": "Creates a document, then deletes it by id (`DELETE /api/documents/{id}`).", "product": "signer", "area": "lifecycle", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/DeleteDocumentScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#delete-document", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "delete-document-signer", "title": "Delete a document", "title_pt": "Excluir um documento", "description": "Creates a document, then deletes it by id (`DELETE /api/documents/{id}`).", "product": "signer", "area": "lifecycle", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/DeleteDocumentScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#delete-document", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "delete-document-signer", "title": "Delete a document", "title_pt": "Excluir um documento", "description": "Creates a document, then deletes it by id (`DELETE /api/documents/{id}`).", "product": "signer", "area": "lifecycle", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/deleteDocumentScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#delete-document", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/deleteDocumentScenario.ts", "url": null } }, { "id": "delete-document-signer", "title": "Delete a document", "title_pt": "Excluir um documento", "description": "Creates a document, then deletes it by id (`DELETE /api/documents/{id}`).", "product": "signer", "area": "lifecycle", "language": "php", "framework": "console", "path": "php/Scenarios/DeleteDocumentScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#delete-document", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "add-document-version-signer", "title": "Upload a new version of a document", "title_pt": "Enviar uma nova versão de um documento", "description": "Creates a document, uploads a new file and adds it as the document's new version (`POST /api/documents/{id}/versions`); the signing flow is reset.", "product": "signer", "area": "lifecycle", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/AddNewDocumentVersionScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#submit-a-new-document-version", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "add-document-version-signer", "title": "Upload a new version of a document", "title_pt": "Enviar uma nova versão de um documento", "description": "Creates a document, uploads a new file and adds it as the document's new version (`POST /api/documents/{id}/versions`); the signing flow is reset.", "product": "signer", "area": "lifecycle", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/AddNewDocumentVersionScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#submit-a-new-document-version", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "add-document-version-signer", "title": "Upload a new version of a document", "title_pt": "Enviar uma nova versão de um documento", "description": "Creates a document, uploads a new file and adds it as the document's new version (`POST /api/documents/{id}/versions`); the signing flow is reset.", "product": "signer", "area": "lifecycle", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/addNewDocumentVersionScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#submit-a-new-document-version", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/addNewDocumentVersionScenario.ts", "url": null } }, { "id": "add-document-version-signer", "title": "Upload a new version of a document", "title_pt": "Enviar uma nova versão de um documento", "description": "Creates a document, uploads a new file and adds it as the document's new version (`POST /api/documents/{id}/versions`); the signing flow is reset.", "product": "signer", "area": "lifecycle", "language": "php", "framework": "console", "path": "php/Scenarios/AddNewDocumentVersionScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/lifecycle#submit-a-new-document-version", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-in-new-folder-signer", "title": "Create a document in a new folder", "title_pt": "Criar um documento em uma nova pasta", "description": "Creates a one-signer document with `newFolderName`, which creates the folder together with the document.", "product": "signer", "area": "folders", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentInNewFolderScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-in-new-folder-signer", "title": "Create a document in a new folder", "title_pt": "Criar um documento em uma nova pasta", "description": "Creates a one-signer document with `newFolderName`, which creates the folder together with the document.", "product": "signer", "area": "folders", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentInNewFolderScenario.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-in-new-folder-signer", "title": "Create a document in a new folder", "title_pt": "Criar um documento em uma nova pasta", "description": "Creates a one-signer document with `newFolderName`, which creates the folder together with the document.", "product": "signer", "area": "folders", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentInNewFolderScenario.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } }, { "id": "create-document-in-existing-folder-signer", "title": "Create a document in an existing folder", "title_pt": "Criar um documento em uma pasta existente", "description": "Searches the organization's folders by name, takes the first match, and creates the document with its `folderId`. It fails when no folder matches, so create the folder first. Searches for \"Sample Folder\".", "product": "signer", "area": "folders", "language": "dotnet", "framework": "console", "path": "dotnet/console/Console/Scenarios/CreateDocumentInExistingFolderScenario.cs", "related_files": [ "dotnet/console/Console/Program.cs", "dotnet/console/Console/Scenarios/Scenario.cs", "dotnet/console/Console/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "dotnet/console", "command": "Open Console.sln in Visual Studio and press F5", "url": null } }, { "id": "create-document-in-existing-folder-signer", "title": "Create a document in an existing folder", "title_pt": "Criar um documento em uma pasta existente", "description": "Searches the organization's folders by name, takes the first match, and creates the document with its `folderId`. It fails when no folder matches, so create the folder first. Searches for \"Sample Folder\".", "product": "signer", "area": "folders", "language": "java", "framework": "console", "path": "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CreateDocumentInExistingFolder.java", "related_files": [ "java/console/src/main/java/com/lacunasoftware/signer/sample/App.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/Scenario.java", "java/console/src/main/java/com/lacunasoftware/signer/sample/Util.java", "java/console/src/main/resources/static/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "java/console", "command": "./gradlew run", "url": null } }, { "id": "create-document-in-existing-folder-signer", "title": "Create a document in an existing folder", "title_pt": "Criar um documento em uma pasta existente", "description": "Searches the organization's folders by name, takes the first match, and creates the document with its `folderId`. It fails when no folder matches, so create the folder first. Searches for \"Sample folder\" with `FoldersApi.apiFoldersGet`.", "product": "signer", "area": "folders", "language": "nodejs", "framework": "console", "path": "nodejs/scenarios/createDocumentInExistingFolderScenario.ts", "related_files": [ "nodejs/scenarios/scenario.ts", "nodejs/samples/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "nodejs", "command": "npm install && npx ts-node scenarios/createDocumentInExistingFolderScenario.ts", "url": null } }, { "id": "create-document-in-existing-folder-signer", "title": "Create a document in an existing folder", "title_pt": "Criar um documento em uma pasta existente", "description": "Searches the organization's folders by name, takes the first match, and creates the document with its `folderId`. It fails when no folder matches, so create the folder first. Searches for \"Sample Folder\".", "product": "signer", "area": "folders", "language": "php", "framework": "console", "path": "php/Scenarios/CreateDocumentInExistingFolder.php", "related_files": [ "php/index.php", "php/Scenarios/Scenario.php", "php/resources/sample.pdf" ], "status": "current", "docs_url": "https://docs.lacunasoftware.com/en-us/articles/signer/integration/documents#step-by-step", "demo_url": null, "run": { "cwd": "php", "command": "composer install && php index.php", "url": null } } ]