You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -23,29 +23,41 @@ When creating a transactable SaaS offer in Partner Center, the partner provides
23
23
* Reinstate
24
24
* Unsubscribe
25
25
26
-
The publisher must implement a webhook in the SaaS service to keep the SaaS subscription status consistent with the Microsoft side. The SaaS service is required to call the Get Operation API to validate and authorize the webhook call and payload data before taking action based on the webhook notification. The publisher should return HTTP 200 to Microsoft as soon as the webhook call is processed. This value acknowledges that the webhook call has been received successfully by the publisher.
26
+
The publisher must implement a webhook in the SaaS service to keep the SaaS subscription status consistent with the Microsoft side. The SaaS service is required to call the Get Operation API to validate and authorize the webhook call and payload data before taking action based on the webhook notification. The publisher should return HTTP 200 to Microsoft as soon as the webhook call is processed. This value acknowledges that the webhook call has been received successfully by the publisher.
27
27
28
28
> [!IMPORTANT]
29
-
> The webhook URL service must be up and running 24x7, and ready to receive new calls from Microsoft time at all times. Microsoft does have a retry policy for the webhook call (500 retries over 8 hours), but if the publisher doesn't accept the call and return a response, the operation that webhook notifies about will eventually fail on the Microsoft side.
29
+
> The webhook URL service must be up and running 24x7, and ready to receive new calls from Microsoft time at all times. Microsoft does have a retry policy for the webhook call (500 retries over 8 hours), but if the publisher doesn't accept the call and return a response, the operation that webhook notifies about will eventually fail on the Microsoft side.
30
30
31
-
*Webhook payload example of a purchase event:*
31
+
*Webhook payload example of ChangePlan:*
32
32
33
33
```json
34
-
// end user changed a quantity of purchased seats for a plan on Microsoft side
35
34
{
36
-
"id": "<guid>", // this is the operation ID to call with get operation API
37
-
"activityId": "<guid>", // do not use
38
-
"subscriptionId": "guid", // The GUID identifier for the SaaS resource which status changes
39
-
"publisherId": "contoso", // A unique string identifier for each publisher
40
-
"offerId": "offer1", // A unique string identifier for each offer
41
-
"planId": "silver", // the most up-to-date plan ID
42
-
"quantity": "25", // the most up-to-date number of seats, can be empty if not relevant
43
-
"timeStamp": "2019-04-15T20:17:31.7350641Z", // UTC time when the webhook was called
44
-
"action": "ChangeQuantity", // the operation the webhook notifies about
45
-
"status": "Success"// Can be either InProgress or Success
35
+
"id": "<guid>",
36
+
"activityId": "<guid>",
37
+
"operationRequestSource": "Azure",
38
+
"subscriptionId": "<guid>",
39
+
"timeStamp": "2021-06-23T05:05:29.9799053Z",
40
+
"action": "ChangePlan"
46
41
}
47
42
```
48
43
44
+
*Webhook payload example of ChangeQuantity event:*
45
+
46
+
```json
47
+
{
48
+
"id": "<guid>",
49
+
"activityId": "<guid>",
50
+
"publisherId": "XXX",
51
+
"offerId": "offerid",
52
+
"planId": "planid",
53
+
"quantity": 100,
54
+
"subscriptionId": "<guid>",
55
+
"timeStamp": "2022-02-14T20:26:05.1419317Z",
56
+
"action": "ChangeQuantity",
57
+
"status": "InProgress",
58
+
"operationRequestSource": "Partner",
59
+
```
60
+
49
61
*Webhook payload example of a subscription reinstatement event:*
50
62
51
63
```json
@@ -64,21 +76,179 @@ The publisher must implement a webhook in the SaaS service to keep the SaaS subs
0 commit comments