Update order note/instructions for subscription contract
Updates the persistent order note attached to a subscription contract. This note is automatically included with EVERY future recurring order generated from this subscription, appearing in Shopify admin order details and printable packing slips.
IMPORTANT: Recurring vs One-Time Notes
- This Endpoint (Contract Note): Applies to ALL FUTURE ORDERS permanently
- Billing Attempt Note (
/subscription-billing-attempts-update-order-note): Applies to ONE SPECIFIC ORDER only - Combined Behavior: If both notes exist, they are concatenated in the Shopify order
How It Works:
- Accepts subscription contract ID and new order note text
- Stores note in subscription contract record
- Every time a new order is created (monthly, weekly, etc.), note is automatically added
- Previous contract note is replaced (not appended)
- Empty string clears the existing note
- Does NOT affect past orders already created
Character Limits & Validation:
- Maximum Length: 5000 characters (Shopify order note limit)
- Encoding: UTF-8 supported (emojis, international characters allowed)
- HTML: Plain text only - HTML tags display as text
- Line Breaks: Use
\nfor line breaks (preserved in Shopify) - Special Characters: Automatically escaped for safety
Common Use Cases:
1. Permanent Delivery Instructions
Example: "Always leave package at back door. Do not ring doorbell (baby sleeping)."
Use Case: Customer wants same delivery instructions for all future orders
Applies To: Every monthly shipment permanently
2. Gift Subscription Messages
Example: "This is a gift subscription for Mom. Happy Birthday! Love, Sarah"
Use Case: Gift subscription with recurring message
Applies To: All orders until subscription ends or note is changed
3. Special Handling Requirements
Example: "FRAGILE - Glass bottles. Handle with care. Keep upright during shipping."
Use Case: Delicate products requiring special warehouse handling
Applies To: Every fulfillment automatically
4. Customer Preferences
Example: "Customer is allergic to peanuts. NO peanut products. Double-check packaging."
Use Case: Critical dietary restrictions or preferences
Applies To: All future orders for safety compliance
5. Internal Merchant Notes
Example: "VIP customer - priority processing. Include bonus samples."
Use Case: Internal fulfillment team instructions
Applies To: All shipments to provide consistent VIP treatment
6. Clearing Unwanted Notes
Example: orderNote="" (empty string)
Use Case: Customer moved, no longer needs "Leave at neighbor" note
Result: Future orders have no contract note (one-time notes still possible)
Where Note Appears:
- Shopify Admin: Order details page under “Notes”
- Packing Slips: Printed on warehouse packing slips (if enabled)
- Order Confirmation Emails: May appear in customer emails (theme-dependent)
- Fulfillment Apps: Visible to third-party logistics providers
- Order APIs: Accessible via Shopify Order REST/GraphQL APIs
When to Use Contract Note vs Billing Attempt Note:
| Scenario | Use Contract Note | Use Billing Attempt Note |
|---|---|---|
| Permanent delivery instructions | ✅ | ❌ |
| One-time special request | ❌ | ✅ |
| Gift message for all shipments | ✅ | ❌ |
| “Skip broccoli this week” | ❌ | ✅ |
| Allergy warnings | ✅ | ❌ |
| “Deliver to neighbor (vacation week)” | ❌ | ✅ |
| VIP customer priority | ✅ | ❌ |
Error Handling:
400 - Bad Request:
- Order note exceeds 5000 character limit
- Contract ID doesn’t belong to authenticated shop
- Contract is in invalid state
404 - Contract Not Found:
- Subscription contract ID doesn’t exist
- Contract was deleted
- Wrong shop (contract belongs to different store)
Integration Best Practices:
- Display Character Counter: Show “450 / 5000 characters” in UI
- Preview Formatting: Show how line breaks will appear
- Confirm Permanent Changes: Warn user “This note will appear on ALL future orders”
- Sanitize Input: Strip HTML tags, prevent injection attacks
- Show Current Note: Pre-fill form with existing note before update
Authentication: Requires API key authentication via X-API-Key header or api_key parameter
Headers
Path Parameters
Subscription contract ID
Query Parameters
API Key (Deprecated - Use Header X-API-Key instead)
Custom order note/instructions to include with subscription orders
Response
Order note updated successfully. Returns true. Note will appear on all future recurring orders from this contract.
The response is of type boolean.