InPost-Controlled Discount Mechanism
1. Mechanism Overview
This mechanism enables InPost to pass a list of discounts applied within the application at the time of order creation, which the merchant is required to reflect in the order value in their store.
The discount value affecting the merchant's order total is determined individually with the merchant and settled in accordance with separate agreements.
Business Context
InPost applies a discount to the order and communicates its value to the merchant at the time of order creation via the inpost_discounts object. The merchant is required to reflect this value in both the order total charged to the customer and in the corresponding invoice. The terms governing discount eligibility and the financial settlement between InPost and the merchant are defined in separate agreements.
1.1 Order Creation
When an order is being created, InPost sends the inpost_discounts object to the merchant as part of the following request:
POST /v1/izi/order The object is included in the request body under the order_details section. Upon successful order creation, the merchant returns order details including the order_base_price and order_final_price fields, both of which must already account for the applied InPost discounts.
InPost persists the inpost_discounts object within the order record. The data is subsequently accessible via:
GET /v1/izi/ordersImportant
If no InPost discount has been applied to a given order, the inpost_discounts object will not be included in the request to the merchant. Implementations must handle the absence of this object gracefully.
2. Changes to Merchant Backend Endpoints
2.1 POST /v1/izi/order - Order Creation
The inpost_discounts object has been added to the request body under order_details.
inpost_discounts - Object Structure
"inpost_discounts": [
{
"type": "string",
"discount": 0
}
]inpost_discount - Field Descriptions
Field Name | Type | Required | Description |
inpost_discounts | array | No | Object containing the list of InPost discounts applied to the order. The merchant is required to reflect the passed discounts in the final order value. |
inpost_discounts.type | string | Yes | Type of discount. For subscription, this will be |
inpost_discounts.discount | number (decimal) | Yes | Value of the discount applied to the order. |
In the response body, the descriptions of the order_base_price and order_final_price order price fields have been updated to reflect the inclusion of InPost discounts:
Field Name | Description (updated) |
order_base_price | Order price including merchant discounts/coupons and InPost discounts, excluding shipping costs. |
order_final_price | Total order price including merchant discounts/coupons and InPost discounts, including shipping costs. |
2.2 GET /v1/izi/order/{order_id} - Order Details
2.2.1 Updated Order Price Field Descriptions
The order_base_price and order_final_price fields have been updated to reflect the inclusion of InPost discounts:
Field Name | Description (updated) |
order_base_price | Order price including merchant discounts/coupons and InPost discounts, excluding shipping costs. |
order_final_price | Total order price including merchant discounts/coupons and InPost discounts, including shipping costs. |
3. Changes to InPost Pay Endpoints (Basket App)
3.1 GET /v1/izi/orders - Order List
The inpost_discounts object with an identical structure to that described in section 2.1 has been added to the response.orders.order_details section.
inpost_discounts - Object Structure
"inpost_discounts": [
{
"type": "string",
"discount": 0
}
]
inpost_discount - Field Descriptions
Field Name | Type | Required | Description |
inpost_discounts | array | No | Object containing the list of InPost discounts applied to the order. The merchant is required to reflect the passed discounts in the final order value. |
inpost_discounts.type | string | Yes | Type of discount. For subscription, this will be |
inpost_discounts.discount | number (decimal) | Yes | Value of the discount applied to the order. |
3.1.1 Updated Order Price Field Descriptions
As in the Merchant Backend, the order_base_price and order_final_price fields have been updated
Field Name | Description (updated) |
order_base_price | Order price including merchant discounts/coupons and InPost discounts, excluding shipping costs. |
order_final_price | Total order price including merchant discounts/coupons and InPost discounts, including shipping costs. |