Vezmo App

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

Header

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, …).”