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
@@ -35,7 +35,7 @@ An example of such call is `https://contoso.com/signup?token=<blob>`, but the la
35
35
> [!IMPORTANT]
36
36
> The landing page URL must be up and running all day, every day, and ready to receive new calls from Microsoft at all times. If the landing page becomes unavailable, customers won't be able to sign up for the SaaS service and start using it.
37
37
38
-
Next, the publisher must pass the *token* back to Microsoft by calling the [SaaS Resolve API](pc-saas-fulfillment-subscription-api.md#resolve-a-purchased-subscription), and entering the token as the value of the `x-ms-marketplace-token header`header parameter. As the result of the Resolve API call, the token is exchanged for details of the SaaS purchase such as the unique ID of the purchase, purchased offer ID, and purchased plan ID.
38
+
Next, the publisher must pass the *token* back to Microsoft by calling the [SaaS Resolve API](pc-saas-fulfillment-subscription-api.md#resolve-a-purchased-subscription), and entering the token as the value of the `x-ms-marketplace-token header` parameter. As the result of the Resolve API call, the token is exchanged for details of the SaaS purchase such as the unique ID of the purchase, purchased offer ID, and purchased plan ID.
39
39
40
40
On the landing page, the customer should be signed in to the new or existing SaaS account via Azure Active Directory (Azure AD) single sign-on (SSO).
41
41
@@ -50,7 +50,7 @@ The publisher should implement SSO to provide the user experience required by Mi
50
50
After sign in, the customer should complete the SaaS configuration on the publisher side. Then the publisher must call the [Activate Subscription API](pc-saas-fulfillment-subscription-api.md#activate-a-subscription) to send a signal to Azure Marketplace that the provisioning of the SaaS account is complete.
51
51
This action will start the customer's billing cycle. If the Activate Subscription API call is not successful, the customer isn't billed for the purchase.
52
52
53
-

53
+
[](./media/saas-update-api-v2-calls-from-saas-service-a.png#lightbox)
@@ -27,7 +27,7 @@ Get list of the pending operations for the specified SaaS subscription. The publ
27
27
|`subscriptionId`| The unique identifier of the purchased SaaS subscription. This ID is obtained after resolving the commercial marketplace authorization token by using the Resolve API. |
28
28
29
29
*Request headers:*
30
-
30
+
31
31
| Parameter | Value |
32
32
| --------------- | --------------- |
33
33
|`content-type`|`application/json`|
@@ -52,7 +52,7 @@ Returns pending operations on the specified SaaS subscription.
52
52
"offerId": "offer1", // purchased offer ID
53
53
"publisherId": "contoso",
54
54
"planId": "silver", // purchased plan ID
55
-
"quantity": "20", // purchased amount of seats, will be empty is not relevant
55
+
"quantity": 20, // purchased amount of seats, will be empty is not relevant
56
56
"action": "Reinstate",
57
57
"timeStamp": "2018-12-01T00:00:00", // UTC
58
58
"status": "InProgress"// the only status that can be returned in this case
@@ -118,7 +118,7 @@ Response body:
118
118
"offerId": "offer1", // purchased offer ID
119
119
"publisherId": "contoso",
120
120
"planId": "silver", // purchased plan ID
121
-
"quantity": "20", // purchased amount of seats
121
+
"quantity": 20, // purchased amount of seats
122
122
"action": "ChangePlan", // Can be ChangePlan, ChangeQuantity or Reinstate
123
123
"timeStamp": "2018-12-01T00:00:00", // UTC
124
124
"status": "InProgress", // Possible values: NotStarted, InProgress, Failed, Succeeded, Conflict (new quantity / plan is the same as existing)
"purchaser": { // email address, user ID and tenant ID that purchased the SaaS subscription. These could be different from beneficiary information for reseller (CSP) purchase
"term": { // The period for which the subscription was purchased.
216
-
"startDate": "2019-05-31", //format: YYYY-MM-DD. This is the date when the subscription was activated by the ISV and the billing started. This field is relevant only for Active and Suspended subscriptions.
217
-
"endDate": "2019-06-30", // This is the last day the subscription is valid. Unless stated otherwise, the automatic renew will happen the next day. This field is relevant only for Active and Suspended subscriptions.
219
+
"startDate": "2022-03-04T00:00:00Z", //format: YYYY-MM-DD. This is the date when the subscription was activated by the ISV and the billing started. This field is relevant only for Active and Suspended subscriptions.
220
+
"endDate": "2022-04-03T00:00:00Z", // This is the last day the subscription is valid. Unless stated otherwise, the automatic renew will happen the next day. This field is relevant only for Active and Suspended subscriptions.
218
221
"termUnit": "P1M"// where P1M is monthly and P1Y is yearly. Also reflected in the startDate and endDate values
219
222
},
223
+
"autoRenew": true,
220
224
"allowedCustomerOperations": ["Read", "Update", "Delete"], // Indicates operations allowed on the SaaS subscription for beneficiary. For CSP-initiated purchases, this will always be "Read" because the customer cannot update or delete subscription in this flow. Purchaser can perform all operations on the subscription.
221
225
"sessionMode": "None", // not relevant
222
226
"isFreeTrial": true, // true - the customer subscription is currently in free trial, false - the customer subscription is not currently in free trial. (Optional field -– if not returned, the value is false.)
@@ -249,6 +253,7 @@ Returns the list of all existing subscriptions for all offers made by this publi
249
253
"endDate": "2020-04-30",
250
254
"termUnit": "P1Y"
251
255
},
256
+
"autoRenew": false
252
257
"allowedCustomerOperations": ["Read"],
253
258
"sessionMode": "None",
254
259
"isFreeTrial": false,
@@ -307,28 +312,31 @@ Returns details for a SaaS subscription based on the `subscriptionId` provided.
307
312
"publisherId": "contoso", // publisher ID
308
313
"offerId": "offer1", // purchased offer ID
309
314
"planId": "silver", // purchased plan ID
310
-
"quantity": "10", // purchased amount of seats, will be empty if plan is not per seat
315
+
"quantity": 10, // purchased amount of seats, will be empty if plan is not per seat
311
316
"beneficiary": { // email address, user ID and tenant ID for which SaaS subscription is purchased.
"purchaser": { // email address ,user ID and tenant ID that purchased the SaaS subscription. These could be different from beneficiary information for reseller (CSP) scenario
"allowedCustomerOperations": ["Read", "Update", "Delete"], // Indicates operations allowed on the SaaS subscription for beneficiary. For CSP-initiated purchases, this will always be "Read" because the customer cannot update or delete subscription in this flow. Purchaser can perform all operations on the subscription.
324
329
"sessionMode": "None", // not relevant
325
330
"isFreeTrial": false, // true - the customer subscription is currently in free trial, false - the customer subscription is not currently in free trial. Optional field – if not returned the value is false.
331
+
"autoRenew": true,
326
332
"isTest": false, // not relevant
327
333
"sandboxType": "None", // not relevant
334
+
"created": "2022-03-01T22:59:45.5468572Z",
335
+
"lastModified": "0001-01-01T00:00:00",
328
336
"saasSubscriptionStatus": " Subscribed ", // Indicates the status of the operation: PendingFulfillmentStart, Subscribed, Suspended or Unsubscribed.
329
337
"term": { // the period for which the subscription was purchased
330
-
"startDate": "2019-05-31", //format: YYYY-MM-DD. This is the date when the subscription was activated by the ISV and the billing started. This field is relevant only for Active and Suspended subscriptions.
331
-
"endDate": "2019-06-29", // This is the last day the subscription is valid. Unless stated otherwise, the automatic renew will happen the next day. This field is relevant only for Active and Suspended subscriptions.
338
+
"startDate": "2022-03-04T00:00:00Z", //format: YYYY-MM-DD. This is the date when the subscription was activated by the ISV and the billing started. This field is relevant only for Active and Suspended subscriptions.
339
+
"endDate": "2022-04-03T00:00:00Z", // This is the last day the subscription is valid. Unless stated otherwise, the automatic renew will happen the next day. This field is relevant only for Active and Suspended subscriptions.
332
340
"termUnit": "P1M"//where P1M is monthly and P1Y is yearly. Also reflected in the startDate and endDate values.
333
341
}
334
342
}
@@ -383,11 +391,25 @@ Response body example:
383
391
"planId": "Platinum001",
384
392
"displayName": "Private platinum plan for Contoso", // display name of the plan as it appears in the marketplace
0 commit comments