# MOCO integration

> MOCO is a time tracking, project, invoicing and CRM platform for agencies and service businesses; its REST API covers activities, projects, invoices, offers, deals, purchases, users and reports.

- Authentication: apiKey

## Tools (290)

- **Activate customer approval**: Activate customer approval
- **Add taggings to resource**: Add taggings to resource
- **Approve approval**: Approves a pending approval. Only the assigned approver or approver2 can perform this action.
- **Archive company**: Archive company
- **Archive project**: Archives a project and removes it from default active project listings.
- **Assign offer to company/project/deal**: If `project_id` is set, project company overrides `company_id`.
- **Assign project to project group**: Assigns a project to a project group.
- **Assign purchase item to project**: Assigns one purchase item to a project expense.
- **Create account catalog service**: Create account catalog service
- **Create account catalog service item**: Create account catalog service item
- **Create account custom property**: Create account custom property
- **Create account expense template**: Create account expense template
- **Create account task template**: Create account task template
- **Create account web hook**: Create account web hook
- **Create activities in bulk**: Creates up to 100 activities in one request. Requires `application/json` with `activities` array.
- **Create activity**: Creates a single activity for the user the API key belongs to. Use the `X-IMPERSONATE-USER-ID` header to create activities for other users. Compatibility notes: - `project_id` maps to internal assignment relation.
- **Create approval**: Creates a new approval for an invoice or purchase.
- **Create comment**: Creates a comment and optionally stores an attachment. Attachment must be sent as base64 content.
- **Create comments in bulk**: Creates up to 100 comments for one target type. Requires `application/json` body.
- **Create company**: Creates a customer, supplier, or organization. Compatibility notes: - `labels` is accepted as deprecated alias of `tags`. - `customer_tax` / `supplier_tax` can be used instead of explicit VAT code IDs.
- **Create contact**: Creates a contact person. If `user_id` is provided, it must reference an active user in the account.
- **Create deal**: Creates a deal. Compatibility notes: - `customer_id` is accepted as deprecated alias of `company_id`. - `status` must be one of `potential`, `pending`, `won`, `lost`, `dropped`. - `deal_category_id` is required only when `status` is `pending`
- **Create deal category**: Create deal category
- **Create invoice**: Creates a new invoice and returns the full invoice detail payload. Salutation and footer support template variables (see schema for details). When `change_address` is set to `delivery` or `billing`, the invoice address is propagated back to the company record.
- **Create invoice attachment**: Uploads a file as invoice attachment using base64-encoded content.
- **Create invoice bookkeeping export**: Creates a bookkeeping export and optionally triggers direct online submission.
- **Create invoice payment**: Create invoice payment
- **Create invoice payments in bulk**: Requires `application/json` request body with `bulk_data` list.
- **Create invoice reminder**: Creates a reminder for an invoice. If omitted, `title` and `text` default to account reminder defaults.
- **Create offer**: Creates a new offer including line items. Business rules: - `tax` is deprecated; use `vat_code_id` instead. When `tax` is provided, it must match an active sale VAT code in the account. - If layout flags are omitted, account defaults are applied. - Default offer attachments are added automatically.
- **Create offer attachment**: Create offer attachment
- **Create offer confirmation**: Creates a new offer confirmation for an offer. An offer can only have one confirmation. If the offer is in `created` or `sent` status, it is automatically transitioned to `accepted`.
- **Create planned purchase**: Create a new planned purchase.
- **Create planning entry**: Creates a planning entry. The entry is created for the user executing the request unless a `user_id` is supplied.
- **Create project**: Creates a new project and returns the full project representation.
- **Create project contract**: Create project contract
- **Create project expense**: Creates an expense linked to the given project. `price` is deprecated and kept for compatibility. If `user_id` is provided, it must reference an active user.
- **Create project expenses in bulk**: Creates multiple expenses for one project in a single transaction. Requires `application/json` body with `bulk_data` list.
- **Create project payment schedule**: Create project payment schedule
- **Create project recurring expense**: Create project recurring expense
- **Create project task**: Create project task
- **Create purchase**: Creates a purchase with one or more line items. Business rules: - Tag names are validated and invalid names return `422`. - Every item must provide either `vat_code_id` or a valid `tax` value.
- **Create purchase bookkeeping export**: Creates a bookkeeping export and optionally triggers direct online submission.
- **Create purchase budget**: Create a new purchase budget.
- **Create purchase draft**: Create purchase draft
- **Create purchase payment**: Create purchase payment
- **Create purchase payments in bulk**: Requires `application/json` request body with `bulk_data` list.
- **Create receipt**: Creates a receipt with one to three VAT item splits. `purchase_category_id` must be the same for all items. If `currency` is omitted, account default currency is used.
- **Create revenue category**: Create revenue category
- **Create schedule**: Creates an absence entry. The entry is created for the user executing the request unless a `user_id` is supplied.
- **Create tag**: Creates a tag. `context` is required and cannot be changed after creation. `color` must be a hex color string (e.g., `#ABC123`); defaults to grey if omitted.
- **Create unit**: Creates a team unit. To assign users to a unit, update the user record with the `unit_id` attribute.
- **Create user**: Creates a user with account defaults. `welcome_email` defaults to `true` if omitted.
- **Create user absence request**: Creates a new absence request (vacation, sickness, other) for the authenticated user.
- **Create user employment**: Create user employment
- **Create user holiday**: Create user holiday
- **Create user presence**: Create user presence
- **Create user work time adjustment**: Create user work time adjustment
- **Deactivate customer approval**: Deactivate customer approval
- **Delete account catalog service**: Delete account catalog service
- **Delete account catalog service item**: Delete account catalog service item
- **Delete account custom property**: Delete account custom property
- **Delete account expense template**: Delete account expense template
- **Delete account task template**: Delete account task template
- **Delete account web hook**: Delete account web hook
- **Delete activity**: Deletes an activity. Deletion is only possible if the activity has not yet been billed or locked.
- **Delete all project tasks**: Delete all project tasks
- **Delete approval**: Deletes an approval by ID.
- **Delete a purchase budget**: Deletes a purchase budget.
- **Delete comment**: Deletes a manually created comment. Auto-generated system comments cannot be deleted.
- **Delete company**: Delete company
- **Delete contact**: Delete contact
- **Delete deal**: Deletes the deal if confirmation rules are met.
- **Delete deal category**: Delete deal category
- **Delete invoice**: Deletes an invoice if it is still deletable according to business rules. The `reason` field is required when deleting a non-draft invoice.
- **Delete invoice attachment**: Deletes one attachment from the selected invoice.
- **Delete invoice payment**: Delete invoice payment
- **Delete invoice reminder**: Delete invoice reminder
- **Delete offer**: Deletes an offer. Only offers with status `created` can be deleted; attempting to delete an offer in any other status returns a 400 error.
- **Delete offer attachment**: Delete offer attachment
- **Delete offer confirmation**: Deletes an existing offer confirmation.
- **Delete planned purchase**: Deletes a planned purchase. Deletion is only possible if no purchases are assigned to it. Returns the deleted planned purchase on success, or an error if deletion is blocked.
- **Delete planning entry**: Delete planning entry
- **Delete project**: Deletes a project when deletion constraints are satisfied. Deletion is only possible when no activities, invoices, offers or expenses exist.
- **Delete project contract**: Delete project contract
- **Delete project expense**: Delete project expense
- **Delete project payment schedule**: Delete project payment schedule
- **Delete project recurring expense**: Delete project recurring expense
- **Delete project task**: Delete project task
- **Delete purchase**: Deletion is possible only for pending purchases without payments.
- **Delete purchase draft**: Delete purchase draft
- **Delete purchase payment**: Delete purchase payment
- **Delete receipt**: Deletes a receipt. Deletion is only possible if no refund request has been created for this receipt.
- **Delete revenue category**: Delete revenue category
- **Delete schedule**: Delete schedule
- **Delete tag**: Delete tag
- **Delete unit**: Deletes a unit. Deletion is only possible if no users are assigned to the unit.
- **Delete user**: Deletes a user. Deletion is only possible if no hours have been billed for this user.
- **Delete user absence request**: Delete user absence request
- **Delete user employment**: Delete user employment
- **Delete user holiday**: Delete user holiday
- **Delete user presence**: Delete user presence
- **Delete user work time adjustment**: Delete user work time adjustment
- **Deny approval**: Denies a pending approval. Only the assigned approver or approver2 can perform this action.
- **Disable account web hook**: Disable account web hook
- **Disable project report sharing**: Disables public customer report sharing for the selected project.
- **Disregard activities for invoicing**: Marks selected activities as disregarded for billing calculations. `customer_id` is accepted as deprecated alias of `company_id`.
- **Disregard project expenses**: Marks selected expenses as disregarded for billing calculations.
- **Download invoice PDF**: Returns the rendered invoice PDF.
- **Download invoice timesheet PDF**: Returns the rendered invoice timesheet PDF.
- **Download offer confirmation PDF**: Download offer confirmation PDF
- **Download offer PDF**: Download offer PDF
- **Download purchase draft PDF**: Download purchase draft PDF
- **Enable account web hook**: Enable account web hook
- **Enable project report sharing**: Enables public customer report sharing for the selected project.
- **Get absences report**: Get absences report
- **Get account catalog service**: Get account catalog service
- **Get account catalog service item**: Get account catalog service item
- **Get account custom property**: Get account custom property
- **Get account expense template**: Get account expense template
- **Get account internal hourly rates**: Returns users with internal hourly rates per selected year(s).
- **Get account task template**: Get account task template
- **Get account web hook**: Get account web hook
- **Get activity**: Get activity
- **Get approval**: Returns a single approval by ID.
- **Get cashflow report**: Get cashflow report
- **Get comment**: Returns full comment payload including attachment content when present.
- **Get company**: Returns full company representation.
- **Get contact**: Get contact
- **Get current profile**: Returns the current user's profile. When impersonation is active via `X-IMPERSONATE-USER-ID`, returns the impersonated user's profile instead.
- **Get current user's performance report**: Returns the current user's performance report without requiring staff permissions.
- **Get customer approval state**: Returns 404 when approval has not been activated yet.
- **Get deal**: Get deal
- **Get deal category**: Get deal category
- **Get finance report**: Get finance report
- **Get invoice**: Returns one invoice by ID including line items, payments and reminders.
- **Get invoice bookkeeping export**: Get invoice bookkeeping export
- **Get invoice payment**: Get invoice payment
- **Get invoice reminder**: Get invoice reminder
- **Get invoice timesheet entries**: Returns activities linked to the invoice time-sheet export.
- **Get offer**: Returns full offer representation including line items.
- **Get offer confirmation**: Returns a single offer confirmation by ID.
- **Get planned purchase**: Returns a single planned purchase by ID.
- **Get planned vs tracked report**: Get planned vs tracked report
- **Get planning entry**: Get planning entry
- **Get project**: Returns one project by ID.
- **Get project contract**: Get project contract
- **Get project expense**: Get project expense
- **Get project group**: Get project group
- **Get project payment schedule**: Get project payment schedule
- **Get project recurring expense**: Get project recurring expense
- **Get project report**: Returns aggregated project reporting data for the selected project. Cost values are in account main currency and may differ from project currency.
- **Get project task**: Get project task
- **Get purchase**: Get purchase
- **Get purchase bookkeeping export**: Get purchase bookkeeping export
- **Get purchase category**: Get purchase category
- **Get purchase draft**: Get purchase draft
- **Get purchase payment**: Get purchase payment
- **Get receipt**: Get receipt
- **Get revenue category**: Get revenue category
- **Get schedule**: Get schedule
- **Get tag**: Get tag
- **Get todo**: Get todo
- **Get unit**: Get unit
- **Get user**: Get user
- **Get user absence request**: Get user absence request
- **Get user employment**: Get user employment
- **Get user holiday**: Get user holiday
- **Get user performance report**: Get user performance report
- **Get user presence**: Get user presence
- **Get user work time adjustment**: Get user work time adjustment
- **Get utilization report**: Get utilization report
- **Get VAT code purchase**: Get VAT code purchase
- **Get VAT code sale**: Get VAT code sale
- **List account catalog services**: List account catalog services
- **List account custom properties**: Lists custom property definitions; can be filtered by `entity`.
- **List account expense templates**: List account expense templates
- **List account fixed costs**: Returns fixed cost categories with monthly amounts.
- **List account hourly rates**: Returns default, task-based, and user-based hourly rates.
- **List account task templates**: List account task templates
- **List account web hooks**: List account web hooks
- **List activities**: Returns tracked activities visible to the current user. Supports date range, billing, relationship and text filters.
- **List approvals**: Returns approvals (invoice and purchase approvals) with pagination support.
- **List comments**: Returns comments with optional filtering by target, user and update time. `commentable_type=Customer` is accepted as deprecated alias of `Company`.
- **List companies**: Returns companies (customers, suppliers, organizations) visible to the current user. For `custom_properties` filtering, `type` must be provided.
- **List contacts**: Returns contact persons. List payload omits the `info` field.
- **List deal categories**: List deal categories
- **List deals**: Returns deals visible to the current user. Supports filtering by status, tags, company, close date range, incremental updates, and custom properties.
- **List expenses across projects**: Returns expenses across all visible projects.
- **List invoice attachments**: Returns attachments linked to the selected invoice.
- **List invoice bookkeeping exports**: List invoice bookkeeping exports
- **List invoice expenses**: Returns expenses linked to the selected invoice.
- **List invoice payments**: List invoice payments
- **List invoice reminders**: List invoice reminders
- **List invoices**: Returns invoices visible to the current user. Supports filtering by status, dates, relationships, tags and custom properties. By default, `disregarded` invoices are excluded and list responses omit detail fields such as `salutation`, `footer`, `items`, `payments` and `reminders`.
- **List letter papers**: List letter papers
- **List locked invoices**: Returns locked invoices only. Like invoice list responses, detail fields (`salutation`, `footer`, `items`, `payments`, `reminders`) are not included.
- **List offer attachments**: List offer attachments
- **List offer confirmations**: Returns offer confirmations with pagination support. Filter by `ids`, `offer_id`, or `updated_after` for incremental synchronization.
- **List offers**: Returns offers without detail fields (`salutation`, `footer`, `items`).
- **List planned purchases**: Returns planned purchases with pagination support.
- **List planning entries**: Returns planning entries for users/projects/deals in a date overlap range.
- **List project contracts**: List project contracts
- **List project expenses**: Returns expenses linked to a single project.
- **List project groups**: List project groups
- **List project payment schedules**: List project payment schedules
- **List project payment schedules (all projects)**: List project payment schedules (all projects)
- **List project recurring expenses**: List project recurring expenses
- **List projects**: Returns projects visible to the current user. Supports filtering by date ranges, relationships, tags, identifiers and custom properties.
- **List projects assigned to current user**: Returns a compact project list where the current user has an active assignment.
- **List project tasks**: List project tasks
- **List purchase bookkeeping exports**: List purchase bookkeeping exports
- **List purchase budgets**: List purchase budgets
- **List purchase categories**: List purchase categories
- **List purchase drafts**: List purchase drafts
- **List purchase payments**: List purchase payments
- **List purchases**: Returns purchases in inbox/archive states with items and linked entities.
- **List receipts**: Returns receipts with itemized VAT splits and linked project/user context.
- **List recurring expenses**: List recurring expenses
- **List revenue categories**: List revenue categories
- **List schedules**: Retrieve all absences (paged).
- **List taggings for resource**: List taggings for resource
- **List tags**: Returns tags. Context value `Project` is internally mapped to `Assignment`.
- **List todos**: List todos
- **List units**: List units
- **List user absence requests**: Returns absence requests (vacation, sickness, other) visible to the current user.
- **List user employments**: List user employments
- **List user holidays**: List user holidays
- **List user presences**: List user presences
- **List user roles**: List user roles
- **List users**: Returns users visible to the current user. By default archived users are excluded unless `include_archived=true`.
- **List user work time adjustments**: List user work time adjustments
- **List VAT code purchases**: List VAT code purchases
- **List VAT code sales**: List VAT code sales
- **Recur project recurring expense**: Recur project recurring expense
- **Remove taggings from resource**: Remove taggings from resource
- **Replace taggings for resource**: Replace taggings for resource
- **Send invoice by email**: Sends the invoice email and returns the normalized email payload. If `emails_to`, `emails_cc` and `emails_bcc` are empty, default recipients configured on project/customer are used.
- **Send invoice reminder by email**: If recipient fields are empty, preferred recipients are selected.
- **Send offer by email**: Sends the offer document by email. If recipient fields are empty, preferred recipients from offer/customer settings are applied.
- **Start activity timer**: Starts the timer for an existing activity. The timer can only be started if it is not already running, the activity date is today, and the activity is editable.
- **Stop activity timer**: Stops a running timer and writes tracked duration back to the activity.
- **Store purchase document**: Replaces or adds document after purchase creation. Not allowed for EU electronic invoices.
- **Touch user presence**: Touch user presence
- **Unarchive company**: Unarchive company
- **Unarchive project**: Re-activates an archived project.
- **Unassign project from project group**: Removes the project-group assignment from a project.
- **Update account catalog service**: Update account catalog service
- **Update account catalog service item**: Update account catalog service item
- **Update account custom property**: Updates mutable fields of an existing custom property definition.
- **Update account expense template**: Update account expense template
- **Update account internal hourly rates**: Upserts internal hourly rates for the provided year and users.
- **Update account task template**: Update account task template
- **Update account web hook**: Only `hook` can be changed.
- **Update activity**: Uses the same payload fields as create.
- **Update activity billable seconds**: Updates only the billable seconds of an activity independently of the actual worked time. Only available to project leaders. Returns 403 if the current user lacks the required permissions. Only the `seconds` parameter is accepted; other fields must be updated via the main activity update endpoint.
- **Update a purchase budget**: Update the title, cost category, or active status of a purchase budget.
- **Update budget target for a year**: Updates the target amount of a purchase budget for a given year.
- **Update comment**: Update comment
- **Update company**: Updates company attributes. Fields are analogous to create payload. Deprecated compatibility aliases are still accepted (`labels`, `billing_email`, `work_email`, `work_phone`, `work_fax`, `work_website`).
- **Update contact**: Update contact
- **Update deal**: Uses the same payload fields as create.
- **Update deal category**: Update deal category
- **Update invoice payment**: Update invoice payment
- **Update invoice status**: Updates invoice status using the allowed API status transitions. Works for regular invoices only, not for drafts.
- **Update offer**: Updates an existing offer including line items. Offers can only be updated when their status is `created` or `sent`; updating an offer in any other status returns a 400 error. `company_id`, `deal_id`, `project_id` and `currency` cannot be changed via this endpoint; use the assign endpoint for those.
- **Update offer confirmation**: Updates an existing offer confirmation.
- **Update offer status**: Transitions the offer state; successful updates return no body.
- **Update planned purchase**: Update an existing planned purchase.
- **Update planning entry**: Update planning entry
- **Update project**: Updates an existing project and returns the updated project payload. `currency` cannot be changed after project creation.
- **Update project contract**: Update project contract
- **Update project expense**: Updates mutable expense fields and optional attachment.
- **Update project payment schedule**: Update project payment schedule
- **Update project recurring expense**: Update project recurring expense
- **Update project task**: Update project task
- **Update purchase**: Updates purchase header fields. Purchase items cannot be changed through this endpoint.
- **Update purchase payment**: Update purchase payment
- **Update purchase status**: Updates purchase status. For backward compatibility, `approved` is mapped to internal `archived`.
- **Update receipt**: Updates receipt attributes. If `items` is provided, it completely replaces all existing items; the full items array must be submitted.
- **Update revenue category**: Update revenue category
- **Update schedule**: Update schedule
- **Update tag**: Updates only `name` and `color`. Context cannot be changed.
- **Update unit**: Update unit
- **Update user**: Updates mutable user fields. If `active` changes, user archive status is toggled. Employment records are not automatically terminated; close them separately via `/users/employments`.
- **Update user employment**: Update user employment
- **Update user holiday**: Update user holiday
- **Update user presence**: Update user presence
- **Update user work time adjustment**: Update user work time adjustment
- **Verify API key**: Returns current user identity if the provided API key is valid.

Connect MOCO in General Input: https://www.generalinput.com/apps/moco