Digistore24 offers an api to connect your fullfillment software. You agents are preparing the packages and handing them over to the parcel delivery service. Via api calls to Digistore24 your software retrieves data on the deliveries and updates the delivery status.Using the api, you can make sureevery delivery is sent excactly once (even if more then one agent is handling the deliveries)multiple deliveries for the same address are grouped.tracking information is added in Digistore24 and provided to the customerpartial deliveries are handled correctlyRequirementsYou are selling physical products, which are to be delivered, like books or supplements.You have a software managing your delivery process.Background informationFor every shipped order, Digistore24 creates one or more "deliveries".Digistore24 creates a delivery for each order position, which is to be shipped. If you have more then one shipped order position on a purchase, you may want to group deliveries.Every delivery has a type indicating the current status. Possible values for delivery type are:request - the order has not been processed. The items are to be sent.in_progress - one of your delivery handling agents is currently dealing with the delivery.delivery - all items of the delivery have been sentpartial_delivery - some items of the delivey have been sentreturn - the package has been returned - maybe the shipping address was wrongcancel - the delivery has been canceled - maybe because of a refund of the purchaseProcess1. Setup productIn Digistore24, you need to have a product being sold.Make sure, the product type is set correctly to a delivered product type (like a book, a dvd set or supplements).2. Retrieve open deliveries via apiUse api end point listDeliveries() to get a list of open deliveries.To only get open and not completed deliveries, use parameter:search[type]=request,partial_deliveryCycle through the list of deliveries, processing 3. Mark delivery as "in progress" for each delivery.3. Mark delivery as "in progress"To make sure, a delivery is only handeled once, use getDelivery() to set the delivery as being processed. Use parameterset_in_progress=YIn Digistore24's response, evaluate is_set_in_progressIf Y, your agent may process the delivery. Proceed to the next step (4. Update delivery status).If N, your agent should pick the next delivery. Use getDelivery()  for the next delivery again.4. Update delivery statusUse updateDelivery() to mark the package as shipped and to (optionally) provide parcel tracking data.Make sure, you add the quantity of the product delivered:add_quantity_delivered=NIf - after the api call - no quantity is left to be delivered, then the type is set to: delivery - indicating, that the delivery is complete.If not all order positions have been delivered, the type ist set to: partial_delivery - indicating, that there is a quantity left to be delivered.Optionally you may add package tracking information - see updateDelivery() for details.Then proceed with step 3 for the next delivery.Tips and tricksPack different order positions in one packageTo minimize the number of packages sent, search for delivery with the same address.Use listDeliveries() with these parameters:search[type]=request,partial_deliverysearch[same_address_as]=DELIVERY_IDReplace DELIVERY_ID with the id of a delivery.You'll get a list of deliveries shipped to the same address.The delivery with the given delivery id is not included in the list.Monitoring deliveries in Digistore24In the Digistore24 backoffice, you may monitor the deliveries in the vendor view on Reports - Deliveries. See alsolistDeliveries()getDelivery()updateDelivery()