Sales · Contracts
Update contract
Changes only the fields you send; the rest stay as they are. Once your client has accepted the proposal, only status and metadata can change.
Authorization
HeaderSend Authorization: Bearer <accessToken>, the token from Create token.
Path parameters
id string Required
ID of the contract to change.Body parameters
clientId string
ID of one of your clients. Another ID returns 404.proposalId string
The proposal this contract was written for (404 if it isn't yours). A contract stays with its proposal: a different id answers 400.title string
Contract title.referenceNo string
Your own reference. It must be unique among your contracts; a duplicate returns 409.fileUrl string
URL of the contract file, such as a PDF.startDate date
ISO 8601 date. When your client accepts, the project starts on it and the invoice is due 10 days later.endDate date
ISO 8601 date, such as 2027-01-31. Becomes the project's end date on accept.status enum
DRAFT | PENDING | ACTIVE | COMPLETED | CANCELLED. For your records; Vezmo doesn't change it.message string
Note kept with the contract.paymentMethod string
How you expect to be paid, as text. Kept for your records.paymentDue string
Payment terms as text, such as Net 15. Kept for your records.isPartialPay boolean
true or false. Kept for your records; the invoice created on accept doesn't take part payments.redirectUrl string
Where your client goes after accepting or rejecting the proposal. Without it, they go to the Vezmo website.ccEmail string
Comma-separated email addresses, at most 10. When you send the proposal, each gets a view-only link. Each must be a real address; they are stored lower-cased, without repeats. Otherwise 400 'ccEmail: "…" is not an email address. Separate addresses with commas.' or 'ccEmail: copy in at most 10 addresses.'expiryRule string
Note kept with the contract; nothing expires because of it.metadata object
JSON object for your own fields. It replaces the stored metadata as a whole.After the client accepts
- A contract stays with its proposal. A different proposalId answers 400 “A contract stays with the proposal it was written for. Create a new contract for the other proposal.”
- Once your client has accepted the proposal, only status and metadata can change. Any other field answers 400 “The client has accepted this contract, so only its status and metadata can change (not title, …).”