Fulfillment Callbacks¶
Merchant Delivery¶
[
{
"fulfillmentId": "OF2405200539030657485731",
"type": "STORE",
"ownerType": "RETAIL_SERVICE_PROVIDER",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "PACKED",
"fulfilmentStatusHistory": {
"PACKED": {
"actual": {
"endTime": 1722576698000
},
"expected": {
"endTime": 1722576698000
},
"promised": {
"endTime": 1722573098000
}
},
"PACKING": {
"actual": {
"endTime": 1722572438000
}
}
}
},
{
"fulfillmentId": "OF2405200539030657485732",
"type": "DELIVERY",
"ownerType": "RETAIL_SERVICE_PROVIDER",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "OUT_FOR_DELIVERY",
"fulfilmentStatusHistory": {
"SEARCHING_FOR_AGENT": {
"actual": {
"endTime": 1722576698000
}
},
"AGENT_ASSIGNED": {
"actual": {
"endTime": 1722577843000
}
},
"OUT_FOR_DELIVERY": {
"actual": {
"endTime": 1722578383000
}
},
"DELIVERED": {
"expected": {
"endTime": 1722581983000
},
"promised": {
"endTime": 1722578383000
}
}
}
}
]
Pincode Delivery¶
[
{
"fulfillmentId": "OF2405200539030657485731",
"type": "STORE",
"ownerType": "RETAIL_SERVICE_PROVIDER",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "PACKED",
"fulfilmentStatusHistory": {
"PACKED": {
"actual": {
"endTime": 1722576698000
},
"expected": {
"endTime": 1722576698000
},
"promised": {
"endTime": 1722573098000
}
},
"PACKING": {
"actual": {
"endTime": 1722572438000
}
}
}
},
{
"fulfillmentId": "OF2405200539030657485732",
"type": "DELIVERY",
"ownerType": "PINCODE",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "DELIVERED",
"fulfilmentStatusHistory": {
"SEARCHING_FOR_AGENT": {
"actual": {
"endTime": 1722576698000
}
},
"AGENT_ASSIGNED": {
"actual": {
"endTime": 1722577843000
}
},
"OUT_FOR_DELIVERY": {
"actual": {
"endTime": 1722578383000
}
},
"DELIVERED": {
"expected": {
"endTime": 1722581983000
},
"promised": {
"endTime": 1722578383000
},
"actual": {
"endTime": 1722583843000
}
}
},
"deliveryAgent": {
"name": "Dolor Sit",
"phone": "9292929292"
},
"pickupVerification": {
"type": "OTP",
"otp": "4920"
}
}
]
RTO Case¶
[
{
"fulfillmentId": "OF2405200539030657485731",
"type": "STORE",
"ownerType": "RETAIL_SERVICE_PROVIDER",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "PACKED",
"fulfilmentStatusHistory": {
"PACKED": {
"actual": {
"endTime": 1722576698000
},
"expected": {
"endTime": 1722576698000
},
"promised": {
"endTime": 1722573098000
}
},
"PACKING": {
"actual": {
"endTime": 1722572438000
}
}
}
},
{
"fulfillmentId": "OF2405200539030657485732",
"type": "DELIVERY",
"ownerType": "PINCODE",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "RTO_INITIATED",
"fulfilmentStatusHistory": {
"SEARCHING_FOR_AGENT": {
"actual": {
"endTime": 1722576698000
}
},
"AGENT_ASSIGNED": {
"actual": {
"endTime": 1722577843000
}
},
"OUT_FOR_DELIVERY": {
"actual": {
"endTime": 1722578383000
}
},
"DELIVERED": {
"expected": {
"endTime": 1722581983000
},
"promised": {
"endTime": 1722578383000
}
},
"RTO_INITIATED": {
"actual": {
"endTime": 1722578383000
}
}
},
"deliveryAgent": {
"name": "Dolor Sit",
"phone": "9292929292"
},
"rtoVerification": {
"type": "OTP",
"otp": "4920"
}
}
]
Self Pickup¶
[
{
"fulfillmentId": "OF2405200539030657485731",
"type": "STORE",
"ownerType": "RETAIL_SERVICE_PROVIDER",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "PACKED",
"fulfilmentStatusHistory": {
"PACKED": {
"actual": {
"endTime": 1722576698000
},
"expected": {
"endTime": 1722576698000
},
"promised": {
"endTime": 1722573098000
}
},
"PACKING": {
"actual": {
"endTime": 1722572438000
}
}
}
},
{
"fulfillmentId": "OF2405200539030657485732",
"type": "DELIVERY",
"ownerType": "CUSTOMER",
"end": {
"address": {
"building": "410 Lorem Lpsum",
"locality": "----",
"city": "Vadodara",
"state": "Gujarat",
"country": "IND",
"pincode": "390011",
"formattedAddress": "Room No 410, Lorem Lpsum Training Institute",
"lat": 22.28182220459,
"lon": 73.202598571777
},
"contact": {
"phone": "8686868686"
},
"person": {
"name": "Loren Lpsum"
}
},
"fulfillmentState": "DELIVERED",
"fulfilmentStatusHistory": {
"DELIVERED": {
"actual": {
"endTime": 1722578383000
}
}
}
}
]
Field Explanation:
Field | Type | Description |
---|---|---|
requestContext | Object | This object represents the context of the order in which the update is being given |
requestContext.requestId | String | The unique ID for every request made will be the same in callbacks and identify every new request |
requestContext.transactionId | String | The unique ID for order journey. This will be orderId. |
requestContext.actionType | Enum | Defines the type of request made |
orderResponse.id | String | Represents Order ID |
orderResponse.orderState | String | Represents the current state of the order (CREATED, ACCEPTED, IN_PROGRESS, COMPLETED, CANCELLED) |
orderResponse.items | Object | This object includes the item details included in the order |
orderResponse.items[0].itemId | String | Represents the unique itemId for referencing in a particular order |
orderResponse.items[0].name | String | Represents the name of the item |
orderResponse.items[0].platformItemId | String | Represents the sender platform’s itemId enables the platform to identify the item |
orderResponse.items[0].serviceProviderItemId | String | The receiver platform’s catalog itemId |
orderResponse.items[0].fulfillmentId | String | This id is the same as the fulfillmentId of STORE type fulfillment. All the items will contain this same id |
orderResponse.items[0].quantity.count | Integer | Quantity of the particular item requested in the order |
orderResponse.items[0].price.value | Float | Represents the MRP value of an item |
orderResponse.items[0].sellingPrice.value | Float | Represents the selling price of an item |
orderResponse.items[0].images | Object | This object contains the image URLs for the product |
orderResponse.items[0].displayMeasurement | String | Represents the display measurement on the unit product |
orderResponse.serviceProvider | Object | This object represents the store details |
orderResponse.serviceProvider.id | String | Represents the store identification ID that the receiver platform understands |
orderResponse.serviceProvider.platformId | String | Represents the store identification ID that is owned by the sender platform |
orderResponse.billing | Object | This object represents the billing information of the user with the necessary details |
orderResponse.fulfillments | Object | This object contains information about fulfillment (delivery/shipment) |
orderResponse.fulfillments[0].fulfillmentId | String | Unique fulfillment ID which is also linked with the items and the updates can be shared using this ID |
orderResponse.fulfillments[0].type | Enum | Type of fulfillment (STORE/DELIVERY) |
orderResponse.fulfillments[0].ownerType | Enum | Type of owner types (RETAIL_SERVICE_PROVIDER/PINCODE/CUSTOMER) |
orderResponse.fulfillments[0].end.address | String | Address details of the delivery location |
orderResponse.fulfillments[0].end.contact.phone | String | Phone number of the person being contacted |
orderResponse.fulfillments[0].end.person.name | String | Name of the person receiving the order |
orderResponse.fulfillments[0].fulfillmentState | String | State of order fulfillment for STORE (PENDING/PACKING/PACKED/CANCELLED) State of order fulfillment for DELIVERY (PENDING/OUT_FOR_DELIVERY/OUT_FOR_PICKUP/AGENT_ASSIGNED/DELIVERED/CANCELLED/DELIVERY_FAILED/RTO_INITIATED/RTO_DELIVERED/RTO_DISPOSED/ARRIVED_CUSTOMER_DOORSTEP/CLIENT_CONSUMER_CANCELLED,SEARCHING_FOR_AGENT) |
orderResponse.fulfillments[0].deliveryAgent.name | String | Name of the delivery agent |
orderResponse.fulfillments[0].deliveryAgent.phone | String | Phone number of the delivery agent |
orderResponse.fulfillments[*].pickupVerification | Object | This object defines the fulfillment verification details, here type defines the verification type currently supporting value as OTP only. |
orderResponse.fulfillments[*].rtoVerification | Object | This object defines the rto verification details of the fulfillment, here type defines the verification type currently supporting value as OTP only. This will be used only in case RTO is happening for an order |
orderResponse.fulfillments[*].fulfilmentStatusHistory | Object | This object contains information of fulfilment status tracking |
orderResponse.fulfillments[*].fulfilmentStatusHistory.{fulfilmentState} | Object | This object contains tracking information of one of the relevant fulfilment state |
orderResponse.fulfillments[*].fulfilmentStatusHistory.{fulfilmentState}.actual | Object | actual occurrence related info of the fulfilment |
orderResponse.fulfillments[*].fulfilmentStatusHistory.{fulfilmentState}.expected | Object | expected occurrence related info of the fulfilment |
orderResponse.fulfillments[*].fulfilmentStatusHistory.{fulfilmentState}.promised | Object | promised occurrence related info of the fulfilment |
orderResponse.fulfillments[*].fulfilmentStatusHistory.{fulfilmentState}.actual.endTime | String | timestamp in epoch format |
orderResponse.quote | Object | This object contains all the information related to order quotation |
orderResponse.quote.price.value | Float | Represents total order quote value |
orderResponse.quote.breakUp[0].referenceId | String | Equal to uniqueId of the reference entity for the quote: 1. In case of quotationLevel as ITEM, it will be itemId 2. In case of quotationLevel as FULFILLMENT, it will be fulfillmentId 3. In case of quotationLevel as ORDER, it will be random id |
orderResponse.quote.breakUp[0].type | Enum | Order quotation breakup type to signify what type of charge it is (ITEM/DELIVERY/PACKING/TAX/CONVENIENCE_CHARGE/DISCOUNT/MISC) |
orderResponse.quote.breakUp[0].quotationLevel | String | This defines the level at which the charges are applied, which can be at ORDER/FULFILLMENT/ ITEM level |
orderResponse.quote.breakUp[0].quantity.count | Integer | Quantity of the particular item for which the quote details are presented |
orderResponse.quote.breakUp[0].price.value | Float | Represents particular quote breakup charges |
orderResponse.actions | Object | Represents the list of actions applied on the order |
orderResponse.actions[0].type | String | Represents the type of action that has modified the order (CANCEL_ORDER) |
orderResponse.actions[0].channel | String | Represents the channel in which the change is taking place (PINCODE/TSP/SELLER_APP/CONSUMER) |
orderResponse.actions[0].createdAt | String | Represents the time of creation of the action |
orderResponse.createdAt | String | Order creation timestamp in epoch format |
orderResponse.updatedAt | String | Latest timestamp at which the order is updated in epoch format |