Sales · Proposals
Send proposal
Emails your client a link to the proposal and sets its status to SENT. The proposal needs a client and a contract, and can't already be ACCEPTED or REJECTED.
Needs the proposal.send scope. A key without it gets 403 “Insufficient API permissions”.
Authorization
HeaderSend Authorization: Bearer <accessToken>, the token from Create token.
Body parameters
proposalId string Required
ID of one of your proposals. A deleted proposal returns 404.After you send
- The link is signed and works for 24 hours, so your client needs no account. Send again for a fresh link.
- Each address in the contract's ccEmail gets a view-only link that works for 14 days. At most 10 addresses get a copy.
- Your client accepts or rejects from the link. If they answer you outside Vezmo, use Mark accepted or Mark rejected. Subscribe to the proposal.accepted and proposal.rejected webhooks to hear the answer.
- Accepting starts a client project and, unless the proposal is HOURLY, creates an invoice for its amount and emails it to your client.
- The proposal.sent webhook carries status SENT.
- With a test key, addresses outside your team are skipped (in test mode, emails go only to your team's addresses). data is then
{ "message": "Proposal sent. In test mode, emails go only to your team's addresses.", "emailSkipped": "test_mode", "skippedRecipients": ["client@example.com", "cc@example.com"] }. The proposal is still marked SENT and proposal.sent fires. Skipped addresses don't count toward your email limits.
Limits
- One email per proposal a minute. A second send inside the minute answers 429 “This was emailed moments ago. You can send it again in Ns.”
- Each business can have Vezmo send 500 invoice and proposal emails in 24 hours (support can set a different number for your business). For a proposal the count is your client plus each CC address. Past that a send answers 429 “Your business has reached its limit of 500 invoice and proposal emails in 24 hours (CC copies count). You can send more in about N hours. To send more each day, contact support.”
- An ACCEPTED or REJECTED proposal answers 400 “Cannot send email for finalized proposal”.