Skip to content
2 changes: 1 addition & 1 deletion docs/SDKs/agent-skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
title: Install with AI Agents (Agent Skills)
sidebar_position: 0
sidebar_label: Install with AI Agents
description: Install the TurboDocx SDK and @turbodocx/html-to-docx into any project in one prompt using the TurboDocx Agent Skill — works with Claude Code, GitHub Copilot, Cursor, OpenCode, OpenAI Codex CLI, and Gemini CLI.
description: "TurboDocx Agent Skill: install the SDK and html-to-docx in one prompt via Claude Code, Copilot, Cursor, or Codex CLI."
keywords:
- agent skills
- ai agent
Expand Down
25 changes: 3 additions & 22 deletions docs/SDKs/deliverable-go.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func main() {
```

:::tip No SenderEmail Required
Use `NewDeliverableClientOnly()` when you only need document generation — it skips the `SenderEmail` validation required by TurboSign.
Use `NewDeliverableClientOnly()` when you only need document generation: it skips the `SenderEmail` validation required by TurboSign.
:::

### Environment Variables
Expand Down Expand Up @@ -422,20 +422,7 @@ if err != nil {

## Error Handling

The SDK provides typed errors for different error scenarios:

### Error Types

| Error Type | Status Code | Description |
| --------------------- | ----------- | ---------------------------------- |
| `TurboDocxError` | varies | Base error type for all API errors |
| `AuthenticationError` | 401 | Invalid or missing API key |
| `AuthorizationError` | 403 | Authenticated but lacks required permissions |
| `ValidationError` | 400 | Invalid request parameters |
| `NotFoundError` | 404 | Deliverable or template not found |
| `ConflictError` | 409 | Request conflicts with current resource state |
| `RateLimitError` | 429 | Too many requests |
| `NetworkError` | - | Network connectivity issues |
`GenerateDeliverable` returns `NotFoundError` when `TemplateID` doesn't match a template in the org, and `ValidationError` for invalid request parameters, most commonly a `DeliverableVariable` missing `Text` (required unless it sets `VariableStack` or `IsDisabled: true`) or specifying an unsupported `MimeType`. Match on the concrete type with `errors.As`, same as every other Go SDK call:

### Handling Errors

Expand Down Expand Up @@ -479,13 +466,7 @@ if err != nil {
}
```

### Error Properties

| Property | Type | Description |
| ------------ | -------- | ---------------------------- |
| `Message` | `string` | Human-readable error message |
| `StatusCode` | `int` | HTTP status code |
| `Code` | `string` | Error code (if available) |
The full typed-error table (`AuthenticationError`, `AuthorizationError`, `ConflictError`, `RateLimitError`, `NetworkError`, HTTP status mapping) and the `Message`/`StatusCode`/`Code` fields on every error are documented once in the [Go SDK's Error Handling reference](./go.md#error-handling).

---

Expand Down
35 changes: 8 additions & 27 deletions docs/SDKs/deliverable-java.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,22 @@ The official TurboDocx Deliverable SDK for Java applications. Generate documents
<dependency>
<groupId>com.turbodocx</groupId>
<artifactId>turbodocx-sdk</artifactId>
<version>0.5.0</version>
<version>0.7.0</version>
</dependency>
```

</TabItem>
<TabItem value="gradle" label="Gradle (Kotlin)">

```kotlin
implementation("com.turbodocx:turbodocx-sdk:0.5.0")
implementation("com.turbodocx:turbodocx-sdk:0.7.0")
```

</TabItem>
<TabItem value="gradle-groovy" label="Gradle (Groovy)">

```groovy
implementation 'com.turbodocx:turbodocx-sdk:0.5.0'
implementation 'com.turbodocx:turbodocx-sdk:0.7.0'
```

</TabItem>
Expand Down Expand Up @@ -87,7 +87,7 @@ public class Main {
```

:::tip No senderEmail Required
Use `buildDeliverableClient()` when you only need document generation — it skips the `senderEmail` validation required by TurboSign.
Use `buildDeliverableClient()` when you only need document generation: it skips the `senderEmail` validation required by TurboSign.
:::

### Environment Variables
Expand Down Expand Up @@ -285,9 +285,9 @@ The builder authenticates with either `apiKey(...)` or `accessToken(...)` (a bea

| Builder method | Returns | Use for |
| -------------------------- | ------------------- | --------------------------------------------------- |
| `build()` | `TurboDocxClient` | Full client — `turboSign()` and `deliverable()` |
| `build()` | `TurboDocxClient` | Full client, `turboSign()` and `deliverable()` |
| `buildDeliverableClient()` | `DeliverableClient` | Document generation only (no `senderEmail` needed) |
| `buildWebhooksClient()` | `TurboWebhooks` | Signature webhook subscriptions — see [TurboWebhooks Java SDK](/docs/SDKs/webhooks-java) |
| `buildWebhooksClient()` | `TurboWebhooks` | Signature webhook subscriptions, see [TurboWebhooks Java SDK](/docs/SDKs/webhooks-java) |

```java
// Authenticate with a bearer access token instead of an API key
Expand Down Expand Up @@ -400,20 +400,7 @@ Files.write(Paths.get("report.pdf"), pdfData);

## Error Handling

The SDK provides typed exceptions for different error scenarios:

### Error Types

| Error Type | Status Code | Description |
| -------------------------------------------- | ----------- | ---------------------------------- |
| `TurboDocxException` | varies | Base exception for all API errors |
| `TurboDocxException.AuthenticationException` | 401 | Invalid or missing API credentials |
| `TurboDocxException.AuthorizationException` | 403 | Insufficient permissions |
| `TurboDocxException.ValidationException` | 400 | Invalid request parameters |
| `TurboDocxException.NotFoundException` | 404 | Deliverable or template not found |
| `TurboDocxException.ConflictException` | 409 | Resource conflict |
| `TurboDocxException.RateLimitException` | 429 | Too many requests |
| `TurboDocxException.NetworkException` | - | Network connectivity issues |
`deliverable.generateDeliverable()` throws `TurboDocxException.NotFoundException` when `templateId` doesn't match a template in the org, and `TurboDocxException.ValidationException` when a variable in the request is missing a required field:

### Handling Errors

Expand Down Expand Up @@ -443,13 +430,7 @@ try {
}
```

### Error Properties

| Property | Type | Description |
| ----------------- | -------- | ---------------------------- |
| `getMessage()` | `String` | Human-readable error message |
| `getStatusCode()` | `int` | HTTP status code |
| `getCode()` | `String` | Error code (if available) |
The full typed-exception table (`AuthenticationException`, `AuthorizationException`, `ConflictException`, `RateLimitException`, `NetworkException`, HTTP status mapping) and the `getMessage()`/`getStatusCode()`/`getCode()` methods shared by every exception are documented once in the [Java SDK's Error Handling reference](./java.md#error-handling).

---

Expand Down
29 changes: 4 additions & 25 deletions docs/SDKs/deliverable-javascript.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,14 @@ Deliverable.configure({
| Property | Type | Required | Description |
| ------------- | -------- | -------- | ------------------------------------------------------ |
| `apiKey` | `string` | Yes\* | Your TurboDocx API key |
| `accessToken` | `string` | Yes\* | OAuth access token — alternative to `apiKey` |
| `accessToken` | `string` | Yes\* | OAuth access token, alternative to `apiKey` |
| `orgId` | `string` | Yes | Your organization ID |
| `baseUrl` | `string` | No | API base URL (defaults to `https://api.turbodocx.com`) |

\*Supply either `apiKey` or `accessToken`. When both are set, `accessToken` wins.

:::tip No Sender Email Required
Unlike TurboSign, the Deliverable module only requires a credential and `orgId` — no sender email or name is needed.
Unlike TurboSign, the Deliverable module only requires a credential and `orgId`: no sender email or name is needed.
:::

### Environment Variables
Expand Down Expand Up @@ -602,20 +602,7 @@ writeFileSync("report.pdf", Buffer.from(buffer));

## Error Handling

The SDK provides typed error classes for different failure scenarios. All errors extend the base `TurboDocxError` class.

### Error Classes

| Error Class | Status Code | Code | Description |
| --------------------- | ----------- | ---------------------- | ---------------------------------------- |
| `TurboDocxError` | varies | varies | Base error class for all SDK errors |
| `AuthenticationError` | 401 | `AUTHENTICATION_ERROR` | Invalid or missing API credentials |
| `AuthorizationError` | 403 | `AUTHORIZATION_ERROR` | Forbidden: API key lacks required permissions |
| `ValidationError` | 400 | `VALIDATION_ERROR` | Invalid request parameters |
| `NotFoundError` | 404 | `NOT_FOUND` | Deliverable or template not found |
| `ConflictError` | 409 | `CONFLICT` | Resource conflict |
| `RateLimitError` | 429 | `RATE_LIMIT_EXCEEDED` | Too many requests |
| `NetworkError` | - | `NETWORK_ERROR` | Network connectivity issues |
`Deliverable.generateDeliverable()` rejects with `NotFoundError` when `templateId` doesn't match a template in the org, and `ValidationError` when an entry in `variables` is missing a required field. Both extend the base `TurboDocxError` class:

### Handling Errors

Expand Down Expand Up @@ -710,15 +697,7 @@ try {
</TabItem>
</Tabs>

### Error Properties

All errors include these properties:

| Property | Type | Description |
| ------------ | --------------------- | -------------------------------- |
| `message` | `string` | Human-readable error description |
| `statusCode` | `number \| undefined` | HTTP status code (if applicable) |
| `code` | `string \| undefined` | Machine-readable error code |
The full typed-error table (`AuthenticationError`, `AuthorizationError`, `ConflictError`, `RateLimitError`, `NetworkError`, HTTP status and code mapping) and the `message`/`statusCode`/`code` properties shared by every error are documented once in the [JavaScript / TypeScript SDK's Error Handling reference](./javascript.md#error-handling).

---

Expand Down
25 changes: 3 additions & 22 deletions docs/SDKs/deliverable-php.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ Deliverable::configure(DeliverableConfig::fromEnvironment());
</Tabs>

:::tip No senderEmail Required
Unlike TurboSign, the Deliverable module only requires `apiKey` and `orgId` — no sender email or name is needed.
Unlike TurboSign, the Deliverable module only requires `apiKey` and `orgId`: no sender email or name is needed.
:::

### Environment Variables
Expand Down Expand Up @@ -361,20 +361,7 @@ echo $pdfFile;

## Error Handling

The SDK provides typed exceptions for different error scenarios.

### Error Classes

| Error Class | Status Code | Description |
| ------------------------- | ----------- | ---------------------------------- |
| `TurboDocxException` | varies | Base exception for all SDK errors |
| `AuthenticationException` | 401 | Invalid or missing API credentials |
| `AuthorizationException` | 403 | API key lacks required permissions |
| `ValidationException` | 400 | Invalid request parameters |
| `NotFoundException` | 404 | Deliverable or template not found |
| `ConflictException` | 409 | Resource conflict |
| `RateLimitException` | 429 | Too many requests |
| `NetworkException` | - | Network connectivity issues |
`Deliverable::generateDeliverable()` throws `NotFoundException` when `templateId` doesn't match a template in the org, and `ValidationException` when a variable in the `variables` array is missing a required field:

### Handling Errors

Expand Down Expand Up @@ -423,13 +410,7 @@ try {
}
```

### Error Properties

All exceptions extend `TurboDocxException` and include:

- `getMessage()` - Human-readable error message
- `statusCode` - HTTP status code (if applicable)
- `errorCode` - Error code string (e.g., 'AUTHENTICATION_ERROR')
The full typed-exception table (`AuthenticationException`, `AuthorizationException`, `ConflictException`, `RateLimitException`, `NetworkException`, HTTP status mapping) and the `getMessage()`/`statusCode`/`errorCode` properties shared by every exception are documented once in the [PHP SDK's Error Handling reference](./php.md#error-handling).

---

Expand Down
27 changes: 3 additions & 24 deletions docs/SDKs/deliverable-python.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Deliverable.configure(
```

:::tip No Sender Email Required
Unlike TurboSign, the Deliverable module only requires `api_key` and `org_id` — no sender email or name is needed.
Unlike TurboSign, the Deliverable module only requires `api_key` and `org_id`: no sender email or name is needed.
:::

### Environment Variables
Expand Down Expand Up @@ -349,20 +349,7 @@ with open("report.pdf", "wb") as f:

## Error Handling

The SDK provides typed error classes for different failure scenarios. All errors extend the base `TurboDocxError` class.

### Error Classes

| Error Class | Status Code | Description |
| --------------------- | ----------- | ----------------------------------- |
| `TurboDocxError` | varies | Base error class for all SDK errors |
| `AuthenticationError` | 401 | Invalid or missing API credentials |
| `AuthorizationError` | 403 | Authenticated but lacks required permissions |
| `ValidationError` | 400 | Invalid request parameters |
| `NotFoundError` | 404 | Deliverable or template not found |
| `ConflictError` | 409 | Request conflicts with current resource state |
| `RateLimitError` | 429 | Too many requests |
| `NetworkError` | - | Network connectivity issues |
`Deliverable.generate_deliverable()` raises `NotFoundError` when `template_id` doesn't match a template in the org, and `ValidationError` for invalid request parameters, most commonly a variable dict missing `text` (required unless it sets `variableStack` or `isDisabled: True`) or specifying an unsupported `mimeType`. Both extend the base `TurboDocxError`:

### Handling Errors

Expand Down Expand Up @@ -416,15 +403,7 @@ async def main():
asyncio.run(main())
```

### Error Properties

All errors include these properties:

| Property | Type | Description |
| ------------- | ------------- | --------------------------------------------------- |
| `message` | `str` | Human-readable error description (via `str(error)`) |
| `status_code` | `int \| None` | HTTP status code (if applicable) |
| `code` | `str \| None` | Machine-readable error code |
The full typed-error table (`AuthenticationError`, `AuthorizationError`, `ConflictError`, `RateLimitError`, `NetworkError`, HTTP status mapping) and the `message`/`status_code`/`code` attributes shared by every error are documented once in the [Python SDK's Error Handling reference](./python.md#error-handling).

---

Expand Down
Loading
Loading