Contracts

Records or corrects a milestone completion

Changed on

Creates or fully replaces the current completion on a milestone in a FULL contract. The reference may be the milestone UUID or its case-insensitive key. The completion date must fall within the owning line term. Omitted or null memo and external_references values clear those fields. An identical request is a no-op. The milestone change and required revenue journal regeneration commit atomically.

put/contracts/{contract_id}/milestones/{milestone_ref}/completion

Request

Path parameters

contract_idstring uuid required

UUID of the contract that owns the milestone.

milestone_refstring required

Milestone UUID or stable key. A key must identify exactly one milestone in the contract.

Request body

completed_datestring date required

Actual completion date. It must fall within the owning contract line term.

memostring nullable

Optional completion note. Omit or send null to clear the saved note.

Example request

{
  "external_references": [
    {
      "type": "xyzSystemId",
      "id": "234",
      "url": "https://xyzsystempage.com/ids/234"
    }
  ]
}

Response

The updated milestone.

idstring uuid required

Stable server-generated identifier for this contract milestone.

keystring required

Stable integration key copied from the product template or explicit contract plan.

namestring required
sequenceinteger required
percentagestring nullable

Present only in PERCENTAGE mode. "30" means 30 percent.

expected_datestring date nullable
status'OPEN' | 'DUE_THIS_PERIOD' | 'OVERDUE' | 'COMPLETED' | 'CANCELLED' required
completed_datestring date nullable
memostring nullable

Example response

{
  "allocated_amount": {
    "amount": "1.01",
    "currency": "USD"
  },
  "amount": {
    "amount": "1.01",
    "currency": "USD"
  },
  "external_references": [
    {
      "type": "xyzSystemId",
      "id": "234",
      "url": "https://xyzsystempage.com/ids/234"
    }
  ]
}

Changes