# Coupa

Coupa provides a comprehensive business spend management platform with procurement, invoicing, and expense capabilities.

- **Category:** accounting
- **Auth:** OAUTH2
- **Composio Managed App Available?** No
- **Tools:** 390
- **Triggers:** 0
- **Slug:** `COUPA`
- **Version:** 20260313_00

## Tools

### Abandon Invoice

**Slug:** `COUPA_ABANDON_AN_INVOICE`

Tool to abandon an invoice. Use when an invoice is invalid and needs to be abandoned. Invoice once abandoned cannot be reversed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to abandon. |
| `comment` | string | No | Optional comment explaining why the invoice is being abandoned. |
| `send_to_supplier` | boolean | No | Whether to send notification to the supplier about the abandoned invoice. |
| `reason_insight_id` | integer | No | The ID of the Reason Insight to use for abandoning the invoice. Either reason_insight_id or reason_insight_code must be provided. |
| `reason_insight_code` | string | No | The code of the Reason Insight to use for abandoning the invoice. Either reason_insight_id or reason_insight_code must be provided. |
| `additional_recipients` | string | No | Comma-separated list of additional email recipients to notify. |

#### 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 Account

**Slug:** `COUPA_ACCOUNTS_CREATE`

Tool to create a Coupa account. Use when you need to provision a new general ledger account with a specific chart-of-accounts type and code segments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Optional user-friendly account nickname. |
| `active` | boolean | No | Whether the account is active/available to users. |
| `segment-1` | string | No | First code segment (≤100 characters) |
| `segment-2` | string | No | Second code segment (≤100 characters) |
| `segment-3` | string | No | Third code segment (≤100 characters) |
| `segment-4` | string | No | Fourth code segment (≤100 characters) |
| `segment-5` | string | No | Fifth code segment (≤100 characters) |
| `segment-6` | string | No | Sixth code segment (≤100 characters) |
| `segment-7` | string | No | Seventh code segment (≤100 characters) |
| `segment-8` | string | No | Eighth code segment (≤100 characters) |
| `segment-9` | string | No | Ninth code segment (≤100 characters) |
| `segment-10` | string | No | Tenth code segment (≤100 characters) |
| `segment-11` | string | No | Eleventh code segment (≤100 characters) |
| `segment-12` | string | No | Twelfth code segment (≤100 characters) |
| `segment-13` | string | No | Thirteenth code segment (≤100 characters) |
| `segment-14` | string | No | Fourteenth code segment (≤100 characters) |
| `segment-15` | string | No | Fifteenth code segment (≤100 characters) |
| `segment-16` | string | No | Sixteenth code segment (≤100 characters) |
| `segment-17` | string | No | Seventeenth code segment (≤100 characters) |
| `segment-18` | string | No | Eighteenth code segment (≤100 characters) |
| `segment-19` | string | No | Nineteenth code segment (≤100 characters) |
| `segment-20` | string | No | Twentieth code segment (≤100 characters) |
| `account-type` | object | No | Reference to an existing Coupa Account Type. Provide `id` or `name`. |
| `account-type-id` | integer | No | ID of the existing Account Type. Alternative to `account-type` object. |

#### 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 Accounts

**Slug:** `COUPA_ACCOUNTS_INDEX`

Tool to list accounts from Coupa. Use when you need to retrieve account IDs and codes with optional filters and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa account ID |
| `code` | string | No | Exact-match filter by account code; supports Coupa query operators |
| `active` | boolean | No | Filter by active status: true for active accounts, false for inactive |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","code"] |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association IDs |
| `account-type-id` | integer | No | Filter by account type ID |
| `account_type_name` | string | No | Filter by account type name |

#### 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 Recent Accounts

**Slug:** `COUPA_ACCOUNTS_RECENT`

Tool to retrieve recently accessed accounts from Coupa. Use when you need to view accounts that the user has recently interacted with.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50) |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","code","name"] |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Account

**Slug:** `COUPA_ACCOUNTS_SHOW`

Tool to retrieve a specific account by ID. Use when you need detailed account information including segments, type, and status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the account to retrieve |

#### 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 Account

**Slug:** `COUPA_ACCOUNTS_UPDATE`

Tool to update an existing Coupa account. Use when you need to modify account information including account type, activation status, code segments, and display name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the account to update. |
| `code` | string | No | All segments concatenated with a hyphen (-). Auto-generated from segments if not provided. |
| `name` | string | No | Display nickname searchable through the user interface. |
| `active` | boolean | No | Controls account availability; false deactivates, true activates. |
| `segment-1` | string | No | First code segment (≤100 characters) |
| `segment-2` | string | No | Second code segment (≤100 characters) |
| `segment-3` | string | No | Third code segment (≤100 characters) |
| `segment-4` | string | No | Fourth code segment (≤100 characters) |
| `segment-5` | string | No | Fifth code segment (≤100 characters) |
| `segment-6` | string | No | Sixth code segment (≤100 characters) |
| `segment-7` | string | No | Seventh code segment (≤100 characters) |
| `segment-8` | string | No | Eighth code segment (≤100 characters) |
| `segment-9` | string | No | Ninth code segment (≤100 characters) |
| `segment-10` | string | No | Tenth code segment (≤100 characters) |
| `segment-11` | string | No | Eleventh code segment (≤100 characters) |
| `segment-12` | string | No | Twelfth code segment (≤100 characters) |
| `segment-13` | string | No | Thirteenth code segment (≤100 characters) |
| `segment-14` | string | No | Fourteenth code segment (≤100 characters) |
| `segment-15` | string | No | Fifteenth code segment (≤100 characters) |
| `segment-16` | string | No | Sixteenth code segment (≤100 characters) |
| `segment-17` | string | No | Seventeenth code segment (≤100 characters) |
| `segment-18` | string | No | Eighteenth code segment (≤100 characters) |
| `segment-19` | string | No | Nineteenth code segment (≤100 characters) |
| `segment-20` | string | No | Twentieth code segment (≤100 characters) |
| `account-type` | object | No | Reference to an existing Coupa Account Type. Provide `id` or `name`. |
| `account-type-id` | integer | No | ID of the existing Account Type. Alternative to `account-type` object. |

#### 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 Account Types

**Slug:** `COUPA_ACCOUNT_TYPES_INDEX`

Tool to list account types in Coupa. Use when you need account type IDs and names for account creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa account type ID |
| `active` | boolean | No | Filter by active status (true or false) |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name"]. |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50 |
| `dynamic_flag` | boolean | No | Filter by dynamic account type flag (true or false) |
| `name_contains` | string | No | Filter account types whose name contains the given text |
| `return_object` | string ("limited" | "shallow") | No | Response size control: 'limited' returns only IDs; 'shallow' returns top-level fields with one-level associations |

#### 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 Account Type

**Slug:** `COUPA_ACCOUNT_TYPES_SHOW`

Tool to retrieve a specific account type by ID. Use when you need detailed information about a chart of accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the account type to retrieve |

#### 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 Account Validation Rule

**Slug:** `COUPA_ACCOUNT_VALIDATION_RULES_CREATE`

Tool to create account validation rules in Coupa. Use when setting up rules to manage chart of accounts validation with segment conditions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name/identifier for the validation rule (max 100 characters). |
| `active` | boolean | Yes | Activation status for the rule (true/false). |
| `description` | string | Yes | Description of the validation rule (max 255 characters). |
| `account-type` | object | Yes | Reference to the Account Type (provide `id` or `name`). |
| `error-message` | string | Yes | Error message displayed when validation fails (max 255 characters). |
| `segment-1-max` | string | No | Maximum value rule for segment 1 (max 255 characters). |
| `segment-1-min` | string | No | Minimum value rule for segment 1 (max 255 characters). |
| `segment-2-max` | string | No | Maximum value rule for segment 2 (max 255 characters). |
| `segment-2-min` | string | No | Minimum value rule for segment 2 (max 255 characters). |
| `segment-3-max` | string | No | Maximum value rule for segment 3 (max 255 characters). |
| `segment-3-min` | string | No | Minimum value rule for segment 3 (max 255 characters). |
| `segment-4-max` | string | No | Maximum value rule for segment 4 (max 255 characters). |
| `segment-4-min` | string | No | Minimum value rule for segment 4 (max 255 characters). |
| `segment-5-max` | string | No | Maximum value rule for segment 5 (max 255 characters). |
| `segment-5-min` | string | No | Minimum value rule for segment 5 (max 255 characters). |
| `segment-6-max` | string | No | Maximum value rule for segment 6 (max 255 characters). |
| `segment-6-min` | string | No | Minimum value rule for segment 6 (max 255 characters). |
| `segment-7-max` | string | No | Maximum value rule for segment 7 (max 255 characters). |
| `segment-7-min` | string | No | Minimum value rule for segment 7 (max 255 characters). |
| `segment-8-max` | string | No | Maximum value rule for segment 8 (max 255 characters). |
| `segment-8-min` | string | No | Minimum value rule for segment 8 (max 255 characters). |
| `segment-9-max` | string | No | Maximum value rule for segment 9 (max 255 characters). |
| `segment-9-min` | string | No | Minimum value rule for segment 9 (max 255 characters). |
| `segment-10-max` | string | No | Maximum value rule for segment 10 (max 255 characters). |
| `segment-10-min` | string | No | Minimum value rule for segment 10 (max 255 characters). |
| `segment-11-max` | string | No | Maximum value rule for segment 11 (max 255 characters). |
| `segment-11-min` | string | No | Minimum value rule for segment 11 (max 255 characters). |
| `segment-12-max` | string | No | Maximum value rule for segment 12 (max 255 characters). |
| `segment-12-min` | string | No | Minimum value rule for segment 12 (max 255 characters). |
| `segment-13-max` | string | No | Maximum value rule for segment 13 (max 255 characters). |
| `segment-13-min` | string | No | Minimum value rule for segment 13 (max 255 characters). |
| `segment-14-max` | string | No | Maximum value rule for segment 14 (max 255 characters). |
| `segment-14-min` | string | No | Minimum value rule for segment 14 (max 255 characters). |
| `segment-15-max` | string | No | Maximum value rule for segment 15 (max 255 characters). |
| `segment-15-min` | string | No | Minimum value rule for segment 15 (max 255 characters). |
| `segment-16-max` | string | No | Maximum value rule for segment 16 (max 255 characters). |
| `segment-16-min` | string | No | Minimum value rule for segment 16 (max 255 characters). |
| `segment-17-max` | string | No | Maximum value rule for segment 17 (max 255 characters). |
| `segment-17-min` | string | No | Minimum value rule for segment 17 (max 255 characters). |
| `segment-18-max` | string | No | Maximum value rule for segment 18 (max 255 characters). |
| `segment-18-min` | string | No | Minimum value rule for segment 18 (max 255 characters). |
| `segment-19-max` | string | No | Maximum value rule for segment 19 (max 255 characters). |
| `segment-19-min` | string | No | Minimum value rule for segment 19 (max 255 characters). |
| `segment-20-max` | string | No | Maximum value rule for segment 20 (max 255 characters). |
| `segment-20-min` | string | No | Minimum value rule for segment 20 (max 255 characters). |
| `segment-1-condition` | string | No | Condition for segment 1 (e.g., 'blank_value' or custom condition). |
| `segment-2-condition` | string | No | Condition for segment 2 (e.g., 'blank_value' or custom condition). |
| `segment-3-condition` | string | No | Condition for segment 3 (e.g., 'blank_value' or custom condition). |
| `segment-4-condition` | string | No | Condition for segment 4 (e.g., 'blank_value' or custom condition). |
| `segment-5-condition` | string | No | Condition for segment 5 (e.g., 'blank_value' or custom condition). |
| `segment-6-condition` | string | No | Condition for segment 6 (e.g., 'blank_value' or custom condition). |
| `segment-7-condition` | string | No | Condition for segment 7 (e.g., 'blank_value' or custom condition). |
| `segment-8-condition` | string | No | Condition for segment 8 (e.g., 'blank_value' or custom condition). |
| `segment-9-condition` | string | No | Condition for segment 9 (e.g., 'blank_value' or custom condition). |
| `segment-10-condition` | string | No | Condition for segment 10 (e.g., 'blank_value' or custom condition). |
| `segment-11-condition` | string | No | Condition for segment 11 (e.g., 'blank_value' or custom condition). |
| `segment-12-condition` | string | No | Condition for segment 12 (e.g., 'blank_value' or custom condition). |
| `segment-13-condition` | string | No | Condition for segment 13 (e.g., 'blank_value' or custom condition). |
| `segment-14-condition` | string | No | Condition for segment 14 (e.g., 'blank_value' or custom condition). |
| `segment-15-condition` | string | No | Condition for segment 15 (e.g., 'blank_value' or custom condition). |
| `segment-16-condition` | string | No | Condition for segment 16 (e.g., 'blank_value' or custom condition). |
| `segment-17-condition` | string | No | Condition for segment 17 (e.g., 'blank_value' or custom condition). |
| `segment-18-condition` | string | No | Condition for segment 18 (e.g., 'blank_value' or custom condition). |
| `segment-19-condition` | string | No | Condition for segment 19 (e.g., 'blank_value' or custom condition). |
| `segment-20-condition` | string | No | Condition for segment 20 (e.g., 'blank_value' or custom condition). |

#### 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 Account Validation Rule

**Slug:** `COUPA_ACCOUNT_VALIDATION_RULES_SHOW`

Tool to retrieve a specific account validation rule by ID. Use when you need detailed information about account validation rules including segment conditions and error messages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the account validation rule to retrieve |

#### 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 Account Validation Rule

**Slug:** `COUPA_ACCOUNT_VALIDATION_RULES_UPDATE`

Tool to update an existing account validation rule in Coupa. Use when you need to modify validation rule attributes after confirming the rule ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the account validation rule to update. |
| `name` | string | No | Item name (max 100 characters) - must be unique. |
| `active` | boolean | No | Status indicator - when NOT active, item is effectively deleted. |
| `payload` | object | No | Additional account validation rule properties to update; use Coupa API hyphenated names as keys. |
| `description` | string | No | Item description (max 255 characters) - must be unique. |
| `account-type` | object | No | Reference to account type, e.g., {'id': 1}. |
| `error-message` | string | No | Error message to be displayed when validation fails (max 255 characters) - must be unique. |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response format: 'none' (nothing returned), 'limited' (only IDs), 'shallow' (attributes plus IDs of associations). Default returns full object. |
| `segment-1-max` | string | No | Custom maximum rule for segment 1 (max 255 characters). |
| `segment-1-min` | string | No | Custom minimum rule for segment 1 (max 255 characters). |
| `segment-2-max` | string | No | Custom maximum rule for segment 2 (max 255 characters). |
| `segment-2-min` | string | No | Custom minimum rule for segment 2 (max 255 characters). |
| `segment-3-max` | string | No | Custom maximum rule for segment 3 (max 255 characters). |
| `segment-3-min` | string | No | Custom minimum rule for segment 3 (max 255 characters). |
| `segment-4-max` | string | No | Custom maximum rule for segment 4 (max 255 characters). |
| `segment-4-min` | string | No | Custom minimum rule for segment 4 (max 255 characters). |
| `segment-5-max` | string | No | Custom maximum rule for segment 5 (max 255 characters). |
| `segment-5-min` | string | No | Custom minimum rule for segment 5 (max 255 characters). |
| `segment-6-max` | string | No | Custom maximum rule for segment 6 (max 255 characters). |
| `segment-6-min` | string | No | Custom minimum rule for segment 6 (max 255 characters). |
| `segment-7-max` | string | No | Custom maximum rule for segment 7 (max 255 characters). |
| `segment-7-min` | string | No | Custom minimum rule for segment 7 (max 255 characters). |
| `segment-8-max` | string | No | Custom maximum rule for segment 8 (max 255 characters). |
| `segment-8-min` | string | No | Custom minimum rule for segment 8 (max 255 characters). |
| `segment-9-max` | string | No | Custom maximum rule for segment 9 (max 255 characters). |
| `segment-9-min` | string | No | Custom minimum rule for segment 9 (max 255 characters). |
| `segment-10-max` | string | No | Custom maximum rule for segment 10 (max 255 characters). |
| `segment-10-min` | string | No | Custom minimum rule for segment 10 (max 255 characters). |
| `segment-11-max` | string | No | Custom maximum rule for segment 11 (max 255 characters). |
| `segment-11-min` | string | No | Custom minimum rule for segment 11 (max 255 characters). |
| `segment-12-max` | string | No | Custom maximum rule for segment 12 (max 255 characters). |
| `segment-12-min` | string | No | Custom minimum rule for segment 12 (max 255 characters). |
| `segment-13-max` | string | No | Custom maximum rule for segment 13 (max 255 characters). |
| `segment-13-min` | string | No | Custom minimum rule for segment 13 (max 255 characters). |
| `segment-14-max` | string | No | Custom maximum rule for segment 14 (max 255 characters). |
| `segment-14-min` | string | No | Custom minimum rule for segment 14 (max 255 characters). |
| `segment-15-max` | string | No | Custom maximum rule for segment 15 (max 255 characters). |
| `segment-15-min` | string | No | Custom minimum rule for segment 15 (max 255 characters). |
| `segment-16-max` | string | No | Custom maximum rule for segment 16 (max 255 characters). |
| `segment-16-min` | string | No | Custom minimum rule for segment 16 (max 255 characters). |
| `segment-17-max` | string | No | Custom maximum rule for segment 17 (max 255 characters). |
| `segment-17-min` | string | No | Custom minimum rule for segment 17 (max 255 characters). |
| `segment-18-max` | string | No | Custom maximum rule for segment 18 (max 255 characters). |
| `segment-18-min` | string | No | Custom minimum rule for segment 18 (max 255 characters). |
| `segment-19-max` | string | No | Custom maximum rule for segment 19 (max 255 characters). |
| `segment-19-min` | string | No | Custom minimum rule for segment 19 (max 255 characters). |
| `segment-20-max` | string | No | Custom maximum rule for segment 20 (max 255 characters). |
| `segment-20-min` | string | No | Custom minimum rule for segment 20 (max 255 characters). |
| `segment-1-condition` | string | No | Custom condition for segment 1. |
| `segment-2-condition` | string | No | Custom condition for segment 2. |
| `segment-3-condition` | string | No | Custom condition for segment 3. |
| `segment-4-condition` | string | No | Custom condition for segment 4. |
| `segment-5-condition` | string | No | Custom condition for segment 5. |
| `segment-6-condition` | string | No | Custom condition for segment 6. |
| `segment-7-condition` | string | No | Custom condition for segment 7. |
| `segment-8-condition` | string | No | Custom condition for segment 8. |
| `segment-9-condition` | string | No | Custom condition for segment 9. |
| `segment-10-condition` | string | No | Custom condition for segment 10. |
| `segment-11-condition` | string | No | Custom condition for segment 11. |
| `segment-12-condition` | string | No | Custom condition for segment 12. |
| `segment-13-condition` | string | No | Custom condition for segment 13. |
| `segment-14-condition` | string | No | Custom condition for segment 14. |
| `segment-15-condition` | string | No | Custom condition for segment 15. |
| `segment-16-condition` | string | No | Custom condition for segment 16. |
| `segment-17-condition` | string | No | Custom condition for segment 17. |
| `segment-18-condition` | string | No | Custom condition for segment 18. |
| `segment-19-condition` | string | No | Custom condition for segment 19. |
| `segment-20-condition` | string | No | Custom condition for segment 20. |

#### 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 |

### Add Comment to Expense Report

**Slug:** `COUPA_ADD_A_COMMENT_TO_EXPENSE_REPORT`

Tool to add a comment to an expense report. Use when you need to add notes or feedback to an existing expense report.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the expense report to add a comment to. |
| `comments` | string | Yes | The comment text to add to the expense report. |
| `commentable-type` | string ("ExpenseReport" | "ExpenseReportHeader") | No | Type of the commentable object. Use 'ExpenseReport' for standard expense reports or 'ExpenseReportHeader' for header-level comments. |

#### 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 |

### Add Approver to Requisition

**Slug:** `COUPA_ADD_APPROVAL_GROUP_TO_REQUISITION_APPROVAL_CHAIN`

Tool to manually add an approver (User or UserGroup) to a requisition approval chain. Use when you need to add a user or user group to the approval chain of a requisition at a specific position relative to the current approver.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the requisition. |
| `position` | string ("after_current_approver" | "before_current_approver" | "end_of_list" | "watcher") | Yes | Position to add the approver in the approval chain. Acceptable values: after_current_approver, before_current_approver, end_of_list, watcher. |
| `approver_id` | integer | Yes | Coupa internal ID of the User or UserGroup to add as approver. |
| `current_approver_id` | integer | Yes | User ID of the current approver in the approval chain. If the current approver is a UserGroup, this should be the User ID of one of the UserGroup members. |

#### 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 |

### Add Approver To Invoice

**Slug:** `COUPA_ADD_APPROVER_TO_AN_INVOICE_MANUALLY`

Tool to manually add an approver to an invoice. Use when you need to add a user or user group to the approval chain of an invoice at a specific position.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice. |
| `position` | string ("before_current_approver" | "after_current_approver" | "end_of_list" | "watcher") | Yes | String representation of the approver position. Acceptable values: before_current_approver, after_current_approver, end_of_list, watcher. |
| `approver_id` | integer | Yes | User ID or UserGroup ID to add as approver. |
| `approver_type` | string ("user" | "UserGroup") | Yes | Type of approver entity. Acceptable values: user, UserGroup. |
| `current_approver_id` | integer | No | Active approver ID. Required when position is 'before_current_approver' or 'after_current_approver' to specify which approver to add before/after. |

#### 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 |

### Add Approver to PO Change

**Slug:** `COUPA_ADD_APPROVER_TO_PO_CHANGE_AFTER_CURRENT_APPROVER`

Tool to add an approver to a purchase order change after the current approver. Use when you need to manually add an approver to a pending PO change request in the approval chain.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order change |
| `position` | string ("before_current_approver" | "after_current_approver" | "end_of_list" | "watcher") | Yes | Position to add the approver in the approval chain. Use 'after_current_approver' to add after current approver. |
| `approver_id` | integer | Yes | The ID of the user or user group to add as approver. |
| `approver_type` | string ("user" | "UserGroup") | Yes | Type of approver entity. Use 'user' for a user or 'UserGroup' for a user group. |
| `current_approver_id` | integer | No | ID of the current active approver. Required when position is 'before_current_approver' or 'after_current_approver'. |

#### 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 |

### Add File Attachment to Project

**Slug:** `COUPA_ADD_ATTACHMENT_FILE_TO_PROJECT`

Tool to add a file attachment to an existing project. Use when you need to upload and attach files (documents, images, PDFs, etc.) to projects in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | File to upload to the project. |
| `intent` | string | No | Designation indicating the intended audience (e.g., 'Supplier'). Maximum 40 characters |
| `filename` | string | No | Filename when providing base64 content. |
| `mimetype` | string | No | MIME type (e.g., 'text/plain', 'application/pdf') when using base64 content |
| `linked_to` | string | No | Links attachment to specific features. Maximum 255 characters |
| `project_id` | integer | Yes | ID of the project to attach the file to |
| `content_b64` | string | No | Base64-encoded file content. |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 |

### Add File Attachment to Purchase Order

**Slug:** `COUPA_ADD_ATTACHMENT_FILE_TO_PURCHASE_ORDER`

Tool to add a file attachment to an existing purchase order. Use when you need to upload and attach files (documents, images, PDFs, etc.) to purchase orders in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | Yes | File to upload to the purchase order. |
| `intent` | string | No | Designation indicating the intended audience (e.g., 'Supplier'). Maximum 40 characters |
| `linked_to` | string | No | Links attachment to specific features. Maximum 255 characters |
| `purchase_order_id` | integer | Yes | ID of the purchase order to attach the file to |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 |

### Add File Attachment to Purchase Order Line

**Slug:** `COUPA_ADD_ATTACHMENT_FILE_TO_PURCHASE_ORDER_LINE`

Tool to add a file attachment to a purchase order line. Use when you need to upload and attach files (documents, images, PDFs, etc.) to specific purchase order lines in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | File to upload to the purchase order line. |
| `intent` | string | No | Designation indicating the intended audience (e.g., 'Supplier'). Maximum 40 characters |
| `filename` | string | No | Filename when providing base64 content (e.g., 'document.pdf') |
| `mimetype` | string | No | MIME type when using base64 content (e.g., 'application/pdf', 'image/jpeg') |
| `content_b64` | string | No | Base64-encoded file content. |
| `purchase_order_line_id` | integer | Yes | ID of the purchase order line to attach the file to |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 |

### Add File Attachment to Requisition Line

**Slug:** `COUPA_ADD_ATTACHMENT_FILE_TO_REQUISITION_LINE`

Tool to add a file attachment to a requisition line. Use when you need to upload and attach files (documents, images, PDFs, etc.) to requisition lines in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | File to upload to the requisition line. |
| `intent` | string | No | Designation indicating the intended audience (e.g., 'Supplier'). Maximum 40 characters |
| `filename` | string | No | Filename when providing base64 content. |
| `mimetype` | string | No | MIME type (e.g., 'text/plain', 'application/pdf') when using base64 content |
| `linked_to` | string | No | Links attachment to specific features. Maximum 255 characters |
| `content_b64` | string | No | Base64-encoded file content. |
| `requisition_line_id` | integer | Yes | ID of the requisition line to attach the file to |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 |

### Add Attachment to Comment

**Slug:** `COUPA_ADD_ATTACHMENT_TO_COMMENT`

Tool to add a file attachment to an existing comment. Use when you need to upload and attach files to comments in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | File to upload to the comment. |
| `intent` | string | No | Purpose identifier for the attachment (e.g., 'Internal', 'Supplier'). Maximum 40 characters |
| `filename` | string | No | Filename when providing base64 content. |
| `mimetype` | string | No | MIME type (e.g., 'text/plain', 'application/pdf') when using base64 content |
| `linked_to` | string | No | Links attachment to specific features. Maximum 255 characters |
| `comment_id` | integer | Yes | ID of the comment to attach the file to |
| `content_b64` | string | No | Base64-encoded file content. |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 |

### Add COAs to Supplier Site

**Slug:** `COUPA_ADD_COAS_ASSIGNED_TO_A_SPECIFIC_SUPPLIER_SITE`

Tool to add Chart of Accounts (COAs) to a specific supplier site. Use when you need to assign account types to a supplier site for transaction categorization and financial tracking.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the supplier site to update. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','account-types']. |
| `payload` | object | No | Additional supplier site attributes to update directly; keys should use Coupa API hyphenated names. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `account-types` | array | Yes | List of account types (COAs) to assign to the supplier site. Each account type can be referenced by ID or name. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |

#### 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 |

### Add Comment to Purchase Order

**Slug:** `COUPA_ADD_COMMENTS_TO_PO`

Tool to add a comment to a purchase order. Use when you need to add notes, feedback, or mention users on an existing purchase order.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the purchase order to add a comment to. |
| `comments` | string | Yes | The comment text to add to the purchase order. You can include user mentions using @[User:{user_id}] format (e.g., '@[User:2] please review'). |
| `reason-code` | string | No | Optional comment reason code for categorization. |
| `to-supplier` | boolean | No | Optional flag indicating whether the comment should be visible to the supplier. |
| `commentable-type` | string ("OrderHeader" | "PurchaseOrderHeader") | No | Type of the commentable object. Use 'OrderHeader' for purchase order header-level comments or 'PurchaseOrderHeader' for standard PO comments. |

#### 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 |

### Add Content Group to Contract

**Slug:** `COUPA_ADD_CONTENT_GROUP_TO_CONTRACT`

Tool to add a content group (business group) to a contract. Use when you need to assign a content group to a contract for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contract_id` | integer | Yes | ID of the contract to which the content group will be added |
| `business_group_id` | integer | Yes | ID of the business group/content group to add to the contract |

#### 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 |

### Add Content Group to Supplier

**Slug:** `COUPA_ADD_CONTENT_GROUP_TO_SUPPLIER`

Tool to add a content group (business group) to a supplier. Use when you need to assign a content group to a supplier for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier_id` | integer | Yes | ID of the supplier to which the content group will be added |
| `business_group_id` | integer | Yes | ID of the business group/content group to add to the supplier |

#### 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 |

### Add Contract Approver

**Slug:** `COUPA_ADD_CONTRACT_APPROVER`

Tool to manually add an approver to a contract. Use when you need to add a user or user group to the approval chain of a contract at a specific position.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the contract. |
| `position` | string ("before_current_approver" | "after_current_approver" | "end_of_list" | "watcher") | Yes | String representation of the approver position. Acceptable values: before_current_approver, after_current_approver, end_of_list, watcher. |
| `approver_id` | integer | Yes | User ID or UserGroup ID to add as approver. |
| `on_behalf_of` | string | No | Perform the action on behalf of this user (email or login); sent as X-COUPA-ON-BEHALF-OF header. |
| `approver_type` | string ("user" | "UserGroup") | Yes | Type of approver entity. Acceptable values: user, UserGroup. |
| `api_user_email` | string | No | Impersonate as the given user email via X-COUPA-API-EMAIL header. |
| `current_approver_id` | integer | No | Active approver ID. Required when position is 'before_current_approver' or 'after_current_approver' to specify which approver to add before/after. |

#### 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 |

### Add Contract Term

**Slug:** `COUPA_ADD_CONTRACT_TERM`

Tool to add a contract term to an existing contract. Use when creating pricing tiers or discount structures for contracts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the contract to add the term to. |
| `name` | string | Yes | Unique name/identifier for the contract term. |
| `tier-1-disc-pct` | string | No | Discount percentage for tier 1 (decimal as string). |
| `tier-2-disc-pct` | string | No | Discount percentage for tier 2 (decimal as string). |
| `tier-3-disc-pct` | string | No | Discount percentage for tier 3 (decimal as string). |
| `tier-4-disc-pct` | string | No | Discount percentage for tier 4 (decimal as string). |
| `tier-5-disc-pct` | string | No | Discount percentage for tier 5 (decimal as string). |
| `tier-6-disc-pct` | string | No | Discount percentage for tier 6 (decimal as string). |
| `tier-7-disc-pct` | string | No | Discount percentage for tier 7 (decimal as string). |
| `tier-8-disc-pct` | string | No | Discount percentage for tier 8 (decimal as string). |
| `tier-9-disc-pct` | string | No | Discount percentage for tier 9 (decimal as string). |
| `tier-10-disc-pct` | string | No | Discount percentage for tier 10 (decimal as string). |
| `tier-11-disc-pct` | string | No | Discount percentage for tier 11 (decimal as string). |
| `tier-12-disc-pct` | string | No | Discount percentage for tier 12 (decimal as string). |
| `tier-13-disc-pct` | string | No | Discount percentage for tier 13 (decimal as string). |
| `tier-14-disc-pct` | string | No | Discount percentage for tier 14 (decimal as string). |
| `tier-15-disc-pct` | string | No | Discount percentage for tier 15 (decimal as string). |
| `tier-16-disc-pct` | string | No | Discount percentage for tier 16 (decimal as string). |
| `tier-17-disc-pct` | string | No | Discount percentage for tier 17 (decimal as string). |
| `tier-18-disc-pct` | string | No | Discount percentage for tier 18 (decimal as string). |
| `tier-19-disc-pct` | string | No | Discount percentage for tier 19 (decimal as string). |
| `tier-20-disc-pct` | string | No | Discount percentage for tier 20 (decimal as string). |
| `use-pct-discounts` | boolean | No | Boolean flag indicating whether percentage-based discounts apply. |
| `contract-term-type` | string | Yes | Type classification for the contract term. Valid values: PerOrderContractTerm, TotalQtyContractTerm, TotalAmtContractTerm. |
| `tier-1-upper-bound` | string | No | Upper boundary for tier 1 (decimal as string). |
| `tier-2-upper-bound` | string | No | Upper boundary for tier 2 (decimal as string). |
| `tier-3-upper-bound` | string | No | Upper boundary for tier 3 (decimal as string). |
| `tier-4-upper-bound` | string | No | Upper boundary for tier 4 (decimal as string). |
| `tier-5-upper-bound` | string | No | Upper boundary for tier 5 (decimal as string). |
| `tier-6-upper-bound` | string | No | Upper boundary for tier 6 (decimal as string). |
| `tier-7-upper-bound` | string | No | Upper boundary for tier 7 (decimal as string). |
| `tier-8-upper-bound` | string | No | Upper boundary for tier 8 (decimal as string). |
| `tier-9-upper-bound` | string | No | Upper boundary for tier 9 (decimal as string). |
| `tier-10-upper-bound` | string | No | Upper boundary for tier 10 (decimal as string). |
| `tier-11-upper-bound` | string | No | Upper boundary for tier 11 (decimal as string). |
| `tier-12-upper-bound` | string | No | Upper boundary for tier 12 (decimal as string). |
| `tier-13-upper-bound` | string | No | Upper boundary for tier 13 (decimal as string). |
| `tier-14-upper-bound` | string | No | Upper boundary for tier 14 (decimal as string). |
| `tier-15-upper-bound` | string | No | Upper boundary for tier 15 (decimal as string). |
| `tier-16-upper-bound` | string | No | Upper boundary for tier 16 (decimal as string). |
| `tier-17-upper-bound` | string | No | Upper boundary for tier 17 (decimal as string). |
| `tier-18-upper-bound` | string | No | Upper boundary for tier 18 (decimal as string). |
| `tier-19-upper-bound` | string | No | Upper boundary for tier 19 (decimal as string). |
| `tier-20-upper-bound` | string | No | Upper boundary for tier 20 (decimal as string). |

#### 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 |

### Add Line w/ Allocations to External PO

**Slug:** `COUPA_ADD_LINE_W_ALLOCATIONS_TO_EXTERNAL_PO`

Tool to add a line with account allocations to an external purchase order. Use when you need to add line items with split billing across multiple accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to update |
| `order-lines` | array | Yes | List of order lines with allocations to add to the PO |

#### 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 Address

**Slug:** `COUPA_ADDRESSES_CREATE`

Tool to create a new address in Coupa. Use when you need to create personal or supplier remit-to addresses with location details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | Yes | City name (max 255 characters, required) |
| `name` | string | Yes | Address nickname/identifier (max 255 characters, required) |
| `state` | string | Yes | State abbreviation (max 255 characters, required) |
| `active` | boolean | No | Activation status; 'true' makes address available to users (optional, defaults to true) |
| `country` | object | Yes | Country reference containing code or name (required). Must already exist in the system. |
| `street1` | string | Yes | Primary street address line (max 255 characters, required) |
| `street2` | string | No | Secondary street address line (max 255 characters, optional) |
| `street3` | string | No | Third street address line (max 255 characters, optional) |
| `street4` | string | No | Fourth street address line (max 255 characters, optional) |
| `attention` | string | No | Address default attention line (max 255 characters, optional) |
| `vat-number` | string | No | VAT identifier (max 255 characters, optional) |
| `postal-code` | string | Yes | Postal/ZIP code (max 255 characters, required) |
| `vat-country` | object | No | Reference to a country object. |
| `location-code` | string | No | Location code identifier (max 255 characters, optional) |
| `state-iso-code` | string | No | ISO state code format: CC-SSS (max 255 characters, optional) |
| `external-src-ref` | string | No | External Source Reference (max 255 characters, optional) |
| `local-tax-number` | string | No | Local tax identifier (max 255 characters, optional) |
| `external-src-name` | string | No | External Source Name (max 255 characters, optional) |
| `business-group-name` | string | No | Content Group Name for Address (max 255 characters, optional) |

#### 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 Addresses

**Slug:** `COUPA_ADDRESSES_INDEX`

Tool to list addresses from Coupa. Use when you need paginated address records for processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ["id","city","state"]. |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50. |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Add Content Group to SIM Record

**Slug:** `COUPA_ADD_SPECIFIC_CONTENT_GROUP_TO_SIM_RECORD`

Tool to add a content group (business group) to a Supplier Information Management (SIM) record. Use when you need to assign a content group to a SIM record for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sim_id` | integer | Yes | ID of the supplier information record to which the content group will be added |
| `business_group_id` | integer | Yes | ID of the business group/content group to add to the SIM record |

#### 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 |

### Add Content Group to SIM Site

**Slug:** `COUPA_ADD_SPECIFIC_CONTENT_GROUP_TO_SIM_SITE`

Tool to add a content group (business group) to a Supplier Information Management (SIM) site. Use when you need to assign a content group to a SIM site for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sim_site_id` | integer | Yes | ID of the supplier information site to which the content group will be added |
| `business_group_id` | integer | Yes | ID of the business group/content group to add to the SIM site |

#### 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 |

### Add Content Group to Supplier Site

**Slug:** `COUPA_ADD_SPECIFIC_CONTENT_GROUP_TO_SUPPLIER_SITE`

Tool to add a content group (business group) to a supplier site. Use when you need to assign a content group to a supplier site for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier_site_id` | integer | Yes | ID of the supplier site to which the content group will be added |
| `business_group_id` | integer | Yes | ID of the business group/content group to add to the supplier site |

#### 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 |

### Add User To A Group

**Slug:** `COUPA_ADD_USER_TO_A_GROUP`

Tool to add a user to a group by updating user group membership. Use when you need to assign a user to a specific group with defined owner and participant permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `owner` | boolean | Yes | Indicates admin status for the membership. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','user-id','user-group-id']. |
| `user-id` | integer | Yes | User identifier to add to the group. |
| `participant` | boolean | Yes | Indicates participant status for the membership. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `membership_id` | integer | Yes | Coupa unique identifier for the user group membership to update. |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `user-group-id` | integer | Yes | User group ID or Project ID to add the user to. |
| `user-group-type` | string ("UserGroup" | "Project") | Yes | Type of the group: 'UserGroup' or 'Project'. |

#### 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 Announcements

**Slug:** `COUPA_ANNOUNCEMENTS_INDEX`

Tool to list all announcements from Coupa. Use when you need to retrieve multiple announcements with optional pagination and filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50, default 50) |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","subject","message"] |
| `offset` | integer | No | Number of records to skip for pagination; results are returned in pages up to 50 |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Example: {'created-at[gt_or_eq]':'2023-01-01T00:00:00Z','updated-at[gt_or_eq]':'2023-01-01T00:00:00Z'} |
| `order_by` | string | No | Field name to sort results by |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Announcement

**Slug:** `COUPA_ANNOUNCEMENTS_SHOW`

Tool to retrieve a specific announcement by ID from Coupa Mobile. Use when you need detailed information about an announcement.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The Coupa unique identifier for the announcement |

#### 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 |

### Approve Approval

**Slug:** `COUPA_APPROVALS_APPROVE`

Tool to approve a pending approval record. Use when you need to programmatically approve a pending approval by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the approval to approve |
| `api-user-id` | integer | No | Optional Coupa API user impersonation header value. If provided, sets X-COUPA-API-USER-ID to this user ID to act as that user (must be the approver). |

#### 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 |

### Hold Approval

**Slug:** `COUPA_APPROVALS_HOLD`

Tool to place an approval on hold. Use when you need to pause approval workflow temporarily.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the approval to place on hold |
| `note` | string | No | Optional note/reason for placing on hold. Coupa does not require a body for hold, but this field is accepted for future compatibility and auditing. |
| `api-user-id` | integer | No | Optional Coupa API user impersonation header value. If provided, sets X-COUPA-API-USER-ID to this user ID to act as that user (must be the approver). |

#### 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 Approvals

**Slug:** `COUPA_APPROVALS_INDEX`

Tool to list approvals with optional pagination and filters. Use when you need to retrieve multiple approval records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id',{'approver':['id','login']}] |
| `offset` | integer | No | Number of records to skip for pagination (default 0). |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Example: {'status':'approved','created-at[gt]':'2023-01-01T00:00:00Z'} |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 |

### Reject Approval

**Slug:** `COUPA_APPROVALS_REJECT`

Tool to reject an approval. Use when you need to programmatically reject a pending approval by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the approval to reject |
| `note` | string | No | Additional note to include in the body of the rejection |
| `reason` | string | No | Rejection reason as query parameter |

#### 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 Budget Lines

**Slug:** `COUPA_BUDGET_LINES_INDEX`

Tool to retrieve budget lines from Coupa. Use when you need to query budget line information associated with accounts and periods.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Filter by specific budget line ID |
| `limit` | integer | No | Limit number of results returned. Recommended for large data sets. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","amount","description"] |
| `offset` | integer | No | Pagination offset; results are returned in pages |
| `order_by` | string | No | Sort results by specified field |
| `period_name` | string | No | Filter by period name (e.g., Q3FY09) |
| `owner_lastname` | string | No | Filter by budget owner's last name |
| `period_is_open` | boolean | No | Filter by period open status |
| `owner_is_approver` | boolean | No | Filter by owner approver status |
| `period_account_type_name` | string | No | Filter by account type name within period |

#### 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 Business Groups

**Slug:** `COUPA_BUSINESS_GROUPS_INDEX`

Tool to list business groups (content groups) in Coupa. Use when you need IDs, names, and metadata of content groups for assignments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa ID |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50 |
| `created_at_gt` | string | No | Return groups created after this ISO-8601 timestamp |
| `name_contains` | string | No | Filter groups whose name contains the given text |

#### 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 Business Group

**Slug:** `COUPA_BUSINESS_GROUPS_SHOW`

Tool to retrieve a specific business group (content group) by ID. Use when you need detailed information about a content group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the business group to retrieve |

#### 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 |

### Accept Header Level Confirmation

**Slug:** `COUPA_BUYER_ACCEPTING_HEADER_LEVEL_CONFIRMATION`

Tool to accept order header confirmations from suppliers. Use when a supplier has submitted a header level confirmation that is in pending_buyer_review status and you need to accept it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's internal ID for the order header confirmation to accept |

#### 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 |

### Reject Header Level Confirmation

**Slug:** `COUPA_BUYER_REJECTING_HEADER_LEVEL_CONFIRMATION`

Tool to reject order header confirmations from suppliers. Use when a supplier has submitted a header level confirmation that is in pending_buyer_review status and you need to reject it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's internal ID for the order header confirmation to reject |
| `comment` | string | No | Simple rejection comment. If provided, will be used to create a reason insight event. |
| `reason-insight-events` | array | No | Reason insight events documenting the rejection. At least one event with a comment is recommended. |

#### 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 |

### Bypass All Invoice Approvals

**Slug:** `COUPA_BYPASS_ALL_APPROVALS_OF_AN_INVOICE`

Tool to bypass all approvals for an invoice to enable rapid payment processing. Use when you need to skip the entire approval chain and get an invoice approved immediately. Note that the invoice must be in an approvable status (e.g., 'pending_approval'), not 'draft' status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to bypass all approvals for. |

#### 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 |

### Bypass Current Invoice Approval

**Slug:** `COUPA_BYPASS_CURRENT_APPROVALS_OF_AN_INVOICE`

Tool to skip the current approver and activate the next approver in the approval chain. Use when you need to bypass the current pending approver and move to the next approver. Note that the invoice must be in an approvable status (e.g., 'pending_approval'), not 'draft' status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to bypass current approval for. |

#### 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 |

### Cancel External PO

**Slug:** `COUPA_CANCEL_EXTERNAL_PO`

Tool to cancel an external purchase order. Use when you need to cancel an externally-created PO that has not yet been fully processed or has related documents that need to be cleared first.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the external purchase order to cancel |

#### 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 |

### Close/Soft Close External PO

**Slug:** `COUPA_CLOSE_SOFT_CLOSE_EXTERNAL_PO`

Tool to close or soft-close an external purchase order. Use when finalizing an external PO after confirming receipt or when business rules require closure.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to close |
| `reason-insight-id` | integer | No | Reference to reason insight for the close action |
| `reason-insight-code` | string | No | Code identifying the reason for closing |
| `reason-insight-event-comment` | string | No | Comment explaining why the PO is being closed |

#### 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 |

### Complete Contract

**Slug:** `COUPA_COMPLETE_CONTRACT`

Tool to complete a contract and transition it to legally binding status. Use when you need to mark a contract as completed and executed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the contract to complete |
| `fields` | array | No | JSON array of specific fields/associations to include in the response. Example: ['id','status'] |
| `api_user_id` | integer | No | Impersonate as the given user id via X-COUPA-API-USER-ID header. |
| `on_behalf_of` | string | No | Perform the action on behalf of this user (email or login); sent as X-COUPA-ON-BEHALF-OF header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user; sent as X-COUPA-BUSINESS-ROLE header. |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response verbosity: 'none', 'limited', or 'shallow' |
| `api_user_email` | string | No | Impersonate as the given user email via X-COUPA-API-EMAIL header. |
| `api_user_login` | string | No | Impersonate as the given user login via X-COUPA-API-USER-LOGIN header. |

#### 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 Content Group

**Slug:** `COUPA_CONTENT_GROUPS_CREATE`

Tool to create a new content group (business group) in Coupa. Use when you need to provision a new content group to restrict user access to objects in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the content group (max 100 characters) |
| `description` | string | No | A text description of the content group's purpose (max 255 characters) |

#### 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 Content Group

**Slug:** `COUPA_CONTENT_GROUPS_UPDATE`

Tool to update an existing content group (business group) in Coupa. Use when you need to modify the name or description of a content group after confirming the group ID exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the business group to update |
| `name` | string | No | The name of the content group. Must be unique. |
| `description` | string | No | A text description of the content group's purpose. Must be unique. |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response format: 'none' (nothing returned), 'limited' (only IDs returned), 'shallow' (all attributes plus IDs of associations) |

#### 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 |

### Add Attachment to Contract

**Slug:** `COUPA_CONTRACTS_ATTACHMENTS_CREATE`

Tool to create an attachment on a contract. Use when attaching files, text, or URLs to contracts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | URL for URL attachments. Required when type='url' |
| `file` | object | No | File to upload. Required when type='file' |
| `text` | string | No | Text content for text attachments. Required when type='text' |
| `type` | string ("file" | "text" | "url") | Yes | Type of the attachment. 'file', 'text', or 'url' |
| `intent` | string | No | Designation indicating the intended audience (e.g., 'Supplier') |
| `linked_to` | string | No | Links attachment to specific features like 'quote_request_attachment' or 'event_terms' |
| `contract_id` | integer | Yes | ID of the contract to attach the file to |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 Contracts

**Slug:** `COUPA_CONTRACTS_INDEX`

Tool to list contracts. Use when you need contract IDs and metadata for subsequent actions, e.g., adding an approver.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ['id','number',{'supplier':['id','name']}]. |
| `offset` | integer | No | Pagination offset for contract list in multiples of 50 (default 0). |
| `filters` | object | No | Attribute filters using Coupa syntax. Example: {'status':'active', 'supplier[name]':'SomeSupplier'}. |
| `return_object` | string ("limited" | "shallow") | No | Response verbosity control: 'limited' returns only IDs; 'shallow' returns one-level associations. |

#### 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 Contract

**Slug:** `COUPA_CONTRACTS_UPDATE`

Tool to update an existing contract in Coupa via PUT /api/contracts/:id. Use when you need to modify contract attributes such as status, dates, supplier, or financial terms. Only include fields that need to be changed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the contract to update. |
| `name` | string | No | Contract name. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name',{'supplier':['id','name']}]. |
| `number` | string | No | Contract number. |
| `status` | string ("published" | "inactive" | "draft") | No | Status of the contract. |
| `payload` | object | No | Additional contract attributes to update directly; keys should use Coupa API hyphenated names. |
| `currency` | object | No | Contract currency code reference, e.g., {'code': 'USD'}. |
| `end-date` | string | No | Expire date of the contract in ISO 8601 format (YYYY-MM-DD). |
| `supplier` | object | No | Supplier information reference, e.g., {'id': 2} or {'name': 'Amazon.com'}. |
| `department` | object | No | Department information reference, e.g., {'id': 4}. |
| `start-date` | string | No | Start date of the contract in ISO 8601 format (YYYY-MM-DD). |
| `description` | string | No | Descriptive notes about the contract. |
| `savings-pct` | string | No | Savings percentage (decimal). |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `payment-term` | object | No | Payment term code on contract, e.g., {'code': 'Net 30'}. |
| `business_role` | string | No | Coupa business role when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `contract-type` | object | No | Contract type reference, e.g., {'id': 1}. |
| `maximum-value` | string | No | Maximum commit amount (decimal 32,4). |
| `minimum-value` | string | No | Minimum commit amount (decimal 32,4). |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `content-groups` | array | No | Business groups associated with the contract, e.g., [{'id': 1}]. |
| `contract-owner` | object | No | Contract owner user reference, e.g., {'id': 5}. |
| `contract-terms` | object | No | Contract terms reference, e.g., {'id': 3}. |
| `execution-date` | string | No | Contract execution date in ISO 8601 format. |
| `published-date` | string | No | Contract published date in ISO 8601 format. |
| `supplier-account` | string | No | Supplier account number. |
| `use-order-windows` | boolean | No | Enable order windows. |
| `legal-agreement-url` | string | No | URL to the legal agreement document. |
| `default-on-unbacked-lines` | boolean | No | Default contract on unbacked lines. |
| `supplier-can-invoice-directly` | boolean | No | Allow supplier to invoice directly. |
| `stop-spend-over-contract-value` | boolean | No | Stop spend when contract value is exceeded. |

#### 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 Contract Template

**Slug:** `COUPA_CONTRACT_TEMPLATE_DESTROY`

Tool to delete a contract template. Use when you need to permanently remove a contract template by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Contract template ID to delete. |

#### 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 |

### Copy Account Type

**Slug:** `COUPA_COPY_ACCOUNT_TYPE`

Tool to copy/clone an existing chart of accounts (account type). Creates a duplicate of the specified account type with all its associated properties.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the account type to copy |

#### 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 Registration

**Slug:** `COUPA_CREATE_A_TAX_REGISTRATION`

Tool to create a supplier tax registration in Coupa. Use when adding tax identification records for suppliers with required country and tax number. Requires supplier information with a primary address to exist before creating tax registration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `local` | boolean | No | Identifies if this is a local tax number designation |
| `active` | boolean | No | Indicates registration status (active/inactive) |
| `number` | string | Yes | Tax identification number - the primary tax ID for the registration |
| `country` | object | Yes | Country object with ID for tax jurisdiction |
| `supplier-information-id` | integer | No | Links to parent supplier information record |
| `supplier-information-address-id` | integer | No | Associates with primary address ID (address must exist with primary designation) |

#### 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 Budget Line

**Slug:** `COUPA_CREATE_BUDGET_LINE`

Tool to create a new budget line in Coupa. Use when you need to create a budget line with description, period, amount, owner, and optional account segment values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `notes` | string | No | Additional notes or comments for the budget line. |
| `owner` | object | Yes | Owner reference with firstname, lastname, and login. |
| `amount` | number | Yes | Budget amount for this line. |
| `period` | object | Yes | Budget period reference with name field. |
| `segment_1` | string | No | First account segment value (e.g., location, department). |
| `segment_2` | string | No | Second account segment value (e.g., cost center, category). |
| `segment_3` | string | No | Third account segment value (e.g., expense type). |
| `description` | string | Yes | Description of the budget line explaining its purpose. |
| `owner-is-approver` | boolean | No | Whether the owner is an approver for this budget line. |

#### 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 Budget Line Adjustment

**Slug:** `COUPA_CREATE_BUDGET_LINE_ADJUSTMENT`

Tool to create a budget line adjustment in Coupa. Use when you need to adjust the budget amount for an existing budget line by creating an adjustment record with the specified amount, currency, and related references.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `currency` | object | Yes | Currency for the adjustment. Must have active status in Coupa. |
| `description` | string | No | Optional description text explaining the reason for the adjustment (max 255 characters). |
| `budget-period` | object | No | Budget period reference for the adjustment. |
| `budget-segment` | object | No | Budget segment reference for the adjustment. |
| `budget_line_id` | integer | Yes | The ID of the budget line to adjust. Must be an existing budget line in Coupa. |
| `adjustment-amount` | number | Yes | The budget line adjustment amount to be applied. Can be positive (increase) or negative (decrease). |
| `chart-of-accounts` | object | No | Chart of accounts reference for the adjustment. |

#### 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 Business Entity

**Slug:** `COUPA_CREATE_BUSINESS_ENTITIES`

Tool to create a business entity in Coupa. Use when creating a legal or organizational business entity with name, type, formation type, and optional address and contact information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Entity name (required, max 100 characters, must be unique) |
| `type` | string ("LegalBusinessEntity" | "OrganizationalBusinessEntity") | No | Business entity type enumeration. |
| `status` | string | No | Current operational status of the entity |
| `display-name` | string | No | Human-readable display name (max 100 characters) |
| `formation-type` | string ("Organization" | "Person") | No | Formation type enumeration. |
| `primary-address` | object | No | Model for primary address in request. |
| `primary-contact` | object | No | Model for primary contact in request. |
| `country-of-origin` | string | No | Country code where the entity was established |

#### 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 Comment on Transactional Object

**Slug:** `COUPA_CREATE_COMMENT_ON_TRANSACTIONAL_OBJECT`

Tool to create a comment on any transactional object. Use when you need to add notes, feedback, or mention users on an existing transactional object like requisitions, purchase orders, invoices, or expense reports.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comments` | string | Yes | The comment text to add to the object. You can include user mentions using @[User:{user_id}] format (e.g., '@[User:2] please review'). |
| `object_id` | integer | Yes | The ID of the object to comment on. |
| `object_type` | string ("requisitions" | "purchase_orders" | "invoices" | "invoice_headers" | "expense_reports" | "contracts" | "receipts" | "requisition_headers" | "order_headers") | Yes | The type of object to comment on (e.g., requisitions, purchase_orders, invoices, invoice_headers, expense_reports, contracts, receipts). |
| `reason-code` | string | No | Optional comment reason code for categorization. |
| `to-supplier` | boolean | No | Optional flag indicating whether the comment should be visible to the supplier. |
| `commentable-type` | string ("RequisitionHeader" | "Requisition" | "OrderHeader" | "InvoiceHeader" | "ExpenseReport" | "ExpenseReportHeader" | "Contract" | "Receipt") | Yes | The type of object being commented on (e.g., RequisitionHeader, OrderHeader, InvoiceHeader). This must match the object_type. |

#### 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 Commodity

**Slug:** `COUPA_CREATE_COMMODITY`

Tool to create a commodity in Coupa. Use when you need to provision a new commodity with a specified name, category, and deductibility level.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Commodity name (required, must be unique, max 255 characters) |
| `active` | boolean | No | Status flag - true makes it available to users, false inactivates it |
| `parent` | object | No | Reference to a parent commodity. |
| `category` | string ("goods" | "services" | "monetary" | "others") | Yes | Commodity category - must be one of: goods, services, monetary, or others |
| `preferred` | string ("Yes" | "No" | "Automatic" | "Always" | "Never") | No | Preferred options for commodities. |
| `subcategory` | string ("raw_materials" | "investment_goods" | "services_exceptions") | No | Subcategory options for commodities. |
| `deductibility` | string ("fully_deductible" | "partially_deductible" | "not_deductible") | Yes | Deductibility level - must be one of: fully_deductible, partially_deductible, or not_deductible |
| `translated-name` | string | No | Localized name variant for the commodity |
| `imported-from-taxonomy` | boolean | No | Indicates if sourced from Coupa's taxonomy |

#### 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 External Purchase Order

**Slug:** `COUPA_CREATE_EXTERNAL_PURCHASE_ORDER`

Tool to create an external purchase order. Use when integrating external POs via Coupa API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | No | Type of order; must be 'ExternalOrderHeader' |
| `currency` | object | No | Currency reference - provide code. |
| `supplier` | object | Yes | Supplier reference for the PO |
| `po-number` | string | Yes | External PO number (max 20 characters) |
| `order-lines` | array | Yes | List of order line items |
| `payment-term` | object | No | Payment term reference - provide the Coupa internal payment term ID. |
| `ship-to-user` | object | No | User reference - provide one of id, login, or email. |
| `shipping-term` | object | No | Shipping term reference - provide the Coupa internal shipping term ID. |
| `supplier-site` | object | No | Supplier site reference - provide the Coupa internal supplier site ID. |
| `classification` | string ("msp" | "supplier" | "vms") | No | Classification of order: msp, supplier, or vms |
| `payment-method` | string | No | Payment method |
| `ship-to-address` | object | No | Address reference - provide id. |
| `ship-to-attention` | string | No | Ship-to attention text |
| `transmission-emails` | string | No | Comma-separated transmission emails |
| `transmission-method-override` | string ("supplier_default" | "email" | "do_not_transmit") | No | Override transmission method: supplier_default, email, or do_not_transmit |

#### 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 FX Rate

**Slug:** `COUPA_CREATE_FXRATES`

Tool to create a new exchange rate (FX rate) between two currencies in Coupa. Use when you need to create one-way currency conversion rates. Note that this creates only a one-way rate; to enable bidirectional conversion, create a separate rate for the reverse direction.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rate` | number | Yes | Exchange rate value for converting from source to target currency |
| `rate-date` | string | Yes | Effective date for this exchange rate in format YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS |
| `to-currency` | object | Yes | Target currency reference with code |
| `from-currency` | object | Yes | Source currency reference with code |

#### 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 Integration Error

**Slug:** `COUPA_CREATE_INTEGRATION_ERRORS_AGAINST_AN_INTEGRATION`

Tool to create integration errors against an integration run in Coupa. Use when you need to log and track errors that occurred during integration processes or data imports.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | Yes | Status of the integration error (e.g., error, warning) |
| `responses` | array | Yes | List of IntegrationRecordResponse objects containing error codes and messages |
| `document-id` | integer | Yes | ID of the document associated with the error |
| `external-id` | string | Yes | External identifier for the error record |
| `integration` | object | Yes | Reference to the integration resource (requires integration id) |
| `document-type` | string | Yes | Type of document (e.g., User, OrderHeader, InvoiceHeader, RequisitionHeader) |
| `creation-method` | string | Yes | Method used to create the error (e.g., api, ui) |
| `document-status` | string | Yes | Status of the document (e.g., failed, pending) |
| `document-revision` | integer | Yes | Revision number of the document |
| `contact-alert-type` | string | Yes | Type of contact alert (e.g., error, warning) |
| `integration-run-id` | integer | Yes | ID of the integration run that generated this error |
| `integration-filename` | string | Yes | Filename of the integration file |

#### 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 Integration Run

**Slug:** `COUPA_CREATE_INTEGRATION_RUN`

Tool to create an integration run. Use when you need to initialize a new run for an integration before processing records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `start-time` | string | No | ISO 8601 timestamp when the run starts. Leave empty to default to current time. |
| `total-records` | integer | No | Total number of records intended for this run. |
| `integration_id` | integer | No | Coupa internal ID of the integration. Provide either integration_id or integration_code. |
| `integration_code` | string | No | Unique integration code. Provide either integration_code or integration_id. |
| `records-processed` | integer | No | Number of records processed so far in this run. |

#### 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 Invoice Against PO

**Slug:** `COUPA_CREATE_INVOICE_AGAINST_APO_AMOUNT_BASED`

Tool to create an invoice against a purchase order. Use when you need to invoice for goods or services received against an existing PO by linking invoice lines to PO lines.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comments` | string | No | Administrative notes (max 255 characters) |
| `currency` | object | Yes | Currency of the invoice transaction |
| `supplier` | object | Yes | Supplier reference for the invoice |
| `tax-amount` | string | No | Header-level tax charge (decimal string) |
| `invoice-date` | string | Yes | Invoice date in YYYY-MM-DD format (DATE ONLY, without timestamp) |
| `payment-term` | object | No | Payment term reference. Provide id or code. |
| `internal-note` | string | No | Internal confidential notes |
| `invoice-lines` | array | Yes | List of invoice line items linked to PO lines |
| `invoice-number` | string | Yes | Invoice identification code (max 40 characters) |
| `discount-amount` | string | No | Invoice discount reduction (decimal string) |
| `handling-amount` | string | No | Processing surcharge (decimal string) |
| `shipping-amount` | string | No | Transportation surcharge (decimal string) |
| `line-level-taxation` | boolean | No | Whether tax is computed per line (true) or at header level (false) |

#### 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 Items Supplier Items

**Slug:** `COUPA_CREATE_ITEMS_SUPPLIER_ITEMS`

Tool to create a supplier item associated with an existing item in Coupa. Use when adding a new supplier source for an item with pricing and availability details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The item ID to which the supplier item will be associated |
| `item` | object | Yes | Item reference object with 'id' or 'name', e.g., {'id': 21} |
| `price` | string | Yes | Price for the supplier item as a decimal string |
| `contract` | object | No | Related contract reference, e.g., {'id': 10} or {'name': 'Contract Name'} |
| `currency` | object | Yes | Currency object reference with 'code' or 'id', e.g., {'code': 'USD'} or {'id': 1} |
| `supplier` | object | Yes | Supplier reference object with 'id' or 'number', e.g., {'id': 13} or {'number': 'SUP-001'} |
| `lead-time` | integer | No | Lead time in days |
| `preferred` | boolean | Yes | Whether this is a preferred supplier for the item |
| `purchasable` | boolean | No | Whether the item is purchasable |
| `unspsc-code` | string | No | UNSPSC classification code |
| `availability` | string ("in_stock" | "out_of_stock" | "backordered") | No | Stock status: in_stock, out_of_stock, or backordered |
| `manufacturer` | string | No | Manufacturer name |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response verbosity: 'none' (nothing returned), 'limited' (only IDs returned), 'shallow' (returns all attributes/fields and IDs of one-deep associations). Default returns full object. |
| `order-increment` | string | No | Order increment value as a decimal string |
| `availability-date` | string | No | Date of availability change in ISO 8601 format (YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `supplier-part-num` | string | Yes | Supplier's part number |
| `supplier-aux-part-num` | string | No | Auxiliary part number for the supplier |
| `minimum-order-quantity` | string | No | Minimum order quantity as a decimal string |

#### 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 Lookup Value

**Slug:** `COUPA_CREATE_LOOKUP_VALUE`

Tool to create a new lookup value in Coupa. Use when you need to add a new value to an existing lookup for categorization and standardization purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The lookup value identifier |
| `active` | boolean | No | Boolean status indicating if the lookup value is active |
| `lookup` | object | Yes | Parent lookup reference (provide id or name) |
| `description` | string | No | Detailed description of the lookup value |
| `external-ref-num` | string | No | External reference number |
| `external-ref-code` | string | No | External reference code |

#### 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 New Custom Object Instance

**Slug:** `COUPA_CREATE_NEW_CUSTOM_OBJECT_INSTANCE`

Tool to create a new custom object instance in Coupa. Use when you need to add a new data record for a Custom Object with specific custom field values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `custom-fields` | object | Yes | Custom fields for the object instance. Field names and types depend on your Custom Object definition. All custom fields must be nested within this object. |
| `customObjectId` | integer | Yes | The identifier of the Custom Object for which to create an instance (path parameter) |

#### 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 Payment Reconciliation Lines

**Slug:** `COUPA_CREATE_PAYMENT_RECONCILIATION_LINES_FOR_A_PAY_ORDER`

Tool to create payment reconciliation lines for a pay order in Coupa. Use when you need to record payment transactions against payable orders or invoices.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | Payment note (alternate field). Optional. |
| `notes` | string | No | Payment notes or comments. Optional. |
| `amount` | string | No | Amount value (decimal string). Optional. |
| `category` | string | Yes | Category classification for the reconciliation line. Required. Use 'payment' for standard payment reconciliation. |
| `payable-id` | integer | Yes | Unique identifier of the payable (e.g., order or invoice ID). |
| `amount-paid` | string | Yes | Amount paid for this reconciliation line (decimal string). |
| `payable-type` | string | Yes | Type of payable (e.g., 'OrderHeader', 'InvoiceHeader'). |
| `payment-date` | string | Yes | Payment date in ISO 8601 format (YYYY-MM-DDTHH:MM:SS±HH:MM). |
| `adjustment-date` | string | No | Adjustment date in ISO 8601 format (YYYY-MM-DDTHH:MM:SS±HH:MM). Optional. |

#### 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 Payment Term

**Slug:** `COUPA_CREATE_PAYMENT_TERM`

Tool to create a payment term in Coupa. Use when you need to define new payment conditions including discount and net payment calculations for invoices and purchase orders.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique identifier for the payment term |
| `type` | string ("DaysAfterNetPaymentTerm" | "SpecificDayPaymentTerm" | "DaysToBaseEomPaymentTerm" | "BaseEomToDaysPaymentTerm") | Yes | Payment term type. DaysAfterNetPaymentTerm for standard net days (e.g., Net 30), SpecificDayPaymentTerm for specific calendar dates, DaysToBaseEomPaymentTerm for days until end of month, BaseEomToDaysPaymentTerm for days from end of month. |
| `active` | boolean | No | Status flag; true activates the term making it available to users, false inactivates it |
| `description` | string | No | Description of the payment term |
| `net-due-day` | integer | No | Determines the document's payment due date (1-31). Used with SpecificDayPaymentTerm type. |
| `discount-rate` | number | No | Discount rate percentage (as decimal, e.g., 0.02 for 2% discount) |
| `net-due-month` | integer | No | Determines the document's payment due date along with net-due-day (0-6 months offset) |
| `net-cutoff-day` | integer | No | Documents before this day are eligible for net payment in current month, otherwise fall into next month (1-31) |
| `discount-due-day` | integer | No | Used to calculate the document's discount due date (1-31) |
| `discount-due-month` | integer | No | Used to calculate the document's discount due date along with discount-due-day (0-6 months offset) |
| `discount-cutoff-day` | integer | No | Documents before this day are eligible for discount, otherwise fall into next month (1-31) |
| `days-for-net-payment` | integer | Yes | Number of days for net payment calculation. For DaysAfterNetPaymentTerm, this is the number of days until payment is due (e.g., 30 for Net 30). |
| `days-for-discount-payment` | integer | Yes | Number of days for discount payment calculation. Set to 0 if no discount is offered. |

#### 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 Project

**Slug:** `COUPA_CREATE_PROJECT`

Tool to create a Coupa project. Use when you need to create a new project with specified name, start date, and end date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Project name (required, max 255 characters) |
| `open` | boolean | No | Whether the project is open for everyone to join or owner must invite others |
| `users` | array | No | List of users associated with the project |
| `active` | boolean | No | Whether the project is active |
| `status` | string | No | Project status (e.g., draft, active, completed) |
| `end-date` | string | Yes | Project end date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `commodity` | object | No | Reference to a Coupa commodity. |
| `start-date` | string | Yes | Project start date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `description` | string | No | Project description |
| `mention-name` | string | No | Mention name for the project |
| `content-groups` | array | No | List of content groups for the project |
| `completion-percentage` | integer | No | Completion percentage (0-100) |
| `external-reference-number` | string | No | External reference number to sync with 3rd party Project ID |
| `additional-planned-savings` | string | No | Additional planned savings amount |
| `allow-users-to-view-member` | integer | No | Member visibility control (0 or 1) |
| `display-date-range-warning` | boolean | No | Provide warning if task dates fall outside project dates |
| `additional-realized-savings` | string | No | Additional realized savings amount |
| `show-sourcing-rollup-fields` | boolean | No | Show sourcing rollup fields if enabled |
| `show-contracts-rollup-fields` | boolean | No | Show contracts rollup fields if enabled |
| `show-suppliers-rollup-fields` | boolean | No | Show suppliers rollup fields if enabled |
| `additional-negotiated-savings` | string | No | Additional negotiated savings amount |

#### 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 Project Membership

**Slug:** `COUPA_CREATE_PROJECT_MEMBERSHIP`

Tool to create a project membership in Coupa. Use when you need to add a user to a project and define their role as owner or participant.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `owner` | boolean | Yes | Whether the user should be a project owner/administrator. Owners have elevated privileges to manage the project |
| `user-id` | integer | Yes | The ID of the user to add as a project member |
| `project-id` | integer | Yes | The ID of the project to add the member to |
| `participant` | boolean | Yes | Whether the user should be a participant in the project. Participants can collaborate on project activities |

#### 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 Quote Request Task

**Slug:** `COUPA_CREATE_QUOTE_REQUESTS_TASKS`

Tool to create a task for a quote request. Use when you need to add tasks to track work or milestones for a specific quote request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The quote request ID to create a task for |
| `title` | string | Yes | The task title |
| `status` | string | No | Task status |
| `due-date` | string | No | Task due date in ISO format |
| `duration` | integer | No | Task duration in days |
| `percentage` | integer | Yes | Task completion percentage (0-100) |
| `start-date` | string | No | Task start date in ISO format |
| `description` | string | No | Task description |
| `quote-task-attributes` | object | No | Attributes specific to sourcing event tasks. |

#### 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 Req Assignment to User

**Slug:** `COUPA_CREATE_REQ_ASSIGNMENT_TO_USER`

Tool to create a requisition assignment to a user. Use when you need to assign a user to a requisition for approval or buyer role.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `assignee-id` | integer | Yes | The ID of the user to assign to the requisition. |
| `assignee-type` | string | No | The type of assignee. Must be 'User'. |
| `requisition-id` | integer | Yes | The ID of the requisition to assign the user to. |

#### 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 Requisition Line Estimated Tax Line

**Slug:** `COUPA_CREATE_REQUISITION_LINES_ESTIMATED_TAX_LINES`

Tool to create an estimated tax line on a requisition line. Use when adding tax calculations to requisition line items. Requires the Chart of Account to have estimated taxes enabled.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rate` | number | No | Tax rate as a percentage (e.g., 8.5 for 8.5%) |
| `amount` | number | No | Tax amount to be applied |
| `account` | object | No | Reference to a Chart of Accounts entry. |
| `tax-code` | object | No | Reference to a tax code. |
| `description` | string | No | Description of the tax line |
| `req_line_id` | integer | Yes | ID of the requisition line to add the estimated tax line to |
| `taxable-amount` | number | No | Base amount on which tax is calculated |

#### 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 Requisition Lines - Multiple Estimated Tax Lines

**Slug:** `COUPA_CREATE_REQUISITION_LINES_MULTIPLE_ESTIMATED_TAX_LINES`

Tool to update a requisition line with multiple estimated tax lines. Use when you need to add or update estimated taxes on a requisition line. Note that the Chart of Account must have estimated taxes enabled for this operation to succeed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `total` | number | No | Total amount for the line item. |
| `payload` | object | No | Additional requisition line attributes to update. Keys should use Coupa API hyphenated names. |
| `quantity` | number | No | Quantity for the line item. |
| `unit-price` | number | No | Unit price for the line item. |
| `description` | string | No | Line item description. |
| `req_line_id` | integer | Yes | The requisition line ID to update. |
| `estimated-tax-lines` | array | No | List of estimated tax lines to add to the requisition line. |

#### 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 Risk Aware Feed for Supplier

**Slug:** `COUPA_CREATE_RISKAWAREFEED_FOR_A_SUPPLIER`

Tool to create a Risk Aware feed for a supplier to load GRC (governance, risk, and compliance) data. Use when loading risk metrics for a specific supplier. Note: Each supplier can only have one Risk Aware feed, and the API cannot be used when the supplier status is 'evaluating'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier` | object | Yes | Supplier reference. Provide exactly one of: id, name, or number to identify the supplier. |
| `number-field-01` | number | No | First custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-02` | number | No | Second custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-03` | number | No | Third custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-04` | number | No | Fourth custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-05` | number | No | Fifth custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-06` | number | No | Sixth custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-07` | number | No | Seventh custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-08` | number | No | Eighth custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-09` | number | No | Ninth custom numeric field for GRC data (decimal with up to 4 decimal places) |
| `number-field-10` | number | No | Tenth custom numeric field for GRC data (decimal with up to 4 decimal places) |

#### 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 Shell SIM Record

**Slug:** `COUPA_CREATE_SIM_RECORD_AGAINST_EXISTING_SUPPLIER`

Tool to create a shell SIM (Supplier Information Management) record against an existing supplier before importing legacy suppliers. Use when you need to create a pre-approved SIM record with exported flag set to true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `status` | string | No | Status of the SIM record. For shell records, this should be 'approved'. |
| `exported` | boolean | No | Exported flag. Set to true to mark the shell SIM record as exported. |
| `supplier` | object | Yes | Reference to the existing supplier by 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 SIM Site Using SIM ID in POST URL

**Slug:** `COUPA_CREATE_SIM_SITE_USING_SIM_ID_IN_POST_URL`

Tool to create a supplier information site under a specific supplier information record. Use when you need to create a new supplier site with detailed configuration including code, name, PO methods, and cXML settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique supplier site code identifier (max 20 characters) |
| `name` | string | Yes | Supplier information site name (max 255 characters) |
| `active` | boolean | No | Whether the site is active |
| `contacts` | array | No | Array of contact references for the site |
| `cxml-url` | string | No | PO destination URL for cXML transmission (max 255 characters) |
| `po-email` | string | No | Email destination for email-based POs (max 255 characters) |
| `addresses` | array | No | Array of address references for the site |
| `po-method` | string | No | Purchase order transmission method (max 255 characters) |
| `buyer-hold` | boolean | No | Hold all POs for buyer review |
| `cxml-domain` | string | No | From domain identifier for cXML (max 255 characters) |
| `cxml-secret` | string | No | Shared authentication secret for cXML (max 255 characters) |
| `cxml-identity` | string | No | From identity value for cXML (max 255 characters) |
| `cxml-protocol` | string | No | Transmission protocol specification for cXML (max 255 characters) |
| `content-groups` | array | No | Array of content group references to assign to the site |
| `default-locale` | string | No | Default locale for supplier communications (max 255 characters) |
| `cxml-ssl-version` | string | No | SSL version for cXML communication (max 255 characters) |
| `po-change-method` | string | No | PO change transmission method (max 255 characters) |
| `cxml-http-username` | string | No | Username for supplier's online store (max 255 characters) |
| `disable-cert-verify` | boolean | No | Ignore SSL certificate mismatch errors |
| `cxml-supplier-domain` | string | No | To supplier domain for cXML (max 255 characters) |
| `allow-change-requests` | integer | No | Enable supplier change requests (integer value) |
| `cxml-supplier-identity` | string | No | To supplier identity for cXML (max 255 characters) |
| `supplier_information_id` | integer | Yes | ID of the supplier information record under which the site will be created |

#### 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 SIM Site using SIM ID in Payload

**Slug:** `COUPA_CREATE_SIM_SITE_USING_SIMID_IN_THE_PAYLOAD`

Tool to create a supplier information site using SIM ID in the payload. Use when you need to add a new site location for an existing supplier information record in Coupa's SIM module.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique supplier site code identifier (max 20 characters) |
| `name` | string | Yes | Supplier information site name/designation (max 255 characters) |
| `active` | boolean | No | Site operational status (true=active, false=inactive) |
| `contacts` | array | No | Supplier information site contacts collection |
| `cxml-url` | string | No | Destination for PO transmission via cXML |
| `po-email` | string | No | Email recipient when transmission method is 'email' |
| `addresses` | array | No | Supplier information site addresses collection |
| `po-method` | string | No | Purchase order transmission method (e.g., 'email', 'cxml') |
| `buyer-hold` | boolean | No | When true, hold all POs for buyer review |
| `cxml-domain` | string | No | cXML 'From' domain identifier |
| `cxml-secret` | string | No | Shared authentication credential for cXML |
| `payment-term` | object | No | Reference to a payment term. |
| `cxml-identity` | string | No | cXML 'From' identity value |
| `cxml-protocol` | string | No | Transmission protocol specification |
| `shipping-term` | object | No | Reference to a shipping term. |
| `content-groups` | array | No | Content grouping collection for visibility control |
| `default-locale` | string | No | Default locale for sending emails to this supplier site |
| `cxml-ssl-version` | string | No | SSL version for cXML communication |
| `po-change-method` | string | No | PO change transmission method |
| `cxml-http-username` | string | No | Online store access credential |
| `disable-cert-verify` | boolean | No | SSL certificate validation override setting |
| `cxml-supplier-domain` | string | No | cXML 'To' supplier domain |
| `allow-change-requests` | integer | No | Allows suppliers to create change requests from CSP |
| `cxml-supplier-identity` | string | No | cXML 'To' supplier identity |
| `supplier-information-id` | integer | No | ID of the parent supplier information record to link this site to |

#### 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 Supplier Item

**Slug:** `COUPA_CREATE_SUPPLIER_ITEM`

Tool to create a new supplier item against an existing catalog item. Use when linking a supplier's part number to a catalog item with pricing and contract information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item` | object | Yes | Catalog item reference with id. |
| `price` | number | Yes | Price of the supplier item (decimal value). |
| `contract` | object | No | Contract reference for the supplier item. |
| `currency` | object | Yes | Currency information with either id or code. |
| `supplier` | object | Yes | Supplier reference with either id or number. |
| `lead-time` | integer | No | Lead time in days. |
| `preferred` | boolean | Yes | Flag to mark this supplier item as preferred. |
| `unspsc-code` | string | No | UNSPSC classification code. |
| `manufacturer` | string | No | Manufacturer name. |
| `order-increment` | number | No | Order increment value. |
| `supplier-part-num` | string | Yes | Supplier's part number for the item. |
| `supplier-aux-part-num` | string | No | Auxiliary part number from the supplier. |
| `minimum-order-quantity` | number | No | Minimum order quantity. |

#### 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 Supplier Remit-To Address

**Slug:** `COUPA_CREATE_SUPPLIER_REMIT_TO_ADDRESS`

Tool to create a remit-to address for a supplier. Use when you need to add a new remit-to address to an existing supplier in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | Yes | City name (max 255 characters). |
| `name` | string | Yes | Name/description of the remit address (max 255 characters). |
| `state` | string | Yes | State/province abbreviation (max 255 characters). |
| `active` | boolean | Yes | Status flag (true for active, false for inactive). |
| `country` | object | Yes | Country information containing country name. |
| `street1` | string | Yes | Primary street address line (max 255 characters). |
| `street2` | string | No | Secondary street address line (max 255 characters). |
| `street3` | string | No | Third street address line (max 255 characters). |
| `street4` | string | No | Fourth street address line (max 255 characters). |
| `tax-number` | string | No | Tax identification number (max 255 characters). |
| `postal-code` | string | Yes | Postal/zip code (max 255 characters). |
| `supplier_id` | integer | Yes | Coupa unique identifier of the supplier. |
| `remit-to-code` | string | Yes | Unique code identifying the remit address (max 255 characters). |
| `return_object` | string | No | Controls response format. Values: 'none' (no response body), 'limited' (only IDs), 'shallow' (full object with limited nested data). |
| `company-registration-number` | string | No | Company registration number (max 255 characters). |

#### 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 Supplier Site

**Slug:** `COUPA_CREATE_SUPPLIER_SITE`

Tool to create a supplier site for an existing supplier. Use when you need to establish a new location or site associated with a supplier in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Supplier site code identifier; must be unique within the supplier context |
| `name` | string | Yes | Supplier site name |
| `active` | boolean | No | Activation status; defaults to true if not provided |
| `contacts` | array | No | Supplier site contact information |
| `cxml-url` | string | No | Required if po-method = cxml |
| `po-email` | string | No | Email address for purchase orders. Required if po-method is 'email'. |
| `addresses` | array | No | Supplier site addresses |
| `po-method` | string ("cxml" | "xml" | "email" | "prompt" | "mark_as_sent" | "buy_online") | Yes | Purchase order transmission method. Required field. |
| `buyer-hold` | boolean | No | Holds all POs for buyer review |
| `cxml-domain` | string | No | Required if po-method = cxml |
| `cxml-secret` | string | No | Required if po-method = cxml |
| `supplier_id` | integer | Yes | Coupa unique identifier of the supplier to add the site to |
| `payment-term` | object | No | Reference to an existing Coupa Payment Term. |
| `account-types` | array | No | Associated account types |
| `cxml-identity` | string | No | Required if po-method = cxml |
| `cxml-protocol` | string | No | Required if po-method = cxml |
| `shipping-term` | object | No | Reference to an existing Coupa Shipping Term. |
| `content-groups` | array | No | Controls visibility; defaults to Everyone if omitted |
| `default-locale` | string | No | Locale for supplier emails |
| `payment-method` | string | No | Default payment method |
| `cxml-ssl-version` | string | No | SSL version: TLSv1_2, TLSv1_1, or TLSv1 |
| `po-change-method` | string ("cxml" | "xml" | "email" | "prompt" | "mark_as_sent" | "buy_online") | No | Purchase order change transmission method |
| `cxml-http-username` | string | No | cXML HTTP username |
| `disable-cert-verify` | boolean | No | Ignores SSL certificate mismatches |
| `cxml-supplier-domain` | string | No | Required if po-method = cxml |
| `allow-change-requests` | boolean | No | Enables suppliers to create change requests via CSP |
| `cxml-supplier-identity` | string | No | Required if po-method = cxml |
| `allow-order-confirmation-item-substitutions` | integer | No | Permits item substitutions on order confirmations |

#### 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 Supplier with Contacts and Addresses

**Slug:** `COUPA_CREATE_SUPPLIER_WITH_CONTACTS_ADDRESSES`

Tool to create a new supplier with primary contact and address in one API call. Use when creating a supplier with contact and address information simultaneously.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Supplier name (required, unique, max 100 characters). |
| `number` | string | No | Supplier identifier/code (optional, unique). |
| `status` | string | No | Supplier status. Defaults to 'draft' if not specified. Options: active, draft, etc. |
| `tax-id` | string | No | Tax identification number. |
| `po-email` | string | No | PO email address (required if po-method=email). |
| `po-method` | string | No | Purchase order transmission method. Options: cxml, xml, email, prompt, mark_as_sent, buy_online. |
| `account-number` | string | No | Account number with this supplier. |
| `primary-address` | object | No | Model for primary address details. |
| `primary-contact` | object | No | Model for primary contact details. |
| `po-change-method` | string | No | Purchase order change transmission method. Options: cxml, xml, email, prompt, mark_as_sent, buy_online. |
| `invoice-matching-level` | string | No | Invoice matching level. Options: 2-way, 3-way, 3-way-direct, none. |

#### 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 Task

**Slug:** `COUPA_CREATE_TASK`

Tool to create a new task in Coupa. Use when you need to create a task with title and assignment. Note: Either owner-id OR (linkable-id + linkable-type) must be provided along with title.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Task name (required, max 255 characters) |
| `status` | string | No | Task status (e.g., 'open', 'in_progress', 'completed') |
| `due-date` | string | No | Due date in format YYYY-MM-DDTHH:MM:SS+HH:MMZ (e.g., 2024-12-31T23:59:59+00:00Z) |
| `duration` | number | No | Task duration (non-negative float) |
| `owner-id` | integer | No | User ID assigned to task. Either owner-id OR (linkable-id + linkable-type) must be provided. |
| `percentage` | integer | No | Completion percentage (0-100) |
| `start-date` | string | No | Start date in format YYYY-MM-DDTHH:MM:SS+HH:MMZ (e.g., 2024-01-01T00:00:00+00:00Z) |
| `description` | string | No | Detailed task description |
| `linkable-id` | integer | No | ID of associated UserGroup or Project. Required with linkable-type if owner-id is not provided. |
| `linkable-type` | string | No | Link type: 'UserGroup' or 'Project'. Required with linkable-id if owner-id is not provided. |

#### 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 Task Against Project

**Slug:** `COUPA_CREATE_TASK_AGAINST_PROJECT`

Tool to create a task against an existing project in Coupa. Use when you need to add a new task to a specific project by project ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Task title (required, max 255 characters) |
| `status` | string | No | Task status (e.g., pending, in_progress, completed) |
| `due-date` | string | No | Task due date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `duration` | number | No | Task duration in days |
| `owner-id` | integer | No | ID of the user who owns this task |
| `percentage` | integer | No | Task completion percentage (0-100). Defaults to 0 if not specified. |
| `project_id` | integer | Yes | ID of the project to create the task under |
| `start-date` | string | No | Task start date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `description` | string | No | Task description providing details about what needs to be done |

#### 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 User Address

**Slug:** `COUPA_CREATE_USER_ADDRESS`

Tool to create a personal address for a specified Coupa user. Use when you need to add a new address to a user's profile in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | Yes | City name. |
| `name` | string | Yes | Address 'Nickname' or label to identify this address. |
| `state` | string | No | State abbreviation. |
| `active` | boolean | No | Set to true to activate address or false to deactivate. Inactive addresses are not available to users. |
| `country` | object | Yes | Country information. The country must already exist in the Coupa system. |
| `street1` | string | Yes | Address Line 1 (primary street address). |
| `street2` | string | No | Address Line 2 (apartment, suite, unit, etc.). |
| `street3` | string | No | Address Line 3 (additional address information). |
| `street4` | string | No | Address Line 4 (additional address information). |
| `user_id` | integer | Yes | The ID of the user for whom the address is being created. |
| `attention` | string | No | Address Default Attention Line / contact person name. |
| `vat-number` | string | No | VAT number associated with this address. |
| `postal-code` | string | Yes | Postal/ZIP code. |
| `vat-country` | object | No | VAT country information for the address. |
| `location-code` | string | No | Location code for the address. |
| `state-iso-code` | string | No | ISO Code for State in format CC-SSS (e.g., 'US-CA' for California). |
| `external-src-ref` | string | No | External Source Reference identifier. |
| `local-tax-number` | string | No | Local tax number for the address. |
| `external-src-name` | string | No | External Source Name. |
| `business-group-name` | string | No | Content Group Name for Address. |

#### 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 User Group

**Slug:** `COUPA_CREATE_USER_GROUP`

Tool to create a new user group in Coupa. Use when you need to provision a new user group for organizing users and managing approvals.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The user group identifier (max 255 chars) |
| `open` | boolean | No | Controls if membership is self-service (true) or invitation-only (false) |
| `type` | string | No | Designates 'Project' or leave blank for standard groups |
| `owner` | object | No | User reference for individual responsible for the group. Should contain user ID, e.g., {'id': 123}. |
| `users` | array | No | Initial member assignments - list of user references with IDs, e.g., [{'id': 123}, {'id': 456}]. |
| `active` | boolean | Yes | Status indicator for the group - true for active, false for inactive |
| `can-approve` | boolean | No | Whether the group functions as an approver entity |
| `description` | string | No | Details about the group's purpose |
| `mention-name` | string | No | Handle for group mentions (max 255 chars) |

#### 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 User Group Memberships

**Slug:** `COUPA_CREATE_USER_GROUP_MEMBERSHIPS`

Tool to create user group memberships in Coupa. Use when you need to add a user to a specific group or project with defined owner and participant permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `owner` | boolean | Yes | Indicates whether the user is admin or owner of the group |
| `user-id` | integer | Yes | User ID to add to the group |
| `participant` | boolean | Yes | Indicates whether the user is a participant in the group |
| `user-group-id` | integer | Yes | User group ID or Project ID |
| `user-group-type` | string | Yes | Type of the group: 'User Group' or 'Project' |

#### 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 User Group Task

**Slug:** `COUPA_CREATE_USER_GROUPS_TASKS`

Tool to create a task within a user group. Use when you need to assign a new task to a specific user group with a title and optional details like due date, description, and owner.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | User group ID to create the task for |
| `title` | string | Yes | Task title (required, max 255 characters) |
| `status` | string | No | Task status (e.g., pending, in-progress, completed) |
| `due-date` | string | No | Due date in ISO format (YYYY-MM-DDTHH:MM:SS+HH:MMZ) |
| `duration` | number | No | Duration value in days |
| `owner-id` | integer | No | User ID for task assignment |
| `percentage` | integer | No | Completion percentage (0 to 100) |
| `start-date` | string | No | Start date in ISO format (YYYY-MM-DDTHH:MM:SS+HH:MMZ) |
| `description` | string | No | Task description providing additional details |
| `quote-task-attributes` | object | No | Extra attributes for sourcing event tasks |

#### 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 Currencies

**Slug:** `COUPA_CURRENCIES_INDEX`

Tool to list currencies from Coupa. Use when you need to retrieve or filter configured currencies before processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa currency ID |
| `code` | string | No | Filter by currency code; supports operators like contains, starts_with, ends_with. |
| `name` | string | No | Filter by currency name; supports standard operators. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","code","name"]. |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50. |
| `symbol` | string | No | Filter by currency symbol; supports standard operators. |
| `decimals` | integer | No | Filter by number of decimal places; supports comparison operators (gt, lt, etc.). |
| `enabled_flag` | boolean | No | Filter by enabled status (true or false). |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns attributes with one-level associations. |

#### 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 Currency by ID

**Slug:** `COUPA_CURRENCIES_SHOW`

Tool to retrieve a specific currency by ID. Use when you need detailed information about a currency.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the currency to retrieve |

#### 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 Data File Sources

**Slug:** `COUPA_DATA_FILE_SOURCES_INDEX`

Tool to list data file sources from Coupa. Use when you need to retrieve file processing records that track data imports and exports, including upload status and error details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Query specific DataFileSource by internal ID |
| `type` | string | No | Filter by file type (e.g., BackgroundCsvFileLoad, DataFileSource) |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","status","created_at"] |
| `offset` | integer | No | Pagination offset; Coupa returns maximum 50 records per call |
| `status` | string | No | Filter by processing status (e.g., Done, Failed, Retrying, Loading, Pending) |
| `source_for` | string | No | Filter by object type (e.g., LookupValue, Supplier, Invoice, User) |
| `created_at_gt` | string | No | Filter records created after specified timestamp (ISO 8601 format, e.g., '2024-01-01T00:00:00Z') |
| `created_at_lt` | string | No | Filter records created before specified timestamp (ISO 8601 format, e.g., '2024-12-31T23:59:59Z') |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level associations |
| `file_file_name` | string | No | Search for data file sources for a specific file name |

#### 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 Default Receiving Locations

**Slug:** `COUPA_DEFAULT_RECEIVING_LOCATIONS_INDEX`

Tool to list default receiving locations from Coupa. Use when you need to retrieve receiving location details linked to items and warehouses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa default receiving location ID |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","item-id","warehouse-id"] |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50 |
| `item-id` | integer | No | Filter by item ID associated with the receiving location |
| `warehouse-id` | integer | No | Filter by warehouse ID associated with the receiving location |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association IDs |
| `warehouse-location-id` | integer | No | Filter by warehouse location 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 |

### Delete Tax Registration

**Slug:** `COUPA_DELETE_A_TAX_REGISTRATION`

Tool to delete a tax registration. Use when you need to permanently remove a supplier information tax registration by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Tax registration ID to delete. |

#### 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 Project Membership

**Slug:** `COUPA_DELETE_PROJECT_MEMBERSHIPS`

Tool to delete a project membership. Use when you need to remove a user's membership from a project by the membership ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the project membership to delete. |

#### 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 Project Task

**Slug:** `COUPA_DELETE_PROJECTS_TASKS`

Tool to delete a task from a specific project. Use when you need to permanently remove a task by ID from a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the task to be deleted |
| `project_id` | integer | Yes | The unique identifier of the project containing the task |

#### 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 Quote Request Task

**Slug:** `COUPA_DELETE_QUOTE_REQUEST_TASK`

Tool to delete a task from a quote request. Use when you need to permanently remove a task from a specific quote request by their IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the task to delete from the quote request. |
| `quote_request_id` | integer | Yes | The ID of the quote request containing the task. |

#### 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 Requisition Line

**Slug:** `COUPA_DELETE_REQUISITION_LINE`

Tool to delete a requisition line. Use when you need to permanently remove a requisition line by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `req_line_id` | integer | Yes | Coupa requisition line ID to delete. |

#### 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 Requisition Line Estimated Tax Line

**Slug:** `COUPA_DELETE_REQUISITION_LINES_ESTIMATED_TAX_LINES`

Tool to delete an estimated tax line from a requisition line. Use when you need to remove a specific estimated tax line by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `req_line_id` | integer | Yes | Coupa requisition line ID. |
| `est_tax_line_id` | integer | Yes | Coupa estimated tax line ID to delete. |

#### 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 Specific Contract Attachment

**Slug:** `COUPA_DELETE_SPECIFIC_CONTRACT_ATTACHMENT`

Tool to delete a specific attachment from a contract. Use when you need to permanently remove an attachment by its ID from a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contract_id` | integer | Yes | The unique identifier for the contract |
| `attachment_id` | integer | Yes | The unique identifier for the attachment to be removed |

#### 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 Purchase Order Attachment

**Slug:** `COUPA_DELETE_SPECIFIC_PO_ATTACHMENT`

Tool to delete a specific attachment from a purchase order. Use when you need to remove an attachment by providing both the purchase order ID and attachment ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `attachment_id` | integer | Yes | The attachment ID to delete |
| `purchase_order_id` | integer | Yes | The ID of the purchase order from which to delete the attachment |

#### 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 Requisition Attachment

**Slug:** `COUPA_DELETE_SPECIFIC_REQUISITION_ATTACHMENT`

Tool to delete a specific attachment from a requisition. Use when removing an attachment from a requisition by attachment ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `attachment_id` | integer | Yes | ID of the attachment to delete |
| `requisition_id` | integer | Yes | ID of the requisition containing the attachment |

#### 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 Supplier Information Site

**Slug:** `COUPA_DELETE_SUPPLIER_INFORMATION_SUPPLIER_INFORMATION_SITE`

Tool to delete a supplier information site from a specific supplier information record. Use when you need to remove a supplier information site by its ID and parent supplier information ID. Requires SIM API permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the supplier information site to delete |
| `supplier_information_id` | integer | Yes | The ID of the parent supplier information record |

#### 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 Department

**Slug:** `COUPA_DEPARTMENTS_CREATE`

Tool to create a department in Coupa. Use when you need to provision a new department with a specified name and active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the department to create |
| `active` | boolean | Yes | Whether the department is active (true) or inactive (false) |

#### 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 Department by ID

**Slug:** `COUPA_DEPARTMENTS_SHOW`

Tool to retrieve a single department by ID. Use when you need detailed department information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier for the department |
| `fields` | string | No | JSON array specifying which fields to return in response; e.g., ['id','name','active']. |
| `return_object` | string | No | Response verbosity: 'limited' (IDs only) or 'shallow' (all attributes plus IDs of associations). |

#### 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 Department

**Slug:** `COUPA_DEPARTMENTS_UPDATE`

Tool to update an existing department in Coupa. Use when you need to modify department attributes such as name or active status after confirming the department ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the department to update. |
| `name` | string | No | Department name. |
| `active` | boolean | No | Control whether the Department is Active or Inactive. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','active']. |
| `payload` | object | No | Additional department properties to update; use Coupa API hyphenated names as keys. |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |

#### 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 |

### Dispute Invoice

**Slug:** `COUPA_DISPUTE_AN_INVOICE`

Tool to dispute an invoice that is in pending approval or pending receipt status. Use when you need to notify the supplier that a problem exists with the invoice.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to dispute. The invoice must be in pending_approval or pending_receipt status. |
| `comment` | string | No | Supplier-facing comment explaining the dispute reason. |
| `return_object` | string | No | Controls response format: 'none' for no response body, 'limited' for IDs only, 'shallow' for all attributes (default). |
| `dispute_reason_code` | string | Yes | The dispute reason code. Must correspond to an active dispute reason code in your Coupa instance (e.g., INCORRECT-QUANTITY, PRICING-ERROR). |

#### 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 Easy Form Response

**Slug:** `COUPA_EASY_FORM_RESPONSES_DESTROY`

Tool to delete an easy form response. Use when you need to permanently remove an easy form response by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Easy form response ID to delete. |

#### 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 Exchange Rates

**Slug:** `COUPA_EXCHANGE_RATES_INDEX`

Tool to retrieve exchange rates from Coupa for currencies used to pay for goods. Use when you need to query currency conversion rates with optional filters for date ranges, specific currencies, or rate values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa exchange rate ID |
| `rate` | string | No | Filter by exchange rate value. Supports operators like [gt], [lt], [gte], [lte], [eq] in the format: rate[lt]=1 |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","rate","rate-date"]. |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50. |
| `rate-date` | string | No | Filter by effective rate date. Supports operators like [gt], [lt], [gte], [lte] in the format: rate-date[gt]=2010-11-11T00:00:00 |
| `created_at` | string | No | Filter by creation date. Supports operators like [gt], [lt], [gte], [lte] in the format: created_at[gt]=2010-11-15T00:00:00 |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns attributes with one-level associations; 'none' for minimal response. |
| `to_currency_code` | string | No | Filter by target currency code (e.g., EUR). Cannot be used simultaneously with from-currency[code]. |
| `from_currency_code` | string | No | Filter by source currency code (e.g., USD). Cannot be used simultaneously with to-currency[code]. |

#### 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 Expense Reports

**Slug:** `COUPA_EXPENSE_REPORTS_INDEX`

Tool to list expense reports. Use when you need a paginated list of reports with optional filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | array | No | JSON array of fields to return; e.g., ['id','title','status']. |
| `offset` | integer | No | Pagination offset; Coupa returns up to 50 records per call; use in multiples of 50. |
| `status` | string | No | Filter by expense report status; operators supported, e.g., status[not_eq]=closed. |
| `exported` | boolean | No | Filter by export status; true for exported reports, false for unexported. |
| `return_object` | boolean | No | Control response verbosity; set to false or true (server may ignore unexpected values). |

#### 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 |

### Export Payables Invoice

**Slug:** `COUPA_EXPORT_PAYABLES_INVOICE`

Tool to mark a payables invoice as exported. Use when you need to track that an invoice has been exported to an external system by updating its last-exported-at timestamp.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the payables invoice to mark as exported |

#### 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 |

### Export Payables Invoices

**Slug:** `COUPA_EXPORT_PAYABLES_INVOICES`

Tool to mark a payable invoice as exported. Use after successfully retrieving and processing an invoice in an external system to update the last-exported-at timestamp.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the invoice payable to be marked as exported. |

#### 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 Financial Counterparties

**Slug:** `COUPA_FINANCIAL_COUNTERPARTIES_INDEX`

Tool to list financial counterparties from Coupa. Use when you need to retrieve banks and financial institutions used for payment and treasury operations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa financial counterparty ID |
| `name` | string | No | Filter by counterparty name; supports standard operators. |
| `active` | boolean | No | Filter by active status: true for active counterparties, false for inactive |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","abbreviation","name"] |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50 |
| `bank_code` | string | No | Filter by bank code identifier |
| `swift-code` | string | No | Filter by SWIFT/BIC code identifier |
| `branch_code` | string | No | Filter by branch code identifier |
| `abbreviation` | string | No | Filter by counterparty abbreviation; supports Coupa query operators like contains, starts_with, ends_with. |
| `created_at_gt` | string | No | Filter records created after this ISO timestamp (YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `created_at_lt` | string | No | Filter records created before this ISO timestamp (YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `payment-usage` | string | No | Filter by payment operations usage designation |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association IDs |
| `updated_at_gt` | string | No | Filter records updated after this ISO timestamp (YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `updated_at_lt` | string | No | Filter records updated before this ISO timestamp (YYYY-MM-DDTHH:MM:SS+HH:MM) |
| `treasury-usage` | string | No | Filter by treasury operations usage designation |
| `external_identification_lei` | string | No | Filter by Legal Entity Identifier (LEI) |

#### 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 Account Statements by Creation Date

**Slug:** `COUPA_GET_ACCOUNT_STATEMENTS_BY_CREATION_DATE`

Tool to retrieve Coupa Pay account statements filtered by creation date. Use when you need to get statements created within a specific date range for reconciliation or reporting purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of statement records to return. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","statement-date"]. |
| `offset` | integer | No | Pagination offset for statement list. |
| `return_object` | string | No | Response verbosity control: 'limited' returns only IDs; 'shallow' returns one-level associations. |
| `created_at_gt_or_eq` | string | No | Filter by creation date greater than or equal to (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ). |
| `created_at_lt_or_eq` | string | No | Filter by creation date less than or equal to (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ). |

#### 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 All Active Pick Lists

**Slug:** `COUPA_GET_ALL_ACTIVE_PICK_LISTS`

Tool to retrieve active pick lists (fulfillment reservations) from Coupa. Use when you need to query fulfillment reservation data with optional filters and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Specific pick list ID to retrieve |
| `limit` | integer | No | Number of records per request (max 50, default 50) |
| `fields` | string | No | JSON array of specific fields to return, e.g., ["id","status","qty-ordered"] |
| `offset` | integer | No | Starting position for pagination |
| `status` | string | No | Filter by status: 'active' or 'closed' |
| `exported` | boolean | No | Filter by export status |
| `return_object` | string | No | Controls response payload size: 'shallow' for IDs and natural keys only, 'limited' for IDs only, or omit for full response |

#### 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 All Attachments for a Contract

**Slug:** `COUPA_GET_ALL_ATTACHMENTS_FOR_A_CONTRACT`

Tool to retrieve all attachments for a specific contract. Use when you need to list attachments linked to a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of attachments to return (max 50, default 50) |
| `offset` | integer | No | Pagination offset for retrieving attachments (standard Coupa pagination) |
| `contract_id` | integer | Yes | The unique identifier of the contract |

#### 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 All Attachments for a Invoice

**Slug:** `COUPA_GET_ALL_ATTACHMENTS_FOR_A_INVOICE`

Tool to retrieve all attachments for a specific invoice. Use when you need to list or access files, URLs, or text attachments associated with an invoice.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Controls the number of records returned per request (default is 50) |
| `fields` | string | No | Selective field specification using JSON structure, e.g., '["id","file-url","type"]' |
| `offset` | integer | No | Specifies the starting position for results |
| `invoice_id` | integer | Yes | The unique identifier of the invoice |
| `return_object` | string ("limited" | "shallow") | No | Controls response format. 'limited' returns only IDs, 'shallow' returns all attributes and IDs of one-deep associations |

#### 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 All Attachments for a Purchase Order

**Slug:** `COUPA_GET_ALL_ATTACHMENTS_FOR_A_PURCHASEORDER`

Tool to retrieve all attachments for a specific purchase order. Use when you need to list attachments linked to a purchase order.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of attachments to return (max 50, default 50) |
| `offset` | integer | No | Pagination offset for retrieving attachments (standard Coupa pagination) |
| `purchase_order_id` | integer | Yes | The unique identifier of the purchase order |

#### 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 All Attachments for a Requisition

**Slug:** `COUPA_GET_ALL_ATTACHMENTS_FOR_A_REQUISITION`

Tool to retrieve all attachments for a specific requisition. Use when you need to list or access files, URLs, or text attachments associated with a requisition.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Controls the number of records returned per request (default is 50) |
| `fields` | string | No | Selective field specification using JSON structure, e.g., '["id","file-url","type"]' |
| `offset` | integer | No | Specifies the starting position for results |
| `req_id` | integer | Yes | The unique identifier of the requisition |
| `return_object` | string ("limited" | "shallow") | No | Controls response format. 'limited' returns only IDs, 'shallow' returns all attributes and IDs of one-deep associations |

#### 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 All Attachments on a CoupaPay Charge

**Slug:** `COUPA_GET_ALL_ATTACHMENTS_ON_A_COUPAPAY_CHARGE`

Tool to retrieve all attachments for a CoupaPay charge. Use when you need to list or access files, URLs, or text attachments associated with a charge.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Controls the number of records returned per request (default is 50) |
| `offset` | integer | No | Specifies the starting position for results |
| `charge_id` | integer | Yes | The unique identifier of the CoupaPay charge |

#### 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 All Charges Linked to Statement

**Slug:** `COUPA_GET_ALL_CHARGES_LINKED_TO_SPECIFIC_STATEMENT`

Tool to retrieve charges from Coupa, with optional filtering by statement ID. Use when you need to get all charges linked to a specific statement or query charges with various filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of charge records to return. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','total','charge-date']. |
| `offset` | integer | No | Pagination offset for charge list. |
| `exported` | boolean | No | Filter charges by export status. Set to false to get unexported charges. |
| `statement-id` | integer | No | Filter charges by specific statement ID. Returns all charges linked to this statement. |
| `return_object` | string | No | Response verbosity control: 'limited' returns only IDs; 'shallow' returns one-level associations. |
| `holding_account_id_blank` | boolean | No | Filter by holding account presence. Set to false to get charges with holding accounts. |
| `virtual_card_document_type` | string | No | Filter by document type. Valid values: OrderHeader, CoupaPay::Payment, CoupaPay::PaymentAccount, ExpensePreapproval, Travel::TripBooking. |
| `virtual_card_document_type_blank` | boolean | No | Filter for unbacked charges (charges without associated documents). Set to true to get charges with no document type. |

#### 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 All Funds Transfers by Batch ID

**Slug:** `COUPA_GET_ALL_FUNDS_TRANSFERS_SPECIFIC_PAYMENT_BATCH`

Tool to retrieve all funds transfers (payments) in a specific payment batch by payment batch ID. Use when you need to fetch payment details for a specific batch from Coupa Pay.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ['id','payment-batch-id','status','exchange_rate']. |
| `status` | string | No | Filter by payment status. Valid values: draft, approved, payment_initiated, payment_in_progress, completed_successfully, completed_with_errors. |
| `exported` | boolean | No | Filter by export status; e.g., exported=false for unexported payments. |
| `status_in` | string | No | Filter by multiple statuses; e.g., status[in]=completed_successfully,completed_with_errors. |
| `updated_at_gt` | string | No | Filter payments updated after this timestamp (ISO 8601 format: YYYY-MM-DDTHH:MM:SS+HH:MMZ). |
| `payment_batch_id` | integer | Yes | Payment batch identifier to filter payments (required). |

#### 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 All SIM Sites Against a SIM Record

**Slug:** `COUPA_GET_ALL_SIM_SITES_AGAINST_A_SIM_RECORD`

Tool to retrieve all supplier information sites associated with a specific supplier information record. Use when you need to list all sites linked to a particular SIM record, including nested address and contact information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return per request. Default is 50, maximum is 50. |
| `active` | boolean | No | Filter by activation status (true/false). |
| `fields` | string | No | JSON array of specific fields to return in response (e.g., '["id","code","name"]'). |
| `offset` | integer | No | Starting position for result set. Used for pagination (e.g., offset=50 retrieves records 51-100). |
| `order_by` | string | No | Field name to sort results by. |
| `supplier_information_id` | integer | Yes | The ID of the supplier information record to retrieve sites for |

#### 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 All Supplier Sites for Supplier

**Slug:** `COUPA_GET_ALL_SUPPLIER_SITES_AGAINST_A_SUPPLIER_RECORD`

Tool to retrieve all supplier sites associated with a specific supplier record. Use when you need to get site data including codes, names, PO methods, contact information, and addresses for a particular supplier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limits the number of records returned (default is 50 if not specified) |
| `fields` | string | No | JSON array of specific fields to return in response for performance optimization; e.g., ["id","name","code"] |
| `offset` | integer | No | Skips a specified number of records for pagination (e.g., offset=50) |
| `supplier_id` | integer | Yes | The unique identifier of the parent supplier whose sites are to be retrieved |

#### 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 All Tasks Linked to All Projects

**Slug:** `COUPA_GET_ALL_TASKS_LINKED_TO_ALL_PROJECTS`

Tool to retrieve all tasks linked to all projects from Coupa. Use when you need to fetch task records with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','title','status']. |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50. |
| `status` | string | No | Filter by task status; e.g., 'pending', 'completed'. |
| `owner-id` | integer | No | Filter tasks by owner user ID. |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get All Tasks Linked to a Specific Project

**Slug:** `COUPA_GET_ALL_TASKS_LINKED_TO_A_SPECIFIC_PROJECT`

Tool to retrieve all tasks linked to a specific project in Coupa. Use when you need to fetch task records for a particular project with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','title','status']. |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50. |
| `status` | string | No | Filter by task status; e.g., 'pending', 'completed'. |
| `project_id` | integer | Yes | The unique identifier of the project whose tasks you want to retrieve |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get API Documentation Modules

**Slug:** `COUPA_GET_API_DOCS`

Tool to retrieve the list of API documentation modules available in Coupa. Use when you need to discover available API documentation categories including Core Platform, Purchasing, Expense Reporting, Sourcing, Inventory, and other Coupa services.

#### 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 Approval by ID

**Slug:** `COUPA_GET_APPROVAL_BY_ID`

Tool to retrieve details for a specific approval record by ID. Use when you need complete approval information including status, approver details, and associated approvable object.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique Coupa identifier for the approval record |
| `fields` | string | No | Allows selective field inclusion in response using JSON format. Example: '["id","status","approval-date",{"approver":["id","email"]}]'. This is the recommended alternative to return_object for better performance. |
| `return_object` | string | No | Controls response payload size. 'limited' returns only IDs of objects, 'shallow' returns all attributes/fields of the object and only the IDs and natural keys of one-deep associations |

#### 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 ASN Headers

**Slug:** `COUPA_GET_AS_NS`

Tool to retrieve ASN (Advanced Ship Notice) headers from Coupa. Use when you need to fetch shipment notification records with optional filters for status, dates, supplier, or ASN number.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return per call. Default: 50 (API enforced maximum). |
| `fields` | string | No | JSON array of fields to return in response; e.g., ["id","asn-number",{"supplier":["id","name"]}]. |
| `offset` | integer | No | Pagination offset to skip records and retrieve subsequent batches. |
| `status` | string | No | Filter by transaction status (e.g., draft, pending receipt, received, error, cancelled). Supports operators: [in], [not_in], [contains], [starts_with], [ends_with], [blank], [not_eq]. |
| `exported` | boolean | No | Filter results by export status. |
| `asn-number` | string | No | Filter by ASN number. Supports text operators. |
| `created_at_gt` | string | No | Filter ASNs created after this timestamp (ISO 8601 format). |
| `created_at_lt` | string | No | Filter ASNs created before this timestamp (ISO 8601 format). |
| `return_object` | string | No | Response verbosity control: 'none' (nothing returned), 'limited' (IDs only), 'shallow' (all attributes + IDs of associations). Note: Being deprecated in favor of 'fields' parameter. |
| `supplier_name` | string | No | Filter by supplier name. |
| `updated_at_gt` | string | No | Filter ASNs updated after this timestamp (ISO 8601 format). |
| `updated_at_lt` | string | No | Filter ASNs updated before this timestamp (ISO 8601 format). |
| `created_at_gt_or_eq` | string | No | Filter ASNs created on or after this timestamp (ISO 8601 format). |
| `created_at_lt_or_eq` | string | No | Filter ASNs created on or before this timestamp (ISO 8601 format). |
| `updated_at_gt_or_eq` | string | No | Filter ASNs updated on or after this timestamp (ISO 8601 format). |
| `updated_at_lt_or_eq` | string | No | Filter ASNs updated on or before this timestamp (ISO 8601 format). |

#### 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 Budget Line

**Slug:** `COUPA_GET_BUDGET_LINE`

Tool to retrieve a specific budget line by ID. Use when you need detailed information about a budget line including amount, remaining budget, and account segments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the budget line to retrieve |

#### 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 Budget Line Adjustments

**Slug:** `COUPA_GET_BUDGET_LINE_ADJUSTMENTS_FOR_BUDGET_LINE`

Tool to retrieve budget line adjustments for a specific budget line. Use when you need to get all adjustments associated with a budget line ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of records to return per page. Default is 50, maximum is 50 per call |
| `fields` | string | No | JSON array specifying which fields to include in response (e.g., ["id","amount","description"]) |
| `offset` | integer | No | Number of records to skip for pagination (e.g., offset=50 for records 51-100) |
| `order_by` | string | No | Field name to sort results by |
| `return_object` | string | No | Level of detail in response. Values: 'shallow', 'limited', 'none' |
| `budget_line_id` | integer | Yes | The unique identifier of the budget line for which to retrieve adjustments |

#### 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 Budget Line Adjustment

**Slug:** `COUPA_GET_BUDGET_LINES_BUDGET_LINE_ADJUSTMENTS`

Tool to retrieve a specific budget line adjustment by ID. Use when you need detailed information about a budget line adjustment including amount, currency, description, and related references.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `budget_line_id` | integer | Yes | ID of the budget line containing the adjustment |
| `budget_line_adjustment_id` | integer | Yes | ID of the budget line adjustment to retrieve |

#### 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 Business Entities

**Slug:** `COUPA_GET_BUSINESS_ENTITIES`

Tool to retrieve business entities from Coupa. Use when you need to query legal or organizational business entities with their addresses, contacts, relationships, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by business entity ID. |
| `name` | string | No | Exact-match filter by business entity name. |
| `type` | string | No | Filter by business entity type (LegalBusinessEntity or OrganizationalBusinessEntity). |
| `limit` | integer | No | Maximum number of records to return per API call. Default: 50. |
| `fields` | string | No | JSON-formatted array of specific fields to return in response; e.g., ["id","name","type"]. |
| `offset` | integer | No | Number of records to skip for pagination. |
| `status` | string | No | Filter by business entity status. |
| `order_by` | string | No | Field name to sort results by. |
| `created_at_gt` | string | No | Return business entities created after this ISO-8601 timestamp. |
| `created_at_lt` | string | No | Return business entities created before this ISO-8601 timestamp. |
| `name_contains` | string | No | Filter business entities whose name contains the given text. |
| `updated_at_gt` | string | No | Return business entities updated after this ISO-8601 timestamp. |
| `updated_at_lt` | string | No | Return business entities updated before this ISO-8601 timestamp. |

#### 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 Business Entity by ID

**Slug:** `COUPA_GET_BUSINESS_ENTITIES_BY_ID`

Tool to retrieve a specific business entity by ID. Use when you need detailed information about a legal or organizational business entity.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The Coupa internal ID of the business entity to retrieve |

#### 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 COAs for Supplier Site

**Slug:** `COUPA_GET_COAS_ASSIGNED_TO_A_SPECIFIC_SUPPLIER_SITE`

Tool to retrieve Chart of Accounts (COAs) assigned to a specific supplier site. Use when you need to view which content groups (COAs) are associated with a supplier site for visibility and access control purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the supplier site to retrieve. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','content-groups']. |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 Comments for Expense Report

**Slug:** `COUPA_GET_COMMENTS_FOR_A_SPECIFIC_EXPENSEREPORT`

Tool to retrieve comments for a specific expense report. Use when you need to view all comments associated with an expense report.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expense_report_id` | integer | Yes | The unique identifier for the expense report whose comments you want to retrieve. |

#### 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 Commodity

**Slug:** `COUPA_GET_COMMODITY`

Tool to retrieve a specific commodity by ID. Use when you need detailed commodity information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the commodity to retrieve |

#### 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 Content Groups of Supplier Site

**Slug:** `COUPA_GET_CONTENT_GROUP_OF_A_SUPPLIER_SITE`

Tool to retrieve business groups (content groups) of a supplier site. Use when you need to check which content groups are assigned to a specific supplier site for visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier_site_id` | integer | Yes | ID of the supplier site whose business groups you want to retrieve |

#### 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 Contract By ID

**Slug:** `COUPA_GET_CONTRACT_BY_ID`

Tool to retrieve a single contract by ID. Use when you need detailed contract information including supplier, terms, dates, and status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the contract to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','status',{'supplier':['id','name']}]. |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns one-level associations. |

#### 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 Contracts Legal Documents

**Slug:** `COUPA_GET_CONTRACTS_LEGAL_DOCUMENTS`

Tool to retrieve all legal documents for a contract. Use when you need to list legal documents associated with a specific contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The contract ID to retrieve legal documents for |

#### 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 CoupaPay Payment by ID

**Slug:** `COUPA_GET_COUPAPAY_EXPENSE_PAYMENT_BY_ID`

Tool to retrieve a specific CoupaPay payment record by ID. Use when you need detailed payment information including payment amounts, payee details, payment batch, and associated invoice information for integration and reconciliation purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique payment identifier |
| `fields` | string | No | Specify specific fields to include in response body (JSON format array) |
| `return_object` | string | No | Response verbosity: 'shallow' returns limited JSON/XML response instead of entire schema |

#### 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 Custom Object Instances

**Slug:** `COUPA_GET_CUSTOM_OBJECT_INSTANCES`

Tool to retrieve all data records for a specified Custom Object in Coupa. Use when you need to fetch custom object instance data with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Restricts the number of records returned per API call. Default is 50 records maximum. |
| `fields` | string | No | JSON array specifying which fields to include in the response. Example: ["id","created-at","updated-at"]. Supports nested objects like {"created_by":["id"]}. |
| `offset` | integer | No | Pagination parameter to retrieve subsequent record batches. Example: offset=50 retrieves records 51-100. |
| `order_by` | string | No | Specifies the field to sort results by. |
| `return_object` | string | No | Controls response structure. Values: 'limited' (only IDs) or 'shallow' (all attributes plus IDs of associations). Deprecated in favor of 'fields' parameter. |
| `custom_object_id` | integer | Yes | The unique identifier for the Custom Object definition (required path parameter). |
| `updated_at_gt_or_eq` | string | No | Filter instances updated at or after this timestamp (ISO 8601 format). |
| `updated_at_lt_or_eq` | string | No | Filter instances updated at or before this timestamp (ISO 8601 format). |

#### 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 Custom Object Related Form Responses

**Slug:** `COUPA_GET_CUSTOM_OBJECT_RELATED_FORM_RESPONSES`

Tool to retrieve easy form responses for custom objects and SIM (Supplier Information Management). Use when you need to get form responses with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (default: 50). |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","status",{"subject":["id","supplier_id"]}]. |
| `offset` | integer | No | Number of records to skip for pagination (default: 0). |
| `status` | string | No | Filter by status (e.g., 'pending', 'submitted', 'approved'). |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Supports operators: [contains], [starts_with], [ends_with], [gt], [lt], [gt_or_eq], [lt_or_eq], [not_eq], [in], [not_in], [blank]. Example: {'created_at[gt_or_eq]':'2024-01-01','status[not_eq]':'draft'} |
| `order_by` | string | No | Field name to sort results by (e.g., 'id', 'created_at'). |
| `easy_form_id` | integer | No | Filter by easy form ID. |
| `return_object` | string | No | Response verbosity: 'shallow' (all attributes + IDs), 'limited' (only IDs), 'none' (no response body). |

#### 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 Cycle Counts

**Slug:** `COUPA_GET_CYCLE_COUNTS`

Tool to retrieve cycle counts from Coupa. Use when you need to query cycle count records for inventory management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (default: 50, max: 50). |
| `fields` | string | No | JSON array of specific fields to return; e.g., ["id","status","created-at"] |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50. |
| `return_object` | string | No | Controls response payload: 'limited' (IDs only), 'shallow' (all attributes + IDs of associations). |

#### 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 Delegations

**Slug:** `COUPA_GET_DELEGATIONS`

Tool to retrieve delegations from Coupa. Use when you need to view user delegation configurations including approval, receiving, and review delegations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50) |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `created_at_gt_or_eq` | string | No | Filter delegations created at or after this timestamp (format: YYYY-MM-DDTHH:MM:SS+HH:MMZ) |
| `updated_at_gt_or_eq` | string | No | Filter delegations updated at or after this timestamp (format: YYYY-MM-DDTHH:MM:SS+HH:MMZ) |

#### 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 Department by Name

**Slug:** `COUPA_GET_DEPARTMENT_BY_NAME`

Tool to retrieve department records by filtering with name or other parameters. Use when you need to find departments by name, ID, or active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Filter by department ID |
| `name` | string | No | Filter departments by exact name match |
| `limit` | integer | No | Maximum number of records to return |
| `active` | boolean | No | Filter by active status: true for active departments, false for inactive |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","active"] |
| `offset` | integer | No | Pagination offset; skip specified number of records |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns all fields with IDs of associations |

#### 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 Exchange Rate By ID

**Slug:** `COUPA_GET_EXCHANGE_RATE_BY_ID`

Tool to retrieve a specific exchange rate record by ID. Use when you need detailed exchange rate information including currency conversion rates, effective dates, and audit metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's unique identifier for the exchange rate |

#### 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 External Payables by Source

**Slug:** `COUPA_GET_EXTERNAL_PAYABLE_BY_SOURCE`

Tool to retrieve external payable records from Coupa by source system. Use when you need to query external payables that originate from source systems outside of Coupa (e.g., SAP, Oracle, NetSuite). Returns payable details including amounts, dates, status, and source system information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return in response; e.g., ["id","source-name","source-reference","document-number"]. |
| `offset` | integer | No | Pagination offset for retrieving records beyond the first 50 (default: 0). |
| `status` | string | No | Filter by payable status. Values: 'active', 'voided'. Supports operators: [not_eq], [in], [not_in]. |
| `order-by` | string | No | Sort results by specified field (e.g., 'document-date', 'due-date'). |
| `source-name` | string | No | Filter payables by source system name (e.g., 'SAP', 'Oracle'). Supports operators: exact match, [contains], [starts_with], [ends_with]. |
| `document-type` | string | No | Filter by document type (e.g., 'Invoice', 'CreditMemo', 'DebitMemo'). |
| `return_object` | string | No | Response verbosity control: 'none', 'limited', or 'shallow'. Controls response depth. |
| `document-number` | string | No | Filter by document number from source system. |
| `source-reference` | string | No | Filter by unique reference number from source system. Supports operators: exact match, [contains], [starts_with], [ends_with]. |
| `due_date_gt_or_eq` | string | No | Filter payables with due date greater than or equal to this timestamp (ISO 8601 format). |
| `due_date_lt_or_eq` | string | No | Filter payables with due date less than or equal to this timestamp (ISO 8601 format). |
| `document_date_gt_or_eq` | string | No | Filter payables with document date greater than or equal to this timestamp (ISO 8601 format). |
| `document_date_lt_or_eq` | string | No | Filter payables with document date less than or equal to this timestamp (ISO 8601 format). |

#### 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 Favorite Accounts

**Slug:** `COUPA_GET_FAVORITE_ACCOUNTS`

Tool to retrieve favorite accounts from Coupa. Use when you need to get the list of accounts marked as favorites by the user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa account ID |
| `code` | string | No | Filter by account code; supports Coupa query operators |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","code","name"] |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Integration History Records

**Slug:** `COUPA_GET_INTEGRATION_HISTORY_RECORDS`

Tool to retrieve integration history records from Coupa. Use when you need to monitor integration transactions, check status of API calls, or troubleshoot integration issues.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','document-id','status','created-at']. |
| `offset` | integer | No | Number of records to skip for pagination. |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Example: {'status':'success','created-at[gt]':'2023-01-01T00:00:00Z','document-type':'OrderHeader'} |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Integration Run

**Slug:** `COUPA_GET_INTEGRATION_RUN`

Tool to retrieve a specific integration run by ID. Use when you need detailed information about an integration run including status, timestamps, record counts, and errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's unique identifier for the integration run |

#### 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 Inventory Adjustments

**Slug:** `COUPA_GET_INVENTORY_ADJUSTMENTS`

Tool to retrieve inventory adjustments from Coupa. Use when you need to query inventory adjustment records with optional filtering, pagination, and field selection.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | No | Filter by transaction type. |
| `limit` | integer | No | Maximum number of records to return (default: 50, max: 50). |
| `fields` | string | No | JSON array of specific fields to return; e.g., ["id","quantity","price"] |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50 (offset multiples of 50). |
| `status` | string | No | Filter by transaction status. |
| `item_id` | integer | No | Filter by item ID. |
| `exported` | boolean | No | Filter by export status (true/false). |
| `created-at` | string | No | Filter by creation date (ISO 8601 format). Supports operators: [gt], [lt], [gt_or_eq], [lt_or_eq]. |
| `updated-at` | string | No | Filter by update date (ISO 8601 format). Supports operators: [gt], [lt], [gt_or_eq], [lt_or_eq]. |
| `account_code` | string | No | Filter by account code. |
| `return_object` | string | No | Controls response payload: 'limited' (IDs only), 'shallow' (all attributes + IDs of associations), 'none' (nothing returned). |
| `to_warehouse_id` | integer | No | Filter by destination warehouse ID. |
| `transaction-date` | string | No | Filter by transaction date (ISO 8601 format). Supports operators: [gt], [lt], [gt_or_eq], [lt_or_eq]. |
| `from_warehouse_id` | integer | No | Filter by source warehouse 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 |

### Get Invoice Comment by ID

**Slug:** `COUPA_GET_INVOICES_COMMENTS`

Tool to retrieve a specific comment on an invoice by comment ID. Use when you need to get detailed information about a particular invoice comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment_id` | integer | Yes | The unique identifier for the specific comment to retrieve. |
| `invoice_id` | integer | Yes | The unique identifier for the invoice. |

#### 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 Item

**Slug:** `COUPA_GET_ITEM`

Tool to retrieve a single catalog item by ID. Use when you need detailed item information after knowing the item ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the item to retrieve |
| `return_object` | string ("shallow" | "limited" | "none") | No | Enum for return_object query parameter values. |

#### 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 Item Image

**Slug:** `COUPA_GET_ITEM_IMAGE`

Tool to download the image for a catalog item. Use when you need to retrieve the image associated with a specific item ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the item to retrieve the image for. |

#### 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 Items Supplier Items

**Slug:** `COUPA_GET_ITEMS_SUPPLIER_ITEMS`

Tool to retrieve supplier items for a specific catalog item. Use when you need supplier-specific pricing, contract details, and purchasing information for an item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the item to retrieve supplier items for |
| `limit` | integer | No | Maximum number of records to return (default: 50, max: 50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','price',{'supplier':['name']}]. |
| `offset` | integer | No | Skip specified number of records for pagination (default: 0). |
| `order_by` | string | No | Field name to sort results by. |
| `direction` | string ("asc" | "desc") | No | Sort direction, 'asc' for ascending or 'desc' for descending. |

#### 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 Items Supplier Items by ID

**Slug:** `COUPA_GET_ITEMS_SUPPLIER_ITEMS2`

Tool to retrieve a specific supplier item associated with a catalog item. Use when you need detailed information about a particular supplier item for an item, including pricing, availability, and supplier details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (default: 50, max: 50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','price',{'supplier':['name']}]. |
| `offset` | integer | No | Skip specified number of records for pagination (default: 0). |
| `item_id` | integer | Yes | The ID of the item |
| `order_by` | string | No | Field name to sort results by. |
| `direction` | string ("asc" | "desc") | No | Sort direction, 'asc' for ascending or 'desc' for descending. |
| `supplier_item_id` | integer | Yes | The ID of the supplier item associated with the item |

#### 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 Lookup Value by ID

**Slug:** `COUPA_GET_LOOKUP_VALUE_BY_ID`

Tool to retrieve a specific lookup value by ID. Use when you need detailed information about a lookup value used for categorization and standardization in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier for the lookup value |
| `fields` | string | No | JSON array of fields to return in response body; e.g., ["id","name","active"] |
| `return_object` | string | No | Controls response payload size: 'limited' returns only IDs, 'shallow' returns all attributes and IDs of one-deep associations |

#### 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 Matching Allocation for Invoice Line

**Slug:** `COUPA_GET_MATCHING_ALLOCATION_FOR_AN_INVOICE_LINE`

Tool to retrieve matching allocation records that link invoice lines to purchase orders, ASNs, and inventory transactions. Use when you need to reconcile invoices with purchase orders or track allocation history for specific invoice lines.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of desired response fields; e.g., ["id","amount","quantity","invoice_line_id"]. |
| `offset` | integer | No | Pagination offset for retrieving records beyond initial set (default 0, returns 50 records per call). |
| `return_object` | string ("none" | "limited" | "shallow") | No | Controls response payload size: 'none' for minimal data, 'limited' returns IDs only, 'shallow' returns full attributes with association IDs. |
| `invoice_line_id` | integer | No | Filter by specific invoice line ID to get matching allocations for that invoice line. |
| `invoice_header_id_in` | string | No | Filter by comma-separated list of invoice header IDs to get matching allocations for invoice lines belonging to those headers. |

#### 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 Order Pad Lines

**Slug:** `COUPA_GET_ORDER_PADS_ORDER_PAD_LINES`

Tool to retrieve order pad lines for a specific order pad. Use when you need to fetch the list of items (lines) associated with an order pad.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the order pad to retrieve lines for |

#### 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 Payable Invoice By ID

**Slug:** `COUPA_GET_PAYABLE_INVOICE_BY_ID`

Tool to retrieve a single payable invoice by ID. Use when you need detailed payable invoice information including amounts, currency, status, dates, allocations, and reconciliation lines.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the payable invoice to retrieve |

#### 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 Payable Invoices

**Slug:** `COUPA_GET_PAYABLE_INVOICES`

Tool to retrieve payable invoices from Coupa. Use when you need to query invoice payables with optional filters for status, dates, document information, and pagination support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Filter by specific payable ID; supports operators [gt], [lt], [gt_or_eq], [lt_or_eq], [in]. |
| `id_gt` | integer | No | Filter payables with ID greater than this value. |
| `id_lt` | integer | No | Filter payables with ID less than this value. |
| `limit` | integer | No | Maximum number of records to return per request (default: 50, max: 50). |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","status","payable-amount"] or with nested: ["id","status",{"currency":["id","code"]}]. |
| `offset` | integer | No | Number of records to skip for pagination. |
| `status` | string | No | Filter by payable status; supports operators like [in], [not_in], [eq], [not_eq]. Example: 'pending' or use status_in for multiple values. |
| `status_in` | string | No | Filter by multiple statuses (comma-separated); e.g., 'pending,approved'. |
| `currency_id` | integer | No | Filter by currency ID. |
| `document-id` | string | No | Filter by associated document ID. |
| `created_at_gt` | string | No | Filter payables created after this timestamp (ISO 8601 format). |
| `created_at_lt` | string | No | Filter payables created before this timestamp (ISO 8601 format). |
| `document-type` | string | No | Filter by document type (e.g., 'invoice'). |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns attributes with first-level IDs. |
| `updated_at_gt` | string | No | Filter payables updated after this timestamp (ISO 8601 format). |
| `updated_at_lt` | string | No | Filter payables updated before this timestamp (ISO 8601 format). |
| `maturity_date_gt` | string | No | Filter payables with maturity date (payment due date) after this timestamp (ISO 8601 format). |
| `maturity_date_lt` | string | No | Filter payables with maturity date (payment due date) before this timestamp (ISO 8601 format). |

#### 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 Pay Invoices - Fields Query Param

**Slug:** `COUPA_GET_PAY_INVOICES_FIELDS_QUERY_PARAM`

Tool to retrieve Coupa Pay invoices with optional field filtering. Use when you need to fetch invoice data from Coupa Pay with control over which fields are returned.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of invoices to return for pagination. |
| `fields` | string | No | Comma-separated list of fields to return; e.g., "id,status" or "id,status,invoice_number". |
| `offset` | integer | No | Pagination offset for invoice list. |

#### 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 Pay Orders Pending Document Approval

**Slug:** `COUPA_GET_PAY_ORDERS_IN_STATUS_PENDING_DOCUMENT_APPROVAL`

Tool to get pay orders with status pending_document_approval. Use when you need to retrieve orders awaiting document approval in the payables system.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ['id','status',{'reconciliation-lines':['id']}]. |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50 (offset multiples of 50). |
| `exported` | boolean | No | Filter by export status; e.g., exported=false to fetch unexported orders. |
| `return_object` | string ("limited" | "shallow") | No | Response verbosity control: 'limited' returns only IDs; 'shallow' returns one-level associations. |

#### 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 PO Confirmation by ID

**Slug:** `COUPA_GET_PO_CONFIRMATION_BY_ID`

Tool to retrieve a specific order header confirmation by ID. Use when you need details about a purchase order confirmation record.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's internal ID for the order header confirmation |
| `fields` | array | No | JSON array specifying which fields to include in response. Format: ['id', 'status', {'order-line-confirmations': ['id', 'line-num']}]. Allows selective field inclusion to reduce payload size. |
| `return_object` | string ("limited" | "shallow") | No | Controls response detail level. Values: 'limited' (returns only IDs), 'shallow' (returns all attributes of main object and only IDs/natural keys of one-deep associations). Default returns complete response. |

#### 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 PO Confirmations Cancelled and Not Exported

**Slug:** `COUPA_GET_PO_CONFIRMATION_CANCELLED_STATUS_NOT_EXPORTED`

Tool to retrieve PO confirmations with cancelled status that have not been exported. Use when you need to identify cancelled order confirmations requiring processing or export to external systems.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ["id","status","exported"]. |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50 (offset multiples of 50). |
| `created_at_gt` | string | No | Filter confirmations created after this timestamp (ISO 8601 format). |
| `created_at_lt` | string | No | Filter confirmations created before this timestamp (ISO 8601 format). |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns all attributes with IDs of one-level associations. |
| `updated_at_gt` | string | No | Filter confirmations updated after this timestamp (ISO 8601 format). |
| `updated_at_lt` | string | No | Filter confirmations updated before this timestamp (ISO 8601 format). |

#### 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 PO Line by Order Header ID and Line Number

**Slug:** `COUPA_GET_PO_LINE_USING_ORDER_HEADER_ID_AND_LINE_NUMBER`

Tool to retrieve purchase order line(s) by order header ID and line number. Use when you need to get specific PO line details using the order header ID and line number combination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `line_num` | string | Yes | The line number to filter by (e.g., '1', '2') |
| `order_header_id` | integer | Yes | The purchase order header ID to filter by |

#### 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 Project Memberships

**Slug:** `COUPA_GET_PROJECT_MEMBERSHIP`

Tool to query project memberships from Coupa. Use when you need to get project membership information based on user and/or project filters. This allows you to find which users are members of specific projects and their roles (owner, participant).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Filter by specific project membership ID |
| `limit` | integer | No | Maximum number of records to return (1-50). Default is 50 |
| `owner` | boolean | No | Filter by owner status (admin status). Set to true to get only owner memberships, false for non-owners |
| `fields` | string | No | JSON array of specific fields to return; e.g., ["id","user-id","project-id","owner"] |
| `offset` | integer | No | Number of records to skip for pagination (default 0) |
| `user-id` | integer | No | Filter by specific user ID to get memberships for that user |
| `project-id` | integer | No | Filter by specific project ID to get memberships for that project |
| `participant` | boolean | No | Filter by participant status. Set to true to get only participant memberships, false for non-participants |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns attributes with one-level associations; 'none' for minimal data |

#### 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 Project Membership by ID

**Slug:** `COUPA_GET_PROJECT_MEMBERSHIP_BY_ID`

Tool to retrieve a single project membership by ID. Use when you need detailed information about a specific project membership after knowing its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the project membership to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","project-id","user-id","owner","participant"] |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Project Task

**Slug:** `COUPA_GET_PROJECT_TASK`

Tool to retrieve a specific task from a specific project by their IDs. Use when you need detailed information about a particular task within a project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task_id` | integer | Yes | The ID of the task within the project |
| `project_id` | integer | Yes | The ID of the project |

#### 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 Purchase Order

**Slug:** `COUPA_GET_PURCHASE_ORDER`

Tool to retrieve a specific purchase order. Use when you need PO details by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to retrieve |
| `fields` | array | No | JSON array of specific fields/associations to return. Example: ['id', 'po-number', {'order-lines': ['id', 'line-num']}] |
| `return_object` | string ("limited" | "shallow") | No | Controls response verbosity for GET: 'limited' for IDs-only, 'shallow' for shallow associations |

#### 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 Purchase Order Attachment File

**Slug:** `COUPA_GET_PURCHASE_ORDER_ATTACHMENT_FILE`

Tool to retrieve a specific attachment file from a purchase order. Use when you need to download the actual file content of an attachment associated with a specific purchase order.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `po_id` | integer | Yes | Coupa unique identifier of the purchase order |
| `attachment_id` | integer | Yes | Coupa unique identifier of the attachment to retrieve |

#### 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 Purchase Order Changes

**Slug:** `COUPA_GET_PURCHASE_ORDER_CHANGES`

Tool to retrieve a specific purchase order change. Use when you need details about a PO modification request by its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's unique identifier for the PO change request |
| `fields` | string | No | JSON array of specific fields/associations to return. Example: ['id','status',{'current-approval':['id','approver']}] |
| `return_object` | string ("limited" | "shallow") | No | Controls response verbosity for GET: 'limited' for IDs-only, 'shallow' for shallow associations |

#### 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 PO Changes Pending Certain Approver

**Slug:** `COUPA_GET_PURCHASE_ORDER_CHANGES_PENDING_CERTAIN_APPROVER`

Tool to get purchase order changes pending approval by a certain approver. Use when you need to retrieve PO modifications awaiting approval from a specific user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return per API call (default: 50, max: 50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','status',{'current-approval':['id','approver']}]. |
| `offset` | integer | No | Pagination offset to skip records and retrieve subsequent sets (default: 0). |
| `status` | string | No | Filter by PO change approval status; e.g., 'pending_approval' or 'approved'. |
| `created_at_gt` | string | No | Filter PO changes created after this timestamp (ISO 8601). |
| `created_at_lt` | string | No | Filter PO changes created before this timestamp (ISO 8601). |
| `updated_at_gt` | string | No | Filter PO changes updated after this timestamp (ISO 8601). |
| `updated_at_lt` | string | No | Filter PO changes updated before this timestamp (ISO 8601). |
| `order-header-id` | integer | No | Filter by the original purchase order ID being changed. |
| `current_approval_approver_id` | integer | No | Filter by the current approver's user ID to get PO changes pending this specific approver. |
| `current_approval_approver_login` | string | No | Filter by the current approver's login to get PO changes pending this specific approver. |

#### 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 Purchase Order Comment

**Slug:** `COUPA_GET_PURCHASE_ORDER_COMMENT`

Tool to retrieve a specific comment on a purchase order by ID. Use when you need to view details of a particular comment on a purchase order.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array string of specific fields to include in the response. |
| `comment_id` | integer | Yes | Coupa unique identifier of the specific comment to retrieve. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Level of detail in the response: 'shallow', 'limited', or 'none'. |
| `purchase_order_id` | integer | Yes | Coupa unique identifier of the purchase order. |

#### 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 Purchase Order Line

**Slug:** `COUPA_GET_PURCHASE_ORDER_LINES`

Tool to retrieve a specific purchase order line by ID. Use when you need detailed information about a single purchase order line.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the purchase order line to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','line-num','description',{'item':['id','name']}] |
| `return_object` | string | No | Response verbosity: 'limited' for IDs-only, 'shallow' for shallow associations |

#### 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 Quote Request Tasks

**Slug:** `COUPA_GET_QUOTE_REQUESTS_TASKS`

Tool to retrieve all tasks for a specific quote request in Coupa. Use when you need to fetch task records for a particular quote request with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the quote request to retrieve tasks for |
| `limit` | integer | No | Maximum number of records to return (1-50) |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','title','status'] |
| `offset` | integer | No | Pagination offset; results are returned in batches |
| `status` | string | No | Filter by task status |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Reconciliation Lines for Payable Order

**Slug:** `COUPA_GET_RECONCILIATION_LINES_FOR_PAYABLE_ORDER`

Tool to retrieve reconciliation lines for payable orders. Use when you need to fetch payment reconciliation records linked to pay orders or invoices.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Coupa unique identifier for a specific reconciliation line. If provided, retrieves a single reconciliation line; otherwise, retrieves all reconciliation lines. |
| `payable_id` | integer | No | ID of the payable order to filter reconciliation lines by. Use this to retrieve only reconciliation lines associated with a specific payable order. |

#### 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 Remit-To Addresses of Supplier

**Slug:** `COUPA_GET_REMIT_TO_ADDRESS_OF_A_SUPPLIER`

Tool to retrieve remit-to addresses for a specific supplier. The remit-to address (RTA) specifies where payment should be delivered and is owned by the supplier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Supplier identifier (required path parameter) |
| `limit` | integer | No | Number of records to return per request. Default: 50, Maximum: 50. |
| `active` | boolean | No | Filter by active status (true/false). |
| `fields` | string | No | JSON array specifying which fields to include in response. Example: ["id","name",{"country":["code","name"]}] |
| `offset` | integer | No | Number of records to skip for pagination. |
| `order_by` | string | No | Field name to sort results by (alphabetical or numeric order). |
| `address_id` | integer | No | Get specific address by ID. |
| `country_code` | string | No | Filter addresses by country code (e.g., 'US'). |
| `created_at_gt` | string | No | Filter addresses created after specified date (format: YYYY-MM-DDTHH:MM:SS). |
| `created_at_lt` | string | No | Filter addresses created before specified date (format: YYYY-MM-DDTHH:MM:SS). |
| `return_object` | string | No | Response format control. Values: 'limited' (returns only IDs), 'shallow' (returns all attributes plus IDs of one-deep associations). |
| `updated_at_gt` | string | No | Filter addresses updated after specified date (format: YYYY-MM-DDTHH:MM:SS). |
| `updated_at_lt` | string | No | Filter addresses updated before specified date (format: YYYY-MM-DDTHH:MM:SS). |
| `updated_by_login` | string | No | Filter addresses updated by specific user login. |
| `created_at_gt_or_eq` | string | No | Filter addresses created on or after specified date (format: YYYY-MM-DDTHH:MM:SS). |
| `created_at_lt_or_eq` | string | No | Filter addresses created on or before specified date (format: YYYY-MM-DDTHH:MM:SS). |

#### 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 Requisition Assignment

**Slug:** `COUPA_GET_REQUISITION_ASSIGNMENT`

Tool to retrieve assignment information for a specific requisition. Use when you need to see who is assigned to a requisition and in what role.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the requisition to retrieve assignments for. |

#### 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 Requisition Line Estimated Tax Lines

**Slug:** `COUPA_GET_REQUISITION_LINES_ESTIMATED_TAX_LINES`

Tool to retrieve estimated tax lines for a requisition line. Use when you need tax calculation details for a specific requisition line.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the requisition line to retrieve estimated tax lines for. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','tax_code',{'tax_rate':['id','rate']}]. |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 Requisition Comment by ID

**Slug:** `COUPA_GET_REQUISITIONS_COMMENTS`

Tool to retrieve a specific comment on a requisition by comment ID. Use when you need to get detailed information about a particular requisition comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment_id` | integer | Yes | The unique identifier for the specific comment to retrieve. |
| `requisition_id` | integer | Yes | The unique identifier for the requisition. |

#### 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 Return To Supplier Transactions

**Slug:** `COUPA_GET_RETURN_TO_SUPPLIER_TRANSACTIONS`

Tool to retrieve return to supplier transactions for reverse logistics operations. Use when you need to query transactions related to inventory returns to vendors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by transaction ID |
| `type` | string | No | Filter by transaction type (ReturnToSupplierTransaction, InventoryReceiptReturnToSupplier, ReceivingQuantityConsumptionReturnToSupplier, ReceivingAmountConsumptionReturnToSupplier) |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","status","quantity"] |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `status` | string | No | Filter by transaction status |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Example: {'created_at[gt]':'2024-01-01', 'item[name]':'Widget'}. Supports operators like [contains], [starts_with], [gt], [lt], [in], etc. |
| `exported` | boolean | No | Filter by export status: true for exported transactions, false for not exported |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Supplier Risk Aware Feed

**Slug:** `COUPA_GET_RISKAWAREFEED`

Tool to retrieve supplier governance, risk, and compliance (GRC) data from Risk Aware feed. Use when you need to query supplier risk data by supplier ID, name, or number. Each supplier can only have one Risk Aware feed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier_id` | integer | No | Filter by Coupa supplier identifier to get Risk Aware feed for a specific supplier. |
| `supplier_name` | string | No | Filter by supplier name to get Risk Aware feed. Use when you don't know the supplier ID. |
| `supplier_number` | string | No | Filter by supplier number to get Risk Aware feed. Each supplier has only one Risk Aware feed. |

#### 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 Shipping Terms

**Slug:** `COUPA_GET_SHIPPING_TERMS`

Tool to retrieve shipping terms from Coupa. Use when you need to query shipping term records with optional filtering by ID, active status, code, or content groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Coupa unique identifier for specific shipping term |
| `code` | string | No | Filter by shipping term code |
| `active` | boolean | No | Filter by active status |
| `content-groups` | string | No | Filter by BusinessGroup |

#### 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 SIM Easy Form Responses

**Slug:** `COUPA_GET_SIM_EASY_FORM_RESPONSES`

Tool to retrieve easy form responses for a specific supplier information record. Use when you need to query form responses associated with SIM records or custom objects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of results returned |
| `fields` | string | No | JSON array of fields to return in the response. Example: ["id","created_at","updated_at","easy_form_id","name","status","submitted_at"] |
| `offset` | integer | No | Pagination parameter to skip a number of records |
| `status` | string | No | Filter by status value (e.g., pending, approved, submitted) |
| `supplier_information_id` | integer | Yes | The unique identifier of the supplier information record |

#### 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 SIM Site by ID

**Slug:** `COUPA_GET_SIM_SITE_BY_ID`

Tool to retrieve a specific supplier information site by ID. Use when you need detailed information about a single supplier information site including code, name, PO methods, cXML configuration, addresses, and contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The Coupa Internal ID of the supplier information site to retrieve |
| `fields` | string | No | Comma-separated list of fields to return in the response for response filtering; e.g., "id,code,name" or JSON array format ["id","code","name"] |

#### 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 Soft Applied PO Updates

**Slug:** `COUPA_GET_SOFT_APPLIED_PO_UPDATES_USING_CONFIRMATION_ID`

Tool to retrieve soft applied purchase order updates using a confirmation ID. Use when you need to review PO changes that have been soft-applied by a supplier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to review confirmation for |
| `confirmation_id` | string | Yes | The confirmation ID used to retrieve soft applied PO updates |

#### 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 Specific Attachment on Purchase Order Line

**Slug:** `COUPA_GET_SPECIFIC_ATTACHMENT_ON_PURCHASE_ORDER_LINE`

Tool to retrieve a specific attachment file from a purchase order line. Use when you need to download an attachment associated with a specific purchase order line.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `po_line_id` | integer | Yes | Coupa unique identifier of the purchase order line. |
| `attachment_id` | integer | Yes | Coupa unique identifier of the attachment to retrieve. |

#### 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 Specific Attachment on Requisition Line

**Slug:** `COUPA_GET_SPECIFIC_ATTACHMENT_ON_REQUISITION_LINE`

Tool to retrieve a specific attachment file from a requisition line. Use when you need to download an attachment associated with a specific requisition line.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `req_line_id` | integer | Yes | The unique identifier of the requisition line |
| `attachment_id` | integer | Yes | The unique identifier of the specific attachment to retrieve |

#### 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 Specific Attachment Using Attachment ID

**Slug:** `COUPA_GET_SPECIFIC_ATTACHMENT_USING_ATTACHMENT_ID`

Tool to retrieve a specific attachment associated with a charge. Use when you need to get attachment details by charge ID and attachment ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `charge_id` | integer | Yes | The unique identifier of the charge |
| `attachment_id` | integer | Yes | The unique identifier of the attachment |

#### 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 Contract Attachment

**Slug:** `COUPA_GET_SPECIFIC_CONTRACT_ATTACHMENT_FILE`

Tool to retrieve metadata for a specific contract attachment. Use when you need attachment details like file-url, type, intent, or file size for a known contract and attachment ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `style` | string | No | For image attachments: 'preview' (640x640) or 'thumb' (128x128). For non-image files: downloads the original file |
| `contract_id` | integer | Yes | The unique identifier for the contract in Coupa's system |
| `attachment_id` | integer | Yes | The specific attachment ID to retrieve |

#### 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 Custom Object Instance

**Slug:** `COUPA_GET_SPECIFIC_CUSTOM_OBJECT_INSTANCE_BY_ID`

Tool to retrieve a specific custom object instance by ID. Use when you need detailed information about a particular custom object data record.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array specifying which fields to include in the response. Format: ["id","created_at","updated_at","custom_object_name","custom_object_code","form_response_id","owner_id","due_date","start_date","duration","percentage","linkable_type","linkable_id",{"created_by":["id"]},{"updated_by":["id"]},{"custom_fields":{}}]. Supports nested object structures. |
| `instance_id` | integer | Yes | The unique identifier for the specific data record to retrieve |
| `custom_object_id` | integer | Yes | The unique identifier for the custom object being queried |

#### 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 EasyFormResponse Attachment File

**Slug:** `COUPA_GET_SPECIFIC_EASYFORMRESPONSE_ATTACHMENT_FILE`

Tool to retrieve a specific attachment file from an EasyFormResponse. Use when you need to download attachment files for a known easy form response and attachment ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `attachment_id` | integer | Yes | Coupa unique identifier of the attachment to retrieve. |
| `easy_form_response_id` | integer | Yes | Coupa unique identifier of the EasyFormResponse object. |

#### 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 Specific Invoice Attachment File

**Slug:** `COUPA_GET_SPECIFIC_INVOICE_ATTACHMENT_FILE`

Tool to retrieve a specific attachment from an invoice. Use when you need to get attachment metadata and file information for a specific invoice attachment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice_id` | integer | Yes | The unique identifier of the invoice. |
| `attachment_id` | integer | Yes | The unique identifier of the attachment to retrieve. |

#### 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 Specific Requisition Attachment

**Slug:** `COUPA_GET_SPECIFIC_REQUSITION_ATTACHMENT_FILE`

Tool to retrieve detailed information about a specific attachment on a requisition. Use when you need attachment metadata, file URL, type, intent, or content details for a requisition attachment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return in the response using the format ["field1","field2",{"nested_object":["field1","field2"]}] |
| `attachment_id` | integer | Yes | The unique identifier for the attachment. |
| `requisition_id` | integer | Yes | The unique identifier for the requisition. |

#### 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 Specific API Schema

**Slug:** `COUPA_GET_SPECIFIC_SCHEMA`

Tool to retrieve the Swagger 2.0 API schema documentation for a specific Coupa resource. Use when you need to understand the API structure, available endpoints, parameters, and response schemas for resources like users, invoices, purchase orders, or suppliers.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The resource name or identifier for which to retrieve the API schema. Common values include resource names like 'users', 'invoices', 'purchase_orders', 'suppliers', 'requisitions', etc. |

#### 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 Statement By ID

**Slug:** `COUPA_GET_STATEMENTS_BY_ID`

Tool to retrieve a single Coupa Pay statement by its unique identifier. Use when you need detailed information about a specific corporate card payment partner statement.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique identifier of the statement to retrieve |

#### 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 Status of an Import File

**Slug:** `COUPA_GET_STATUS_OF_AN_IMPORT_FILE`

Tool to retrieve status and details of a specific data import file source. Use when you need to monitor the status of CSV import files uploaded to Coupa, tracking whether they have been processed successfully, are in progress, or have failed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's unique identifier for the data file source |

#### 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 Supplier Information Site

**Slug:** `COUPA_GET_SUPPLIER_INFORMATION_SUPPLIER_INFORMATION_SITE`

Tool to retrieve a specific supplier information site by supplier information ID and site ID. Use when you need detailed information about a single supplier information site including code, name, PO methods, addresses, and contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the supplier information site to retrieve |
| `fields` | string | No | Comma-separated list of fields to return in the response for response filtering; e.g., "id,code,name" or JSON array format ["id","code","name"] |
| `supplier_information_id` | integer | Yes | The ID of the supplier information record |

#### 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 Supplier Item by ID

**Slug:** `COUPA_GET_SUPPLIER_ITEM_BY_ID`

Tool to retrieve a specific supplier item by ID. Use when you need detailed supplier item information including pricing, availability, and item specifications.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's unique identifier for the supplier item |
| `limit` | integer | No | Maximum number of records to return (default: 50, max: 50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','price',{'item':['name']}]. |
| `offset` | integer | No | Skip specified number of records for pagination (default: 0). |
| `order_by` | string | No | Field name to sort results by. |
| `direction` | string ("asc" | "desc") | No | Sort direction, 'asc' for ascending or 'desc' for descending. |

#### 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 Supplier Items by Item Name

**Slug:** `COUPA_GET_SUPPLIER_ITEMS_BY_ITEM_NAME`

Tool to retrieve supplier items filtered by item name. Use when you need to find supplier items for a specific item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limit the number of supplier items returned. |
| `offset` | integer | No | Pagination offset for results. |
| `item_name` | string | No | Filter supplier items by item name (exact match). |

#### 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 Supplier Site by Code

**Slug:** `COUPA_GET_SUPPLIER_SITE_BY_CODE`

Tool to retrieve supplier sites with optional filters. Use when you need to query supplier sites by code, name, or other attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | No | Exact-match filter by supplier site code (e.g., 'Standard', 'TSS001') |
| `name` | string | No | Exact-match filter by supplier site name |
| `limit` | integer | No | Number of records to return (max 50) |
| `active` | boolean | No | Filter by activation status: true for active sites, false for inactive |
| `offset` | integer | No | Pagination offset; results returned in pages of up to 50 |
| `po-method` | string ("cxml" | "xml" | "email" | "prompt" | "mark_as_sent" | "buy_online") | No | Filter by PO transmission method |
| `supplier-id` | integer | No | Filter by the ID of the parent supplier |
| `code_contains` | string | No | Filter by supplier site code containing this substring |
| `name_contains` | string | No | Filter by supplier site name containing this substring |
| `code_starts_with` | string | No | Filter by supplier site code starting with this substring |

#### 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 Tax Registration by ID

**Slug:** `COUPA_GET_TAX_REGISTRATIONS_USING_ID`

Tool to retrieve a specific supplier information tax registration record by ID. Use when you need detailed tax registration information for supplier information management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier for the tax registration record |

#### 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 User Address by ID

**Slug:** `COUPA_GET_USER_ADDRESS_BY_ID`

Tool to retrieve a specific address by ID for a Coupa user. Use when you need detailed information about a particular user address.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the address to retrieve. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","city","state","country"]. |
| `coupa_user_id` | integer | Yes | ID of the user whose address to retrieve. |
| `return_object` | string | No | Response verbosity: 'limited' returns minimal fields, 'shallow' returns full attributes with one-level associations. |

#### 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 User Address by ID (v2)

**Slug:** `COUPA_GET_USER_ADDRESS_BY_ID2`

Tool to retrieve a specific address by ID for a Coupa user using the nested user endpoint. Use when you need detailed information about a particular user address.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the address to retrieve. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","city","state","country"]. |
| `coupa_user_id` | integer | Yes | ID of the user whose address to retrieve. |
| `return_object` | string | No | Response verbosity: 'limited' returns minimal fields, 'shallow' returns full attributes with one-level associations. |

#### 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 User Group

**Slug:** `COUPA_GET_USER_GROUP`

Tool to retrieve a specific user group by ID. Use when you need detailed information about a user group including its members, approval permissions, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the user group to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","active"]. |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get User Group Membership

**Slug:** `COUPA_GET_USER_GROUP_MEMBERSHIP`

Tool to retrieve a single user group membership by ID. Use when you need detailed information about a specific user's membership in a group or project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier for the user group membership record |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","user-id","user-group-id"]. |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 User Group Tasks

**Slug:** `COUPA_GET_USER_GROUPS_TASKS`

Tool to retrieve tasks associated with a specific user group. Use when you need to query tasks assigned to or managed by a user group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). Default is 50 records. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","title","status"]. |
| `offset` | integer | No | Number of records to skip for pagination (default 0). |
| `order-by` | string | No | Field(s) to order results by (alphabetical/numeric order). E.g., 'title', 'due-date'. |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns all attributes and IDs of one-deep associations. |
| `user_group_id` | integer | Yes | ID of the user group to retrieve tasks for |

#### 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 User Memberships

**Slug:** `COUPA_GET_USER_MEMBERSHIPS`

Tool to list user group memberships. Use when you need to retrieve user memberships in groups or projects with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by membership ID |
| `limit` | integer | No | Maximum number of records to return (1-50). Default is 50. |
| `owner` | boolean | No | Filter by owner status: true for admin users, false for non-admin |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","user-id","user-group-id"] |
| `offset` | integer | No | Number of records to skip for pagination (default 0). |
| `user-id` | integer | No | Filter by user ID to get memberships for a specific user |
| `participant` | boolean | No | Filter by participant status |
| `return_object` | string | No | Response verbosity: 'limited', 'shallow', or 'none' |
| `user-group-id` | integer | No | Filter by user group ID or project ID |
| `user-group-type` | string | No | Filter by group type: 'User group' or 'Project' |

#### 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 |

### Ignore Window And Issue

**Slug:** `COUPA_IGNORE_WINDOW_AND_ISSUE`

Ignore Window And Issue

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal Purchase Order ID to issue |
| `fields` | string | No | Optional fields selector per Coupa API as a JSON string. Example: ['id', {'order_lines':['id','line_num']}] |
| `return_object` | string | No | Optional return object size: none \| limited \| shallow |
| `x-coupa-api-user-login` | string | No | Optional Coupa user login to impersonate; sent as x-coupa-api-user-login header |

#### 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 |

### Import Budget Lines

**Slug:** `COUPA_IMPORT_BUDGET_LINES`

Tool to import budget lines via CSV file upload. Use when uploading batch budget line data to Coupa for processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | CSV file containing budget lines to import. |
| `filename` | string | No | Filename when providing base64 content. |
| `mimetype` | string | No | MIME type (e.g., 'text/csv') when using base64 content |
| `source_for` | string | No | The object type being imported. Should be 'BudgetLine' for budget line imports. |
| `content_b64` | string | No | Base64-encoded file content. |

#### 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 Inspection Codes

**Slug:** `COUPA_INSPECTION_CODES_INDEX`

Tool to list inspection codes. Use when you need to retrieve id and code of inspection codes for inventory transactions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `active` | boolean | No | Filter by active status (true or false). |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","code"]. If not provided, Coupa returns the default shallow representation. |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50 (offset multiples of 50). |
| `lookup_name` | string | No | Filter by parent lookup name (e.g., 'Inspection Code'). |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns attributes with one-level associations. |

#### 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 Integration Errors

**Slug:** `COUPA_INTEGRATION_ERRORS_INDEX`

Tool to list and query integration errors in Coupa. Use when you need to retrieve error IDs and details for troubleshooting or resolving failed transactions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','document-id','integration-filename']. |
| `offset` | integer | No | Number of records to skip for pagination. |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Example: {'status':'error','created-at[gt]':'2023-01-01T00:00:00Z'} |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 Integration Runs

**Slug:** `COUPA_INTEGRATION_RUNS_INDEX`

Tool to list integration runs. Use after identifying an integration to retrieve run IDs and statuses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ["id","status","start_time"] |
| `offset` | integer | No | Pagination offset; Coupa returns up to 50 runs per request, use offset to page. |
| `filters` | object | No | Attribute filters using Coupa query syntax. Example: {'status[in]':'running,paused', 'created-at[gt_or_eq]':'2023-01-01T00:00:00Z'} |
| `return_object` | string ("limited" | "shallow") | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level associations |

#### 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 Integration

**Slug:** `COUPA_INTEGRATIONS_CREATE`

Tool to create a new integration in Coupa. Use when you need to define a connection between Coupa and an external system, specifying the business object, data flow direction, and integration method.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique Integration Code - must be unique across all integrations. |
| `name` | string | Yes | Integration Name - human-readable name for the integration. |
| `standard` | boolean | Yes | Standard indicator flag. Set to true for standard integrations, false for custom integrations. |
| `direction` | string ("to_coupa" | "from_coupa") | Yes | Direction of data flow. Use 'to_coupa' for importing data into Coupa, 'from_coupa' for exporting data from Coupa. |
| `end-system` | string | Yes | End System name - the external system being integrated. |
| `business-object` | string | Yes | Business Object identifier for the integration (e.g., User, Supplier, Invoice). |
| `end-system-type` | string ("internal" | "payroll" | "erp" | "hr" | "third_party_partner" | "third_party_vendor" | "other") | Yes | Classification of the end system type. |
| `integration-type` | string ("flat_file" | "api" | "corporate_credit_card_file" | "json" | "xml") | Yes | Method type for the integration. |

#### 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 Integrations

**Slug:** `COUPA_INTEGRATIONS_INDEX`

Tool to list integrations from Coupa. Use when you need to retrieve integration definitions and IDs for filtering integration runs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa integration ID |
| `code` | string | No | Exact-match filter by integration code; supports Coupa query operators |
| `name` | string | No | Exact-match filter by integration name; supports Coupa query operators |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","code","name"] |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 records |
| `standard` | boolean | No | Filter by standard flag: true for standard integrations, false otherwise |
| `direction` | string | No | Filter by direction: to_coupa or from_coupa |
| `created_at` | string | No | Filter by creation timestamp; supports Coupa query operators |
| `end_system` | string | No | Filter by end system |
| `updated_at` | string | No | Filter by update timestamp; supports Coupa query operators |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns top-level attributes and one-level association IDs |
| `business_object` | string | No | Filter by business object |
| `end_system_type` | string | No | Filter by end system type: internal, payroll, erp, hr, third_party_partner, third_party_vendor, other |
| `integration_type` | string | No | Filter by integration type: flat_file, api, corporate_credit_card_file, json, xml |

#### 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 Integration

**Slug:** `COUPA_INTEGRATIONS_SHOW`

Tool to retrieve a specific integration by ID. Use when you need detailed information about a single integration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's unique identifier for the integration |

#### 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 Inventory Consumption

**Slug:** `COUPA_INVENTORY_CONSUMPTIONS_DESTROY`

Tool to delete an inventory consumption record. Use when you need to permanently remove an inventory consumption by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Inventory consumption ID to delete. |

#### 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 Inventory Transfer

**Slug:** `COUPA_INVENTORY_TRANSFERS_DESTROY`

Tool to delete an inventory transfer. Use when you need to permanently remove an inventory transfer by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Inventory transfer ID to delete. |

#### 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 |

### Invite Suppliers to CSP Portal

**Slug:** `COUPA_INVITE_SUPPLIERS_TO_THE_CSP_PORTAL`

Tool to invite suppliers to the Coupa Supplier Portal (CSP). Use when you need to send portal invitation emails to one or more suppliers. The invitation is processed asynchronously as a background job.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `suppliers` | array | Yes | Array of supplier objects to invite. Each supplier object must contain an 'id' field with the supplier ID. |
| `email-body` | string | No | Custom message text to include in the invitation email sent to suppliers. If not provided, a default invitation message will be used. |
| `can-manage-contact-info` | boolean | No | Specifies whether the invited supplier can manage their contact information in the portal. Defaults to false if not provided. |

#### 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 Invoice Attachment

**Slug:** `COUPA_INVOICES_ATTACHMENTS_CREATE`

Tool to create an attachment on an invoice. Use when attaching files, text, or URLs to invoices.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | URL for URL attachments. Required when type='url' |
| `file` | object | No | File to upload. Required when type='file' |
| `text` | string | No | Text content for text attachments. Required when type='text' |
| `type` | string ("file" | "text" | "url") | Yes | Type of the attachment. 'file', 'text', or 'url' |
| `intent` | string | No | Intent of the attachment (max 40 characters) |
| `invoice_id` | integer | Yes | ID of the invoice to attach the resource |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 Invoice

**Slug:** `COUPA_INVOICES_DESTROY`

Tool to delete an invoice. Use when you need to permanently remove an invoice by ID. Note: Invoices with pending approvals or certain statuses cannot be deleted.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa invoice ID to delete |
| `return_object` | string | No | Optional response control; e.g., 'limited' to return only 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 Invoices

**Slug:** `COUPA_INVOICES_LIST`

Tool to list invoices with optional pagination and filters. Use when you need to obtain invoice IDs or details for testing void invoice extensively.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ['id','invoice-number',{'invoice-lines':['id','line-num']}]. |
| `offset` | integer | No | Pagination offset for invoice list in multiples of 50 (default 0). |
| `filters` | object | No | Attribute filters using Coupa syntax. Example: {'status[in]':'approved,voided', 'supplier[name]':'CDW'}. |
| `return_object` | string ("limited" | "shallow") | No | Response verbosity control: 'limited' returns only IDs; 'shallow' returns one-level associations. |

#### 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 |

### Remove Approver From Invoice

**Slug:** `COUPA_INVOICES_REMOVE_APPROVAL`

Tool to remove a manually added approver from an invoice. Use when you need to remove a manually added approver from an invoice's approval chain by providing the approval ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice. |
| `approval_id` | integer | Yes | Approval record ID to remove. This is the ID of the manually added approval to be removed. |

#### 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 |

### Retrieve Legal Invoice PDF

**Slug:** `COUPA_INVOICES_RETRIEVE_LEGAL_INVOICE_PDF`

Tool to download the legal invoice PDF. Use when you need the official Coupa legal invoice document after invoice approval.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to retrieve the legal PDF for. |

#### 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 |

### Revalidate Invoice Tolerances

**Slug:** `COUPA_INVOICES_REVALIDATE_TOLERANCES`

Tool to revalidate tolerances on an invoice. Use when tolerance checks need rerunning after invoice submission issues.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice to revalidate tolerances for |
| `return_object` | string | No | Optional response size control: none \| limited \| shallow |

#### 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 Invoice

**Slug:** `COUPA_INVOICES_SHOW`

Tool to retrieve a single invoice by ID. Use when you need detailed invoice information including line items, charges, attachments, and approval details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the invoice to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','invoice-number',{'currency':['code']}]. |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 |

### Submit Invoice

**Slug:** `COUPA_INVOICES_SUBMIT`

Tool to submit a draft invoice for approval. Use when you need to kick off the approval workflow on a draft invoice.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to submit. |
| `return_object` | string | No | Optional response size control: none \| limited \| shallow. |

#### 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 Invoice

**Slug:** `COUPA_INVOICES_UPDATE`

Tool to update an invoice via PUT /api/invoices/:id.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to update. |
| `tags` | array | No | Tags applied to invoice |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','invoice-number',{'invoice-lines':['id','line-num']}] |
| `status` | string | No | Invoice status (updates may be restricted depending on workflow/state). |
| `payload` | object | No | Additional invoice attributes to update directly; keys should use Coupa API hyphenated names. Example: {'comments': null, 'invoice-number': 'INV-1002'} |
| `comments` | string | No | Freeform comments |
| `currency` | object | No | Currency object, e.g., {'code': 'USD'} |
| `supplier` | object | No | Supplier reference, e.g., {'id': 2} or {'name': 'Super Printers'} |
| `taggings` | array | No | Taggings metadata |
| `tax-lines` | array | No | Tax line items for the invoice. |
| `invoice-date` | string | No | Invoice date (YYYY-MM-DD) |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `payment-term` | object | No | The payment term for the invoice. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `internal-note` | string | No | An internal note for the invoice. |
| `invoice-lines` | array | No | Array of invoice line objects to update/add. For updates, include line 'id'. Example: [{'id': 123, 'description': 'New desc', 'price': '15.00'}] |
| `return_object` | string ("full" | "limited" | "shallow" | "none") | No | Controls response verbosity: 'full', 'limited', 'shallow', or 'none'. |
| `invoice-number` | string | No | The invoice number. |
| `bill-to-address` | object | No | The bill-to address for the invoice. |
| `ship-to-address` | object | No | The ship-to address for delivery. |
| `lock-version-key` | integer | No | The lock version key for optimistic concurrency control. |
| `remit-to-address` | object | No | The remit-to address for payment. |
| `line-level-taxation` | boolean | No | Whether taxation is applied at the line level. |

#### 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 |

### Issue Purchase Order Without Send

**Slug:** `COUPA_ISSUE_PURCHASE_ORDER_WITHOUT_SEND`

Tool to issue a purchase order without transmitting it to the supplier. Use when purchase orders are communicated through alternative means outside of Coupa's transmission channels.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to issue without sending |
| `fields` | array | No | JSON array of specific fields/associations to include in the response. Example: ['id', 'status', 'po-number'] |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none' returns no body; 'limited' returns only IDs; 'shallow' returns object attributes with one-level associations |
| `x-coupa-api-user-login` | string | No | Optional Coupa user login to impersonate; sent as x-coupa-api-user-login header |

#### 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 Item

**Slug:** `COUPA_ITEMS_CREATE`

Tool to create a catalog item. Use when provisioning items with minimal details in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uom` | object | No | Unit of measure reference - provide code. |
| `name` | string | Yes | Item name |
| `price` | number | No | Price of the item (optional) |
| `description` | string | Yes | Item description |
| `item-number` | string | No | Unique item number (unique if provided) |

#### 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 Items

**Slug:** `COUPA_ITEMS_INDEX`

Tool to list catalog items. Use when you need item IDs and item numbers for inventory adjustment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50 (offset multiples of 50). |

#### 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 Existing Item

**Slug:** `COUPA_ITEMS_UPDATE`

Tool to update an existing item in Coupa catalog. Use when modifying item details like name, description, commodity, UOM, or other attributes. Only specified fields are updated; omit fields to leave unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the item to update |
| `uom` | object | No | Unit of measure reference - provide code. |
| `name` | string | No | Item designation/name |
| `active` | boolean | No | Status indicator; deletion occurs if set to inactive |
| `pack-qty` | number | No | Pack quantity |
| `commodity` | object | No | Reference to a Commodity resource. Provide id, name, or both. |
| `image-url` | string | No | Item image URL |
| `item-type` | string | No | Item classification type |
| `net-weight` | number | No | Net weight value |
| `description` | string | No | Item description |
| `item-number` | string | No | Unique item identifier/number |
| `pack-weight` | number | No | Pack weight value |
| `reorder-point` | number | No | Reorder point value |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response format: 'none' (no response), 'limited' (IDs only), 'shallow' (attributes + one-level IDs) |
| `use-pack-weight` | boolean | No | Whether to use pack weight |
| `storage-quantity` | integer | No | Storage quantity |
| `manufacturer-name` | string | No | Manufacturer name (max 255 characters) |
| `require-asset-tag` | boolean | No | Require asset tag flag |
| `external-image-url` | string | No | External item image URL |
| `require-inspection` | boolean | No | Require inspection flag |
| `consumption-quantity` | integer | No | Consumption quantity |
| `receive-catch-weight` | boolean | No | Receive catch weight flag |
| `allow-partial-quantity` | boolean | No | Allow partial quantities flag |
| `manufacturer-part-number` | string | No | Manufacturer part number (max 255 characters) |
| `inventory-lot-expiration-type` | string | No | Lot expiration type |
| `inventory-lot-tracking-enabled` | boolean | No | Enable inventory lot tracking |

#### 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 Legal Document

**Slug:** `COUPA_LEGAL_DOCUMENTS_SHOW`

Tool to retrieve a specific legal document by ID. Use when you need detailed information about a legal document associated with a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the legal document to retrieve |
| `contract_id` | integer | Yes | ID of the contract that the legal document is associated with |

#### 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 Legal Entity

**Slug:** `COUPA_LEGAL_ENTITIES_SHOW`

Tool to retrieve a single legal entity by ID. Use when you need detailed information about a specific legal entity.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the legal entity to retrieve |
| `fields` | string | No | JSON-formatted array specifying fields to return; e.g., '["id","name","active",{"currency":["id","code"]}]'. |
| `return_object` | string | No | Response verbosity: 'limited' (returns only object IDs) or 'shallow' (returns all attributes and IDs of one-deep associations). |

#### 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 Account Validation Rules

**Slug:** `COUPA_LIST_ACCOUNT_VALIDATION_RULES`

Tool to retrieve account validation rules from Coupa. Use when you need to list validation rules with optional filters like active status or creator.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Filter by exact account validation rule ID |
| `limit` | integer | No | Maximum number of records to return (1-50) |
| `active` | boolean | No | Filter by active status to retrieve only active or inactive validation rules |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","active"] |
| `offset` | integer | No | Number of records to skip for pagination |
| `created_by_id` | integer | No | Filter by ID of the user who created the validation rule |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns top-level fields with one-level associations |

#### 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 Comments

**Slug:** `COUPA_LIST_COMMENTS`

Tool to query and list comments in Coupa. Use when you need to retrieve comments across the system or apply filters to find specific comments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return. Default is 50. |
| `fields` | string | No | JSON array string of specific fields to include in the response. |
| `offset` | integer | No | Number of records to skip for pagination. Default is 0. |
| `order-by` | string | No | Field name to sort results by (alphabetical/numeric order). |
| `return_object` | string ("shallow" | "limited" | "none") | No | Level of detail in the response: 'shallow', 'limited', or 'none'. |

#### 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 Commodities

**Slug:** `COUPA_LIST_COMMODITIES`

Tool to list commodities from Coupa. Use when you need to query or retrieve multiple commodities.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50. |

#### 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 Contract Terms

**Slug:** `COUPA_LIST_CONTRACT_TERMS`

Tool to query contract terms for a specific contract. Use when you need to retrieve pricing tiers or discount structures for a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the contract to retrieve terms for |

#### 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 Object Comments

**Slug:** `COUPA_LIST_OBJ_COMMENTS`

Tool to query comments for a specific transactional object. Use when you need to retrieve comments, notes, or discussion history on requisitions, invoices, purchase orders, expense reports, or users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `object_id` | integer | Yes | The unique identifier of the specific object to retrieve comments for. |
| `object_type` | string ("requisitions" | "invoices" | "purchase_orders" | "expense_reports" | "users") | Yes | The type of transactional object to query comments for. |

#### 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 Suppliers

**Slug:** `COUPA_LIST_QUERY_SUPPLIERS`

Tool to list suppliers with filters. Use when you need suppliers matching certain criteria.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact Coupa internal supplier ID; exact match (e.g., id=6). |
| `name` | string | No | Filter by supplier name (exact). For other operators, use name_contains, name_starts_with, or name_ends_with. |
| `offset` | integer | No | Pagination offset; results returned in pages of 50 by default. |
| `status` | string | No | Filter by supplier status (e.g., active). |
| `po-method` | string ("cxml" | "xml" | "email" | "prompt" | "mark_as_sent" | "buy_online") | No | Filter by PO transmission method; one of cxml, xml, email, prompt, mark_as_sent, buy_online. |
| `created_at_gt` | string | No | Return suppliers created after this timestamp (YYYY-MM-DDTHH:MM:SS). |
| `name_contains` | string | No | Filter by supplier name containing this substring. |
| `name_ends_with` | string | No | Filter by supplier name ending with this substring. |
| `name_starts_with` | string | No | Filter by supplier name starting with this substring. |
| `reviews_count_gt` | integer | No | Filter suppliers with more than this number of reviews. |
| `payment_term_code` | string | No | Filter by Payment Term code (e.g., Net+30). |
| `allow-cxml-invoicing` | boolean | No | Filter suppliers allowed for cXML invoicing (true/false). |
| `cxml_domain_contains` | string | No | Filter by cXML buyer domain containing this value. |
| `primary_address_city` | string | No | Filter by city of the supplier’s primary address. |
| `cxml_supplier_domain_contains` | string | No | Filter by cXML supplier domain containing this value. |
| `primary_contact_email_contains` | string | No | Filter by primary contact email containing this value. |
| `payment_term_days_for_discount_payment` | integer | No | Filter by discount payment days (integer). |

#### 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 Receiving Transactions

**Slug:** `COUPA_LIST_RECEIVING_TRANSACTIONS`

Tool to query receiving transactions in Coupa. Use when you need to fetch receipt records with optional filters for status, dates, type, or export status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by transaction ID. |
| `type` | string | No | Filter by transaction type (e.g., ReceivingTransaction, InventoryReceiptReceiving). Supports operators: [contains], [starts_with], [in], [not_in]. |
| `limit` | integer | No | Maximum number of records to return per call. Default: 50 (API enforced maximum). |
| `fields` | string | No | JSON array of fields to return in response; e.g., ["id","type","status",{"item":["id","name"]}]. |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50 records. |
| `status` | string | No | Filter by transaction status. Supports operators: [in], [not_in], [contains], [not_eq]. |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Example: {'quantity[gt]':'10', 'item[name][contains]':'Widget'}. Supports operators like [contains], [starts_with], [gt], [lt], [in], [blank], etc. |
| `exported` | boolean | No | Filter by export status: true for exported transactions, false for not exported. |
| `created_at_gt` | string | No | Filter transactions created after this timestamp (ISO 8601 format). |
| `created_at_lt` | string | No | Filter transactions created before this timestamp (ISO 8601 format). |
| `return_object` | string | No | Response verbosity control: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association IDs. |
| `updated_at_gt` | string | No | Filter transactions updated after this timestamp (ISO 8601 format). |
| `updated_at_lt` | string | No | Filter transactions updated before this timestamp (ISO 8601 format). |
| `created_at_gt_or_eq` | string | No | Filter transactions created on or after this timestamp (ISO 8601 format). |
| `created_at_lt_or_eq` | string | No | Filter transactions created on or before this timestamp (ISO 8601 format). |
| `transaction_date_gt` | string | No | Filter transactions with transaction date after this timestamp (ISO 8601 format). |
| `transaction_date_lt` | string | No | Filter transactions with transaction date before this timestamp (ISO 8601 format). |
| `updated_at_gt_or_eq` | string | No | Filter transactions updated on or after this timestamp (ISO 8601 format). |
| `updated_at_lt_or_eq` | string | No | Filter transactions updated on or before this timestamp (ISO 8601 format). |

#### 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 Work Confirmation Headers

**Slug:** `COUPA_LIST_WORK_CONFIRMATION_HEADERS`

Tool to retrieve work confirmation headers from Coupa. Use when you need to query work confirmation header records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50) |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","status","created-at"] |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Logout Iframe Session

**Slug:** `COUPA_LOGOUT_IFRAME_SESSION`

Tool to log out CSP (Coupa Supplier Portal) iframe session. Use when you need to terminate an active supplier portal iframe session.

#### 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 |

### Mark a Charge as Exported

**Slug:** `COUPA_MARK_A_CHARGE_AS_EXPORTED`

Tool to mark a charge as exported in the accounting system. Use when you need to flag a charge as having been exported to an external system (such as an ERP).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique Coupa ID of the charge to mark as exported. |
| `exported` | boolean | No | Set to true to mark the charge as exported. Defaults to true. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response format. Options: 'none' (no response body), 'limited' (only IDs returned), 'shallow' (all attributes with IDs of associations). |

#### 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 |

### Mark Payable Invoice as Tracking Externally

**Slug:** `COUPA_MARK_A_PAYABLEINVOICE_AS_TRACKING_EXTERNALLY`

Tool to mark a payable invoice as tracking externally. Use when an invoice payment will be managed outside of Coupa and you need to stop Coupa from tracking it internally.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the payable invoice to mark as tracking externally. |
| `return_object` | string | No | Optional response size control: 'none' (no data returned), 'limited' (only IDs returned), 'shallow' (all attributes plus IDs of one-deep associations). |

#### 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 |

### Mark Statement as Exported

**Slug:** `COUPA_MARK_A_STATEMENT_AS_EXPORTED`

Tool to mark a Coupa Pay statement as exported. Use when you need to flag that a statement has been exported to an external system.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the statement to mark as exported |

#### 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 |

### Mark CoupaPay Payment as Exported

**Slug:** `COUPA_MARK_COUPA_PAY_PAYMENT_AS_EXPORTED`

Tool to mark a CoupaPay payment as exported. Use after successfully retrieving and processing a payment in an external system to prevent duplicate retrieval in subsequent queries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique Coupa payment identifier to mark as exported. |
| `fields` | string | No | JSON array of specific fields to return in response. Example: ["id","status","exported","last-exported-at"] |
| `exported` | boolean | No | Set to true to mark the payment as exported. This prevents duplicate retrieval in subsequent queries. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none' (empty response), 'limited' (only IDs), or 'shallow' (complete payment object with associations). |

#### 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 |

### Mark Payable Invoice as Tracking in Coupa

**Slug:** `COUPA_MARK_PAYABLE_INVOICE_AS_TRACKING_IN_COUPA`

Tool to mark a payable invoice as tracking in Coupa. Use when you want to start tracking an invoice payment within Coupa's internal payment system.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the payable invoice to mark as tracking in Coupa. |
| `return_object` | string | No | Optional response size control: 'none' (no data returned), 'limited' (only IDs returned), 'shallow' (all attributes plus IDs of one-deep associations). |

#### 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 |

### Mark Payable Invoice as Paid Externally

**Slug:** `COUPA_MARK_PAYABLEINVOICE_PAID_EXTERNALLY`

Tool to mark a payable invoice as paid externally. Use when a payment has been made outside of Coupa and you need to stop tracking it in the system. The invoice status will change to 'externally_paid'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the payable invoice to mark as paid externally |

#### 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 |

### Mark Pay Invoice as Exported

**Slug:** `COUPA_MARK_PAY_INVOICE_AS_EXPORTED`

Tool to mark a Coupa Pay invoice as exported. Use after successfully retrieving and processing an invoice in an external system to prevent duplicate retrieval in subsequent queries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Unique Coupa Pay invoice identifier to mark as exported. |
| `exported` | boolean | No | Set to true to mark the invoice as exported. This prevents duplicate retrieval in subsequent queries. |

#### 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 |

### Mark PO Confirmation as Integration Complete

**Slug:** `COUPA_MARK_PO_CONFIRMATION_AS_INTEGRATION_COMPLETE`

Tool to mark an order header confirmation as integration_complete. Use when an integration process has completed successfully and you need to update the confirmation status to reflect completion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's internal ID for the order header confirmation to mark as integration_complete |

#### 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 |

### Mark PO Confirmation as Integration Failed

**Slug:** `COUPA_MARK_PO_CONFIRMATION_AS_INTEGRATION_FAILED`

Tool to mark an order header confirmation as integration_failed. Use when an integration process has failed and you need to update the confirmation status to reflect the integration failure.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa's internal ID for the order header confirmation to mark as integration_failed |

#### 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 Matching Allocation

**Slug:** `COUPA_MATCHING_ALLOCATIONS_SHOW`

Tool to retrieve a specific matching allocation record by ID. Use when you need details about allocations between inventory transactions, PO lines, invoice lines, and ASN lines.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier for the matching allocation to retrieve |

#### 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 |

### Notify Contract Signature Created

**Slug:** `COUPA_NOTIFY_CONTRACT_SIGNATURE_CREATED`

Tool to notify that a signature has been added in CCC (Coupa Contract Collaboration). Use when you need to notify the system about signature creation for a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the contract to notify signature creation |
| `fields` | array | No | JSON array of specific fields/associations to include in the response. Example: ['id','status'] |
| `api_user_id` | integer | No | Impersonate as the given user id via X-COUPA-API-USER-ID header. |
| `on_behalf_of` | string | No | Perform the action on behalf of this user (email or login); sent as X-COUPA-ON-BEHALF-OF header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user; sent as X-COUPA-BUSINESS-ROLE header. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow' |
| `api_user_email` | string | No | Impersonate as the given user email via X-COUPA-API-EMAIL header. |
| `api_user_login` | string | No | Impersonate as the given user login via X-COUPA-API-USER-LOGIN header. |

#### 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 Object Translation

**Slug:** `COUPA_OBJECT_TRANSLATION_CREATE`

Tool to create a translation for a UOM object in Coupa. Use when you need to add locale-specific translations for unit of measure attributes in different languages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `key` | string | Yes | Model attribute to be translated (typically 'name' for UOM translations). Specifies which attribute of the object should be translated. |
| `value` | string | Yes | Translated text value for the specified attribute in the specified locale. |
| `locale` | string | Yes | Locale code for the translation (e.g., 'en', 'de', 'ja', 'fr', 'es', 'pt-BR', 'zh-CN'). Supported locale codes include over 70 standard language codes. |
| `uom-id` | integer | Yes | Coupa unique identifier of the UOM object to add a translation for. |

#### 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 Object Translation

**Slug:** `COUPA_OBJECT_TRANSLATION_DESTROY`

Tool to delete a UOM translation. Use when you need to permanently remove a specific translation for a Unit of Measure by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Translation record identifier to be deleted. |
| `uom_id` | integer | Yes | Unit of Measure identifier for which the translation belongs. |

#### 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 Object Translations

**Slug:** `COUPA_OBJECT_TRANSLATION_INDEX`

Tool to list all translations for a specific Unit of Measure (UOM). Use when you need to retrieve multi-language translations for UOM objects in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ["id","locale","key","value"]. |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50. |
| `uom_id` | integer | Yes | Unique identifier for the Unit of Measure whose translations you want to retrieve. |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns attributes with one-level associations. |

#### 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 UOM Translation

**Slug:** `COUPA_OBJECT_TRANSLATION_SHOW`

Tool to retrieve a specific translation record for a Unit of Measure (UOM). Use when you need details about a particular UOM translation by ID for multi-language support.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the translation record |
| `uom_id` | integer | Yes | The unique identifier of the parent UOM (Unit of Measure) |

#### 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 Order Confirmation

**Slug:** `COUPA_ORDER_CONFIRMATIONS_DESTROY`

Tool to delete an order confirmation. Use when you need to permanently remove an order confirmation by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Order confirmation ID to delete. |

#### 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 Order List

**Slug:** `COUPA_ORDER_LIST_CREATE`

Tool to create an order pad (order list) in Coupa. Use when you need to create a list, set, or kit of frequently requested items from a supplier catalog for easy ordering.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Order pad identifier/name |
| `locked` | boolean | No | Lock status indicator - when true, the order pad cannot be modified |
| `suppliers` | array | No | List of associated supplier references (provide supplier ID or SupplierReference objects) |
| `base-value` | number | Yes | Base monetary value for the order pad |
| `any-supplier` | boolean | Yes | Flag for supplier selection - set to false to restrict to specific suppliers |
| `add-all-items` | boolean | No | Indicator for adding all items from supplier catalogs (optional) |
| `use-base-value` | boolean | Yes | Whether base value applies |
| `business-groups` | array | No | List of associated business groups (optional) |
| `order-pad-lines` | array | No | Line item collection for the order pad (optional) |
| `order-pad-sections` | array | No | Section groupings for organizing order pad lines (optional) |
| `base-value-currency` | string | Yes | Currency reference for base value (provide currency code as string or CurrencyReference object) |

#### 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 Order List

**Slug:** `COUPA_ORDER_LIST_DESTROY`

Tool to delete an order list (order pad). Use when you need to permanently remove an order list by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Order list ID to delete. |

#### 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 Order List

**Slug:** `COUPA_ORDER_LIST_SHOW`

Tool to retrieve a specific order list (order pad) by ID. Use when you need detailed information about an order list including suppliers, items, and business groups.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the order list to retrieve |

#### 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 Order List

**Slug:** `COUPA_ORDER_LIST_UPDATE`

Tool to update an existing order list (order pad) in Coupa. Use when you need to modify order list attributes such as name, locked status, or supplier settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the order list (order pad) to update. |
| `name` | string | No | Name of the order list. |
| `locked` | boolean | No | Whether the order list is locked. |
| `payload` | object | No | Additional order list attributes to update directly; keys should use Coupa API hyphenated names. |
| `base-value` | number | No | Base value for the order list. |
| `any-supplier` | boolean | No | Whether the order list can be used with any supplier. |
| `use-base-value` | boolean | No | Whether to use base value for the order list. |

#### 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 Order Pads

**Slug:** `COUPA_ORDER_PADS_INDEX`

Tool to list order pads (order lists) from Coupa. Order pads are lists, sets, or kits of frequently requested items within a supplier catalog for streamlined ordering. Use when you need to retrieve order pad IDs, names, and associated suppliers with optional pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name"] |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50 (offset multiples of 50). |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Update Business Entity

**Slug:** `COUPA_PATCH_BUSINESS_ENTITY`

Tool to update a business entity using PATCH method. Use when you need to modify specific fields of an existing business entity without sending all fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the business entity to update. |
| `name` | string | No | Business entity name. |
| `type` | string ("LegalBusinessEntity" | "OrganizationalBusinessEntity") | No | Entity type: 'LegalBusinessEntity' or 'OrganizationalBusinessEntity'. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','display-name']. |
| `status` | string | No | Entity status (e.g., 'active', 'inactive'). |
| `payload` | object | No | Additional business entity attributes to update directly; keys should use Coupa API hyphenated names. |
| `addresses` | array | No | Array of address objects associated with the business entity. |
| `display-name` | string | No | Display name for the entity. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("full" | "limited" | "shallow" | "none") | No | Controls response verbosity: 'none', 'limited', 'shallow', or 'full'. |
| `formation-type` | string ("Organization" | "Person") | No | Formation type: 'Organization' or 'Person'. |
| `primary-address` | object | No | Primary address information. Reference by ID: {'id': 123}. |
| `primary-contact` | object | No | Primary contact details. Reference by ID: {'id': 456}. |
| `country-of-origin` | object | No | Country of origin. Reference by code: {'code': 'US'}. |
| `business-entity-relationships` | array | No | Array of relationship objects linking this entity to others. |
| `business-entity-account-owners` | array | No | Array of account owner objects for the business entity. |
| `business-entity-alternate-names` | array | No | Array of alternate names for the business entity. |
| `business-entity-external-references` | array | No | Array of external reference objects for the business entity. |

#### 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 Purchase Order

**Slug:** `COUPA_PATCH_PURCHASE_ORDER`

Tool to update a purchase order. Use when you need to modify specific fields of an existing PO. Only fields provided will be updated. Note: exported field cannot be updated simultaneously with other fields by default.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal identifier of the purchase order to update. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','po-number','status']. |
| `payload` | object | No | Additional purchase order attributes to update directly; keys should use Coupa API hyphenated names. |
| `currency` | object | No | Transaction currency reference. |
| `exported` | boolean | No | Export flag. Note: cannot update other fields simultaneously by default. |
| `supplier` | object | No | Supplier reference by Coupa internal ID. |
| `po-number` | string | No | Purchase order number (max 20 characters). |
| `hide-price` | boolean | No | Price visibility control. |
| `order-lines` | array | No | Array of order line objects to update/add. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `payment-term` | object | No | Payment terms reference. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `shipping-term` | object | No | Shipping terms reference. |
| `supplier-site` | object | No | Supplier site reference. |
| `classification` | string ("msp" | "supplier" | "vms") | No | Order classification (max 255 characters). |
| `confirm-by-hrs` | integer | No | Confirmation deadline in hours. |
| `ship-to-address` | object | No | Delivery address details. |
| `reason-insight-id` | integer | No | Reason code for changes or reopening. |
| `ship-to-attention` | string | No | Recipient name for shipment (max 255 characters). |
| `transmission-emails` | string | No | Comma-separated recipient emails for transmission. |
| `reason-insight-event-comment` | string | No | Comment for reason insight. |
| `transmission-method-override` | string ("email" | "cxml" | "xml" | "do_not_transmit") | No | Transmission method override (max 30 characters). |

#### 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 Terms

**Slug:** `COUPA_PAYMENT_TERMS_INDEX`

Tool to list payment terms with filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | No | Filter by payment term code |
| `type` | string | No | Filter by payment term type |
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `active` | boolean | No | Filter by active (true/false) |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','code','active'] or nested associations. |
| `offset` | integer | No | Number of records to skip for pagination. |
| `net_due_day` | integer | No | Filter by net due day (1-31) |
| `code_contains` | string | No | Filter where code contains the provided value |
| `created_at_gt` | string | No | Filter records created after this ISO timestamp |
| `created_at_lt` | string | No | Filter records created before this ISO timestamp |
| `discount_rate` | number | No | Filter by discount rate (as decimal) |
| `net_due_month` | integer | No | Filter by net due month (0-6) |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |
| `updated_at_gt` | string | No | Filter records updated after this ISO timestamp |
| `updated_at_lt` | string | No | Filter records updated before this ISO timestamp |
| `code_ends_with` | string | No | Filter where code ends with the provided value |
| `net_cutoff_day` | integer | No | Filter by net cutoff day (1-31) |
| `code_starts_with` | string | No | Filter where code starts with the provided value |
| `discount_due_day` | integer | No | Filter by discount due day (1-31) |
| `discount_due_month` | integer | No | Filter by discount due month (0-6) |
| `discount_cutoff_day` | integer | No | Filter by discount cutoff day (1-31) |
| `days_for_net_payment` | integer | No | Filter by days for net payment |
| `days_for_discount_payment` | integer | No | Filter by days for discount payment |

#### 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 Payment Term

**Slug:** `COUPA_PAYMENT_TERMS_SHOW`

Tool to retrieve a single payment term by ID. Use when you need detailed payment term information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the payment term to retrieve |

#### 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 Projects

**Slug:** `COUPA_PROJECTS_INDEX`

Tool to list/query all projects from Coupa. Use when you need to retrieve project information with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by project ID |
| `name` | string | No | Filter by project name; supports Coupa query operators like [contains], [starts_with], [ends_with] |
| `limit` | integer | No | Maximum number of records to return per request (1-50, default 50) |
| `active` | boolean | No | Filter by active status: true for active projects, false for inactive |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","status",{"commodity":["id","name"]}] |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `status` | string | No | Filter by project status; e.g., 'in_progress', 'completed', 'active', 'pending'. Supports operators like [in], [not_in], [not_eq] |
| `filters` | object | No | Additional attribute filters using Coupa syntax. Example: {'completion-percentage[gt]':'50', 'start-date[gt_or_eq]':'2024-01-01'}. Supports operators: [contains], [starts_with], [ends_with], [gt], [lt], [gt_or_eq], [lt_or_eq], [not_eq], [in], [not_in], [blank] |
| `return_object` | string ("limited" | "shallow") | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Get Project

**Slug:** `COUPA_PROJECTS_SHOW`

Tool to retrieve a single project by ID. Use when you need detailed project information after knowing the project ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the project to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","status",{"commodity":["id","name"]}] |
| `return_object` | string ("limited" | "shallow") | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Update Project

**Slug:** `COUPA_PROJECTS_UPDATE`

Tool to update an existing Coupa project. Use when you need to modify project attributes after confirming project ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the project to update. |
| `name` | string | No | Project identifier; must be unique. |
| `open` | boolean | No | Project is open for everyone to join or owner must invite others. |
| `users` | array | No | Team member assignments. |
| `active` | boolean | No | Active status of the project. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name',{'users':['id','login']}]. |
| `status` | string | No | Project status indicator. |
| `payload` | object | No | Additional project properties to update; use Coupa API hyphenated names as keys. |
| `category` | object | No | The category associated with the project. |
| `end-date` | string | No | Project completion date (format: YYYY-MM-DDTHH:MM:SS+HH:MMZ). |
| `taggings` | array | No | Tags associated with the project. |
| `commodity` | object | No | Associated commodity reference, e.g., {'id': 1}. |
| `department` | object | No | The department associated with the project. |
| `start-date` | string | No | Project commencement date (format: YYYY-MM-DDTHH:MM:SS+HH:MMZ). |
| `description` | string | No | Project details and description. |
| `commodity-id` | integer | No | Unique identifier for a commodity (non-editable). |
| `enabled-tabs` | array | No | List of tabs enabled for linked objects. |
| `mention-name` | string | No | Mention name for the project. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `category-plan` | object | No | Budgeting framework/category plan. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `content-groups` | array | No | Linked organizational units/content groups. |
| `template-group` | object | No | Project template reference. |
| `copy-project-id` | integer | No | Copy project identifier. |
| `completion-percentage` | integer | No | Progress indicator (0-100). |
| `external-reference-number` | string | No | Third-party system identifier for syncing external project IDs. |
| `additional-planned-savings` | string | No | Additional planned savings amount. |
| `allow-users-to-view-member` | string | No | Controls member tab visibility. |
| `display-date-range-warning` | boolean | No | Provide warning if task dates fall outside project dates. |
| `additional-realized-savings` | string | No | Additional realized savings amount. |
| `show-sourcing-rollup-fields` | boolean | No | Show sourcing rollup field if flag enabled. |
| `show-contracts-rollup-fields` | boolean | No | Show contracts rollup field if flag enabled. |
| `show-suppliers-rollup-fields` | boolean | No | Show suppliers rollup field if flag enabled. |
| `additional-negotiated-savings` | string | No | Additional negotiated savings amount. |

#### 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 Purchase Orders

**Slug:** `COUPA_PURCHASE_ORDERS_INDEX`

Tool to list purchase order headers. Use when you need to fetch filtered and paginated purchase order records from Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact match for PO ID. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','po-number',{ 'order-lines': ['id','line-num'] }]. |
| `filter` | string | No | Name of an API Response Filter to control returned fields. |
| `offset` | integer | No | Pagination offset; results are returned in batches of up to 50 (offset multiples of 50). |
| `status` | string | No | Filter by PO status; operators supported, e.g., status[not_eq]=closed. |
| `exported` | boolean | No | Filter by export status; e.g., exported=false to fetch unexported POs. |
| `status_in` | string | No | Multi-status filter; e.g., status[in]=issued,canceled,closed. |
| `created_at_gt` | string | No | Filter POs created after this timestamp (ISO 8601). |
| `created_at_lt` | string | No | Filter POs created before this timestamp (ISO 8601). |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association IDs. |
| `supplier_name` | string | No | Filter POs by associated supplier name. |
| `updated_at_gt` | string | No | Filter POs updated after this timestamp (ISO 8601). |
| `updated_at_lt` | string | No | Filter POs updated before this timestamp (ISO 8601). |
| `show_deleted_lines` | boolean | No | Include deleted PO lines when querying (useful for ERP syncs). |

#### 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 |

### Issue Purchase Order

**Slug:** `COUPA_PURCHASE_ORDERS_ISSUE`

Tool to issue and send a purchase order to the supplier. Use after preparing a PO to dispatch it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to issue |
| `fields` | array | No | JSON array of specific fields/associations to include in the response. Example: ['id', 'status', 'po-number'] |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none' returns no body; 'limited' returns only IDs; 'shallow' returns object attributes with one-level associations |
| `x-coupa-api-user-login` | string | No | Optional Coupa user login to impersonate; sent as x-coupa-api-user-login header |

#### 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 User Account

**Slug:** `COUPA_PUT_USERS`

Tool to update a Coupa user account. Use when you need to modify user information such as name, email, permissions, licenses, or other attributes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the user to update. |
| `email` | string | No | User email address; must be unique across the instance. |
| `login` | string | No | User login; must be unique across the instance. |
| `roles` | array | No | Roles to assign to the user (e.g., [{'id': 1}]). |
| `active` | boolean | No | User active status; true means the user is active. |
| `fields` | string | No | JSON array of fields to return (e.g., "['id','login',{'roles':['id','name']}]"). |
| `manager` | object | No | Manager user reference object (e.g., {'id': 5}). |
| `aic-user` | boolean | No | Enable AI CoPilot license for this user. |
| `api-user` | boolean | No | Enable API access for this user. |
| `ccw-user` | boolean | No | Enable CCW license for this user. |
| `lastname` | string | No | User's last name. |
| `password` | string | No | Password for changing user password; case-sensitive. |
| `firstname` | string | No | User's first name. |
| `department` | object | No | Department reference object (e.g., {'id': 3}). |
| `middlename` | string | No | User's middle name. |
| `phone-work` | object | No | Work phone number object. |
| `travel-user` | boolean | No | Enable travel management license for this user. |
| `user-groups` | array | No | User groups to assign to the user. |
| `expense-user` | boolean | No | Enable expense management license for this user. |
| `legal-entity` | object | No | Legal entity assignment reference object. |
| `mention-name` | string | No | Display name for user mentions. |
| `phone-mobile` | object | No | Mobile phone number object. |
| `return_object` | string | No | Response verbosity control: 'none', 'limited', or 'shallow'. |
| `salesforce-id` | string | No | Salesforce record identifier for integration. |
| `sourcing-user` | boolean | No | Enable sourcing license for this user. |
| `treasury-user` | boolean | No | Enable treasury license for this user. |
| `account-groups` | array | No | Account groups for document security. |
| `analytics-user` | boolean | No | Enable analytics license for this user. |
| `content-groups` | array | No | Content (business) groups for access control. |
| `contracts-user` | boolean | No | Enable contracts management license for this user. |
| `default-locale` | string | No | User's default locale code (e.g., 'en', 'fr', 'de'). |
| `inventory-user` | boolean | No | Enable inventory management license for this user. |
| `invoicing-user` | boolean | No | Enable invoicing license for this user. |
| `sso-identifier` | string | No | Single Sign-on identifier for the user. |
| `approval-groups` | array | No | Approval groups for routing assignments. |
| `can-expense-for` | object | No | User reference object for expense delegation recipient. |
| `default-account` | object | No | Default GL account reference object. |
| `default-address` | object | No | Default address reference object (e.g., {'id': 2}). |
| `employee-number` | string | No | Unique employee identifier. |
| `purchasing-user` | boolean | No | Enable purchasing license for this user. |
| `seniority-level` | string | No | Job grade or seniority band designation. |
| `default-currency` | object | No | Default currency reference object (e.g., {'code': 'USD'}). |
| `risk-assess-user` | boolean | No | Enable risk assessment license for this user. |
| `spend-guard-user` | boolean | No | Enable spend guard license for this user. |
| `business-function` | string | No | Role classification or business function. |
| `supply-chain-user` | boolean | No | Enable supply chain license for this user. |
| `salesforce-enabled` | boolean | No | Enable Salesforce integration for this user. |
| `working-warehouses` | array | No | Warehouse access assignments. |
| `self-approval-limit` | object | No | General self-approval maximum reference object. |
| `country-of-residence` | object | No | Country of residence reference object. |
| `default-account-type` | object | No | Default account type reference object. |
| `escalation-threshold` | object | No | Override triggering amount reference object. |
| `account-security-type` | integer | No | Account security type setting. |
| `authentication-method` | string | No | Authentication method: 'coupa_credentials', 'ldap', or 'saml' (case-sensitive). |
| `category-planner-user` | boolean | No | Enable category planner license for this user. |
| `expenses-delegated-to` | object | No | User reference object for delegate assignment. |
| `expense-approval-limit` | object | No | Maximum expense approval amount reference object. |
| `invoice-approval-limit` | object | No | Invoice authorization limit reference object. |
| `contract-approval-limit` | object | No | Contract authorization limit reference object. |
| `inventory-organizations` | array | No | Inventory organization assignments. |
| `employee-payment-channel` | string | No | Payment channel. Default: 'ERP'; alternative: 'CoupaPay'. |
| `requisition-approval-limit` | object | No | Purchase requisition authority limit reference object. |
| `expense-self-approval-limit` | object | No | Expense self-approval threshold reference object. |
| `invoice-self-approval-limit` | object | No | Invoice self-approval cap reference object. |
| `business-group-security-type` | integer | No | Business group security type. Values: 0 or 1. |
| `contract-self-approval-limit` | object | No | Contract self-approval threshold reference object. |
| `generate-password-and-notify` | string | No | Trigger user invitation with generated password. Values: 'Yes' or 'No'. |
| `requisition-self-approval-limit` | object | No | Requisition self-approval cap reference object. |
| `work-confirmation-approval-limit` | object | No | Service confirmation authority limit reference object. |
| `allow-employee-payment-account-creation` | boolean | No | Allow user to create employee payment accounts. |
| `allow-user-to-upload-invoice-from-mobile` | boolean | No | Allow invoice upload via mobile device. |

#### 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 |

### Query Lookups

**Slug:** `COUPA_QUERY_LOOKUPS`

Tool to query and list lookups with filters. Use when you need to fetch lookup objects that define categories, hierarchies, and standardization lists in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dir` | string ("asc" | "desc") | No | Sort direction options for lookups query. |
| `name` | string | No | Filter by lookup name; exact match on the lookup name. |
| `limit` | integer | No | Maximum number of records to return for pagination. |
| `filter` | string | No | Advanced filter expression for complex query conditions. |
| `offset` | integer | No | Number of records to skip for pagination (offset). |
| `order-by` | string | No | Field name to sort results by (e.g., 'name', 'id'). |
| `return_object` | string ("limited" | "shallow" | "none") | No | Return object type options for controlling response payload size. |

#### 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 Reason Insights

**Slug:** `COUPA_REASON_INSIGHTS_INDEX`

Tool to list Reason Insights. Use when you need to retrieve reason insights with optional filters and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Reason Insight ID |
| `code` | string | No | Exact-match filter by Reason Insight code; supports Coupa query operators |
| `name` | string | No | Filter by Reason Insight name; supports Coupa query operators |
| `active` | boolean | No | Filter by active status: true for active reason insights, false for inactive |
| `fields` | array | No | List of fields to return; e.g., ['id','code']. Provide as a list, will be JSON-encoded in the query. |
| `offset` | integer | No | Pagination offset; results are returned in pages up to 50 |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level associations |

#### 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 Receipt Request

**Slug:** `COUPA_RECEIPT_REQUESTS_CREATE`

Tool to create a new receipt request. Use when you need to create a receipt request for purchase order lines.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string | No | Receipt request type classification. |
| `lines` | array | Yes | List of receipt request line items. At least one line is required. |
| `status` | string | No | Initial status of the receipt request. |

#### 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 Receipt Requests

**Slug:** `COUPA_RECEIPT_REQUESTS_INDEX`

Tool to list receipt requests from Coupa. Use when you need to retrieve receipt request records with optional filtering and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return per request (1-50). |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","status","type"]. |
| `offset` | integer | No | Number of records to skip for pagination. |
| `filters` | object | No | Attribute filters using Coupa query operators. Examples: {'status':'pending'}, {'created_at[gt]':'2024-01-01T00:00:00Z'}, {'id[in]':'1,2,3'}, {'type[contains]':'standard'}. |
| `order_by` | string | No | Field(s) to order results by. |
| `direction` | string ("asc" | "desc") | No | Sort direction for order_by field: 'asc' for ascending, 'desc' for descending. |
| `return_object` | string ("limited" | "shallow") | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full attributes with one-level association 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 |

### Update Receipt Request

**Slug:** `COUPA_RECEIPT_REQUESTS_UPDATE`

Tool to update an existing receipt request via PUT /api/receipt_requests/:id. Use when you need to modify receipt request attributes after confirming the receipt request exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the receipt request to update. |
| `type` | string | No | Receipt request classification type. |
| `lines` | array | No | Array of receipt request line items to update/add. For updates, include line 'id'. Example: [{'id': 123, 'quantity': '10.0', 'description': 'Updated description'}] |
| `status` | string | No | Current state of the receipt request (updates may be restricted depending on workflow/state). |
| `payload` | object | No | Additional receipt request attributes to update directly; keys should use Coupa API hyphenated names. Example: {'status': 'approved', 'type': 'standard'} |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |

#### 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 |

### Release Purchase Order from Buyer Hold

**Slug:** `COUPA_RELEASE_PURCHASE_ORDER_FROM_BUYER_HOLD`

Tool to release a purchase order from buyer hold status. Use when you need to transition a PO from buyer_hold to an active state, allowing further processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to release from buyer hold |
| `fields` | array | No | JSON array of specific fields/associations to include in the response. Example: ['id', 'status', 'po-number'] |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none' returns no body; 'limited' returns only IDs; 'shallow' returns object attributes with one-level associations |

#### 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 Remit-To Address

**Slug:** `COUPA_REMIT_TO_ADDRESSES_DESTROY`

Tool to delete a remit-to address from a supplier. Use when you need to permanently remove a remit-to address by supplier ID and address ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the remit-to address to delete. |
| `supplier_id` | integer | Yes | ID of the supplier who owns the remit-to address. |

#### 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 |

### Remove Content Group from Contract

**Slug:** `COUPA_REMOVE_A_CONTENT_GROUP_ON_CONTRACT`

Tool to remove a specific content group (business group) from a contract. Use when you need to revoke access control for a particular group from a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contract_id` | integer | Yes | ID of the contract from which the content group will be removed |
| `business_group_id` | integer | Yes | ID of the business group/content group to remove from the contract |

#### 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 |

### Remove All Content Groups from Contract

**Slug:** `COUPA_REMOVE_ALL_CONTENT_GROUP_ON_CONTRACT`

Tool to remove all content groups (business groups) from a contract. Use when you need to clear all access control groups from a contract, making it inaccessible to users without unrestricted access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contract_id` | integer | Yes | ID of the contract from which all content groups will be removed |

#### 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 |

### Remove All Content Groups from SIM Record

**Slug:** `COUPA_REMOVE_ALL_CONTENT_GROUP_ON_SIM_RECORD`

Tool to remove all content groups (business groups) from a Supplier Information Management (SIM) record. Use when you need to clear all access control groups from a SIM record, making it inaccessible to users without unrestricted access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sim_id` | integer | Yes | ID of the supplier information record from which all content groups will be removed |

#### 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 |

### Remove All Content Groups from SIM Site

**Slug:** `COUPA_REMOVE_ALL_CONTENT_GROUP_ON_SIM_SITE_RECORD`

Tool to remove all content groups (business groups) from a Supplier Information Management (SIM) site record. Use when you need to clear all access control groups from a SIM site, making it inaccessible to users without unrestricted access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sim_site_id` | integer | Yes | ID of the supplier information site record from which all content groups will be removed |

#### 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 |

### Remove All Content Groups on Supplier

**Slug:** `COUPA_REMOVE_ALL_CONTENT_GROUPS_ON_SUPPLIER`

Tool to remove all content groups (business groups) from a supplier. Use when you need to clear all content group associations from a supplier for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier_id` | integer | Yes | ID of the supplier from which all content groups will be removed |

#### 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 |

### Remove Contract Approval

**Slug:** `COUPA_REMOVE_CONTRACT_APPROVAL`

Tool to remove a manually added approver from a contract. Use when you need to remove an approver or watcher that was manually added to a contract's approval chain.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the contract. |
| `api_user_id` | integer | No | Impersonate as the given user id via X-COUPA-API-USER-ID header. |
| `approval_id` | integer | No | Approval record ID to remove. One of approver_id or approval_id may be required. |
| `approver_id` | integer | No | Coupa internal user ID of the approver to remove. One of approver_id or approval_id may be required. |
| `api_user_email` | string | No | Impersonate as the given user email via X-COUPA-API-USER-EMAIL header. |
| `api_user_login` | string | No | Impersonate as the given user login via X-COUPA-API-USER-LOGIN header. |

#### 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 |

### Remove Content Group from SIM Site

**Slug:** `COUPA_REMOVE_SPECIFIC_CONTENT_GROUP_FROM_SIM_SITE`

Tool to remove a content group (business group) from a Supplier Information Management (SIM) site. Use when you need to revoke a content group assignment from a SIM site for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sim_site_id` | integer | Yes | ID of the supplier information site from which the content group will be removed |
| `business_group_id` | integer | Yes | ID of the business group/content group to remove from the SIM site |

#### 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 |

### Remove Content Group from Supplier Site

**Slug:** `COUPA_REMOVE_SPECIFIC_CONTENT_GROUP_FROM_SUPPLIER_SITE`

Tool to remove a content group (business group) from a supplier site. Use when you need to revoke a content group assignment from a supplier site for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier_site_id` | integer | Yes | ID of the supplier site from which the content group will be removed |
| `business_group_id` | integer | Yes | ID of the business group/content group to remove from the supplier site |

#### 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 |

### Remove Content Group from SIM Record

**Slug:** `COUPA_REMOVE_SPECIFIC_CONTENT_GROUP_ON_SIM_RECORD`

Tool to remove a content group (business group) from a Supplier Information Management (SIM) record. Use when you need to revoke a content group assignment from a SIM record for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sim_id` | integer | Yes | ID of the supplier information record from which the content group will be removed |
| `business_group_id` | integer | Yes | ID of the business group/content group to remove from the SIM record |

#### 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 |

### Remove Content Group from Supplier

**Slug:** `COUPA_REMOVE_SPECIFIC_CONTENT_GROUP_ON_SUPPLIER`

Tool to remove a content group (business group) from a supplier. Use when you need to revoke a content group assignment from a supplier for access control or visibility management.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `supplier_id` | integer | Yes | ID of the supplier from which the content group will be removed |
| `business_group_id` | integer | Yes | ID of the business group/content group to remove from the supplier |

#### 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 |

### Reopen PO Line for Receiving

**Slug:** `COUPA_REOPEN_FOR_RECEIVING_LINE_FROM_EXTERNAL_PO`

Tool to reopen a purchase order line for receiving. Use when a PO line needs to be reopened to allow additional receiving transactions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order line to reopen for receiving |
| `reason-insight-id` | integer | Yes | ID of the reason insight explaining why the line is being reopened |
| `reason-insight-event-comment` | string | Yes | Comment explaining the reason for reopening the line for receiving |

#### 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 |

### Re-Open Soft-Closed PO

**Slug:** `COUPA_RE_OPEN_SOFTCLOSED_PO`

Tool to reopen a soft-closed purchase order. Use when an invoice or credit memo submission is needed, or if a PO was closed prematurely or by mistake.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to reopen |
| `reason-insight-id` | integer | No | The ID of the reason insight for reopening the PO. Use either this or reason-insight-code. |
| `reason-insight-code` | string | No | The code of the reason insight for reopening the PO. Use either this or reason-insight-id. |
| `reason-insight-event-comment` | string | No | Comment describing the reason for reopening the PO |

#### 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 Requisition Lines

**Slug:** `COUPA_REQUISITION_LINES_INDEX`

Tool to retrieve requisition line items from Coupa procurement system. Use when you need to query requisition line data with filtering, pagination, and field selection capabilities.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by requisition line ID |
| `limit` | integer | No | Maximum number of records to return per request (1-50, default: 50) |
| `fields` | string | No | JSON array specifying which fields to return, e.g., ["id","description","total"] |
| `offset` | integer | No | Number of records to skip for pagination (default: 0) |
| `status` | string | No | Filter by line status (e.g., approved, pending) |
| `line-num` | integer | No | Filter by line number |
| `status_in` | string | No | Filter by multiple statuses (comma-separated list, e.g., approved,pending) |
| `description` | string | No | Exact-match filter by line description |
| `created_at_gt` | string | No | Filter lines created after this date (ISO 8601 format with timezone, e.g., 2025-01-01T00:00:00-07:00) |
| `created_at_lt` | string | No | Filter lines created before this date (ISO 8601 format with timezone) |
| `updated_at_gt` | string | No | Filter lines updated after this date (ISO 8601 format with timezone) |
| `need_by_date_gt` | string | No | Filter lines with need-by date after this date (ISO 8601 format with timezone) |
| `description_contains` | string | No | Substring filter for line description |

#### 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 |

### Add To Cart

**Slug:** `COUPA_REQUISITIONS_ADD_TO_CART`

Tool to add items from a requisition to the shopping cart. Use after constructing the add_to_cart payload.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `requisition-lines` | array | Yes | List of requisition line items to add to cart. At least one line is required. |

#### 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 Requisition Attachment

**Slug:** `COUPA_REQUISITIONS_ATTACHMENTS_CREATE`

Tool to create an attachment on a requisition. Use when attaching files, text, or URLs to requisitions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | URL for URL attachments. Required when type='url' |
| `file` | object | No | File to upload. Required when type='file' |
| `text` | string | No | Text content for text attachments. Required when type='text' |
| `type` | string ("file" | "text" | "url") | Yes | Type of the attachment. 'file', 'text', or 'url' |
| `intent` | string | No | Intent of the attachment (max 40 characters). For example, 'Supplier' |
| `requisition_id` | integer | Yes | ID of the requisition to attach the resource |
| `x-coupa-api-user-login` | string | No | Login of the user to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 Requisition

**Slug:** `COUPA_REQUISITIONS_CREATE`

Tool to create a new requisition. Endpoint: POST /api/requisitions

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `buyer-note` | string | No | Buyer note/comment |
| `attachments` | array | No | List of attachments (text or URL) |
| `requested-by` | object | Yes | User who requested the requisition. Provide id, login, or email. |
| `justification` | string | No | Justification for the requisition |
| `ship-to-address` | object | No | Address reference - provide id. |
| `requisition-lines` | array | Yes | List of requisition line items. At least one line is required. |

#### 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 Current Cart

**Slug:** `COUPA_REQUISITIONS_CURRENT_CART`

Tool to get the current user's requisition cart. Use when you need to fetch or initialize the current cart for the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | string | No | JSON array of fields to return; e.g., ['id',{'requisition-lines':['id','line-num']}]. |
| `return_object` | string ("limited" | "shallow") | No | Controls response verbosity: 'limited' returns IDs only, 'shallow' includes one-deep associations. |

#### 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 Requisition

**Slug:** `COUPA_REQUISITIONS_DESTROY`

Tool to delete a requisition. Use when you need to permanently remove a requisition by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa requisition ID to delete. |
| `return_object` | string | No | Optional response control; e.g., 'limited' to return only 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 Requisitions

**Slug:** `COUPA_REQUISITIONS_INDEX`

Tool to list requisitions with filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). |
| `fields` | string | No | JSON array of fields to return; e.g., ['id',{"requisition-lines":["id","line-num"]}] |
| `offset` | integer | No | Number of records to skip for pagination. |
| `status` | string | No | Filter by requisition status (draft, cart, pending_buyer_action, pending_approval, approved, ordered, partially_received, received, abandoned, backgrounded, withdrawn). |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |
| `requested_by_login` | string | No | Filter by requester login |

#### 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 My Requisitions

**Slug:** `COUPA_REQUISITIONS_MINE`

Tool to list the authenticated user's requisitions. Use when you need to retrieve paginated user requisitions with optional filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). Coupa enforces a maximum of 50. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id',{'requisition-lines':['id','line-num']}]. |
| `offset` | integer | No | Number of records to skip for pagination. Must be non-negative. |
| `status` | string ("draft" | "cart" | "pending_buyer_action" | "pending_approval" | "approved" | "ordered" | "partially_received" | "received" | "abandoned" | "backgrounded" | "withdrawn") | No | Filter by requisition status. |
| `created-at` | string | No | Filter requisitions by creation timestamp (ISO 8601). |
| `return_object` | string ("limited" | "shallow") | No | Controls response verbosity: 'limited' returns IDs only, 'shallow' includes one-deep associations. |
| `requested_by_login` | string | No | Filter requisitions by requester login name. |

#### 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 |

### Remove Approver from Requisition

**Slug:** `COUPA_REQUISITIONS_REMOVE_APPROVAL`

Tool to remove an approver from a requisition. Use when you need to remove a manually added approver from a requisition. Endpoint: PUT /api/requisitions/:id/remove_approval

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the requisition. |
| `api_user_id` | integer | No | Impersonate as the given user id via X-COUPA-API-USER-ID header. |
| `approval_id` | integer | No | Approval record ID to remove. This is the recommended parameter for removing an approver. |
| `approver_id` | integer | No | Coupa internal user ID of the approver to remove. May be used in combination with approval_id. |
| `api_user_email` | string | No | Impersonate as the given user email via X-COUPA-API-USER-EMAIL header. |
| `api_user_login` | string | No | Impersonate as the given user login via X-COUPA-API-USER-LOGIN header. |

#### 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 |

### Save Requisition for Later

**Slug:** `COUPA_REQUISITIONS_SAVE_FOR_LATER`

Tool to save a requisition for later. Use when you need to stash a draft requisition without submitting it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the requisition to save for later |
| `fields` | string | No | JSON array of fields to return, e.g. ["id","status"]. Supports nested selection. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response body. none returns no content, limited returns only IDs, shallow returns top-level attributes plus IDs of one-deep associations. If omitted, full object is returned. |

#### 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 Requisition

**Slug:** `COUPA_REQUISITIONS_SHOW`

Tool to retrieve a single requisition by its ID. Use when you need detailed requisition data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the requisition to retrieve. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','status',{'requisition_lines':['id','line_num']}] |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 |

### Submit Requisition for Approval

**Slug:** `COUPA_REQUISITIONS_SUBMIT_FOR_APPROVAL`

Tool to submit a requisition for approval. Use when you need to create a requisition and immediately submit it for approval.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `buyer-note` | string | No | Buyer note/comment |
| `attachments` | array | No | List of attachments (text or URL) |
| `requested-by` | object | Yes | User who requested the requisition. Provide id, login, or email. |
| `justification` | string | No | Justification for the requisition |
| `ship-to-address` | object | No | Address reference - provide id. |
| `requisition-lines` | array | Yes | List of requisition line items. At least one line is required. |

#### 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 and Submit for Approval

**Slug:** `COUPA_REQUISITIONS_UPDATE_AND_SUBMIT_FOR_APPROVAL`

Tool to update a requisition and submit it for approval. Endpoint: PUT /api/requisitions/:id/update_and_submit_for_approval

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa requisition ID to update and submit. |
| `requisition-header` | object | Yes | Writable requisition header fields per Coupa API. |

#### 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 |

### Restart Invoice Approval

**Slug:** `COUPA_RESTART_INVOICE_APPROVAL`

Tool to clear the current approval chain and regenerate a new approval chain for an invoice that has been modified. Use when an invoice has undergone changes requiring the approval workflow to be regenerated. All manually added approvers will be removed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to restart approvals for. |
| `return_object` | string | No | Optional response size control: 'none' (no response body), 'limited' (only IDs), 'shallow' (all attributes with one-deep association 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 |

### Retrieve All SIM Records

**Slug:** `COUPA_RETRIEVE_ALL_SIM_RECORDS`

Tool to retrieve all Supplier Information Management (SIM) records from Coupa. Use when you need to list supplier information records with optional filters for date ranges, export status, supplier ID, name, or status. The SIM API is used to retrieve supplier information collected via Coupa's Supplier Information Management system. Supports pagination with limit and offset parameters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Filter by supplier name (exact match). |
| `limit` | integer | No | Maximum number of records to return per call (1-50). Default: 50 records. |
| `fields` | string | No | JSON array of specific fields to return in response. Example: ["id","name","status"] |
| `offset` | integer | No | Starting position for retrieving records in subsequent calls (default 0). Example: offset=50 retrieves records 51-100. |
| `status` | string | No | Filter by supplier status (e.g., 'active'). Supports operators: [eq], [contains], [starts_with], [ends_with], [not_eq], [in], [not_in]. |
| `exported` | boolean | No | Filter by export status. Set to false to retrieve only records that have not been exported before. |
| `order-by` | string | No | Specifies the field to order results by (e.g., 'id', 'name', 'created-at'). |
| `supplier-id` | integer | No | Filter by associated supplier ID (exact match). |
| `created_at_gt` | string | No | Filter by creation date greater than this timestamp. ISO 8601 format (YYYY-MM-DDTHH:MM:SS). |
| `created_at_lt` | string | No | Filter by creation date less than this timestamp. ISO 8601 format (YYYY-MM-DDTHH:MM:SS). |
| `name_contains` | string | No | Filter by supplier name containing this substring. |
| `updated_at_gt` | string | No | Filter by update date greater than this timestamp. ISO 8601 format (YYYY-MM-DDTHH:MM:SS). |
| `updated_at_lt` | string | No | Filter by update date less than this timestamp. ISO 8601 format (YYYY-MM-DDTHH:MM:SS). |
| `name_ends_with` | string | No | Filter by supplier name ending with this substring. |
| `supplier_id_eq` | integer | No | Filter by supplier ID equal to this value. |
| `supplier_id_gt` | integer | No | Filter by supplier ID greater than this value. |
| `supplier_id_lt` | integer | No | Filter by supplier ID less than this value. |
| `status_contains` | string | No | Filter by supplier status containing this substring. |
| `name_starts_with` | string | No | Filter by supplier name starting with this substring. |
| `created_at_gt_or_eq` | string | No | Filter by creation date greater than or equal to this timestamp. ISO 8601 format. |
| `created_at_lt_or_eq` | string | No | Filter by creation date less than or equal to this timestamp. ISO 8601 format. |
| `updated_at_gt_or_eq` | string | No | Filter by update date greater than or equal to this timestamp. ISO 8601 format. |
| `updated_at_lt_or_eq` | string | No | Filter by update date less than or equal to this timestamp. ISO 8601 format. |

#### 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 |

### Download Contract Legal Agreement

**Slug:** `COUPA_RETRIEVE_CONTRACT_LEGAL_AGREEMENT`

Tool to download the legal agreement file for a contract. Use after confirming the contract ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the contract to retrieve the legal agreement |

#### 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 |

### Retrieve Invoice Clearance Document

**Slug:** `COUPA_RETRIEVE_INVOICE_CLEARANCE_DOCUMENT`

Tool to download the ZATCA compliance clearance document for an invoice. Use when you need the clearance document attached to a specific invoice.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to retrieve the clearance document for. |

#### 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 |

### Retrieve Invoice Image Scan

**Slug:** `COUPA_RETRIEVE_INVOICES_IMAGE_SCAN`

Tool to download the invoice image scan attachment. Use when you need to retrieve the scanned PDF or image file of the original invoice document.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to retrieve the image scan for. |

#### 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 |

### Retrieve SIM Record by ID

**Slug:** `COUPA_RETRIEVE_SIM_RECORD_BY_ID`

Tool to retrieve a specific Supplier Information Management (SIM) record by ID. Use when you need detailed supplier information collected via SIM. Requires SIM API permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The SIM record identifier - unique identifier for the supplier information record to retrieve |
| `fields` | string | No | JSON array of specific fields to return; e.g., ['id','name','status']. |
| `return_object` | string | No | Response verbosity: 'limited' for IDs-only or 'shallow' for shallow associations. |

#### 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 Return to Supplier Transaction

**Slug:** `COUPA_RETURN_TO_SUPPLIER_TRANSACTIONS_DESTROY`

Tool to delete a return to supplier transaction. Use when you need to permanently remove a return to supplier transaction by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa return to supplier transaction ID to delete. |
| `return_object` | string | No | Optional response control; e.g., 'limited' to return only 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 |

### Coupa S3 File Upload or Get

**Slug:** `COUPA_S3_FILE_UPLOAD_OR_GET`

Coupa S3 File Upload or Get

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | No | URL when type='url' |
| `file` | object | No | File to upload (type='file'). |
| `text` | string | No | Text content when type='text' |
| `type` | string ("file" | "text" | "url") | No | Attachment type for upload: 'file', 'text', or 'url' |
| `intent` | string | No | Attachment intent/category (optional, max ~40 chars) |
| `filename` | string | No | Filename when providing base64 content. |
| `mimetype` | string | No | MIME type (e.g., 'text/plain', 'application/pdf') when using base64 content |
| `operation` | string ("upload" | "get") | Yes | 'upload' to create attachment; 'get' to verify attachment exists |
| `content_b64` | string | No | Base64-encoded file content. |
| `resource_id` | integer | No | Coupa resource id for attachment operations |
| `attachment_id` | integer | No | Attachment id to verify (returned as a file reference key if found) |
| `resource_type` | string | No | Coupa resource type (e.g., 'invoices', 'purchase_orders', 'expense_reports') |

#### 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 |

### Schedule Requisition Issuance

**Slug:** `COUPA_SCHEDULE_REQUISITION_ISSUANCE`

Tool to set scheduled issuance dates for requisition lines. Use when you need to schedule specific requisition lines for issuance on a particular date, optionally with automatic retry logic if the requisition is not yet approved.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `requisition_line_ids` | array | Yes | List of requisition line IDs to schedule for issuance. Example: [54214, 54220, 54224] |
| `schedule_issuance_date` | string | Yes | Target issuance date in MM/DD/YYYY format. This is the date when the requisition lines should be issued. |
| `schedule_retry_interval` | integer | No | Number of days before retrying issuance if requisition remains unapproved. This allows automatic retry logic for unapproved requisitions. |

#### 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 Shipping Term

**Slug:** `COUPA_SHIPPING_TERMS_CREATE`

Tool to create a new shipping term in Coupa. Use when you need to provision a new shipping term with a unique code and activation status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique shipping term code identifier (max 255 characters) |
| `active` | boolean | Yes | Whether the shipping term is active and available to users |
| `description` | string | No | Description of the shipping term |
| `content-groups` | array | No | List of content groups (business groups) to associate with this shipping term |

#### 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 Shipping Term

**Slug:** `COUPA_SHIPPING_TERMS_SHOW`

Tool to retrieve a specific shipping term by ID. Use when you need detailed information about shipping terms and conditions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the shipping term to retrieve |

#### 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 Shipping Term

**Slug:** `COUPA_SHIPPING_TERMS_UPDATE`

Tool to update an existing shipping term. Use when you need to modify shipping term attributes after verifying it exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the shipping term to update |
| `code` | string | No | Unique shipping term code identifier (max 255 characters) |
| `active` | boolean | No | Whether the shipping term is active and available to users |
| `description` | string | No | Description of the shipping term |
| `content-groups` | array | No | List of content groups (business groups) to associate with this shipping term |

#### 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 |

### Soft Close PO Line for Invoicing

**Slug:** `COUPA_SOFT_CLOSE_FOR_INVOICING_LINE_FROM_EXTERNAL_PO`

Tool to soft close a purchase order line for invoicing. Use when a PO line should be marked as complete for invoicing purposes but may need to remain open for other operations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order line to soft close for invoicing |
| `reason-insight-id` | integer | No | ID of the reason insight explaining why the line is being soft closed |
| `reason-insight-code` | string | No | Code identifying the reason for soft closing |
| `reason-insight-event-comment` | string | No | Comment explaining the reason for soft closing the line for invoicing |

#### 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 |

### Soft Close PO Line for Receiving

**Slug:** `COUPA_SOFT_CLOSE_FOR_RECEIVING_LINE_FROM_EXTERNAL_PO`

Tool to soft close a purchase order line for receiving. Use when a PO line should be marked as complete for receiving purposes but may need to remain open for other operations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order line to soft close for receiving |
| `reason-insight-id` | integer | No | ID of the reason insight explaining why the line is being soft closed |
| `reason-insight-code` | string | No | Code identifying the reason for soft closing |
| `reason-insight-event-comment` | string | No | Comment explaining the reason for soft closing the line for receiving |

#### 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 |

### Submit Contract for Approval

**Slug:** `COUPA_SUBMIT_CONTRACT_FOR_APPROVAL`

Tool to submit a contract for approval. Use when you need to start the approval process for a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the contract to submit for approval |
| `fields` | array | No | JSON array of specific fields/associations to include in the response. Example: ['id','status'] |
| `api_user_id` | integer | No | Impersonate as the given user id via X-COUPA-API-USER-ID header. |
| `on_behalf_of` | string | No | Perform the action on behalf of this user (email or login); sent as X-COUPA-ON-BEHALF-OF header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user; sent as X-COUPA-BUSINESS-ROLE header. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow' |
| `api_user_email` | string | No | Impersonate as the given user email via X-COUPA-API-EMAIL header. |
| `api_user_login` | string | No | Impersonate as the given user login via X-COUPA-API-USER-LOGIN header. |

#### 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 Supplier Information Site

**Slug:** `COUPA_SUPPLIER_INFORMATION_SITES_DESTROY`

Tool to delete a supplier information site. Use when you need to permanently remove a supplier information site by ID. Requires SIM API permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The Coupa internal identifier for the supplier information site to be deleted. |
| `return_object` | string | No | Optional response control; supports 'none' (empty response), 'limited' (IDs only), or 'shallow' (object with attributes). |

#### 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 Supplier Information Sites

**Slug:** `COUPA_SUPPLIER_INFORMATION_SITES_INDEX`

Tool to list supplier information sites from Coupa SIM (Supplier Information Management). Use when you need to retrieve supplier site data including codes, names, PO methods, contact information, addresses, and status for transmission to ERP or financial systems.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa internal unique identifier for the supplier information site |
| `code` | string | No | Filter by supplier code (unique identifier, max 20 chars); supports Coupa query operators like contains, starts_with, ends_with. |
| `name` | string | No | Filter by supplier information name (max 255 chars); supports Coupa query operators. |
| `limit` | integer | No | Number of records to return per request. Default: 50, Maximum: 50 |
| `active` | boolean | No | Filter by site active status: true for active sites, false for inactive |
| `fields` | string | No | JSON array of specific fields to return in response; e.g., ["id","name","code",{"addresses":["id","street1"]}] |
| `offset` | integer | No | Starting position for pagination. Increment by 50 for successive batches. |
| `exported` | boolean | No | Filter by export status: true for exported records, false for not exported |
| `order_by` | string | No | Field name to sort results by (e.g., created_at, updated_at, id, name) |

#### 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 Supplier Item

**Slug:** `COUPA_SUPPLIER_ITEMS_DESTROY`

Tool to delete a supplier item. Use when you need to permanently remove a supplier item by its unique ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The Coupa unique identifier for the supplier item to delete. |

#### 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 Supplier Risk Aware Feed

**Slug:** `COUPA_SUPPLIER_RISK_AWARE_FEED_DESTROY`

Tool to delete a Supplier Risk Aware Feed. Use when you need to permanently remove a Supplier Risk Aware Feed record by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Supplier Risk Aware Feed ID to delete. |

#### 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 Supplier Risk Aware Feed

**Slug:** `COUPA_SUPPLIER_RISK_AWARE_FEED_SHOW`

Tool to retrieve a specific Supplier Risk Feed record by ID. Use when you need to get governance, risk, and compliance (GRC) data for a supplier from Risk Aware.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the supplier risk aware feed to retrieve |

#### 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 Supplier Site

**Slug:** `COUPA_SUPPLIER_SITES_CREATE`

Tool to create a new supplier site in Coupa. Use when you need to add a new site location for an existing supplier with specific PO transmission methods and contact details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique supplier site code identifier (max 20 characters) |
| `name` | string | Yes | Name of the supplier site |
| `active` | boolean | Yes | Whether the supplier site is active and available for use |
| `cxml-url` | string | No | URL for cXML transmission (required if po-method is 'cxml') |
| `po-email` | string | No | Email address for PO delivery (required if po-method is 'email') |
| `po-method` | string | Yes | Purchase order transmission method. Valid values: cxml, xml, email, prompt, mark_as_sent, buy_online |
| `buyer-hold` | boolean | No | Whether to hold POs for buyer review before transmission |
| `cxml-domain` | string | No | cXML 'From' domain for authentication |
| `cxml-secret` | string | No | Shared secret for cXML authentication |
| `supplier-id` | integer | Yes | ID of the parent supplier to which this site belongs |
| `cxml-identity` | string | No | cXML 'From' identity for authentication |
| `cxml-protocol` | string | No | Transmission protocol for cXML |
| `default-locale` | string | No | Default locale setting for the supplier site |
| `payment-method` | string | No | Default payment method for this supplier site |
| `cxml-ssl-version` | string | No | SSL version for cXML transmission. Valid values: TLSv1_2, TLSv1_1, TLSv1 |
| `po-change-method` | string | Yes | Method for transmitting purchase order changes. Valid values: cxml, xml, email, prompt, mark_as_sent, buy_online |
| `cxml-http-username` | string | No | HTTP username for cXML access credentials |
| `disable-cert-verify` | boolean | No | Whether to disable certificate verification |
| `cxml-supplier-domain` | string | No | cXML 'To' supplier domain |
| `allow-change-requests` | string | No | Setting for allowing CSP change requests |
| `cxml-supplier-identity` | string | No | cXML 'To' supplier identity |
| `allow-order-confirmation-item-substitutions` | integer | No | Settings for item substitutions in order confirmations |

#### 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 Supplier Site

**Slug:** `COUPA_SUPPLIER_SITES_DESTROY`

Tool to delete a supplier site. Use when you need to remove a supplier site by ID. Note: This performs a soft delete by setting the 'active' field to false rather than physically removing the record.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Supplier site ID to delete. |

#### 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 Supplier

**Slug:** `COUPA_SUPPLIERS_SHOW`

Tool to retrieve a single supplier. Use when you need detailed supplier information by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the supplier to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','status']. |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 Supplier

**Slug:** `COUPA_SUPPLIERS_UPDATE`

Tool to update a supplier. Use when revising supplier details after verifying the supplier exists; only changed fields need to be included.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the supplier to update. |
| `duns` | string | No | DUNS number. |
| `name` | string | No | Supplier name. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name']. |
| `number` | string | No | Supplier number. |
| `status` | string | No | Supplier status; defaults to 'draft' on create if unset. |
| `on-hold` | boolean | No | Put supplier on hold. |
| `payload` | object | No | Additional supplier attributes to update directly; keys should use Coupa API hyphenated names. |
| `cxml-url` | string | No | cXML endpoint URL. |
| `po-email` | string | No | Email used when po-method=email. |
| `po-method` | string ("cxml" | "xml" | "email" | "prompt" | "mark_as_sent" | "buy_online") | No | Purchase order transmission method. |
| `cxml-domain` | string | No | cXML domain. |
| `cxml-secret` | string | No | cXML secret. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `payment-term` | object | No | Payment term by ID or code. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `cxml-identity` | string | No | cXML identity. |
| `cxml-protocol` | string | No | cXML protocol. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `shipping-term` | object | No | Shipping term by ID. |
| `account-number` | string | No | Account number. |
| `primary-address` | object | No | Primary address details. |
| `primary-contact` | object | No | Primary contact details. |
| `allow-cxml-invoicing` | boolean | No | Enable cXML invoicing. |
| `cxml-supplier-domain` | string | No | cXML supplier domain. |
| `allow-inv-from-connect` | boolean | No | Enable invoicing from Coupa Connect. |
| `cxml-supplier-identity` | string | No | cXML supplier identity. |
| `invoice-matching-level` | string ("2-way" | "3-way" | "3-way-direct" | "none") | No | Invoice matching level. |

#### 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 |

### Sync Supplier User Locale

**Slug:** `COUPA_SYNC_SUPPLIER_USER_LOCALE`

Tool to sync supplier user locale settings. Use when you need to synchronize locale preferences for a specific supplier user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address of the supplier user whose locale needs to be synced. |
| `supplier_id` | integer | Yes | Coupa internal ID of the supplier to which the user belongs. |

#### 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 Task

**Slug:** `COUPA_TASKS_DESTROY`

Tool to delete a task. Use when you need to permanently remove a task by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa task ID to delete. |

#### 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 Task by ID

**Slug:** `COUPA_TASKS_SHOW`

Tool to retrieve a single task by ID. Use when you need detailed task information after knowing the task ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the task to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','title','status']. |
| `return_object` | string | No | Response verbosity: 'shallow' returns all attributes and IDs of one-deep associations. |

#### 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 Task

**Slug:** `COUPA_TASKS_UPDATE`

Tool to update an existing Task in Coupa via PUT /api/tasks/:id. Use when you need to modify task attributes such as title, description, status, percentage, owner, or linked objects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the task to update. |
| `title` | string | No | Task title. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','title','status']. |
| `status` | string | No | Task status (e.g., 'pending', 'in_progress', 'completed'). |
| `payload` | object | No | Additional task attributes to update directly; keys should use Coupa API hyphenated names. |
| `due-date` | string | No | Task due date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS). |
| `duration` | number | No | Task duration in days. |
| `owner-id` | integer | No | User ID to whom the task is assigned. |
| `percentage` | integer | No | Task completion percentage (0-100). |
| `start-date` | string | No | Task start date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS). |
| `description` | string | No | Task description or details. |
| `linkable-id` | integer | No | ID of the linked object (e.g., requisition, purchase order). Required if linkable-type is provided. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `linkable-type` | string | No | Type of the linked object (e.g., 'Requisition', 'PurchaseOrder'). Required if linkable-id is provided. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |

#### 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 |

### Query Tax Registrations

**Slug:** `COUPA_TAX_REGISTRATIONS_INDEX`

Tool to query tax registrations from Coupa. Use when you need to retrieve tax identification numbers and fiscal representative details for entities.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa unique identifier |
| `local` | boolean | No | Filter by local status: true for non-cross-border registrations, false otherwise |
| `active` | boolean | No | Filter by active status: true for enabled tax codes, false for disabled |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","number","active"]. |
| `number` | string | No | Filter by tax registration number; supports operators like contains, starts_with, ends_with. |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50 |
| `owner-id` | integer | No | Filter by Coupa unique identifier of the associated object |
| `owner-type` | string | No | Filter by type of the owning object |
| `country_code` | string | No | Filter by country code where the tax code is applied |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns attributes with one-level associations. |

#### 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 Tax Registration

**Slug:** `COUPA_TAX_REGISTRATIONS_SHOW`

Tool to retrieve a single tax registration record by ID. Use when you need detailed tax registration information including country, registration number, and fiscal representative.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the tax registration to retrieve |

#### 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 |

### Unschedule Requisition Issuance

**Slug:** `COUPA_UNSCHEDULE_REQUISITION_ISSUANCE`

Tool to remove scheduled issuance dates from requisition lines. Use when you need to unschedule requisition lines that were previously configured for automatic purchase order issuance.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `requisition_line_ids` | array | Yes | Array of requisition line IDs to unschedule from automatic PO issuance |

#### 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 Units of Measure

**Slug:** `COUPA_UO_MS_INDEX`

Tool to list units of measure. Use when retrieving or filtering UOM catalog for inventory or purchasing flows.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | No | Exact-match filter by Coupa UOM ID |
| `code` | string | No | Filter by UOM code; supports operators like contains, starts_with, ends_with. |
| `name` | string | No | Filter by UOM name; supports standard operators. |
| `active` | boolean | No | Filter by active status (true or false). |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","code","name"]. |
| `offset` | integer | No | Pagination offset; results are returned in pages of up to 50. |
| `created_at_gt` | string | No | Filter UOMs created after this timestamp (ISO 8601). |
| `created_at_lt` | string | No | Filter UOMs created before this timestamp (ISO 8601). |
| `return_object` | string | No | Response size control: 'limited' returns only IDs; 'shallow' returns attributes with one-level associations. |
| `updated_at_gt` | string | No | Filter UOMs updated after this timestamp (ISO 8601). |
| `updated_at_lt` | string | No | Filter UOMs updated before this timestamp (ISO 8601). |
| `allowable-precision` | integer | No | Filter by allowable precision; supports comparison operators (gt, lt, etc.). |

#### 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 Budget Line

**Slug:** `COUPA_UPDATE_BUDGET_LINE`

Tool to update an existing budget line in Coupa. Use when modifying budget line attributes such as amount, description, remaining balance, or account segments after confirming the budget line ID exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the budget line to update. |
| `notes` | string | No | Additional notes or comments for the budget line. |
| `amount` | number | No | Budget line amount (decimal). The total budgeted amount for this line. |
| `remaining` | number | No | Remaining budget amount (decimal). The amount left available to spend from this budget line. |
| `segment-1` | string | No | Account segment 1 value for chart of accounts categorization. |
| `segment-2` | string | No | Account segment 2 value for chart of accounts categorization. |
| `description` | string | No | Budget line description explaining the purpose or details of this budget line. |
| `owner-is-approver` | boolean | No | Whether the budget line owner is also an approver for transactions against this budget line. |

#### 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 Budget Lines Adjust

**Slug:** `COUPA_UPDATE_BUDGET_LINES_ADJUST`

Tool to adjust a budget line in Coupa. Use when you need to perform an adjustment operation on an existing budget line. This endpoint does not require a request body and returns an empty response on success.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The ID of the budget line to adjust |

#### 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 Business Entity

**Slug:** `COUPA_UPDATE_BUSINESS_ENTITY`

Tool to update a business entity in Coupa. Use when you need to modify business entity attributes after verifying the entity exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the business entity to update. |
| `name` | string | No | Unique name of the business entity. |
| `type` | string ("LegalBusinessEntity" | "OrganizationalBusinessEntity") | No | Type of business entity. |
| `status` | string | No | Status of the business entity. |
| `payload` | object | No | Additional business entity attributes to update; use Coupa API hyphenated names as keys. |
| `addresses` | array | No | Collection of addresses associated with the business entity. |
| `display-name` | string | No | Display name for the business entity. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `formation-type` | string ("Organization" | "Person") | No | Formation type of the business entity. |
| `primary-address` | object | No | Primary address reference for the business entity. |
| `primary-contact` | object | No | Primary contact details for the business entity. |
| `country-of-origin` | object | No | Country where the business entity originates. |
| `business-entity-relationships` | array | No | Relationships with other business entities. |
| `business-entity-account-owners` | array | No | Account owners for the business entity. |
| `business-entity-alternate-names` | array | No | Alternate names for the business entity. |
| `business-entity-external-references` | array | No | External system references for the business entity. |

#### 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 Commodities

**Slug:** `COUPA_UPDATE_COMMODITIES`

Tool to update an existing Coupa commodity. Use when modifying commodity attributes after confirming the commodity ID exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The Coupa unique identifier of the commodity to update |
| `name` | string | No | Unique commodity identifier (max 255 chars) |
| `active` | boolean | No | Controls availability to users - true makes it available, false inactivates it |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','active']. |
| `payload` | object | No | Additional commodity properties to update; use Coupa API hyphenated names as keys. |
| `category` | string ("goods" | "services" | "monetary" | "others") | No | Category options for commodities. |
| `preferred` | string ("Yes" | "No" | "Automatic" | "Always" | "Never") | No | Preferred options for commodities. |
| `subcategory` | string ("raw_materials" | "investment_goods" | "services_exceptions") | No | Subcategory options for commodities. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `deductibility` | string ("fully_deductible" | "partially_deductible" | "not_deductible") | No | Deductibility options for commodities. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `translated-name` | string | No | Localized name variant for the commodity |

#### 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 Contract Legal Agreement

**Slug:** `COUPA_UPDATE_CONTRACT_LEGAL_AGREEMENT`

Tool to update a contract's legal agreement file. Use when adding or replacing the legal agreement PDF on a contract.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the contract to add or update the legal agreement file |
| `file` | object | No | Use with a binary (e.g., PDF) file. |
| `fields` | string | No | Optional fields selector per Coupa API as a JSON string. Example: ['id', {'legal_agreement':['id','file-url']}] |
| `raw_file_name` | string | No | Filename to use when uploading raw content (e.g., 'agreement.pdf') |
| `return_object` | string ("shallow" | "limited" | "none") | No | Optional return object size: none \| limited \| shallow |
| `raw_file_mimetype` | string | No | MIME type for raw content (e.g., 'application/pdf') |
| `x-coupa-api-user-login` | string | No | Optional Coupa user login to impersonate; sent as 'x-coupa-api-user-login' header |
| `raw_file_content_base64` | string | No | Base64-encoded file content used when a file reference is not available |

#### 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 Exchange Rate

**Slug:** `COUPA_UPDATE_EXCHANGE_RATE`

Tool to update an exchange rate between two currencies in Coupa. Use when you need to modify exchange rate values or effective dates. Exchange rates are one-way only (e.g., USD→EUR and EUR→USD require separate records). The currencies must already exist in the system before updating the exchange rate.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the exchange rate to update. |
| `rate` | number | No | The exchange rate value between the source and target currencies. For example, if 1 USD = 0.85 EUR, the rate is 0.85. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','rate','rate-date']. |
| `payload` | object | No | Additional exchange rate attributes to update directly; keys should use Coupa API hyphenated names. |
| `rate-date` | string | No | The effective date when this exchange rate applies. Format: YYYY-MM-DD. |
| `to-currency` | object | No | Currency reference object. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `from-currency` | object | No | Currency reference object. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |

#### 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 Existing Address

**Slug:** `COUPA_UPDATE_EXISTING_ADDRESS`

Tool to update an existing address in Coupa. Use when revising address details after verifying the address exists and is active.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the address to update. |
| `city` | string | No | City name. |
| `name` | string | No | Address nickname for identification. |
| `state` | string | No | State or province abbreviation. |
| `active` | boolean | No | Controls whether address is available to users. Cannot update if address is already inactive. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','city']. |
| `country` | object | No | Country object reference. Must exist in system. Can specify by id, code, or name. |
| `payload` | object | No | Additional address attributes to update directly; keys should use Coupa API hyphenated names. |
| `street1` | string | No | Address line 1 (primary street address). |
| `street2` | string | No | Address line 2 (suite, building, etc.). |
| `street3` | string | No | Address line 3 (additional address information). |
| `street4` | string | No | Address line 4 (additional address information). |
| `attention` | string | No | Attention line for the address (recipient name or department). |
| `vat-number` | string | No | VAT identifier for the address. |
| `postal-code` | string | No | Postal or ZIP code. |
| `vat-country` | object | No | VAT country reference. Must exist in system. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `location-code` | string | No | Location code for the address. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none' (no response), 'limited' (IDs only), or 'shallow' (all attributes + IDs of associations). |
| `state-iso-code` | string | No | ISO format state code (CC-SSS format, e.g., US-CA for California). |
| `local-tax-number` | string | No | Local tax identifier for the address. |
| `business-group-name` | string | No | Content group name for access control. |

#### 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 Existing Commodity

**Slug:** `COUPA_UPDATE_EXISTING_COMMODITY`

Tool to update an existing commodity in Coupa. Use when you need to modify commodity attributes like name, category, or active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier for the commodity to update |
| `name` | string | No | Commodity name (max 255 characters) |
| `active` | boolean | No | A false value will inactivate the commodity making it no longer available to users |
| `category` | string ("goods" | "services" | "monetary" | "others") | No | Category options for commodities. |
| `preferred` | string ("Yes" | "No" | "Automatic" | "Always" | "Never") | No | Preferred options for commodities. |
| `subcategory` | string ("raw_materials" | "investment_goods" | "services_exceptions") | No | Subcategory options for commodities. |
| `deductibility` | string ("fully_deductible" | "partially_deductible" | "not_deductible") | No | Deductibility options for commodities. |
| `translated-name` | string | No | Translated name of the commodity |

#### 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 Existing Lookup Value

**Slug:** `COUPA_UPDATE_EXISTING_LOOKUP_VALUE`

Tool to update an existing lookup value in Coupa. Use when you need to modify lookup value attributes like name, description, or active status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the lookup value to update. |
| `name` | string | No | The lookup value's display name. |
| `active` | boolean | No | Controls visibility; setting to false inactivates the lookup value. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','name','active']. |
| `parent` | object | No | External Ref Code of the parent element in hierarchy, e.g., {'external-ref-code': '123'}. |
| `payload` | object | No | Additional lookup value properties to update; use Coupa API hyphenated names as keys. |
| `lookup-id` | integer | No | Associated lookup identifier to update the lookup for a lookup value. |
| `is-default` | boolean | No | Designates this as the default option. |
| `description` | string | No | Text describing the lookup value. |
| `account-type` | object | No | Reference to the associated account type, e.g., {'id': 1}. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `external-ref-num` | string | No | The actual account value used in accounting systems. |
| `external-ref-code` | string | No | Hierarchical identifier for lookups; concatenates External Ref Num fields. |

#### 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 Existing Payment Term

**Slug:** `COUPA_UPDATE_EXISTING_PAYMENT_TERM`

Tool to update an existing payment term in Coupa. Use when you need to modify payment term attributes after confirming the payment term ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the payment term to update. |
| `code` | string | No | Payment term code identifier. |
| `type` | string ("DaysAfterNetPaymentTerm" | "SpecificDayPaymentTerm") | No | Payment term type: DaysAfterNetPaymentTerm or SpecificDayPaymentTerm. |
| `active` | boolean | No | Activation status; false inactivates, true activates the payment term. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','code','description']. |
| `payload` | object | No | Additional payment term attributes to update directly; keys should use Coupa API hyphenated names. |
| `description` | string | No | Descriptive text for the payment term. |
| `net-due-day` | integer | No | Determines payment due date (1-31). |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `discount-rate` | number | No | Discount percentage rate (as decimal). |
| `net-due-month` | integer | No | Determines payment due date (0-6). |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `content-groups` | array | No | Associated content groups (business groups). |
| `net-cutoff-day` | integer | No | Helps to determine payment due date if document (1-31). |
| `discount-due-day` | integer | No | Used to calculate discount due date (1-31). |
| `discount-due-month` | integer | No | Calculates discount due date with day (0-6). |
| `discount-cutoff-day` | integer | No | Documents before this day are eligible for discount (1-31). |
| `days-for-net-payment` | integer | No | Days allowed for net payment. |
| `days-for-discount-payment` | integer | No | Days allowed for discount payment. |

#### 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 Existing Supplier Item

**Slug:** `COUPA_UPDATE_EXISTING_SUPPLIER_ITEM`

Tool to update an existing supplier item in Coupa. Use when modifying supplier item details such as price, availability, or other attributes after verifying the supplier item exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the supplier item to update. |
| `item` | object | No | Item reference, e.g., {'id': 202}. |
| `price` | string | No | Item price as a decimal string. |
| `catalog` | object | No | Associated catalog reference, e.g., {'id': 5}. |
| `payload` | object | No | Additional supplier item attributes to update directly; keys should use Coupa API hyphenated names. |
| `contract` | object | No | Related contract reference, e.g., {'id': 10}. |
| `currency` | object | No | Currency object reference, e.g., {'code': 'USD'} or {'id': 1}. |
| `supplier` | object | No | Supplier reference, e.g., {'id': 3} or {'name': 'Office Depot (USA)'}. |
| `lead-time` | integer | No | Lead time value in days. |
| `preferred` | boolean | No | Preferred supplier indicator. |
| `purchasable` | boolean | No | Whether the item is purchasable. |
| `savings-pct` | string | No | Savings percentage as a decimal string. |
| `unspsc-code` | string | No | UNSPSC classification code. |
| `availability` | string ("in_stock" | "out_of_stock" | "backordered") | No | Stock status: in_stock, out_of_stock, or backordered. |
| `manufacturer` | string | No | Manufacturer name. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `price-tier-1` | string | No | Price tier 1 as a decimal string. |
| `price-tier-2` | string | No | Price tier 2 as a decimal string. |
| `price-tier-3` | string | No | Price tier 3 as a decimal string. |
| `price-tier-4` | string | No | Price tier 4 as a decimal string. |
| `price-tier-5` | string | No | Price tier 5 as a decimal string. |
| `price-tier-6` | string | No | Price tier 6 as a decimal string. |
| `price-tier-7` | string | No | Price tier 7 as a decimal string. |
| `price-tier-8` | string | No | Price tier 8 as a decimal string. |
| `price-tier-9` | string | No | Price tier 9 as a decimal string. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `contract-term` | object | No | Contract term details reference. |
| `price-tier-10` | string | No | Price tier 10 as a decimal string. |
| `price-tier-11` | string | No | Price tier 11 as a decimal string. |
| `price-tier-12` | string | No | Price tier 12 as a decimal string. |
| `price-tier-13` | string | No | Price tier 13 as a decimal string. |
| `price-tier-14` | string | No | Price tier 14 as a decimal string. |
| `price-tier-15` | string | No | Price tier 15 as a decimal string. |
| `price-tier-16` | string | No | Price tier 16 as a decimal string. |
| `price-tier-17` | string | No | Price tier 17 as a decimal string. |
| `price-tier-18` | string | No | Price tier 18 as a decimal string. |
| `price-tier-19` | string | No | Price tier 19 as a decimal string. |
| `price-tier-20` | string | No | Price tier 20 as a decimal string. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none' (nothing returned), 'limited' (only IDs returned), 'shallow' (returns all attributes/fields and IDs of one-deep associations). Default returns full object. |
| `order-increment` | string | No | Order increment value as a decimal string. |
| `availability-date` | string | No | Date of availability change in ISO 8601 format (YYYY-MM-DDTHH:MM:SS+HH:MM). |
| `supplier-part-num` | string | No | Supplier's part number. |
| `supplier-aux-part-num` | string | No | Auxiliary part number. |
| `minimum-order-quantity` | string | No | Minimum order amount as a decimal string. |

#### 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 Existing Task

**Slug:** `COUPA_UPDATE_EXISTING_TASK`

Tool to update an existing task within a specific project in Coupa via PUT /api/projects/:project_id/tasks/:task_id. Use when you need to modify task attributes for a project-linked task.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Task title. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','title','status']. |
| `status` | string | No | Current task state (e.g., 'pending', 'in_progress', 'completed'). |
| `payload` | object | No | Additional task attributes to update directly; keys should use Coupa API hyphenated names. |
| `task_id` | integer | Yes | The unique identifier of the task to update. |
| `due-date` | string | No | Task due date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS). |
| `duration` | number | No | Task duration in days. |
| `owner-id` | integer | No | User ID to whom the task is assigned. |
| `percentage` | integer | No | Task completion percentage (0-100). |
| `project_id` | integer | Yes | The unique identifier of the project containing the task. |
| `start-date` | string | No | Task start date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS). |
| `description` | string | No | Task description providing additional details. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |

#### 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 User Address

**Slug:** `COUPA_UPDATE_EXISTING_USER_ADDRESS`

Tool to update an existing user address in Coupa. Use when you need to modify address details for a specific user's address.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the address to update. |
| `city` | string | No | City name. |
| `name` | string | No | Address 'Nickname' or label to identify this address. |
| `state` | string | No | State abbreviation. |
| `active` | boolean | No | Set to true to activate address or false to deactivate. Inactive addresses are not available to users. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","city","state","country"]. |
| `country` | object | No | Country information for the address. |
| `street1` | string | No | Address Line 1 (primary street address). |
| `street2` | string | No | Address Line 2 (apartment, suite, unit, etc.). |
| `street3` | string | No | Address Line 3 (additional address information). |
| `street4` | string | No | Address Line 4 (additional address information). |
| `attention` | string | No | Address Default Attention Line / contact person name. |
| `vat-number` | string | No | VAT number associated with this address. |
| `postal-code` | string | No | Postal/ZIP code. |
| `vat-country` | object | No | Country information for the address. |
| `coupa_user_id` | integer | Yes | ID of the user whose address to update. |
| `location-code` | string | No | Location code for the address. |
| `return_object` | string | No | Response verbosity: 'none' (no response), 'limited' (minimal fields), or 'shallow' (full attributes with one-level associations). |
| `state-iso-code` | string | No | ISO Code for State in format CC-SSS (e.g., 'US-CA' for California). |
| `external-src-ref` | string | No | External Source Reference identifier. |
| `local-tax-number` | string | No | Local tax number for the address. |
| `external-src-name` | string | No | External Source Name. |
| `business-group-name` | string | No | Content Group Name for Address. |

#### 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 External PO with Line Level

**Slug:** `COUPA_UPDATE_EXTERNAL_PO_WITH_LINE_LEVEL`

Tool to update an external purchase order with line level confirmation and tax lines. Use when updating PO line details, adding tax information, or associating order confirmation IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the purchase order to update |
| `order-lines` | array | Yes | List of order lines to update with their IDs and new values |
| `order-confirmation-id` | integer | No | Order confirmation ID to associate with the purchase order |
| `external-reference-number` | string | No | External reference number for the purchase order |

#### 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 Image Scan on Invoice

**Slug:** `COUPA_UPDATE_IMAGE_SCAN_ON_AN_INVOICE`

Tool to update image scan on an invoice via PUT /api/invoices/:id/image_scan. Use when updating an invoice's scanned document by providing either a file or URL reference.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to update image scan for |
| `url` | string | No | URL of the image scan when type is 'url'. Must begin with 'http://' or 'https://' |
| `type` | string ("file" | "url") | Yes | Type of image scan update: 'file' for direct file upload or 'url' for providing a URL reference |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. Default varies by operation |

#### 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 Invoice

**Slug:** `COUPA_UPDATE_INVOICES`

Tool to update an existing invoice in Coupa. Use when you need to modify invoice fields such as notes, payment information, or status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to update. |
| `fields` | string | No | JSON array of fields to return in response; e.g., ['id','invoice-number',{'currency':['code']}]. |
| `status` | string | No | Invoice status (e.g., 'pending_approval', 'approved', 'disputed'). |
| `payload` | object | No | Additional invoice fields to update using Coupa API hyphenated field names as keys (e.g., 'is-credit-note', 'original-invoice-date', 'account-allocations', 'custom-fields'). |
| `currency` | object | No | Currency reference object, e.g., {'code': 'USD'}. |
| `invoice-date` | string | No | Invoice date (format: YYYY-MM-DD). IMPORTANT: Provide only the date, do not include timestamp to avoid credit note linking issues. |
| `payment-date` | string | No | Date when payment was made (format: YYYY-MM-DD). |
| `payment-term` | object | No | Payment term reference object, e.g., {'id': 1} or {'code': 'NET30'}. |
| `exchange-rate` | string | No | Exchange rate for currency conversion. |
| `internal-note` | string | No | Internal notes for the invoice (visible to internal users only). |
| `payment-notes` | string | No | Notes related to payment processing. |
| `return_object` | string | No | Optional response verbosity control: 'none' (no response body), 'limited' (only IDs), 'shallow' (all attributes with one-deep association IDs). |
| `supplier-note` | string | No | Notes visible to the supplier. |
| `invoice-number` | string | No | Invoice number from the supplier. |
| `payment-method` | object | No | Payment method reference object, e.g., {'id': 1}. |

#### 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 Items Supplier Items

**Slug:** `COUPA_UPDATE_ITEMS_SUPPLIER_ITEMS`

Tool to update a supplier item for a specific item in Coupa. Use when you need to modify supplier item details like price, lead time, or preferred status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `price` | string | No | Price as decimal string |
| `item_id` | integer | Yes | The ID of the item |
| `contract` | object | No | Reference to a contract. |
| `currency` | object | No | Reference to a currency. |
| `lead-time` | integer | No | Lead time in days |
| `preferred` | boolean | No | Whether this supplier item is preferred |
| `savings-pct` | string | No | Savings percentage as decimal string |
| `unspsc-code` | string | No | UNSPSC code |
| `availability` | string | No | Availability status: in_stock, out_of_stock, or backordered |
| `manufacturer` | string | No | Manufacturer name |
| `price-tier-1` | string | No | Price tier 1 as decimal string |
| `price-tier-2` | string | No | Price tier 2 as decimal string |
| `price-tier-3` | string | No | Price tier 3 as decimal string |
| `price-tier-4` | string | No | Price tier 4 as decimal string |
| `price-tier-5` | string | No | Price tier 5 as decimal string |
| `contract-term` | object | No | Reference to a contract term. |
| `order_increment` | string | No | Order increment as decimal string |
| `supplier_item_id` | integer | Yes | The ID of the supplier item to update |
| `availability-date` | string | No | Availability date in ISO format |
| `supplier-part-num` | string | No | Supplier part number |
| `supplier-aux-part-num` | string | No | Supplier auxiliary part number |
| `minimum_order_quantity` | string | No | Minimum order quantity as decimal string |

#### 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 Payables Invoices Track In Coupa

**Slug:** `COUPA_UPDATE_PAYABLES_INVOICES_TRACK_IN_COUPA`

Tool to start tracking an invoice payable in Coupa. Use when you need to change an externally tracked invoice to be tracked within Coupa's payment system. The invoice status will typically change to 'ready_to_pay'.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the invoice payable to start tracking in Coupa |

#### 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 Pay Order Status to Ready to Pay

**Slug:** `COUPA_UPDATE_PAY_ORDER_STATUS_TO_READY_TO_PAY`

Tool to update a payable order status to ready to pay. Use when you need to transition a payable order to a 'ready to pay' status for payment processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `pay_order_id` | integer | Yes | The unique Coupa identifier of the payable order to mark as ready to pay |

#### 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 Project Member as Owner

**Slug:** `COUPA_UPDATE_PROJECT_MEMBER_AS_OWNER`

Tool to update a project member as owner in Coupa. Use when you need to change owner/administrator or participant status for a project membership.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `owner` | boolean | Yes | Whether the user is a project owner/administrator. Set to true to designate as owner. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","owner","participant"] |
| `user_id` | integer | No | The ID of the user being updated. Can be null for certain membership types. |
| `project_id` | integer | Yes | The ID of the project. |
| `participant` | boolean | Yes | Whether the user is a participant in the project. |
| `return_object` | string | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `project_membership_id` | integer | Yes | Coupa unique identifier of the project membership to update. |

#### 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 Projects Tasks

**Slug:** `COUPA_UPDATE_PROJECTS_TASKS`

Tool to update an existing task within a specific project in Coupa via PATCH /api/projects/:project_id/tasks/:id. Use when you need to partially modify task attributes for a project-linked task.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the task to update. |
| `title` | string | No | Task title. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','title','status']. |
| `status` | string | No | Current task state (e.g., 'pending', 'in_progress', 'completed'). |
| `payload` | object | No | Additional task attributes to update directly; keys should use Coupa API hyphenated names. |
| `due-date` | string | No | Task due date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS). |
| `duration` | number | No | Task duration in days. |
| `owner-id` | integer | No | User ID to whom the task is assigned. |
| `percentage` | integer | No | Task completion percentage (0-100). |
| `project_id` | integer | Yes | The unique identifier of the project containing the task. |
| `start-date` | string | No | Task start date in ISO format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS). |
| `description` | string | No | Task description providing additional details. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |

#### 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 PO Change (Remote Approver)

**Slug:** `COUPA_UPDATE_PURCHASE_ORDER_CHANGE_REMOTE_APPROVER`

Tool to update a purchase order change with remote approver information. Use when you need to modify a pending PO change request by providing the current approver's login.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `payload` | object | No | Additional order header properties to update using Coupa API hyphenated names as keys |
| `po_change_id` | integer | Yes | Coupa internal ID of the purchase order change to update |
| `approver_login` | string | Yes | The current approver's login/username. Must exist in Coupa system. |
| `order-header-id` | integer | No | Purchase order header identifier |
| `reason-insight-id` | integer | No | Reason insight identifier |
| `reason-insight-code` | string | No | Reason insight code for the purchase order change |
| `reason-insight-event-comment` | string | No | Comment body explaining the reason for the change |

#### 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 Quote Request Task

**Slug:** `COUPA_UPDATE_QUOTE_REQUESTS_TASKS`

Tool to update a task on a quote request. Use when you need to modify task attributes like title, status, percentage, or due dates for a specific quote request task.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Updated task title |
| `status` | string | No | Updated task status |
| `task_id` | integer | Yes | The ID of the task to update |
| `due-date` | string | No | Updated task due date in ISO format (YYYY-MM-DD) |
| `duration` | integer | No | Updated task duration in days |
| `owner-id` | integer | No | Updated owner user ID for the task |
| `percentage` | integer | No | Updated task completion percentage (0-100) |
| `start-date` | string | No | Updated task start date in ISO format (YYYY-MM-DD) |
| `description` | string | No | Updated task description |
| `quote_request_id` | integer | Yes | The ID of the quote request containing the task |
| `quote-task-attributes` | object | No | Attributes specific to sourcing event tasks. |

#### 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 Requisition

**Slug:** `COUPA_UPDATE_REQUISITION`

Tool to update an existing requisition in Coupa. Use when you need to modify requisition attributes such as justification, title, need-by date, or status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the requisition to update. |
| `status` | string | No | Transaction status of the requisition. |
| `payload` | object | No | Additional requisition attributes to update; keys should use Coupa API hyphenated names. |
| `exported` | boolean | No | Indicates if transaction has been exported. |
| `req-title` | string | No | Optional title of the requisition. |
| `requester` | object | No | Requester user reference. Provide id, login, or email. Example: {'id': 5} |
| `created-by` | object | No | User who created the requisition. Provide id, login, or email. Example: {'id': 3} |
| `attachments` | array | No | List of attachments. Each attachment can have id, intent, type, and url. |
| `need-by-date` | string | No | Item need by date in ISO 8601 format (YYYY-MM-DDTHH:MM:SS+HH:MMZ). |
| `justification` | string | No | Requisition justification comments. |
| `ship-to-address` | object | No | Ship-to address reference. Provide id or full address details. |
| `requisition-lines` | array | No | List of requisition line items. Each line should include description, item, and other required fields. |
| `ship-to-attention` | string | No | Ship to address attention field. |

#### 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 Status of a Project

**Slug:** `COUPA_UPDATE_STATUS_OF_A_PROJECT`

Tool to update the status of a project by transitioning it to a specific state. Use when you need to change a project's status to draft, planned, in_progress, complete, or canceled. Returns HTTP 204 for successful transitions and HTTP 304 for invalid transitions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the project to update status |
| `status` | string ("draft" | "planned" | "in_progress" | "complete" | "canceled") | Yes | Target status to transition the project to. Valid values: 'draft', 'planned', 'in_progress', 'complete', 'canceled' |

#### 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 Supplier Information Site

**Slug:** `COUPA_UPDATE_SUPPLIER_INFORMATION_SITE`

Tool to update an existing supplier information site in Coupa. Use when modifying site attributes such as name, PO methods, cXML configuration, or associated addresses and contacts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The Coupa Internal ID of the supplier information site to update |
| `code` | string | No | Supplier code identifier (unique, max 20 chars) |
| `name` | string | No | Supplier Information name (max 255 chars) |
| `active` | boolean | No | True if the site is active |
| `fields` | string | No | Comma-separated list of fields to return in the response; e.g., "id,code,name" or JSON array format ["id","code","name"] |
| `payload` | object | No | Additional supplier information site attributes to update; keys should use Coupa API hyphenated names. |
| `contacts` | array | No | Supplier Information Site contacts |
| `cxml-url` | string | No | URL for PO transmission via cXML |
| `po-email` | string | No | Email destination for PO transmission |
| `addresses` | array | No | Supplier Information Site addresses |
| `po-method` | string | No | Purchase order transmission method |
| `buyer-hold` | boolean | No | Hold all POs for buyer review |
| `cxml-domain` | string | No | From domain identifier |
| `cxml-secret` | string | No | Shared secret credentials |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `payment-term` | object | No | Payment term reference, e.g., {'id': 1} or {'code': 'Net 30'} |
| `business_role` | string | No | Coupa business role when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `cxml-identity` | string | No | From identity identifier |
| `cxml-protocol` | string | No | Transmission protocol |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `shipping-term` | object | No | Shipping term reference, e.g., {'id': 2} or {'code': 'FOB'} |
| `content-groups` | array | No | Content groups associated with the site, e.g., [{'id': 1}] |
| `default-locale` | string | No | Default locale for emails |
| `cxml-ssl-version` | string | No | SSL version for cXML |
| `po-change-method` | string | No | Purchase order change transmission method |
| `cxml-http-username` | string | No | Supplier online store access credentials |
| `disable-cert-verify` | boolean | No | Ignore SSL certificate mismatch errors |
| `cxml-supplier-domain` | string | No | To supplier domain |
| `allow-change-requests` | boolean | No | Allows suppliers to create change requests from CSP |
| `cxml-supplier-identity` | string | No | To supplier identity |

#### 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 Supplier Information Site

**Slug:** `COUPA_UPDATE_SUPPLIER_INFORMATION_SUPPLIER_INFORMATION_SITE`

Tool to update supplier information sites within a supplier information record in Coupa. Use when you need to modify details of a specific supplier site such as name, code, contact info, or operational status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the supplier information site to update |
| `code` | string | No | Supplier site code identifier (max 20 characters) |
| `name` | string | No | Supplier information site name (max 255 characters) |
| `active` | boolean | No | Site operational status (true=active, false=inactive) |
| `po-email` | string | No | Email recipient for purchase order transmission when method is 'email' |
| `po-method` | string | No | Purchase order transmission method (e.g., 'email', 'cxml') |
| `payment-term` | object | No | Reference to a payment term. |
| `po-change-method` | string | No | Purchase order change transmission method |
| `supplier_information_id` | integer | Yes | ID of the supplier information record |

#### 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 Supplier Remit-To Address

**Slug:** `COUPA_UPDATE_SUPPLIER_REMIT_TO_ADDRESS`

Tool to update an existing remit-to address for a supplier. Use when you need to modify address details or deactivate a remit-to address for payment routing in Coupa.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `city` | string | No | City name (max 255 characters). |
| `name` | string | No | Name/description of the remit address (max 255 characters). |
| `state` | string | No | State/province abbreviation (max 255 characters). |
| `active` | boolean | No | Status flag (true for active, false for inactive). Setting to false deactivates the address. |
| `country` | object | No | Model for country details. |
| `street1` | string | No | Primary street address line (max 255 characters). |
| `street2` | string | No | Secondary street address line (max 255 characters). |
| `street3` | string | No | Third street address line (max 255 characters). |
| `street4` | string | No | Fourth street address line (max 255 characters). |
| `address_id` | integer | Yes | Coupa unique identifier of the remit-to address to update. |
| `vat-number` | string | No | VAT registration identifier (max 255 characters). |
| `postal-code` | string | No | Postal/zip code (max 255 characters). |
| `supplier_id` | integer | Yes | Coupa unique identifier of the supplier. |
| `vat-country` | object | No | Model for country details. |
| `remit-to-code` | string | No | Unique code identifying the remit address (max 255 characters). |
| `return_object` | string | No | Controls response format. Values: 'none' (no response body), 'limited' (only IDs), 'shallow' (full object with limited nested data). |
| `external-src-ref` | string | No | Reference from originating system (max 255 characters). |
| `local-tax-number` | string | No | Local tax identifier. |
| `external-src-name` | string | No | Source system identifier (max 255 characters). |

#### 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 Supplier Site

**Slug:** `COUPA_UPDATE_SUPPLIERS_SUPPLIER_SITES`

Tool to update a supplier site's details such as name, active status, PO methods, and contact information. Use when you need to modify an existing supplier site's configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The supplier site's unique identifier |
| `supplier_id` | integer | Yes | The supplier's unique identifier |
| `supplier_site` | object | Yes | Supplier site update payload containing the fields to be updated |

#### 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 User Group

**Slug:** `COUPA_UPDATE_USER_GROUP`

Tool to update a Coupa user group. Use when you need to modify group attributes like name, description, approval permissions, or membership settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | The unique identifier of the user group to update |
| `name` | string | No | Group name (max 255 chars) |
| `open` | boolean | No | Open membership status - whether the group is open for anyone to join |
| `type` | string | No | Type designation for the group (max 255 chars) |
| `active` | boolean | No | Active status of the user group |
| `can-approve` | boolean | No | Approver capability - whether members of this group can approve requests |
| `description` | string | No | Group description |
| `mention-name` | string | No | Mention name for the user group (max 255 chars) |

#### 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 User Group Memberships

**Slug:** `COUPA_UPDATE_USER_GROUP_MEMBERSHIPS`

Tool to update user group memberships in Coupa. Use when modifying membership attributes like owner or participant status after confirming the membership ID exists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the user group membership to update. |
| `owner` | boolean | No | Indicates whether the user is admin or not. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','owner','participant']. |
| `user-id` | integer | No | User identifier. |
| `participant` | boolean | No | Indicates whether the user is participant or not. |
| `on_behalf_of` | string | No | User email or login to perform the action on behalf of. Sent as 'X-COUPA-ON-BEHALF-OF' header. |
| `business_role` | string | No | Coupa business role when acting on behalf of a user. Sent as 'X-COUPA-BUSINESS-ROLE'. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow'. |
| `user-group-id` | integer | No | User group ID or Project ID. |
| `user-group-type` | string ("UserGroup" | "Project") | No | Type of the group: 'UserGroup' or 'Project'. |

#### 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 User Group (PUT)

**Slug:** `COUPA_UPDATE_USER_GROUPS2`

Tool to update an existing user group in Coupa using PUT method. Use when you need to fully update a user group's attributes including name, description, owner, members, and approval permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier for the user group |
| `name` | string | No | User group name |
| `open` | boolean | No | User group is open for everyone to join or owner must invite |
| `type` | string | No | Blank for Groups, Project for Projects |
| `owner` | object | No | Reference to a user group owner. |
| `users` | array | No | Collection of users in the group |
| `active` | boolean | No | Active status indicator |
| `can-approve` | boolean | No | User group has the ability to be an approver |
| `description` | string | No | User group description |
| `mention-name` | string | No | Mention name for the group |
| `avatar-thumb-url` | string | No | URL for avatar thumbnail |

#### 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 User Group Task

**Slug:** `COUPA_UPDATE_USER_GROUPS_TASKS`

Tool to update an existing task within a user group. Use when you need to modify task attributes like title, status, percentage, or due date for a task assigned to a specific user group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the task to update |
| `title` | string | No | Task title (max 255 characters) |
| `status` | string | No | Task status (max 255 characters) |
| `due-date` | string | No | Deadline in format YYYY-MM-DDTHH:MM:SS+HH:MMZ |
| `duration` | number | No | Task duration in days |
| `owner-id` | integer | No | Assigned user ID |
| `percentage` | integer | No | Completion percentage (0-100) |
| `start-date` | string | No | Start date in datetime format (YYYY-MM-DDTHH:MM:SS+HH:MMZ) |
| `description` | string | No | Task description providing additional details |
| `user_group_id` | integer | Yes | ID of the user group containing the task |

#### 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 |

### Upload Contract Legal Agreement

**Slug:** `COUPA_UPLOAD_CONTRACT_LEGAL_AGREEMENT`

Tool to upload a legal agreement file for a contract. Use when adding or updating the contract's legal agreement document.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the contract to upload the legal agreement for |
| `file` | object | No | Legal agreement file to upload. |
| `fields` | string | No | Optional fields selector per Coupa API as a JSON string. Example: ['id', {'legal_agreement':['id','file-url']}] |
| `raw_file_name` | string | No | Filename to use when uploading raw content (e.g., 'agreement.pdf') |
| `return_object` | string ("shallow" | "limited" | "none") | No | Optional return object size: none \| limited \| shallow |
| `raw_file_content` | string | No | Raw file content as a UTF-8 string for direct upload in environments where staging (s3key) is unavailable. |
| `raw_file_mimetype` | string | No | MIME type for raw content (e.g., 'application/pdf') |
| `x-coupa-api-user-login` | string | No | Optional Coupa user login to impersonate; sent as 'x-coupa-api-user-login' header |

#### 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 User Groups

**Slug:** `COUPA_USER_GROUPS_INDEX`

Tool to list user groups (user memberships). Use when you need to retrieve user group information including members, approval permissions, and group metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Exact-match filter by user group name. |
| `limit` | integer | No | Maximum number of records to return (1-50). Default is 50 records. |
| `active` | boolean | No | Filter by active status: true for active groups, false for inactive. |
| `fields` | string | No | JSON array of fields to return; e.g., ["id","name","active"]. |
| `offset` | integer | No | Number of records to skip for pagination (default 0). |
| `order-by` | string | No | Field(s) to order results by (alphabetical/numeric order). E.g., 'name'. |
| `can-approve` | boolean | No | Filter by approval permission: true for groups that can approve. |
| `name_contains` | string | No | Filter groups whose name contains the given text. |
| `return_object` | string | No | Response verbosity: 'limited' returns only IDs; 'shallow' returns full object attributes with one-level association 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 |

### Create User

**Slug:** `COUPA_USERS_CREATE`

Tool to create a Coupa user. Use when you need to programmatically add a new user to your Coupa instance.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | User email address |
| `login` | string | Yes | User login/username |
| `active` | boolean | No | When true the user account is active |
| `lastname` | string | Yes | User last name |
| `firstname` | string | Yes | User first name |

#### 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:** `COUPA_USERS_INDEX`

Tool to list users. Use when you need to retrieve multiple user records with optional pagination and filtering.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of records to return (1-50). Coupa Core API returns up to 50 records per call. |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','login',{'roles':['id','name']}]. |
| `offset` | integer | No | Number of records to skip for pagination (default 0). |
| `status` | string | No | Filter by user status; e.g., 'active'. |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 User

**Slug:** `COUPA_USERS_SHOW`

Tool to retrieve a single user by ID. Use when you need detailed user information after knowing the user ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | ID of the user to retrieve |
| `fields` | string | No | JSON array of fields to return; e.g., ['id','login',{'roles':['id','name']}]. |
| `return_object` | string | No | Response verbosity: 'limited' or 'shallow'. |

#### 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 |

### Void Invoice

**Slug:** `COUPA_VOID_INVOICE`

Tool to void an invoice. Use when an approved or pending invoice needs to be voided. Example: Void invoice with ID 12345.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to void |
| `fields` | array | No | JSON array of specific fields or associations to include in the response. Example: ['id', 'invoice-number'] |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls the shape of the response: 'none' for no object, 'limited' for minimal fields, 'shallow' for shallow associations |

#### 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 |

### Withdraw Contract Signatures

**Slug:** `COUPA_WITHDRAW_CONTRACT_SIGNATURES`

Tool to withdraw signatures from a contract in Coupa Contract Center (CCC). Use when you need to move a contract to the corresponding status after CCC signature withdrawal. The contract must be in 'pending_signatures' status for this operation to succeed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa internal ID of the contract to withdraw signatures from. The contract must be in 'pending_signatures' status. |
| `fields` | array | No | JSON array of specific fields/associations to include in the response. Example: ['id','status'] |
| `api_user_id` | integer | No | Impersonate as the given user id via X-COUPA-API-USER-ID header. |
| `on_behalf_of` | string | No | Perform the action on behalf of this user (email or login); sent as X-COUPA-ON-BEHALF-OF header. |
| `business_role` | string | No | Coupa business role to use when acting on behalf of a user; sent as X-COUPA-BUSINESS-ROLE header. |
| `return_object` | string ("shallow" | "limited" | "none") | No | Controls response verbosity: 'none', 'limited', or 'shallow' |
| `api_user_email` | string | No | Impersonate as the given user email via X-COUPA-API-EMAIL header. |
| `api_user_login` | string | No | Impersonate as the given user login via X-COUPA-API-USER-LOGIN header. |

#### 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 |

### Withdraw Invoice Dispute

**Slug:** `COUPA_WITHDRAW_INVOICE_DISPUTE`

Tool to withdraw a dispute on an invoice. Use when a disputed invoice needs to be returned to the approval process due to supplier inaction or a mistake on the buyer side.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | integer | Yes | Coupa unique identifier of the invoice to withdraw dispute from. |
| `return_object` | string | No | Optional response size control: none \| limited \| shallow. |

#### 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 |
