Skip to main content

Contract amendment

Creates an amendment: a new contract, in the chain of the original contract, that replaces the current contract when it takes effect.

The amendment:

  • inherits the name, vendor and signature method;
  • declares the same expense types as the original contract;
  • can define recurrences and change the expiration;
  • belongs to whoever creates it: created by the consultant, it goes through the manager's decision; created by the manager, it does not, even if the original contract belongs to the consultant;
  • has its own contract_key and follows the flow of a new contract: document, submission for review, review and signature.

The previous contract stays as it is (active or expired) until the amendment takes effect. At that point, it becomes amended and the expenses continue under the amendment. Canceling the amendment does not affect the previous contract.

To create an amendment:

  • the previous contract must be active or expired;
  • no other contract in the chain can be in progress;
  • the contract cannot have a termination request awaiting review;
  • the contract cannot have a recurrence.

Create amendment​

Available on
ProfileHostRequired permission
Managermanager-apiWrite
Consultantconsultant-apiCreate Expense Contracts

Base URL for each host: Environments (Hosts).

ENDPOINT
/expense_contract/fund_class/{fund_class_key}/contract/{contract_key}/amendment
METHOD
POST

Path parameters​

ParameterTypeDescription
fund_class_keystringFund class key (UUID).
contract_keystringKey of the contract the amendment replaces (UUID).
Request body
{
"expense_types": [
{
"expense_type": "audit_tax"
}
],
"expiration_date": "2028-12-31"
}

Body attributes​

FieldTypeRequiredDescription
expense_typesarrayYesExactly the expense types of the original contract.
recurrencesarrayNoMonthly recurrences, with the same rules as creation.
expiration_datestringNoExpiration, YYYY-MM-DD, or null.

Response​

STATUS
201

The new contract in pending_submission, in the structure described in contract attributes, with amended_contract_key (the replaced contract) and root_contract_key (the original of the chain). Use the contract_key from the response in the next steps.

Errors​

StatuscodeWhen it happens
400QIT000001Invalid body: expense_types missing, repeated type in expense_types, value in the wrong format or unexpected field.
400ECT000040expiration_date is not a valid date.
400ECT000012, ECT000010An expense type does not exist, does not use a contract or is contracted during fund structuring.
400ECT000060The expense types are not exactly those of the original contract.
400ECT000061, ECT000045A recurrence has end_date earlier than start_date, or the recurrences do not have exactly one for each expense type.
404ECT000005The fund class does not exist or you do not have access to it.
404ECT000009The contract does not exist in this fund class.
409ECT000028The contract is neither active nor expired, or another contract in the chain is already in progress. The message gives the status of the contract that blocks the amendment.
409ECT000064The contract has a termination request awaiting review.
409ECT000058The contract has a recurrence.
409ECT000046The contract was created by QI Tech during fund structuring and does not accept this call.
409ECT000015, ECT000059The vendor is inactive or its registration has expired (expired).
409ECT000014One of the types is already in another contract of this fund with this vendor, outside the chain.
409ECT000029A contract of this fund with this vendor was permanently rejected by compliance.
Example
{
"title": "Amendment expense types mismatch",
"description": "An amendment must declare the same expense types as the original contract 3f2b8c1e-7d4a-4e9b-9a61-0c5d2e8f4b17.",
"translation": "Um aditivo precisa declarar os mesmos tipos de despesa do contrato original 3f2b8c1e-7d4a-4e9b-9a61-0c5d2e8f4b17.",
"code": "ECT000060"
}

Authentication, permission and host errors: see API Errors.

Next step​

Contract document: upload the amendment's PDF using the amendment's contract_key.