Amend revenue contract
POST/revenue/contracts/{id}/amend
Creates a formal amendment record for an active contract, capturing the change in scope, pricing, or term. The amendment preserves the original contract state and produces a new versioned record. Use when a mid-term change requires an audit trail.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | The numeric ID of the active contract to amend. |
Request body
Content type application/json (required).
| Field | Type | Required | Description |
|---|---|---|---|
reason | string | Yes | Business reason for the amendment (required for audit trail). Max length: 1000 |
new_total_value | number (float) | No | Revised total contract value after amendment. |
new_end_date | string (date) | No | Revised contract end date if the term is being extended. |
effective_date | string (date) | Yes | Date from which the amendment takes effect. |
notes | string | No | Additional notes or approval references. |
Example
{
"reason": "Customer expanded to 50 additional seats in Q2.",
"new_total_value": 60000.0,
"new_end_date": "2027-03-31",
"effective_date": "2026-07-01",
"notes": "Approved by account manager on 2026-06-15."
}
Responses
200 Amendment applied and contract updated
Content type application/json, object · RevenueContractV1.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | No | Auto-incremented primary key. |
name | string | No | Descriptive name of the contract. |
status | string | No | Current lifecycle status of the contract. One of: |
start_date | string (date) | No | Contract commencement date. |
end_date | string (date), nullable | No | Contract expiry date. Null for open-ended contracts. |
total_value | number (float) | No | Total contract value in the specified currency. |
currency | string | No | ISO 4217 three-letter currency code (e.g. USD, GHS, EUR). Max length: 3 |
billing_frequency | string | No | How often billing events are generated for this contract. One of: |
customer_id | integer, nullable | No | ID of the associated customer record. |
notes | string, nullable | No | |
created_at | string (date-time) | No | |
updated_at | string (date-time) | No |
404 Contract not found
422 Validation failed — check effective_date or new_total_value
Example request
curl -X POST "https://{tenant}.faciotech.net/api/v1/revenue/contracts/{id}/amend" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"reason": "Customer expanded to 50 additional seats in Q2.", "new_total_value": 60000.0, "new_end_date": "2027-03-31", "effective_date": "2026-07-01", "notes": "Approved by account manager on 2026-06-15."}'