# Servicem8

ServiceM8 helps field service businesses schedule jobs, send quotes, and manage invoices, offering staff mobile apps and real-time job status tracking

- **Category:** scheduling & booking
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 28
- **Triggers:** 0
- **Slug:** `SERVICEM8`
- **Version:** 20260312_00

## Tools

### ServiceM8 Create Job Note

**Slug:** `SERVICEM8_CREATE_JOB_NOTE`

Create a new job note in ServiceM8. Requires the job's UUID (related_object_uuid) and the note content. Returns the UUID of the created note record. Use this to add comments, updates, or action items to a specific job.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | Yes | Content of the note. |
| `uuid` | string | No | Unique identifier for this note record. If omitted, a UUID will be generated. |
| `active` | integer | No | Record active flag: 1 = active (default), 0 = deleted. |
| `create_date` | string | No | Timestamp when the note was created (format: YYYY-MM-DD HH:MM:SS). Server sets automatically if omitted. |
| `related_object` | string | No | Type of the related object. Defaults to 'job' for job notes. Other possible values may include 'company'. |
| `action_required` | string | No | Optional follow-up action required description. |
| `related_object_uuid` | string | Yes | UUID of the related job. |
| `action_completed_by_staff_uuid` | string | No | UUID of staff member who completed the required action. |

#### Output

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

### ServiceM8 Create Job Payment

**Slug:** `SERVICEM8_CREATE_JOB_PAYMENT`

Tool to create a new job payment in ServiceM8. Use when you have collected payment details and need to record payment against a job. Example: "Create a 100.00 cash payment for job 123e4567-e89b-12d3-a456-426614174000 at 2023-01-01 13:00:00."

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | Additional notes or comments regarding the payment. |
| `uuid` | string | No | Optional UUID for the payment record. If omitted, a UUID will be auto-generated by the server. |
| `active` | integer | No | Record active flag: 1 = active (default), 0 = archived/deleted. |
| `amount` | string | Yes | Amount of the payment as a decimal string (e.g., '100.00', '50.50'). Use string format to preserve decimal precision. |
| `method` | string | Yes | Payment method used. Common values: 'cash', 'credit_card', 'eftpos', 'cheque', 'bank_transfer', 'online'. |
| `job_uuid` | string | Yes | UUID of the job to record the payment against. Obtain this from list_all_jobs or create_job actions. |
| `edit_date` | string | No | Timestamp of last edit in 'YYYY-MM-DD HH:MM:SS' format. Usually auto-set by the server if omitted. |
| `timestamp` | string | Yes | Timestamp when the payment was received in 'YYYY-MM-DD HH:MM:SS' format. |
| `is_deposit` | integer | No | Deposit flag: 1 = this payment is a deposit, 0 = regular payment (default if omitted). |
| `attachment_uuid` | string | No | UUID of any attachment (e.g., receipt image) related to the payment. |
| `actioned_by_uuid` | string | No | UUID of the staff member who recorded/processed the payment. Obtain from staff endpoints. If omitted, may default to the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 a new Job

**Slug:** `SERVICEM8_CREATE_JOBS`

Tool to create a new Job in ServiceM8. Use when you have gathered all job details and need to push a record. Example: "Create a Quote job for 123 Main St with PO #1234."

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | No | Date the job is scheduled or created (YYYY-MM-DD). |
| `active` | integer | No | Active flag (1 = active, 0 = deleted). Defaults to 1. |
| `badges` | array | No | List of badge UUIDs to apply to this job. |
| `status` | string ("Quote" | "Work Order" | "Unsuccessful" | "Completed") | Yes | Current status of the job. Controls dispatch board placement. |
| `queue_uuid` | string | No | UUID of the queue to assign this job to. |
| `job_address` | string | Yes | Physical address where the job is to be performed. |
| `company_uuid` | string | No | UUID of the customer/company associated with this job. |
| `category_uuid` | string | No | UUID of the job category. |
| `job_description` | string | No | Brief description of the work to be done. |
| `created_by_staff_uuid` | string | No | UUID of the staff member creating this job. |
| `purchase_order_number` | string | No | Client purchase order reference number. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 Custom Field

**Slug:** `SERVICEM8_DELETE_CUSTOM_FIELD`

Delete a custom field in ServiceM8 by its UUID. Use this when you need to permanently remove a custom field definition from the system. This will remove the custom field and any associated data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | The UUID of the custom field to delete. Must be a valid UUID 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 |

### Delete Job Note

**Slug:** `SERVICEM8_DELETE_JOB_NOTE`

Deletes (archives) a job note in ServiceM8 by its UUID. Use this tool when you need to remove a note from a job's diary. In ServiceM8, deletion is a soft-delete: the note is archived (active=0) rather than permanently removed, and can be restored later if needed. Prerequisites: You need the note's UUID, which can be obtained from the 'List All Job Notes' or 'Retrieve Job Note' actions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | UUID of the job note to delete. Example: '123e4567-e89b-12d3-a456-426614174000' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 Job Payment

**Slug:** `SERVICEM8_DELETE_JOB_PAYMENT`

Archives (soft-deletes) a job payment record in ServiceM8 by its UUID. In ServiceM8, records are never permanently deleted. Instead, deletion sets the record's 'active' field to 0, which hides it from the UI but keeps it accessible via the API. Archived records can be restored by setting their 'active' field back to 1. Use this tool when you need to remove a payment record from active use, such as when a payment was recorded in error or needs to be voided. Requires the 'manage_job_payments' OAuth scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | The UUID of the job payment to delete (archive). In ServiceM8, deletion is a soft delete that sets the record's active field to 0, hiding it from the UI but keeping it accessible via 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 |

### List All Assets

**Slug:** `SERVICEM8_LIST_ALL_ASSETS`

Tool to list all ServiceM8 assets. Use when you need a comprehensive asset registry, including custom fields, for inventory or reporting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | OData-style filter expression to narrow down assets. Supported operators: eq (equal), ne (not equal), gt (greater than), lt (less than). Multiple conditions can be combined with 'and'. Examples: 'active eq 1', 'name eq \'Pump Model X\''. String values must be wrapped in single quotes. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Clients

**Slug:** `SERVICEM8_LIST_ALL_CLIENTS`

Tool to list all ServiceM8 clients. Use when you need a complete set of customer records for integrations or reporting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | OData-style filter expression using $filter syntax. Supported operators: eq (equal), ne (not equal), gt (greater than), lt (less than). Combine conditions with 'and' (max 10 conditions). Examples: "active eq 1", "name eq 'Acme Corp'", "create_date gt '2024-01-01'". Note: ge/le operators are not supported. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Document Templates

**Slug:** `SERVICEM8_LIST_ALL_DOCUMENT_TEMPLATES`

Tool to list document templates. Use when you need to retrieve available template UUIDs and names before generating job documents.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Pagination cursor. Use '-1' for the first page. For subsequent pages, use the value from the 'x-next-cursor' response header. If omitted, returns all templates. |
| `filter` | string | No | OData-style filter expression to narrow document templates. Examples: 'name eq "Invoice"', 'active eq 1', 'template_type eq "Quote"'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Forms

**Slug:** `SERVICEM8_LIST_ALL_FORMS`

Tool to list all ServiceM8 forms. Use when you need to fetch available form templates with optional filters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | OData-style filter expression to narrow down forms. Supported operators: eq (equals), ne (not equals), gt (greater than), lt (less than). Combine up to 10 conditions with 'and'. String values must use single quotes. Examples: "active eq 1", "name eq 'Safety Checklist'". |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Job Notes

**Slug:** `SERVICEM8_LIST_ALL_JOB_NOTES`

List all job notes from ServiceM8. Use this tool to: - Retrieve all notes across all jobs (no filter) - Get notes for a specific job using filter: "related_object_uuid eq '<job_uuid>'" - Filter by active status: "active eq 1" for active notes only The response contains a list of note records with their content, timestamps, and associated job UUIDs. For large result sets, use cursor-based pagination: pass cursor='-1' for the first page, then use the 'next_cursor' value from each response to fetch subsequent pages. Each page returns up to 5,000 records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Cursor for pagination. Use '-1' for the first page. For subsequent pages, use the 'next_cursor' value from the previous response. Each page returns up to 5,000 records. |
| `filter` | string | No | OData filter expression to filter notes. Common filters include: 'related_object_uuid eq <job_uuid>' to get notes for a specific job, 'active eq 1' for active notes only. Use actual API field names (e.g., related_object_uuid, not job_uuid). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Job Queues

**Slug:** `SERVICEM8_LIST_ALL_JOB_QUEUES`

List all job queues in ServiceM8. Job queues are virtual folders for organizing jobs on hold. Use this to fetch available queues before assigning jobs to a queue, or to check queue configurations. Returns both regular queues (for jobs waiting on external actions) and assignable queues (for staff assignments).

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Jobs

**Slug:** `SERVICEM8_LIST_ALL_JOBS`

Tool to list all jobs. Use when you need to fetch all job records from your ServiceM8 account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | OData-style filter expression to narrow down jobs. Supported operators: eq (equals), ne (not equals), gt (greater than), lt (less than). Combine up to 10 conditions with 'and'. String values must use single quotes. Examples: "status eq 'Completed'", "status eq 'Work Order' and active eq 1", "date gt '2024-01-01'". |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Locations

**Slug:** `SERVICEM8_LIST_ALL_LOCATIONS`

Lists all ServiceM8 locations. Use to fetch configured service areas, office locations, or warehouses for job assignments, mapping, or reporting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | Optional filter expression to narrow down locations using ServiceM8 filtering syntax (e.g., 'active eq 1'). See ServiceM8 filtering docs for syntax details. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 All Materials

**Slug:** `SERVICEM8_LIST_ALL_MATERIALS`

Retrieve all materials (products, labour rates, inventory items) from ServiceM8. Use this to get a complete catalog of materials for quoting, invoicing, or inventory management. Requires the 'read_inventory' OAuth scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | Filter expression using ServiceM8 filtering syntax to narrow down results. Examples: 'active eq 1' for active materials only, 'name eq "Labour"' for materials with specific 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 All Tasks

**Slug:** `SERVICEM8_LIST_ALL_TASKS`

Retrieves all tasks from a ServiceM8 account with optional filtering and cursor-based pagination. Use this to fetch task records, track task assignments, monitor completion status, or sync task data. Requires 'read_tasks' OAuth scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Cursor for pagination. Use '-1' to start from the beginning. For subsequent pages, use the 'next_cursor' value from the previous response. Each page returns up to 5000 records. |
| `filter` | string | No | OData-style filter expression to narrow results. Supported operators: eq (equal), ne (not equal), gt (greater than), lt (less than). String values must use single quotes. Combine up to 10 conditions with 'and'. Example: "active eq 1 and job_uuid eq 'abc-123'" |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 ServiceM8 Client

**Slug:** `SERVICEM8_RETRIEVE_CLIENT`

Tool to retrieve details of a specific client by its UUID. Use after confirming the client's UUID is valid.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | UUID of the company (client) 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 |

### Retrieve Form

**Slug:** `SERVICEM8_RETRIEVE_FORM`

Retrieve details of a specific form template by its UUID. Use this tool when you have a form UUID and need to fetch its metadata, such as form name, description, and status. Requires the Forms add-on to be enabled in ServiceM8.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | The unique identifier (UUID) of the form 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 |

### Retrieve Job

**Slug:** `SERVICEM8_RETRIEVE_JOB`

Tool to retrieve details of a specific job by its UUID. Use when you have the Job UUID and need its full record.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | The UUID of the job 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 |

### Retrieve Job Activity

**Slug:** `SERVICEM8_RETRIEVE_JOB_ACTIVITY`

Tool to retrieve details of a specific job activity by its UUID. Use when you have the job activity UUID and need its full details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | UUID of the ServiceM8 job activity 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 |

### Retrieve Job Note

**Slug:** `SERVICEM8_RETRIEVE_JOB_NOTE`

Retrieve the full details of a specific job note by its UUID. Use this action when you have a note UUID (e.g., from listing job notes) and need to view its complete record including content, timestamps, and the associated job reference.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | UUID of the job note to retrieve. You can obtain this from the 'List All Job Notes' action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 Job Payment

**Slug:** `SERVICEM8_RETRIEVE_JOB_PAYMENT`

Retrieve a specific job payment record from ServiceM8 by its UUID. Use this tool when you need to: - Get full details of a specific payment (amount, method, timestamp, notes) - Check if a payment is a deposit or regular payment - View which staff member processed a payment - Verify payment information for a job Prerequisites: You need the job payment UUID, which can be obtained from the 'List All Job Payments' action or from creating a new job payment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | The unique identifier (UUID) of the job payment record to retrieve. This is a 36-character UUID string (e.g., '550e8400-e29b-41d4-a716-446655440000'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 Job Queue

**Slug:** `SERVICEM8_RETRIEVE_JOB_QUEUE`

Tool to retrieve details of a specific job queue by its UUID. Use when you need full queue metadata before dispatching work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | UUID of the job queue 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 |

### Retrieve Location

**Slug:** `SERVICEM8_RETRIEVE_LOCATION`

Retrieve a specific ServiceM8 location by its UUID. Returns complete location details including name, address fields (street, city, state, country, postal code), geographic coordinates (lat/lng), contact phone number, and active status. Use this when you have a known location UUID and need its full details. To list all available locations, use the List All Locations action first.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | The unique identifier (UUID) of the location to retrieve. Must be a valid 36-character UUID 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 |

### Retrieve ServiceM8 Material

**Slug:** `SERVICEM8_RETRIEVE_MATERIAL`

Retrieve detailed information about a specific material/product/service by its UUID. Returns pricing, inventory levels, tax settings, and identification details. Use this when you have a material UUID from a job or list operation and need complete details like current stock levels or pricing information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | UUID of the material to retrieve. Obtain this from the 'List All Materials' action or from job material records. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | 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 Staff Member

**Slug:** `SERVICEM8_RETRIEVE_STAFF_MEMBER`

Tool to retrieve details of a specific staff member by their UUID. Use when you need up-to-date staff information given a known staff UUID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `uuid` | string | Yes | The unique identifier (UUID) of the staff member 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 a ServiceM8 Job Note

**Slug:** `SERVICEM8_UPDATE_JOB_NOTE`

Tool to update details of an existing job note. Use when modifying a note after its creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | New content for the job note |
| `uuid` | string | Yes | UUID of the job note to update |
| `active` | integer | No | Active flag: 1=active, 0=archived |
| `edit_date` | string | No | Timestamp when the note was last edited in 'YYYY-MM-DD HH:MM:SS' 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 |

### Update Job Payment

**Slug:** `SERVICEM8_UPDATE_JOB_PAYMENT`

Update an existing job payment record in ServiceM8. Use this to modify payment details such as amount, method, note, or status. Requires the payment UUID and at least one field to update.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | Note or memo for the payment |
| `uuid` | string | Yes | UUID of the job payment record to update (required) |
| `active` | integer | No | Active status: 1=active, 0=archived/deleted |
| `amount` | string | No | New payment amount as a decimal string (e.g., '150.00') |
| `method` | string | No | Payment method: 'cash', 'credit_card', 'eftpos', 'cheque', 'direct_deposit', or 'other' |
| `timestamp` | string | No | Payment date/time in 'YYYY-MM-DD HH:MM:SS' format |
| `is_deposit` | integer | No | Whether this is a deposit: 1=deposit, 0=regular payment |
| `attachment_uuid` | string | No | UUID of an attachment (e.g., receipt image) linked to this payment |
| `actioned_by_uuid` | string | No | UUID of the staff member who recorded or updated the 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 |
