⚡ Use Cases & Workflows
Welcome to the Seven Senders integration guide. This page provides a high-level overview of the most common integration use cases. Use the workflows below to identify the path that best fits your business needs. For detailed technical specifications and API endpoints, please refer to the relevant section or the specific page for step-by-step implementation guides.
High-Level Workflow
This workflow represents the standard path to getting started with the Seven Senders API. It covers the majority of core use cases, including Shipping Label creation, Return Portal setup, and Customs.
---
config:
theme: redux
layout: dagre
---
flowchart LR
B{"7S Label?"} -- YES --> C["POST Label"]
B -- NO --> D["POST Shipment"]
A(["Start"]) --> n1["Authentication"]
n1 --> n17["POST Order"]
n2["POST Product"] --> n3["POST Product Image"]
n3 --> n4["Post Order Item"]
n5["POST Product"] --> n6["POST Product Image"]
n6 --> n7["POST Order Item"]
n4 --> n8["Customs Destination?"]
n7 --> n8
n8 -- YES --> n9["POST Customs Shipment"]
n9 --> n10["7S Flex?"]
n10 -- NO --> n11["POST Customs Manifest"]
n8 -- NO --> n12(["END"])
n10 -- YES --> n12
n11 --> n12
D --> n13["Retun Portal Pro?"]
n13 -- YES --> n2
n13 -- NO --> n8
C --> n14["Retun Portal Pro?"]
n14 -- YES --> n5
n14 -- NO --> n8
n17 --> B
C@{ shape: rounded}
D@{ shape: rounded}
n1@{ shape: rounded}
n17@{ shape: rounded}
n2@{ shape: rounded}
n3@{ shape: rounded}
n4@{ shape: rounded}
n5@{ shape: rounded}
n6@{ shape: rounded}
n7@{ shape: rounded}
n8@{ shape: diam}
n9@{ shape: rounded}
n10@{ shape: diam}
n11@{ shape: rounded}
n13@{ shape: diam}
n14@{ shape: diam}
B:::Ash
C:::Sky
D:::Sky
A:::Sky
n1:::Sky
n17:::Sky
n2:::Sky
n3:::Sky
n4:::Sky
n5:::Sky
n6:::Sky
n7:::Sky
n8:::Ash
n9:::Sky
n10:::Ash
n11:::Sky
n12:::Sky
n13:::Ash
n14:::Ash
classDef Ash stroke-width:1px,stroke-dasharray:none,stroke:#999999,fill:#EEEEEE,color:#000000
classDef Sky stroke-width:1px,stroke-dasharray:none,stroke:#374D7C,fill:#E2EBFF,color:#374D7C
style n3 stroke:#000000
click C "https://sevensenders.readme.io/docs/create-shipping-labels"
click D "https://sevensenders.readme.io/docs/create-shipment"
click n1 "https://sevensenders.readme.io/docs/authentication"
click n17 "https://sevensenders.readme.io/docs/create-order"
click n2 "https://sevensenders.readme.io/docs/create-update-delete-product"
click n3 "https://sevensenders.readme.io/docs/adding-deleting-product-images"
click n4 "https://sevensenders.readme.io/docs/update-delete-order"
click n5 "https://sevensenders.readme.io/docs/create-update-delete-product"
click n6 "https://sevensenders.readme.io/docs/adding-deleting-product-images"
click n7 "https://sevensenders.readme.io/docs/update-delete-order"
click n9 "https://sevensenders.readme.io/docs/create-customs-shipment"
click n11 "https://sevensenders.readme.io/docs/create-customs-manifest"
International Shipping & 7S Shipping Label
This workflow is used when Seven Senders manages the physical transport of your parcels in combination with our 7S Label service, which is one of the most common setups. If required, you can also use our system to generate labels for other carriers that you work with independently of Seven Senders. For more information, please contact your Key Account Manager.
This workflow considers the following scenarios:
- Shipping Label Creation
- Shipping Label Download
- Customs Shipment Creation
- Customs Manifesting
---
config:
theme: neutral
layout: dagre
---
flowchart LR
n8["Authentication"] --> n10["Post Shipping Label"]
n10 --> n9["Download Shipping Label"]
n11(["Start"]) --> n8
n9 --> n13["Customs Destination?"]
n13 -- YES --> n14["Post Customs Shipment"]
n13 -- NO --> n15(["End"])
n14 --> n17["7S Flex?"]
n17 -- YES --> n15
n17 --> n18["Post Customs Manifest"]
n18 --> n15
n12["Untitled Node"]
n5["Untitled Node"]
n6["Untitled Node"]
n8@{ shape: rounded}
n10@{ shape: rounded}
n9@{ shape: rounded}
n13@{ shape: diam}
n14@{ shape: rounded}
n17@{ shape: diam}
n18@{ shape: rounded}
n12@{ shape: anchor}
n5@{ shape: anchor}
n6@{ shape: anchor}
n8:::Sky
n10:::Sky
n9:::Sky
n11:::Sky
n13:::Ash
n14:::Sky
n15:::Sky
n17:::Ash
n18:::Sky
n12:::Sky
n5:::Sky
classDef Rose stroke-width:1px, stroke-dasharray:none, stroke:#FF5978, fill:#FFDFE5, color:#8E2236
classDef Sky stroke-width:1px, stroke-dasharray:none, stroke:#374D7C, fill:#E2EBFF, color:#374D7C
classDef Ash stroke-width:1px, stroke-dasharray:none, stroke:#999999, fill:#EEEEEE, color:#000000
click n8 "https://sevensenders.readme.io/docs/authentication"
click n10 "https://sevensenders.readme.io/docs/create-shipping-labels"
click n9 "https://sevensenders.readme.io/docs/create-shipping-labels"
click n14 "https://sevensenders.readme.io/docs/create-customs-shipment"
click n18 "https://sevensenders.readme.io/docs/create-customs-manifest"
7S PUDO Locator
The Seven Senders PUDO Locator allows customers to retrieve PUDO locations (out-of-home delivery points) based on various input parameters, such as geographic coordinates or address details. The locator returns a list of PUDO locations sorted by distance ("air distance"). Those results can then be pre-filtered and integrated into your checkout process, either as a map view or as a list of available locations.
The diagram below illustrates the standard implementation process, starting with authentication and ending with storing the selected location ID in the order object.
---
config:
theme: neutral
layout: dagre
---
flowchart LR
Start(["Customer starts Checkout"]) --> Auth["POST Token"]
SearchMethod{"Search Method?"} -- Geolocation --> SearchCoords["GET Locations by Coordinates"]
SearchMethod -- User Input --> SearchAddr["GET Locations by Address"]
SearchMethod -- Full List --> SearchAll["GET All Locations"]
SearchCoords --> Response["JSON Response Received"]
SearchAddr --> Response
SearchAll --> Response
Display["Display Map/List to Customer"] --> Select["Customer selects PUDO Location"]
Select --> Save["Store location_id in Order"]
Save --> End(["End Integration Workflow"])
Auth --> SearchMethod
Response --> Display
Auth@{ shape: rounded}
SearchCoords@{ shape: rounded}
SearchAddr@{ shape: rounded}
SearchAll@{ shape: rounded}
Response@{ shape: rounded}
Display@{ shape: rounded}
Select@{ shape: rounded}
Save@{ shape: rounded}
Start:::Sky
Auth:::Sky
SearchMethod:::Ash
SearchCoords:::Sky
SearchAddr:::Sky
SearchAll:::Sky
Response:::Sky
Display:::Sky
Select:::Sky
Save:::Sky
End:::Sky
classDef Sky stroke-width:1px,stroke-dasharray:none,stroke:#374D7C,fill:#E2EBFF,color:#374D7C
classDef Ash stroke-width:1px,stroke-dasharray:none,stroke:#999999,fill:#EEEEEE,color:#000000
click SearchCoords "https://sevensenders.readme.io/docs/pudo"
click SearchAddr "https://sevensenders.readme.io/docs/pudo"
click SearchAll "https://sevensenders.readme.io/docs/pudo"
International Shipping & Own Shipping Label
In specific technical setups, it may be appropriate to use your own system to generate the required shipping labels. In this scenario, you would still need to provide us with the relevant shipment and customs data, if applicable.
Below you will find a description of the data flow for this setup.
---
config:
theme: redux
layout: dagre
---
flowchart LR
n1(["START"]) --> n2["Authentication"]
n2 --> n4["POST Shipment"]
n4 --> n5["Customs Destination?"]
n5 -- YES --> n6["POST Customs Shipment"]
n6 --> n7["7S Flex?"]
n7 -- NO --> n8["POST Customs Manifest"]
n8 --> n9(["END"])
n5 -- NO --> n9
n7 -- YES --> n9
n2@{ shape: rounded}
n4@{ shape: rounded}
n5@{ shape: diam}
n6@{ shape: rounded}
n7@{ shape: diam}
n8@{ shape: rounded}
n1:::Sky
n2:::Sky
n4:::Sky
n5:::Ash
n6:::Sky
n7:::Ash
n8:::Sky
n9:::Sky
classDef Sky stroke-width:1px, stroke-dasharray:none, stroke:#374D7C, fill:#E2EBFF, color:#374D7C
classDef Ash stroke-width:1px, stroke-dasharray:none, stroke:#999999, fill:#EEEEEE, color:#000000
click n2 "https://sevensenders.readme.io/docs/authentication"
click n4 "https://sevensenders.readme.io/docs/create-shipment"
click n6 "https://sevensenders.readme.io/docs/create-customs-shipment"
click n8 "https://sevensenders.readme.io/docs/create-customs-manifest"
linkStyle 3 stroke:#000000,fill:none
Return Portal
When managing reverse logistics through our 7S Return Portal, there are two available integration options: Return Portal Pro (extended data exchange) and Return Portal Light (basic data exchange).
Return Portal Light
The Return Portal Light is a simplified version of our returns solution, designed for quick time to market and ease of use. Unlike the Pro version, it does not require data on order item and product level.
- No Additional Data Required: You do not need to provide specific information for order items, such as individual item IDs or product details.
- Core Integration Steps: This workflow focuses strictly on the creation of the Order and the Shipment.
For a detailed look at how this fits into your specific technical setup, please refer to the primary High-Level Overview workflow illustrated at the top of this page.
Return Portal Pro
The Pro version is designed to enable return management at the individual article level and therefore requiring a full exchange of order item and product data.
Implementation Requirements:
- Product Endpoints: Synchronization of the product catalog.
- Product Images: Visual assets to assist the end-user during the return process.
- Order Items: Management of individual items to support partial returns.
---
config:
theme: redux
layout: dagre
---
flowchart LR
B{"7S Label?"} -- YES --> C["POST Label"]
B -- NO --> D["POST Shipment"]
A(["Start"]) --> n1["Authentication"]
n1 --> B
D --> n2["POST Product"]
n2 --> n3["POST Product Image"]
n3 --> n4["Post Order Item"]
C --> n5["POST Product"]
n5 --> n6["POST Product Image"]
n6 --> n7["POST Order Item"]
n4 --> n8["Customs Destination?"]
n7 --> n8
n8 -- YES --> n9["POST Customs Shipment"]
n9 --> n10["7S Flex?"]
n10 -- NO --> n11["POST Customs Manifest"]
n8 -- NO --> n12(["END"])
n10 -- YES --> n12
n11 --> n12
C@{ shape: rounded}
D@{ shape: rounded}
n1@{ shape: rounded}
n2@{ shape: rounded}
n3@{ shape: rounded}
n4@{ shape: rounded}
n5@{ shape: rounded}
n6@{ shape: rounded}
n7@{ shape: rounded}
n8@{ shape: diam}
n9@{ shape: rounded}
n10@{ shape: diam}
n11@{ shape: rounded}
B:::Ash
C:::Sky
D:::Sky
A:::Sky
n1:::Sky
n2:::Sky
n3:::Sky
n4:::Sky
n5:::Sky
n6:::Sky
n7:::Sky
n8:::Ash
n9:::Sky
n10:::Ash
n11:::Sky
n12:::Sky
classDef Sky stroke-width:1px, stroke-dasharray:none, stroke:#374D7C, fill:#E2EBFF, color:#374D7C
classDef Ash stroke-width:1px, stroke-dasharray:none, stroke:#999999, fill:#EEEEEE, color:#000000
style n3 stroke:#000000
click C "https://sevensenders.readme.io/docs/create-shipping-labels"
click D "https://sevensenders.readme.io/docs/create-shipment"
click n1 "https://sevensenders.readme.io/docs/authentication"
click n2 "https://sevensenders.readme.io/docs/create-update-delete-product"
click n3 "https://sevensenders.readme.io/docs/adding-deleting-product-images"
click n4 "https://sevensenders.readme.io/docs/update-delete-order"
click n5 "https://sevensenders.readme.io/docs/create-update-delete-product"
click n6 "https://sevensenders.readme.io/docs/adding-deleting-product-images"
click n7 "https://sevensenders.readme.io/docs/update-delete-order"
click n9 "https://sevensenders.readme.io/docs/create-customs-shipment"
click n11 "https://sevensenders.readme.io/docs/create-customs-manifest"
Analytics
To leverage our analytics tool to its full extent, we recommend providing order data independently from your shipment or label creation process. This adapted workflow allows you to track both order states and shipment statuses, including specific events such as refunds.
7S Shipping & Analytics (Decoupled Order Creation)
Warehouse Performance Monitoring: To track warehouse performance accurately, we recommend a two-step API approach:
- Early Order Creation: Create the order via the API as soon as it is received by your system
- Decoupled Labeling: Generate the shipping label later during the warehouse fulfillment process.
Benefit: This allows for precise monitoring of the time elapsed between order receipt and physical dispatch, providing better visibility into your downstream operations.
---
config:
theme: redux
layout: dagre
---
flowchart LR
B{"7S Label?"} -- YES --> C["POST Label"]
B -- NO --> D["POST Shipment"]
A(["Start"]) --> n1["Authentication"]
n1 --> n17["POST Order"]
n17 --> B
C --> n18["PUT Order"]
D --> n18
n18 --> n19["POST Order States"]
C@{ shape: rounded}
D@{ shape: rounded}
n1@{ shape: rounded}
n17@{ shape: rounded}
n18@{ shape: rounded}
n19@{ shape: rounded}
B:::Ash
C:::Sky
D:::Sky
A:::Sky
n1:::Sky
n17:::Sky
n18:::Sky
n19:::Sky
classDef Ash stroke-width:1px,stroke-dasharray:none,stroke:#999999,fill:#EEEEEE,color:#000000
classDef Sky stroke-width:1px,stroke-dasharray:none,stroke:#374D7C,fill:#E2EBFF,color:#374D7C
click C "https://sevensenders.readme.io/docs/create-shipping-labels"
click D "https://sevensenders.readme.io/docs/create-shipment"
click n1 "https://sevensenders.readme.io/docs/authentication"
click n17 "https://sevensenders.readme.io/docs/create-order"
click n18 "https://sevensenders.readme.io/docs/create-order"
Outbound
For outbound logistics, the order lifecycle is managed through status updates and completion flags:
- Order Completion: Once the process is finished, the order can be updated by setting "boarding_complete" to "true".
- Status Updates: Use the POST Order State messages to keep the system synchronized.
- Preparation Phase: Utilize states such as "In Preparation" to monitor the internal warehouse progress before the parcel is handed to a carrier.
Returns
For reverse logistics, tracking the reimbursement process is critical for customer satisfaction:
- Refund Monitoring: Use specific states like "Refunded" or "Returned to Warehouse" in the POST Order State to trigger internal financial workflow.
Analytics + Decoupled Order Creation (7S Independent Shipping)
Updated 2 days ago