> For the complete documentation index, see [llms.txt](https://docs.moderncollections.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.moderncollections.io/integration-guides/configure-negotiation-strategy.md).

# Configure negotiation strategy

The platform lets creditors tune the tone of the AI agent's outreach via the `posture` enum. Today this is a single binary knob — there is no aggression-level enum, settlement floor percentage, payment-plan bound, or auto-dispute acceptance threshold exposed via API.

> **Status:** the wider strategy-profile model (aggression level, negotiation floor, payment-plan bounds, auto-dispute acceptance) is planned but not shipped. Watch the [changelog](https://github.com/knollmeyersam-dot/MC-Docs/blob/main/change-log/README.md) for updates.

## What you can configure today

| Setting                    | Where                                                                                            | Effect                                                                                   |
| -------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
| `creditor.posture_default` | `PATCH /v1/settings` with `{"posture_default": "preserve"}` or `{"posture_default": "escalate"}` | Default `posture` applied to every new placement when the creator does not pass one      |
| `placement.posture`        | Pass `posture` in the `POST /v1/placements` body                                                 | Per-placement override; selects which voice prompt flow + email cadence the planner uses |

Two values are accepted: `preserve` (relationship-protective, gentler opener / voicemails) and `escalate` (firmer, faster). `PATCH /v1/settings` and `POST /v1/placements/{id}/posture` reject any other value with `422`; send only these two values in the `POST /v1/placements` body as well.

## Reading the current settings

```bash
curl https://api.moderncollections.io/v1/settings \
  -H "Authorization: Bearer $MC_API_KEY"
```

Returns the creditor's `posture_default`, `webhook_url`, contingency percentage, tier, and a masked API key. No other strategy knobs are exposed.

## Updating the default

```bash
curl -X PATCH https://api.moderncollections.io/v1/settings \
  -H "Authorization: Bearer $MC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"posture_default": "escalate"}'
```

## Per-placement override

```bash
curl -X POST https://api.moderncollections.io/v1/placements \
  -H "Authorization: Bearer $MC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "invoice_number": "INV-2024-0042",
    "invoice_amount": 7500.00,
    "posture": "escalate",
    "debtor": {"company_name": "Acme Corp", "state": "TX"}
  }'
```

## Hard compliance ceilings

**Compliance is INPUT to strategy, not output.** The compliance engine has authority. `posture="escalate"` does not loosen anything the state rules or the voice agent system card forbid.

For example: the system card hard-codes "never claim attorney status, court authority, or government affiliation" (FDCPA §807). `posture="escalate"` selects a firmer prompt template but cannot override that rule. State-level rules (call frequency caps, AI disclosure deadlines, two-party recording consent) apply identically regardless of posture.

## Auditability

Every `posture` change on a placement writes an audit event (`placement.posture_changed`). Voice prompts are versioned (currently `v1.1.1`); each `CallRecord` stores the `script_version` that was active at call time so transcripts can be replayed against the exact instructions the agent was operating under.

## See also

* [Compliance: overview](/compliance-for-integrators/overview.md)
* [REST API: placements](/rest-api/placements.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.moderncollections.io/integration-guides/configure-negotiation-strategy.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
