> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://api-docs.papertracc.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api-docs.papertracc.com/_mcp/server.

# Overview

Customer profile endpoints.

## Duplicate handling

A create request is matched against existing customers in the workspace by display name, or by email when one is supplied. Use `dedupe_mode` on the request body to choose what happens when a match is found:

| Mode             | Behaviour                                                       | Status |
| ---------------- | --------------------------------------------------------------- | ------ |
| `skip` (default) | The existing customer is left untouched and returned unchanged. | `409`  |
| `overwrite`      | The existing customer is updated with the values supplied.      | `200`  |
| `add`            | A separate customer is created regardless of the match.         | `201`  |

The `409` body carries the customer that was matched, so you can link to it or retry the request with `dedupe_mode` set to `add`.

## Default payment term

Set `payment_term_id` on a customer to give it a default payment term from `/configs/payment-terms`. New invoices for that customer use it whenever the request names neither a `payment_term_id` nor a `due_date`.

On update, send `payment_term_id` to change the default, or `clear_payment_term` set to true to remove it. A term that is not active, or does not exist in the workspace, is rejected with `404`.

Read the default from the customer endpoints. A customer embedded in another document is a summary and may not carry it.