This documentation is in beta, and might contain errors. Contact us at integration@instabee.com with any questions.

Instabee API

Post Purchase Flow

The Post Purchase flow (also known as the Create Order API) is called immediately after the consumer completes their purchase with Home Delivery selected. Instabee uses this to reserve capacity and begin planning the home delivery route.

Overview

What is Post Purchase? This is like a "prebooking" except that we do not actually "book" anything. It's being used for:

  1. Capacity management (even for Home Delivery!)
  2. Information for our operation to plan pickups and routes better
  3. Gives Instabee the possibility to talk to the consumer earlier to help them with any of their needs.

It does also levels up the integration and enables you to send information in the post purchase call that is not possible to send in the post packing call. As Instabee will easily merge the information on our end without introducing any extra complexity.

API Endpoint

EndpointMethodContent-Type
api.integration.instabee.com/orders (production) · sandbox-api.integration.instabee.com/orders (sandbox)PUTapplication/json

When to Use

Call this endpoint immediately after:

  • Customer completes their purchase in your checkout system

Integration Levels

You can integrate at different levels on what's possible:

  • Nothing: This call can of course be skipped completely but that just makes it harder for Instabee to achieve a great delivery experience.
  • Bare Minimum: Just an availability token/short toke/order reference/cart ID and the selected delivery options. This is the absolute minimum and will enable us to reserve the capacity.
  • Regular (or Instabee prefered option): Basic recipient and delivery information.
  • Maximum: Complete order details including products, dimensions, and special services. You can create a full order directly and just confirm the packing is done at a later stage.

Key Benefits

  1. Capacity Reservation: Ensures delivery slots are reserved for your customers
  2. Flexible Integration: Send as much or as little information as you have available
  3. Early Tracking: Customers get tracking information immediately after purchase
  4. Optimized Logistics: Helps Instabee plan pickup and delivery routes

Next Steps

  • Complete Parameter Reference: See the Create Order API page for all available parameters
  • After Packing: Use the Post Packing API to confirm when parcels are ready for pickup
  • Integration Guide: Check the Authentication section for API setup

Create Order API

The Create Order API (also known as Create Parcel or Order Create API) is used to register a parcel for delivery immediately after a customer completes their purchase. This is the prebooking step that reserves capacity for delivery before the parcel is physically packed.

API Endpoint

EndpointMethodContent-Type
api.integration.instabee.com/orders (production) · sandbox-api.integration.instabee.com/orders (sandbox)PUTapplication/json

Integration Levels

You can provide information at different levels:

  • Bare Minimum: Nothing
  • Minimum: Basic order identification and delivery option
  • Regular: Basic recipient and delivery information
  • Maximum: Complete order details including products, dimensions, and special services

Request Body

ParameterTypeRequiredDescriptionConstraintsEnumComment
brandstringoptionalDefine brand of the delivery optionsinstabox or budbee
productstringrequiredDefine the product of the delivery optionsMust be oneHOME_DELIVERY
countryCodestringrequired*Recipient country code. Can be sent in query paramISO 3166 alpha 2DK, FI, NO, SE
parcelPackingConfirmedbooleanconditional*Confirm parcel is packed and ready for pickupSee docs
availabilityTokenstringoptionalAvailability token from availability response
orderIdstringoptionalUnique order reference for subsequent calls
parcelIdstringoptionalUnique identifier/barcode for parcelAuto-generated if omitted
senderobjectoptionalSender information objectNot normally needed for Home Delivery
recipientobjectrequiredRecipient information object
dispatchobjectoptionalDispatch readiness and warehouse
optionsobjectoptionalResponse options / language
deliveryInstructionsobjectoptionalDelivery instruction details
additionalServicesobjectoptionalAdditional services
cartobjectoptionalParcel and/or product details

recipient

ParameterTypeRequiredDescriptionConstraintsEnumComment
namestringrequiredRecipient name
emailstringrequiredRecipient email addressValid email formatUsed for delivery notifications
phonestringrequiredRecipient phone numberBox: Min 6 digits, Home delivery: Min 10 digits, Max 15 digitsCan be made optional with setting
ssnstringoptionalSocial security numberFor age verification services
streetstringrequiredRecipient street address
street2stringoptionalAdditional address informationFloor, apartment, etc.
postalCodestringrequiredRecipient postal code
citystringrequiredRecipient city
countryCodestringrequiredRecipient country codeISO 3166 alpha 2DK, FI, NO, SE
coordinatesobjectoptionalGPS coordinatesFor precise location

recipient.coordinates

ParameterTypeRequiredDescriptionEnum
latnumberoptionalLatitude
lonnumberoptionalLongitude

sender

ParameterTypeRequiredDescriptionConstraintsEnumComment
namestringoptionalSender/merchant name
emailstringoptionalSender email addressValid email format
phonestringoptionalSender phone numberBox: Min 6 digits, Home delivery: Min 10 digits, Max 15 digits
streetstringoptionalSender street address
street2stringoptionalAdditional sender address info
postalCodestringoptionalSender postal code
citystringoptionalSender city
countryCodestringoptionalSender (merchant) country codeISO 3166 alpha 2BE, DE, DK, FI, NL, NO, PL, SEDE and PL are merchant address countries only, not delivery markets
coordinatesobjectoptionalSender GPS coordinates

sender.coordinates

ParameterTypeRequiredDescriptionEnum
latnumberoptionalLatitude
lonnumberoptionalLongitude

deliveryOption

ParameterTypeRequiredDescriptionEnumComment
sortCodestringrequiredSort code for the selected home delivery slotIdentifies the specific home delivery option
etaIntervalobjectoptionalPreferred delivery time window

deliveryOption.etaInterval

ParameterTypeRequiredDescriptionConstraintsEnumComment
fromstringrequired*Start of delivery windowISO-8601 datetimeRequired when etaInterval is sent
tostringrequired*End of delivery windowISO-8601 datetimeRequired when etaInterval is sent. Defaults to best available if it doesn't match

dispatch

ParameterTypeRequiredDescriptionConstraintsEnumComment
readyToShipstringoptionalWhen parcel is ready for pickupISO-8601 datetimeOnly one of readyToShip/readyToPack/outOfStock
readyToPackstringoptionalWhen packing process will startISO-8601 datetimeInstabee adds packing time to this
outOfStockbooleanoptionalProduct is out of stocktrue/falseRemoves ETA from delivery options
packingTimenumberoptionalRequired packing time in minutes
collectionPointIdstringoptionalSpecific warehouse/pickup pointConfigured by Instabee
returnPointIdstringoptionalReturn address point IDFor failed deliveries

options

ParameterTypeRequiredDescriptionConstraintsEnumComment
languageCodestringoptionalLanguage for customer communicationsISO 639-1da, en, fi, nl, no, svDefaults to the main language of the countryCode
localEtasbooleanoptionalReturn local delivery termstrue/falseDifferent local terms for delivery promise
estimatedParcelTypebooleanoptionalReturn estimated parcel sizetrue/falseCalculated based on cart contents

deliveryInstructions

ParameterTypeRequiredDescriptionEnumComment
notifyBystringoptionalHow to notify recipientring_doorbell, knock_on_door
doorCodestringoptionalDoor or building access code
messagestringoptionalSpecial delivery instructionsFree text message
intercombooleanoptionalUse intercom if availabletrue/false

additionalServices

ParameterTypeRequiredDescriptionConstraintsEnumComment
identificationobjectoptionalIdentity verification requirements
leaveOutsideDoorbooleanoptionalAllow leaving the parcel outside the doortrue/falseDefault is true
leaveWithNeighbourbooleanoptionalAllow leaving the parcel with a neighbourtrue/falseDefault is false
numberOfMissRetriesnumberoptionalNumber of delivery retry attemptsMin: 1, Max: 5null = default. Extra cost applies

additionalServices.identification

ParameterTypeRequiredDescriptionConstraintsEnumComment
typestringrequired*Type of verificationAGE_LIMIT, AGE_LIMIT_AT_HANDOVER, AGE_LIMIT_BY_MERCHANT_AT_HANDOVER, ALREADY_IDENTIFIED, ANY_PERSON, FRAUD_DETECTION, SPECIFIC_PERSON, SPECIFIC_PERSON_AT_HANDOVERRequired when the identification object is sent
ageLimitnumberoptionalMinimum age requiredMin: 0, Max: 20Used with AGE_LIMIT types
ssnstringoptionalRequired SSN for verification
namestringoptionalRequired name for verification

cart

ParameterTypeRequiredDescriptionConstraintsEnumComment
checkoutIdstringoptionalCheckout session IDOneOf this, orderNumber, or availabilityToken
orderNumberstringrequired*Your order numberOneOf this, checkoutId, or availabilityTokenUsed to link with your system
totalValueInCentsnumberoptionalTotal order value in centsUsed for insurance purposes
totalWeightInGramsnumberoptionalTotal weight in gramsFor logistics planning
parcelobjectoptionalParcel dimensions and contentsDetailed parcel information

cart.parcel

ParameterTypeRequiredDescriptionEnumComment
heightMmnumberoptionalParcel height in mm
widthMmnumberoptionalParcel width in mm
lengthMmnumberoptionalParcel length in mm
volumeDm3numberoptionalParcel volume in dm³
estimatedSizestringoptionalEstimated size of the parcel. The sizes will be configured together with InstabeeSMALL, LARGE, TOOLARGE
weightGramnumberoptionalParcel weight in grams
typestringoptionalParcel typeBOX, BAG
productsarrayoptionalArray of products in parcelDetailed product information

cart.parcel.products[]

ParameterTypeRequiredDescriptionEnumComment
namestringoptionalProduct name
quantitystringoptionalQuantity of this productSent as a string, not a number
productIdstringoptionalYour product identifier
detailsobjectoptionalDetailed product information
temperatureobjectoptionalTemperature requirements for the product
packagesarrayoptionalPhysical packages the product is shipped in

cart.parcel.products[].details

ParameterTypeRequiredDescriptionConstraintsEnum
productTypestringoptionalType of producte.g., "Prescription"
imgUrlstringoptionalProduct image URL
categorystringoptionalProduct category
brandstringoptionalProduct brand
descriptionstringoptionalProduct description
priceobjectoptionalPrice information

cart.parcel.products[].details.price

ParameterTypeRequiredDescriptionConstraintsEnumComment
priceInCentsnumberoptionalPrice in cents
taxValueInCentsnumberoptionalTax amount in cents
discountRateInCentsnumberoptionalDiscount amount in cents
currencystringoptionalCurrency codeISO 4217e.g., "SEK"

cart.parcel.products[].temperature

ParameterTypeRequiredDescriptionEnum
minnumberoptionalMinimum temperature in Celsius
maxnumberoptionalMaximum temperature in Celsius

cart.parcel.products[].packages[]

ParameterTypeRequiredDescriptionEnumComment
widthMmstringoptionalPackage width in mm
heightMmstringoptionalPackage height in mm
lengthMmstringoptionalPackage length in mm
weightGramstringoptionalPackage weight in grams
volumeDm3stringoptionalPackage volume in dm³ (liters)
barcodesobjectoptionalBarcode object for the packageSingle object, not an array

cart.parcel.products[].packages[].barcodes

ParameterTypeRequiredDescriptionEnum
codestringoptionalBarcode value
typestringoptionalThe barcode typeEAN13

Response

The API returns the created order/parcel with:

FieldTypeDescription
orderIdstringThe Instabee order ID
parcelIdstringThe Instabee parcel ID
statestringParcel state ("PENDING_PACKING" until packing is confirmed)

links (object)

FieldTypeDescription
labelstringURL to download the shipping label
trackingstringPreliminary tracking URL — see the note below

Preliminary tracking link: links.tracking in this response is preliminary. It is generated before the parcel exists in our tracking system, so it does not resolve yet — opening it gives a broken link. Retrieve the working link with Get Tracking or Fetch Order once the parcel has been registered.

Separate senderTracking and recipientTracking links are not returned here. They only exist for LOCKER_TO_LOCKER (Consumer to Consumer) parcels — see Fetch Tracking Links.

Command Palette

Search for a command to run...