Skip to main content

Update a tip

PUT /v2/fulfillment/users/{user_id}/orders/{order_id}/tip

Updates the amount of the tip for a completed order.

To adjust the tip before an order is completed, see Update an order.

Security

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

Parameters

NameInTypeRequiredDescription
user_idpathstringRequired

The ID of the user.

order_idpathstringRequired

The ID of the order.

Request

FieldTypeRequiredDescription
tip_amount_centsintegerRequired

The updated tip amount in cents.

Request examples

curl --request PUT \
--url 'https://connect.instacart.com/v2/fulfillment/users/{user_id}/orders/{order_id}/tip' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"tip_amount_cents": 1
}'

Response

FieldTypeRequiredDescription
idstringRequired

The retailer-generated order ID.

statusstringRequired

The current status of the order.

order_urlstringOptional

The URL of the Instacart-hosted order status page. If the retailer has opted not to use this feature, this field will be null or empty.

created_atstringOptional

The time of order creation in ISO 8601 format.

cancellation_reasonstringOptional

The reason the order was canceled. Only present in canceled orders. One of the following:

  • customer_driven: The customer triggered the cancellation

  • instacart_driven: Instacart triggered the cancellation

  • retailer_driven: The retailer triggered the cancellation

  • shopper_driven: The shopper triggered the cancellation

  • unbatchable: The Instacart batch system triggered the cancellation

  • other: The cancellation was triggered for another reason not listed above.

localestringOptional

Indicates how the order is localized.

is_expressbooleanOptional

Deprecated. Use is_instacartplus instead. Indicates whether the order received Instacart+ membership benefits. Defaults to false.

is_instacartplusbooleanOptional

Indicates whether the order received Instacart+ membership benefits. Defaults to false.

metadataHashOptional

The order-level metadata.

fulfillment_detailsOrderFulfillmentDetailsOptional

The order's fulfillment details.

warningsArray(Error)Optional

Any warnings associated with this request.

itemsArray(OrderItem)Optional

The items in the order.

OrderFulfillmentDetails Object

FieldTypeRequiredDescription
store_locationstringOptional

The location code of the store where the order was fulfilled. This field's value is often the same as the location_code included in the create order request. However, orders can be fulfilled from a store that's different from the one specified by location_code.

window_starts_atstringRequired

The start of the fulfillment window in ISO 8601 format.

window_ends_atstringRequired

The end of the fulfillment window in ISO 8601 format.

delivered_atstringOptional

The time the order was delivered to the customer in ISO 8601 format. Only present for completed deliveries.

bag_countintegerOptional

The number of bags in the order, as reported by the shopper.

handoff_window_starts_atstringOptional

The start of the store-associate-to-Instacart-shopper handoff window in ISO 8601 format. This field is only populated for last mile delivery (i.e., delivery only) orders.

handoff_window_ends_atstringOptional

The end of the store-associate-to-Instacart-shopper handoff window in ISO 8601 format. This field is only populated for last mile delivery (i.e., delivery only) orders.

Error Object

FieldTypeRequiredDescription
errorErrorDetailsOptional

Information relevant to the error.

metaMetaErrorOptional

The error metadata.

ErrorDetails Object

FieldTypeRequiredDescription
messagestringOptional

The error message.

error_codeintegerOptional

The error code.

MetaError Object

FieldTypeRequiredDescription
itemsArray(ItemInfo)Optional

The items that triggered the error.

ItemInfo Object

FieldTypeRequiredDescription
item_codestringOptional

The retailer reference code (RRC) or universal product code (UPC) of an item that triggered the error.

OrderItem Object

FieldTypeRequiredDescription
line_numstringRequired

The item's line number as provided by the retailer in the create order request.

qtynumberOptional

The quantity of the item. For unpicked items, this is the ordered quantity. For picked items, this is the delivered quantity.

qty_unitstringOptional

The unit of measure for the quantity. Either each for count-based items or lb for weight-based items.

qty_fulfillednumberOptional

The fulfilled quantity of the item (the actual quantity picked and delivered).

qty_fulfilled_unitstringOptional

The unit of measure for the fulfilled quantity. Either each for count-based items or lb for weight-based items.

qty_requestednumberOptional

The initially requested quantity of the item (what the customer originally ordered).

qty_requested_unitstringOptional

The unit of measure for the initially requested quantity. Either each for count-based items or lb for weight-based items.

replacedbooleanOptional

Indicates whether the item was replaced. This is true if the item that was picked and delivered differs from the item that was originally requested by the customer.

scan_codestringOptional

The barcode or scan code that the shopper scanned when picking this item.

replacement_policystringOptional

The replacement policy for the item. One of the following:

  • no_replacements: Do not replace if unavailable.

  • users_choice: Replace only with customer-approved alternatives.

  • shoppers_choice: Shopper selects best replacement.

shopper_provided_item_namestringOptional

The item name provided by shoppers for items that they added.

metadataHashOptional

The item-level metadata.

shopper_provided_item_priceMoneyOptional

The item price provided by shoppers for items that they added.

itemItemRequired

The item's codes.

Money Object

FieldTypeRequiredDescription
amountnumberRequired

The amount of a specified currency.

currencystringRequired

The currency type in ISO 4217 format. For example: USD.

Item Object

FieldTypeRequiredDescription
upcstringOptional

The item's universal product code (UPC). For unpicked items, this is the requested UPC. For picked items, this is the delivered UPC.

rrcstringOptional

The item's retailer reference code (RRC). For unpicked items, this is the requested RRC. For picked items, this is the delivered RRC.

requested_upcstringOptional

The UPC of the item that the customer originally requested to purchase.

requested_rrcstringOptional

The RRC of the item that the customer originally requested to purchase.

delivered_upcstringOptional

The UPC of the item that was actually picked and delivered to the customer. If the item was replaced, this will differ from the requested_upc.

delivered_rrcstringOptional

The RRC of the item that was actually picked and delivered to the customer. If the item was replaced, this will differ from the requested_rrc.

Response examples

200 Success

{
"id": "12345676789012345678780",
"status": "created",
"order_url": "https://example.com/example-order",
"created_at": "2018-02-22T00:00:00Z",
"cancellation_reason": "shopper_driven",
"locale": "en_US",
"is_express": true,
"is_instacartplus": true,
"fulfillment_details": {
"store_location": "000-32722",
"window_starts_at": "2018-02-22T00:00:00Z",
"window_ends_at": "2018-02-22T00:30:00Z"
},
"items": [
{
"line_num": "113",
"qty": 12,
"qty_unit": "each",
"replaced": false,
"scan_code": "00070481001226",
"replacement_policy": "shoppers_choice",
"rx": false,
"item": {
"upc": "123456789126",
"rrc": "",
"requested_upc": "123456789126",
"requested_rrc": "",
"delivered_upc": "123456789126",
"delivered_rrc": ""
}
}
]
}

4XX Errors

Error responses return either a single error or multiple errors.

HTTP CodeCauseError MessageError CodeError Meta
400Invalid user id"User Not Found"1001{"key":"user_id"}
400Order not yet complete"Order has not been completed yet."1001{"key":"tip_amount_cents"}
400Tip update temporary error"OrderDeliveries::TipService error"2003{"wait":10,"retry":true}
400Missing parameters"can't be blank"1001{"key":"tip_amount_cents"}
400Invalid order params*"There were issues with your request"9999Not applicable
403Inactive user"User Not Active"nullNot applicable
409Cannot update tip while another update is in progress"Cannot update tip while another update is in progress. Please retry shortly."1001Not applicable
* Multiple error