---
title: "Finalize an agreed negotiation (pay)"
method: POST
path: "/api/negotiations/{id}/finalize"
tags: ["Marketplace"]
---

# Finalize an agreed negotiation (pay)

`POST /api/negotiations/{id}/finalize`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/negotiations/{id}/finalize`
- Auth: HTTP bearer

Buyer pays the agreed price to create the escrow deal, then the standard transfer flow runs. Accepts the same payment methods as a marketplace purchase (card, USDC, x402). Returns 402 with payment instructions if no payment is provided. For a broker-sourced acquisition, if the agreed price is above the `max_budget` you set, returns 409 `BUDGET_EXCEEDED` - re-submit with `confirm_over_budget: true` to proceed. Requires `domains:transfer` scope.

## Path parameters

- `id` string, required

## Request body

- object
  - `payment_method` 'card' | 'usdc' | 'balance'
  - `payment_signature` string, nullable
  - `payment_tx` string
  - `payment_chain` string
  - `confirm_over_budget` boolean: For broker deals: proceed even though the agreed price exceeds the max_budget you set.

## Response `201`

Deal created at the agreed price

- Deal (unresolved $ref)

## Other responses

- `401`: Missing or invalid API key
- `402`: Payment required
- `409`: Not in agreed state, or `BUDGET_EXCEEDED` (agreed price above your max_budget - retry with confirm_over_budget)
- `429`: Rate limit exceeded - wait and retry

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
