documenso-hello-world
Create a minimal working Documenso example. Use when starting a new Documenso integration, testing your setup, or learning basic document signing patterns. Trigger with phrases like "documenso hello world", "documenso example", "documenso quick start", "simple documenso code", "first document".
Best use case
documenso-hello-world is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create a minimal working Documenso example. Use when starting a new Documenso integration, testing your setup, or learning basic document signing patterns. Trigger with phrases like "documenso hello world", "documenso example", "documenso quick start", "simple documenso code", "first document".
Teams using documenso-hello-world should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/documenso-hello-world/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How documenso-hello-world Compares
| Feature / Agent | documenso-hello-world | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create a minimal working Documenso example. Use when starting a new Documenso integration, testing your setup, or learning basic document signing patterns. Trigger with phrases like "documenso hello world", "documenso example", "documenso quick start", "simple documenso code", "first document".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Documenso Hello World
## Overview
Minimal working example that creates a document, adds a recipient with a signature field, and sends it for signing — all in one script. Uses the Documenso TypeScript SDK (v2 API) with a Python equivalent.
## Prerequisites
- Completed `documenso-install-auth` setup
- Valid API key in `DOCUMENSO_API_KEY` environment variable
- A PDF file to upload (or generate a test one below)
## Instructions
### Step 1: Generate a Test PDF (Optional)
If you don't have a PDF handy:
```bash
npm install pdf-lib
```
```typescript
// generate-test-pdf.ts
import { PDFDocument, StandardFonts } from "pdf-lib";
import { writeFileSync } from "fs";
async function createTestPdf() {
const pdf = PDFDocument.create();
const page = (await pdf).addPage([612, 792]); // US Letter
const font = await (await pdf).embedFont(StandardFonts.Helvetica);
page.drawText("Please sign below:", { x: 50, y: 700, size: 16, font });
const bytes = await (await pdf).save();
writeFileSync("test-contract.pdf", bytes);
console.log("Created test-contract.pdf");
}
createTestPdf();
```
### Step 2: Complete Signing Workflow (TypeScript)
```typescript
// documenso-hello.ts
import { Documenso } from "@documenso/sdk-typescript";
import { readFileSync } from "fs";
async function main() {
const client = new Documenso({
apiKey: process.env.DOCUMENSO_API_KEY!,
});
// 1. Create a document
const doc = await client.documents.createV0({
title: "Hello World Contract",
});
console.log(`Document created: ID ${doc.documentId}`);
// 2. Upload the PDF
const pdfBuffer = readFileSync("test-contract.pdf");
await client.documents.setFileV0(doc.documentId, {
file: new Blob([pdfBuffer], { type: "application/pdf" }),
});
// 3. Add a recipient (signer)
const recipient = await client.documentsRecipients.createV0(doc.documentId, {
email: "signer@example.com",
name: "Jane Doe",
role: "SIGNER",
});
console.log(`Recipient added: ${recipient.recipientId}`);
// 4. Add a signature field at specific coordinates
await client.documentsFields.createV0(doc.documentId, {
recipientId: recipient.recipientId,
type: "SIGNATURE",
pageNumber: 1,
pageX: 50, // X position (left offset, percentage-based 0-100)
pageY: 80, // Y position (top offset, percentage-based 0-100)
pageWidth: 30, // Width as percentage of page
pageHeight: 5, // Height as percentage of page
});
// 5. Send for signing
await client.documents.sendV0(doc.documentId);
console.log("Document sent for signing!");
}
main().catch(console.error);
```
Run: `npx tsx documenso-hello.ts`
### Step 3: Python Equivalent
```python
# documenso_hello.py
import os
from documenso_sdk_python import Documenso
client = Documenso(api_key=os.environ["DOCUMENSO_API_KEY"])
# Create document
doc = client.documents.create_v0(title="Hello World Contract")
print(f"Document created: ID {doc.document_id}")
# Upload PDF
with open("test-contract.pdf", "rb") as f:
client.documents.set_file_v0(doc.document_id, file=f.read())
# Add recipient
recipient = client.documents_recipients.create_v0(
doc.document_id,
email="signer@example.com",
name="Jane Doe",
role="SIGNER",
)
# Add signature field
client.documents_fields.create_v0(
doc.document_id,
recipient_id=recipient.recipient_id,
type="SIGNATURE",
page_number=1,
page_x=50,
page_y=80,
page_width=30,
page_height=5,
)
# Send for signing
client.documents.send_v0(doc.document_id)
print("Document sent for signing!")
```
### Step 4: REST API Equivalent (curl)
```bash
# Create document
DOC=$(curl -s -X POST "https://app.documenso.com/api/v1/documents" \
-H "Authorization: Bearer $DOCUMENSO_API_KEY" \
-F "title=Hello World Contract" \
-F "file=@test-contract.pdf" | jq -r '.id')
# Add recipient
RECIP=$(curl -s -X POST "https://app.documenso.com/api/v1/documents/$DOC/recipients" \
-H "Authorization: Bearer $DOCUMENSO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"signer@example.com","name":"Jane Doe","role":"SIGNER"}' \
| jq -r '.id')
# Send
curl -s -X POST "https://app.documenso.com/api/v1/documents/$DOC/send" \
-H "Authorization: Bearer $DOCUMENSO_API_KEY"
```
## Field Types Reference
| Type | Description | Common Use |
|------|-------------|------------|
| `SIGNATURE` | Electronic signature capture | Contract signing |
| `FREE_SIGNATURE` | Hand-drawn / upload signature | Notarized documents |
| `INITIALS` | Initials field | Page-by-page acknowledgment |
| `NAME` | Auto-filled full name | Identity confirmation |
| `EMAIL` | Auto-filled email address | Contact verification |
| `DATE` | Date picker / auto-date | Timestamp of signing |
| `TEXT` | Free text input | Custom fields (title, address) |
| `NUMBER` | Numeric input | Amounts, quantities |
| `CHECKBOX` | Boolean check | Terms acceptance |
| `DROPDOWN` | Select from options | Role selection |
| `RADIO` | Radio button group | Single-choice options |
## Document Lifecycle
```
DRAFT → (send) → PENDING → (all sign) → COMPLETED
→ (reject) → REJECTED
→ (cancel) → CANCELLED
```
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| `401 Unauthorized` | Invalid or missing API key | Verify `DOCUMENSO_API_KEY` is set |
| `File too large` | PDF exceeds upload limit | Compress PDF or check plan limits |
| `Invalid field position` | pageX/pageY out of range | Use 0-100 range (percentage-based) |
| `Recipient exists` | Duplicate email on document | Update existing recipient instead |
| `Cannot send DRAFT` | Missing required fields | Add at least one recipient + field |
## Resources
- [Documenso Getting Started](https://docs.documenso.com/developers)
- [TypeScript SDK Docs](https://github.com/documenso/sdk-typescript)
- [API Reference (OpenAPI)](https://openapi.documenso.com/)
- [Field Types Documentation](https://docs.documenso.com/users/documents/fields)
## Next Steps
Proceed to `documenso-local-dev-loop` for development workflow setup or `documenso-core-workflow-a` for production document management.Related Skills
exa-hello-world
Create a minimal working Exa search example with real results. Use when starting a new Exa integration, testing your setup, or learning basic search, searchAndContents, and findSimilar patterns. Trigger with phrases like "exa hello world", "exa example", "exa quick start", "simple exa search", "first exa query".
evernote-hello-world
Create a minimal working Evernote example. Use when starting a new Evernote integration, testing your setup, or learning basic Evernote API patterns. Trigger with phrases like "evernote hello world", "evernote example", "evernote quick start", "simple evernote code", "create first note".
elevenlabs-hello-world
Generate your first ElevenLabs text-to-speech audio file. Use when starting a new ElevenLabs integration, testing your setup, or learning basic TTS API patterns. Trigger: "elevenlabs hello world", "elevenlabs example", "elevenlabs quick start", "first elevenlabs TTS", "text to speech demo".
documenso-webhooks-events
Implement Documenso webhook configuration and event handling. Use when setting up webhook endpoints, handling document events, or implementing real-time notifications for document signing. Trigger with phrases like "documenso webhook", "documenso events", "document completed webhook", "signing notification".
documenso-upgrade-migration
Manage Documenso API version upgrades and SDK migrations. Use when upgrading from v1 to v2 API, updating SDK versions, or migrating between Documenso versions. Trigger with phrases like "documenso upgrade", "documenso v2 migration", "update documenso SDK", "documenso API version".
documenso-security-basics
Implement security best practices for Documenso document signing integrations. Use when securing API keys, configuring webhooks securely, or implementing document security measures. Trigger with phrases like "documenso security", "secure documenso", "documenso API key security", "documenso webhook security".
documenso-sdk-patterns
Apply production-ready Documenso SDK patterns for TypeScript and Python. Use when implementing Documenso integrations, refactoring SDK usage, or establishing team coding standards for Documenso. Trigger with phrases like "documenso SDK patterns", "documenso best practices", "documenso code patterns", "idiomatic documenso".
documenso-reference-architecture
Implement Documenso reference architecture with best-practice project layout. Use when designing new Documenso integrations, reviewing project structure, or establishing architecture standards for document signing applications. Trigger with phrases like "documenso architecture", "documenso best practices", "documenso project structure", "how to organize documenso".
documenso-rate-limits
Implement Documenso rate limiting, backoff, and request throttling patterns. Use when handling rate limit errors, implementing retry logic, or optimizing API request throughput for Documenso. Trigger with phrases like "documenso rate limit", "documenso throttling", "documenso 429", "documenso retry", "documenso backoff".
documenso-prod-checklist
Execute Documenso production deployment checklist and rollback procedures. Use when deploying Documenso integrations to production, preparing for launch, or implementing go-live procedures. Trigger with phrases like "documenso production", "deploy documenso", "documenso go-live", "documenso launch checklist".
documenso-performance-tuning
Optimize Documenso integration performance with caching, batching, and efficient patterns. Use when improving response times, reducing API calls, or optimizing bulk document operations. Trigger with phrases like "documenso performance", "optimize documenso", "documenso caching", "documenso batch operations".
documenso-observability
Implement monitoring, logging, and tracing for Documenso integrations. Use when setting up observability, implementing metrics collection, or debugging production issues. Trigger with phrases like "documenso monitoring", "documenso metrics", "documenso logging", "documenso tracing", "documenso observability".