---
canonical_url: "https://docs.composio.dev/toolkits/qwilr"
markdown_url: "https://docs.composio.dev/toolkits/qwilr.md"
product: "platform"
version: null
last_updated: null
---

# Qwilr

Save time and win more work with smart sales documents. Great for proposals, quotes and more!

- **Category:** proposal & invoice management
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 15
- **Triggers:** 0
- **Slug:** `QWILR`
- **Version:** 00000000_00

## Tools

### Create Page

**Slug:** `QWILR_CREATE_PAGE`

Create a Qwilr page from exactly one template ID or an ordered list of saved blocks; this consumes document-automation credits or usage billing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Browser-visible page title. |
| `tags` | array | No | Case-sensitive page tags. |
| `blocks` | array | No | Ordered saved blocks used to build the page; mutually exclusive with template_id. |
| `expiry` | object | No | Link-expiry configuration. |
| `metadata` | object | No | String metadata returned in webhook callbacks and optional page expansions. |
| `owner_id` | string | No | Account user who owns the page; defaults to the access-token owner. |
| `published` | boolean | No | Create the page live instead of as a draft. |
| `template_id` | string | No | Template used to create the page; exactly one of template_id and blocks is required. |
| `substitutions` | object | No | Page-wide plain-text or repeating variable substitutions. |
| `accept_settings` | object | No | Template Accept-block redirect settings; valid only with template_id. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Tax

**Slug:** `QWILR_CREATE_TAX`

Create a quote tax definition with a percentage rate or no rate, optionally using a stable caller-chosen ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Display name for the tax. |
| `rate` | string | Yes | Percentage rate, or null for a tax with no rate. |
| `tax_id` | string | No | Unique immutable caller-chosen ID; omit to let Qwilr generate one. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Webhook Subscription

**Slug:** `QWILR_CREATE_WEBHOOK_SUBSCRIPTION`

Subscribe a publicly reachable callback URL to one Qwilr page event. Qwilr callbacks are unsigned, must receive HTTP 200 within 30 seconds, and may be retried up to five times before being dropped.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event` | string ("pageAccepted" | "pagePartiallyAccepted" | "pagePreviewAccepted" | "pageViewed" | "pageFirstViewed" | "pageSetLive" | "pageRevivedLive") | Yes | Page event that triggers callbacks. |
| `target_url` | string | Yes | Callback URL that accepts unsigned Qwilr POST requests and returns HTTP 200 within 30 seconds. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Tax

**Slug:** `QWILR_DELETE_TAX`

Permanently delete one quote tax definition by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tax_id` | string | Yes | Tax ID to permanently remove. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook Subscription

**Slug:** `QWILR_DELETE_WEBHOOK_SUBSCRIPTION`

Permanently cancel one webhook subscription by its subscription ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subscription_id` | string | Yes | Subscription ID returned by Create Webhook Subscription or List Webhook Subscriptions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Page

**Slug:** `QWILR_GET_PAGE`

Return one full Qwilr page, with optional metadata and real or preview acceptance details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | array | No | Additional page fields to include. Acceptance expansions can expose signers, selected quote details, and audit-trail PDF URLs. |
| `page_id` | string | Yes | Page ID returned by LIST_PAGES or CREATE_PAGE. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Pages

**Slug:** `QWILR_LIST_PAGES`

Return one cursor-controlled page of visible Qwilr page summaries, optionally filtered by status, tags, folder, owner, or creation order.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | Case-sensitive tags that must all be present; use archived to list archived pages. |
| `limit` | integer | No | Maximum page summaries to return (1-100). |
| `cursor` | string | No | Opaque next_cursor from a prior call; its original filters and sort direction are retained automatically. |
| `expand` | array | No | Include page metadata in each summary. |
| `owner_id` | string | No | Return pages owned by this account user. |
| `statuses` | array | No | Return pages having any selected status. |
| `folder_id` | string | No | Return pages directly in this folder, excluding subfolders. |
| `sort_direction` | string ("asc" | "desc") | No | Sort by creation time, oldest-first or newest-first. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Payment Gateways

**Slug:** `QWILR_LIST_PAYMENT_GATEWAYS`

Return configured Qwilr Pay gateways whose IDs can be assigned to page payment settings.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Saved Blocks

**Slug:** `QWILR_LIST_SAVED_BLOCKS`

Return saved block IDs, names, and types for constructing or replacing pages.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Taxes

**Slug:** `QWILR_LIST_TAXES`

Return all quote tax definitions and their nullable percentage rates.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Users

**Slug:** `QWILR_LIST_USERS`

Return account users with IDs, email addresses, roles, and team names for resolving page owner IDs.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Webhook Subscriptions

**Slug:** `QWILR_LIST_WEBHOOK_SUBSCRIPTIONS`

Return API-created webhook subscriptions with their IDs, event types, and callback URLs.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Replace Page Content

**Slug:** `QWILR_REPLACE_PAGE_CONTENT`

Fully and irreversibly overwrite all content in a Qwilr page with saved blocks as the required primary operation, optionally changing publication, expiry, payments, folder, and additive tags in the same request. This only works for pages originally created from saved blocks. If folder_id is sent, Qwilr moves the page first and does not roll that move back if content replacement or another later change fails.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `blocks` | array | Yes | Non-empty ordered saved blocks that replace all existing page content. |
| `expiry` | object | No | Replace the link-expiry configuration. |
| `page_id` | string | Yes | Page whose content will be fully replaced. |
| `add_tags` | array | No | Add trimmed, case-sensitive tags while retaining existing tags; reserved tags are rejected. |
| `folder_id` | string | No | Move the page to this folder before applying other changes. |
| `published` | boolean | No | Publish or unpublish the page. |
| `substitutions` | object | No | Page-wide substitutions applied while replacing the saved blocks. |
| `payment_settings` | object | No | Partial update to Qwilr Pay and recurring-payment settings. |
| `skip_if_template_default_folder` | boolean | No | With folder_id, reject the whole update when the template default folder differs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Page

**Slug:** `QWILR_UPDATE_PAGE`

Update a Qwilr page's publication, expiry, payments, folder, or additive tags. This action does not replace page content. Accepted or disabled pages support only folder_id, skip_if_template_default_folder, and add_tags. If folder_id was sent, Qwilr applies the folder move first and does not roll it back when a later requested change fails; inspect the page before retrying.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expiry` | object | No | Replace the link-expiry configuration. |
| `page_id` | string | Yes | Page to update. |
| `add_tags` | array | No | Add trimmed, case-sensitive tags while retaining existing tags; reserved tags are rejected. |
| `folder_id` | string | No | Move the page to this folder before applying other changes. |
| `published` | boolean | No | Publish or unpublish the page. |
| `payment_settings` | object | No | Partial update to Qwilr Pay and recurring-payment settings. |
| `skip_if_template_default_folder` | boolean | No | With folder_id, reject the whole update when the template default folder differs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Tax

**Slug:** `QWILR_UPDATE_TAX`

Change a quote tax definition's name, percentage rate, or both; sending rate null clears the rate.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | New display name. |
| `rate` | number | No | New percentage rate; null removes the existing rate. |
| `tax_id` | string | Yes | Tax ID returned by List Taxes or Create Tax. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
