Estimate Messages
The estimate message object
Attribute | Type | Description |
---|---|---|
id |
integer | Unique ID for the message. |
sent_by |
string | Name of the user that created the message. |
sent_by_email |
string | Email of the user that created the message. |
sent_from |
string | Name of the user that the message was sent from. |
sent_from_email |
string | Email of the user that message was sent from. |
recipients |
array | Array of estimate message recipients. |
subject |
string | The message subject. |
body |
string | The message body. |
send_me_a_copy |
boolean | Whether to email a copy of the message to the current user. |
event_type |
string | The type of estimate event that occurred with the message: send, accept, decline, re-open, view, or invoice. |
created_at |
datetime | Date and time the message was created. |
updated_at |
datetime | Date and time the message was last updated. |
The estimate message recipient object
Attribute | Type | Description |
---|---|---|
name |
string | Name of the message recipient. |
email |
string | Email of the message recipient. |
Required permissions
You must be an Administrator or Manager with permission to create and edit estimates in order to interact with the /v2/estimates/{estimate_ID}/messages
endpoint. Insufficient permissions will result in a 403 Forbidden
status code.
List all messages for an estimate
Returns a list of messages associated with a given estimate. The estimate messages are returned sorted by creation date, with the most recently created messages appearing first.
The response contains an object with an estimate_messages
property that contains an array of up to per_page
messages. Each entry in the array is a separate message object. If no more messages are available, the resulting array will be empty. Several additional pagination properties are included in the response to simplify paginating your messages.
GET /v2/estimates/{estimate_ID}/messages
Parameter | Type | Description |
---|---|---|
updated_since |
datetime | Only return estimate messages that have been updated since the given date and time. |
page |
integer | DEPRECATED The page number to use in pagination. For instance, if you make a list request and receive 2000 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1) |
per_page |
integer | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
page
parameter.
For more information, visit the pagination guide.
Example Request:
curl "https://api.harvestapp.com/v2/estimates/1439818/messages" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])"
Example Response:
Create an estimate message
Creates a new estimate message object. Returns an estimate message object and a 201 Created
response code if the call succeeded.
POST /v2/estimates/{estimate_ID}/messages
Parameter | Type | Required | Description |
---|---|---|---|
recipients |
array | required | Array of recipient parameters. See below for details. |
subject |
string | optional | The message subject. |
body |
string | optional | The message body. |
send_me_a_copy |
boolean | optional | If set to true , a copy of the message email will be sent to the current user. Defaults to false . |
event_type |
string | optional | If provided, runs an event against the estimate. Options: “accept”, “decline”, “re-open”, or “send”. |
Recipient Parameter | Type | Required | Description |
---|---|---|---|
name |
string | optional | Name of the message recipient. |
email |
string | required | Email of the message recipient. |
Example Request:
curl "https://api.harvestapp.com/v2/estimates/1439818/messages" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])" \
-X POST \
-H "Content-Type: application/json" \
-d '{"subject":"Estimate #1001","body":"Here is our estimate.","send_me_a_copy":true,"recipients":[{"name":"Richard Roe","email":"[email protected]"}]}'
Example Response:
Delete an estimate message
Delete an estimate message. Returns a 200 OK
response code if the call succeeded.
DELETE /v2/estimates/{estimate_ID}/messages/{message_ID}
Example Request:
curl "https://api.harvestapp.com/v2/estimates/1439818/messages/2666240" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])" \
-X DELETE
Mark a draft estimate as sent
Creates a new estimate message object and marks the estimate as sent. Returns an estimate message object and a 201 Created
response code if the call succeeded.
POST /v2/estimates/{estimate_ID}/messages
Parameter | Type | Required | Description |
---|---|---|---|
event_type |
string | required | Pass “send” to mark the estimate as sent. |
Example Request:
curl "https://api.harvestapp.com/v2/estimates/1439818/messages" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])" \
-X POST \
-H "Content-Type: application/json" \
-d '{"event_type":"send"}'
Example Response:
Mark an open estimate as accepted
Creates a new estimate message object and marks the estimate as accepted. Returns an estimate message object and a 201 Created
response code if the call succeeded.
POST /v2/estimates/{estimate_ID}/messages
Parameter | Type | Required | Description |
---|---|---|---|
event_type |
string | required | Pass “accept” to mark the estimate as accepted. |
Example Request:
curl "https://api.harvestapp.com/v2/estimates/1439818/messages" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])" \
-X POST \
-H "Content-Type: application/json" \
-d '{"event_type":"accept"}'
Example Response:
Mark an open estimate as declined
Creates a new estimate message object and marks the estimate as declined. Returns an estimate message object and a 201 Created
response code if the call succeeded.
POST /v2/estimates/{estimate_ID}/messages
Parameter | Type | Required | Description |
---|---|---|---|
event_type |
string | required | Pass “decline” to mark the estimate as accepted. |
Example Request:
curl "https://api.harvestapp.com/v2/estimates/1439818/messages" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])" \
-X POST \
-H "Content-Type: application/json" \
-d '{"event_type":"decline"}'
Example Response:
Re-open a closed estimate
Creates a new estimate message object and re-opens a closed estimate. Returns an estimate message object and a 201 Created
response code if the call succeeded.
POST /v2/estimates/{estimate_ID}/messages
Parameter | Type | Required | Description |
---|---|---|---|
event_type |
string | required | Pass “re-open” to re-open the estimate. |
Example Request:
curl "https://api.harvestapp.com/v2/estimates/1439818/messages" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Harvest-Account-Id: $ACCOUNT_ID" \
-H "User-Agent: MyApp ([email protected])" \
-X POST \
-H "Content-Type: application/json" \
-d '{"event_type":"re-open"}'
Example Response: