Skip to content

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

NameTypeRequiredDescription
idintegerYes

The numeric ID of the active contract to amend.

Request body

Content type application/json (required).

FieldTypeRequiredDescription
reasonstringYes

Business reason for the amendment (required for audit trail).

Max length: 1000

new_total_valuenumber (float)No

Revised total contract value after amendment.

new_end_datestring (date)No

Revised contract end date if the term is being extended.

effective_datestring (date)Yes

Date from which the amendment takes effect.

notesstringNo

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.

FieldTypeRequiredDescription
idintegerNo

Auto-incremented primary key.

namestringNo

Descriptive name of the contract.

statusstringNo

Current lifecycle status of the contract.

One of: "draft", "active", "amended", "expired", "terminated"

start_datestring (date)No

Contract commencement date.

end_datestring (date), nullableNo

Contract expiry date. Null for open-ended contracts.

total_valuenumber (float)No

Total contract value in the specified currency.

currencystringNo

ISO 4217 three-letter currency code (e.g. USD, GHS, EUR).

Max length: 3

billing_frequencystringNo

How often billing events are generated for this contract.

One of: "monthly", "quarterly", "annually", "one_off"

customer_idinteger, nullableNo

ID of the associated customer record.

notesstring, nullableNo
created_atstring (date-time)No
updated_atstring (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."}'
Loading