# Couplr developer documentation

> Connect other software to a Couplr account with the REST API, inbound webhooks and outbound webhooks.

- Canonical URL: https://couplrfsm.com/developers
- Markdown: https://couplrfsm.com/developers/index.md
- API version: v1 (base URL https://couplrfsm.com/api/v1)
- OpenAPI specification: https://couplrfsm.com/developers/openapi.yaml
- All documentation pages: https://couplrfsm.com/llms.txt

> **Flip:** Hi, I'm Flip, Couplr's assistant. I'll walk you through connecting other software to a Couplr account. Pick what you want to do in the table below and I'll take it from there, one step at a time.

Couplr is free field service software for trades companies. These pages describe the three ways another system can exchange data with one company's Couplr account.

## What you can build

| Capability | Use it to | Start here |
| --- | --- | --- |
| REST API (v1) | Read, create and update customers and jobs. Complete jobs. Create and send draft invoices. Read and edit the price book. Create and send estimates. Add leads. Find open time slots and book visits. Read and add notes. Enroll customers in maintenance plans. Read invoices, payments, estimates, maintenance plans, equipment, photos, time entries and leads. Manage webhook subscriptions. | [Quickstart](https://couplrfsm.com/developers/quickstart) |
| Inbound webhooks | Give any app a URL. What it posts becomes a customer or a job, using a field mapping you control. | [Inbound webhooks](https://couplrfsm.com/developers/inbound-webhooks) |
| Outbound webhooks | Receive a signed POST when something happens in Couplr, such as a paid invoice. | [Outbound webhooks](https://couplrfsm.com/developers/outbound-webhooks) |

All three are set up by a company admin on the **Integrations** page of the Couplr web app (`https://couplrfsm.com/dashboard/integrations`) or the Integrations screen of the mobile app.

> **Flip:** You can also just ask me. In the Couplr app, an admin can open Flip and say "create an API key for Zapier that can read and write customers" or "make a webhook for my website form". I'll create it and show you the key or URL once, so have somewhere safe to paste it.

## Pages

- [Quickstart](https://couplrfsm.com/developers/quickstart): create a key, make a first request, read the response.
- [Authentication and API keys](https://couplrfsm.com/developers/authentication): how keys work, what each ability allows, how to replace a key.
- [API reference](https://couplrfsm.com/developers/api-reference): every endpoint, with a page for each resource (customers, jobs, invoices and the rest).
- [Errors, limits and retries](https://couplrfsm.com/developers/errors-and-limits): error format and codes, pagination, rate limits, idempotency, versioning.
- [Keep data in sync](https://couplrfsm.com/developers/syncing): read what changed, or have events pushed to a subscription your app creates.
- [Create draft invoices](https://couplrfsm.com/developers/draft-invoices): prepare an invoice for the office to review, or send it with Couplr's payment link.
- [Inbound webhooks](https://couplrfsm.com/developers/inbound-webhooks): endpoint setup, sender authentication, mapping, acknowledgments, duplicates, troubleshooting.
- [Outbound webhooks](https://couplrfsm.com/developers/outbound-webhooks): events, payload, signature check, retries.
- [Integration examples](https://couplrfsm.com/developers/examples): Zapier, Make, n8n, website forms and plain HTTP.
- [MCP server for AI assistants](https://couplrfsm.com/developers/mcp): business calculators an assistant such as ChatGPT or Claude can run. No Couplr account or API key is involved, and it cannot reach account data.

## For AI coding agents

> **Flip:** If you're an AI agent reading this for someone, hello. Everything here is available as plain Markdown so you don't have to scrape the page.

- Every page has a Markdown version at the same URL plus `.md`, for example `https://couplrfsm.com/developers/quickstart.md`. Requesting a page with `Accept: text/markdown` returns the same Markdown.
- The index of all pages is `https://couplrfsm.com/llms.txt`.
- The OpenAPI 3.0.3 specification is `https://couplrfsm.com/developers/openapi.yaml` (also `openapi.json`). The API reference page is generated from it.
- "Copy for LLM" on each page copies that page's complete Markdown.

## What is not available

> **Flip:** I'd rather tell you now than have you find out halfway through a build.

Stated plainly so you do not plan around it:

- The API creates invoices as drafts and can send a draft with Couplr's payment link. It cannot charge a customer or record a payment.
- The API does not give pay rates, payroll or timesheet approvals. Time entries are hours only.
- There is no test mode you can switch on yourself yet. Every key made on the Integrations page works on the live account.
- The API cannot upload a photo or a document. It gives links to the ones already in Couplr.
- The API cannot change or cancel a maintenance plan enrollment, or charge for one. An enrollment it starts is completed by the customer on Couplr's checkout page.
- The API cannot complete a maintenance plan visit or a job with an invoice held until the work is done. Those are completed in Couplr.
- The API cannot delete jobs, cannot delete customers, and cannot change a lead once it is created. Estimates can be created with the simple layout only, and cannot be changed afterwards.
- There is no OAuth flow: access is by company API key only.
- There are no official SDKs and no published Zapier, Make or n8n app. Those tools connect through their generic webhook and HTTP steps, as shown in [Integration examples](https://couplrfsm.com/developers/examples).
- Inbound webhooks create or update customers and create jobs. They cannot create invoices, estimates or other records.
- Inbound webhooks have no provider-specific connectors (for example Facebook Lead Ads or Angi). Send those through an automation tool.
- There is no sandbox environment. Test against a real company account with test records.
