Skip to content

Commit b9e57dc

Browse files
authored
Merge pull request #76827 from v-miclar/patch-13
Update cpp-saas-fulfillment-api-v2.md
2 parents 3dc231c + 70fb521 commit b9e57dc

File tree

1 file changed

+30
-46
lines changed

1 file changed

+30
-46
lines changed

articles/marketplace/cloud-partner-portal/saas-app/cpp-saas-fulfillment-api-v2.md

Lines changed: 30 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: SaaS Fulfillment API V2 | Azure Marketplace
3-
description: Explains how to create a SaaS offer on the AppSource and Azure Marketplace using the associated fulfillment V2 APIs.
3+
description: Explains how to create a SaaS offer on the Azure Marketplace using the associated fulfillment V2 APIs.
44
services: Azure, Marketplace, Cloud Partner Portal,
55
author: v-miclar
66
ms.service: marketplace
@@ -11,7 +11,7 @@ ms.author: pabutler
1111

1212
# SaaS Fulfillment APIs Version 2
1313

14-
This article details the API that enables independent software vendors (ISVs) to sell their SaaS applications in the AppSource and Azure Marketplace. This API is a requirement for listing SaaS offers on the AppSource and Azure Marketplace.
14+
This article details the API that enables independent software vendors (ISVs) to integrate their SaaS applications with the Azure Marketplace. This API enables ISV applications to participate in all commerce enabled channels: direct, partner-led (reseller) and field-led. This API is a requirement for listing transactable SaaS offers on the Azure Marketplace.
1515

1616

1717
## Managing the SaaS subscription lifecycle
@@ -114,7 +114,7 @@ Resolves the opaque token to a SaaS subscription.<br>
114114
```json
115115
Response body:
116116
{
117-
"id": "<guid>",
117+
"subscriptionId": "<guid>",
118118
"subscriptionName": "Contoso Cloud Solution",
119119
"offerId": "offer1",
120120
"planId": "silver",
@@ -171,7 +171,7 @@ Lists all the SaaS subscriptions for a publisher.
171171

172172
*Response codes:*
173173

174-
Code: 200<br>
174+
Code: 200 <br/>
175175
Based on the auth token, get the publisher and corresponding subscriptions for all the publisher's offers.<br>
176176
Response payload:<br>
177177

@@ -204,7 +204,6 @@ Response payload:<br>
204204

205205
The continuation token will only be present if there are additional "pages" of plans to retrieve.
206206

207-
208207
Code: 403 <br>
209208
Unauthorized. The auth token wasn't provided, is invalid, or the request is attempting to access an acquisition that doesn’t belong to the current publisher.
210209

@@ -365,13 +364,14 @@ Internal Server Error<br>
365364

366365
```json
367366
{
368-
"planId": "gold"
367+
"planId": "gold",
368+
"quantity": ""
369369
}
370370
```
371371

372372
*Response codes:*
373373

374-
Code: 202<br>
374+
Code: 200<br>
375375
Activates the subscription.<br>
376376

377377
Code: 404<br>
@@ -449,9 +449,6 @@ Bad request- Validation failures.
449449
Code: 403<br>
450450
Unauthorized. The auth token wasn't provided, is invalid, or the request is attempting to access an acquisition that doesn’t belong to the current publisher.
451451

452-
Code: 409<br>
453-
Another operation is in progress on the resource. Wait for pending operations to complete then try again.
454-
455452
Code: 500<br>
456453
Internal Server Error
457454

@@ -518,9 +515,6 @@ Bad request- Validation failures.
518515
Code: 403<br>
519516
Unauthorized. The auth token wasn't provided, is invalid, or the request is attempting to access an acquisition that doesn’t belong to the current publisher.
520517

521-
Code: 409<br>
522-
Another operation is in progress on the resource. Wait for pending operations to complete then try again.
523-
524518
Code: 500<br>
525519
Internal Server Error
526520

@@ -550,13 +544,14 @@ Unsubscribe and delete the specified subscription.
550544

551545
| | |
552546
| --------------- | --------------- |
547+
| Content-Type | `application/json` |
553548
| x-ms-requestid | A unique string value for tracking the request from the client, preferably a GUID. If this value isn't provided, one will be generated and provided in the response headers. |
554549
| x-ms-correlationid | A unique string value for operation on the client. This parameter correlates all events from client operation with events on the server side. If this value isn't provided, one will be generated and provided in the response headers. |
555550
| authorization | [Get JSON web token (JWT) bearer token.](https://docs.microsoft.com/azure/marketplace/cloud-partner-portal/saas-app/cpp-saas-registration#get-a-token-based-on-the-azure-ad-app) |
556551

557552
*Response codes:*
558553

559-
Code: 200<br>
554+
Code: 202<br>
560555
ISV initiated call to indicate unsubscribe on a SaaS subscription.<br>
561556

562557
Code: 404<br>
@@ -784,48 +779,37 @@ The publisher must implement a webhook in this SaaS service to proactively notif
784779

785780
```json
786781
{
787-
"id": "<this is a Guid operation id, you can call operations API with this to get status>",
788-
"activityId": "<this is a Guid correlation id>",
789-
"subscriptionId": "<Guid to uniquely identify this resource>",
790-
"publisherId": "<this is the publisher’s name>",
791-
"offerId": "<this is the offer name>",
792-
"planId": "<this is the plan id>",
793-
"quantity": "<the number of seats, will be null if not per-seat saas offer>",
794-
"timeStamp": "2019-04-15T20:17:31.7350641Z",
795-
"action": "Unsubscribe",
796-
"status": "NotStarted"
782+
"operationId": "<guid>",
783+
"activityId": "<guid>",
784+
"subscriptionId":"<guid>",
785+
"offerId": "offer1",
786+
"publisherId": "contoso",
787+
"planId": "silver",
788+
"quantity": "20" ,
789+
"action": "Subscribe",
790+
"timeStamp": "2018-12-01T00:00:00"
797791
}
792+
```
798793

799794
Where action can be one of these:
800-
Subscribe, (When the resource has been activated)
801-
Unsubscribe, (When the resource has been deleted)
802-
ChangePlan, (When the change plan operation has completed)
803-
ChangeQuantity, (When the change quantity operation has completed),
804-
Suspend, (When resource has been suspended)
805-
Reinstate, (When resource has been reinstated after suspension)
806-
807-
808-
Where status can be one of these:
809-
NotStarted,
810-
InProgress,
811-
Succeeded,
812-
Failed,
813-
Conflict
814-
815-
Actionable statuses are Succeeded and Failed in a webhook notification. An operation's lifecycle is from NotStarted to a terminal state like Succeeded/Failed/Conflict. If you receive Not started or in progress, please continue to request the status via GET operation API until the operation reaches a terminal state before taking any action.
816-
```
795+
- `Subscribe` (When the resource has been activated)
796+
- `Unsubscribe` (When the resource has been deleted)
797+
- `ChangePlan` (When the change plan operation has completed)
798+
- `ChangeQuantity` (When the change quantity operation has completed)
799+
- `Suspend` (When the resource has been suspended)
800+
- `Reinstate` (When resource has been reinstated after suspension)
817801

818802

819803
## Mock API
820804

821805
You can use our mock APIs to help you get started with development, particularly prototyping, and testing projects.
822806

823-
Host Endpoint: `https://marketplaceapi.microsoft.com/api`
824-
API Version: `2018-09-15`
825-
No authentication required
826-
Sample Uri: `https://marketplaceapi.microsoft.com/api/saas/subscriptions?api-version=2018-09-15`
807+
Host Endpoint: `https://marketplaceapi.microsoft.com/api` <br/>
808+
API Version: `2018-09-15` <br/>
809+
No authentication required <br/>
810+
Sample Uri: `https://marketplaceapi.microsoft.com/api/saas/subscriptions?api-version=2018-09-15` <br/>
827811

828-
Any of the API calls in this article can be made to the mock host endpoint. You can expect to get mock data back as a response.
812+
Note that mock API invocations use a different API version (date) than the production API. Any of the API calls in this article can be made to the mock host endpoint. In general, you can expect to get mock data back as a response. Calls to the update subscription methods on the mock API always return 500.
829813

830814

831815
## Next steps

0 commit comments

Comments
 (0)