Skip to main content

Get order messages

GET /v2/post_checkout/orders/{order_id}/order_messages

This operation gets all of an order’s messages and notifications. This includes the messages exchanged between the customer and shoppers, as well as automated order notifications, such as those sent when a shopper replaces an item or completes delivery. The customer-shopper exchanged messages are returned in chat_messages and the status notifications can be found in lifecycle_messages .

tip

To access customer-shopper messages only, use get chat messages.

To protect personal data, chat_messages remain accessible for 24 hours, measured from when an order is delivered or cancelled. The is_expired field indicates whether that time period has elapsed. If true, then the messages are no longer accessible and chat_messages is empty. If false, then all exchanged messages, if any, are still present.

If your account configuration enables the shopper information removal feature, this operation always returns an error.

Security

NameInDescription
AuthorizationheaderThe Authorization header with the bearer token acquired during authentication.

Parameters

NameInTypeRequiredDescription
order_idpathstringRequired

The ID of the order.

Request

None.

Request examples

curl --request GET \
--url 'https://connect.instacart.com/v2/post_checkout/orders/{order_id}/order_messages' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'

Response

FieldTypeRequiredDescription
chat_messagesArray(OrderChatMessage)Required

The messages exchanged between shoppers and the customer while an order is being fulfilled.

lifecycle_messagesArray(LifecycleMessage)Required

The automated notifications sent during an order's lifecycle, such as those that occur when an item is refunded or a delivery is in progress.

metadataOrderMessagesMetadataRequired

Metadata associated with the order messages.

OrderChatMessage Object

FieldTypeRequiredDescription
idintegerRequired

The Instacart-generated chat message identifier. Useful for logging purposes or to reference a specific message when working with Instacart support.

order_idintegerRequired

The ID of the order associated with the message.

created_atstringRequired

When the message was created. A UTC timestamp in ISO-8601 format.

recipient_idintegerRequired

The ID of the message recipient.

recipient_typestringRequired

The message recipient type. One of user or driver.

sender_idintegerRequired

The ID of the message sender.

sender_typestringRequired

The message sender type. One of user or driver.

readbooleanRequired

Indicates whether the recipient has read the message.

read_atstringOptional

Indicates the date and time the message was read, if it has been. A UTC timestamp in ISO-8601 format.

bodystringRequired

The body of the message.

imagestringOptional

The image associated with this message.

LifecycleMessage Object

FieldTypeRequiredDescription
notification_idintegerRequired

The Instacart-generated order notification identifier. Useful for logging purposes or to reference a specific notification when working with Instacart support.

mediumstringRequired

The medium by which the notification is sent, such as sms, push, email, call, or in_app_message.

recipient_phone_numberstringOptional

The recipient's phone number. Only present for messages that have a medium of sms.

sent_fromstringOptional

The sender's phone number. Only present for messages that have a medium of sms.

created_atstringRequired

When this notification was created. A UTC timestamp in ISO-8601 format.

sent_atstringRequired

When this notification was sent. A UTC timestamp in ISO-8601 format.

delivered_atstringRequired

When this notification was delivered. A UTC timestamp in ISO-8601 format.

bodystringRequired

The body of the notification.

imagestringOptional

The image associated with this notification.

OrderMessagesMetadata Object

FieldTypeRequiredDescription
customerOrderMessageUserRequired

The customer's metadata.

current_shopperOrderMessageUserOptional

The current shopper's metadata. Present only when a shopper is assigned to the order.

shoppersArray(OrderMessageUser)Required

The metadata of all shoppers who have been assigned to the order.

is_expiredbooleanRequired

Indicates whether chat_messages are still accessible. If true, more than 24 hours have passed since the order was delivered or canceled and messages are no longer accessible.

OrderMessageUser Object

FieldTypeRequiredDescription
idintegerRequired

The user's ID.

display_namestringRequired

The user's display name.

avatar_urlstringOptional

The URL of the user's avatar.

Response examples

200 Success

{
"chat_messages": [
{
"id": 123456789,
"order_id": 122233,
"created_at": "2021-01-01T00:00:00Z",
"recipient_id": 334354343,
"recipient_type": "user",
"sender_id": 55655345,
"sender_type": "driver",
"read": false,
"body": "MessageBody"
}
],
"lifecycle_messages": [
{
"notification_id": 987654321,
"medium": "sms",
"recipient_phone_number": "+14155552671",
"sent_from": "+18005551234",
"created_at": "2021-01-01T00:00:00Z",
"sent_at": "2021-01-01T00:00:01Z",
"delivered_at": "2021-01-01T00:00:02Z",
"body": "Your order has been picked up."
}
],
"metadata": {
"customer": {
"id": 8,
"display_name": "John",
"avatar_url": ""
},
"current_shopper": {
"id": 15,
"display_name": "Robert",
"avatar_url": "https://speedwagon.foundation/avatar/reospeedwagon.jpg"
},
"shoppers": [
{
"id": 55655345,
"display_name": "SomeFirstName",
"avatar_url": "SomeURL"
}
],
"is_expired": false
}
}

4XX Errors

Error responses return either a single error or multiple errors.

HTTP CodeCauseError MessageError CodeError Meta
400Order was not created with Fulfillment v3, trying to fetch with client credentials"User ID not found"4001Not applicable
403Retailer requested to redact shopper PII"Shopper PII"nullNot applicable
404Order not found"Resource not found"4000Not applicable