Order Management Notification Service¶
The Order Management Notification Service provides support for notifications, to be sent from the Flipkart system to the seller system, for any event in a shipment lifecycle, such as shipment creation, label creation, shipment cancellation, and so on. You can use this feature to improve the performance of your application by eliminating additional network and computation costs in polling resources to determine if they have changed.
|Notification||Description / Use Case|
|Shipment Created||Sent when an order is placed|
|Hold||Sent when an order item is flagged as “Hold”|
|UnHold||Sent when an order item flagged as “Hold” is released for further processing|
|Packed||Sent when an order item state is changed to “Packed”|
|Ready To Dispatch||Sent when an order item is marked as “Ready to Dispatch”|
|Pickup Complete||Sent when the shipment is picked up by the logistics team|
|Shipped||Sent when an order item is shipped|
|Delivered||Sent when an order item is delivered|
|Dispatch Dates Changed||Sent when the dispatch date is changed|
|Shipment Cancelled||Sent when an approved order is cancelled|
|Shipment Form Failed||Sent when a form generation fails|
|Return Created||Sent when a new return request is created|
|Return Completed||Sent when a return is completed|
|Return Cancelled||Sent when a return request is revoked|
|Return Expected Date Changed||Sent when the expected date of return of an orderItem changes|
|Return Tracking Id Update||Sent when an when tracking details for a customer return is updated|
Subscribing to Notifications¶
To use notifications:
- You must be a registered seller on https://seller.flipkart.com.
- Setup a notification receiver in your system. This is an HTTPS server that handles the API notifications triggered when a resource changes. For example: https://www.[your-website].com/notifications-receiver.
- Write to firstname.lastname@example.org to subscribe to the notifications. Ensure that you provide your seller ID and notification receiver URL.
The proposed event structure for these notifications contain the following parameters:
||The notification type. Possible values:
||Point of origin of the notification - “flipkart”|
||ISO time string|
||Custom parameters for the event|
All Flipkart Notifications are RESTful notifications that send event payloads to the seller system endpoint.
Sellers authenticate to Flipkart API using OAuth credentials (
Application ID and
Application Secret). Those who wish to listen to notifications must register their notification endpoints with Flipkart. Sellers need a mechanism to validate whether the request originated from Flipkart and not by untrusted sources. Flipkart REST APIs authenticate to seller notification endpoints using a signature-based authentication by using Authorization headers.
Every notification includes headers in the following format:
X_Date : <date_timestamp> X_Authorization : FKLOGIN Base64 (OAuth-appid : <fk_signature>)
date_timestampis the timestamp at which the notification is generated and is in “HTTP-Date” format.
fk_signatureis generated per request using SHA1 based message digest algorithm with values derived from request as:
SHA-1 (date_timestamp + notification_http_url + notification_http_method + OAuth-secret)
REST endpoints that receive these notifications need to authenticate the request by regenerating the Signature (
fk_signature) using the logic above and verifying it with the Authorization (
X_Authorization) header. Consider the following example.
OAuth Appication ID:
OAuth Application Secret:
X_Date: Tue, 19 May 2015 09:02:15 GMT
For a notification, the seller application needs to respond with a standard HTTP success status 200, or should throw an error response in the following scenarios only:
- When the seller system is down
- If the payload is incorrect
The notification system ensures that the message is sent at least once, but not only once. Hence, it is recommended to add an idempotency check in the client to avoid processing of duplicate notifications.