Manage existing private offers via API

You can use APIs to delete or withdraw existing private offers.

Delete an existing private offer

Use this method to delete an existing private offer while it's still in draft state. You must use the private offer ID to specify which private offer to delete. For multipart private offers (MPO), only the MPO originator can delete the private offer.

Request

POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-07-01

Request header

Header Type Description
Authorization String Required. The Microsoft Entra access token in the form Bearer <token>.

Request parameters

$version - required. The version of the schema used in the request.

Request body

{
    "$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01"
     "resources": [
        {
        "$schema": "https://schema.mp.microsoft.com/schema/private-offer/2023-07-15",
        "id": "private-offer/456e-a345-c457-1234",
        "name": "privateOffercustomer1705",
        "privateOfferType": "multipartyPromotionOriginator",
        "state": "deleted"
        }
    ]
}

Response

The response contains the jobId you can use later to poll the status.

{
    "$schema": "https://schema.mp.microsoft.com/schema/configure-status/2022-07-01",
    "jobId": "c32dd7e8-8619-462d-a96b-0ac1974bace5",
    "jobStatus": "notStarted",
    "jobResult": "pending",
    "jobStart": "2021-12-21T21:29:54.9702903Z",
    "jobEnd": "0001-01-01",
    "errors": []
}

Error codes

HTTP status code Description
401 Authentication Error: Ensure you're using a valid Microsoft Entra access token.
400 Schema Validation. Ensure your request body is following the correct schema and includes all required fields.

Withdraw an existing private offer

Use this method to withdraw an existing private offer. Withdrawing an offer means your customer is no longer able to access it.

Note

For multiparty private offers, the ISV can withdraw a submitted private offer if the channel partner didn't publish already and made it available to the end customer. The channel partner can only withdraw a published private offer if the customer didn't accept it yet. If the private offer is already available for customer to accept and ISV needs to make changes to it, the channel partner must first withdraw the private offer so that the ISV can then withdraw and revert the private offer back to a draft state to make edits.

You must use the private offer ID to specify which private offer you want to withdraw.

Managing a withdrawn private offer

Once a private offer is withdrawn, it can be updated and resubmitted. However, there's no support currently to update a withdrawn private offer and submit it with Draft state. Any POST with the state set to Draft and ID passed in is automatically interpreted as a withdraw request and results in error for private offers already withdrawn and/or not in Live state. For intent to update a withdrawn private offer and make it available to the customer, POST with the state set to Live and make all necessary updates in the same payload. For intent to delete a withdrawn private offer, POST with the state set to Delete.

Request

POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-07-01

Request Header

Header Type Description
Authorization String Required. The Microsoft Entra access token in the form Bearer <token>.

Request parameters

$version - required. The version of the schema that is being used in the request.

Request body (for ISV)

{
    "$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01"
     "resources": [
         {
        "$schema": "https://schema.mp.microsoft.com/schema/private-offer/ 2023-07-15",
        "id": "private-offer/456e-a345-c457-1234",
        "name": "privateOffercustomer1705", 
        "privateOfferType": "multipartyPromotionOriginator",
        "state": "withdrawn"
        }
    ]
}

Request body (for Channel partner)

{
    "$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01"
     "resources": [
         {
        $schema": "https://schema.mp.microsoft.com/schema/private-offer/ 2023-07-15",
        "id": "private-offer/456e-a345-c457-1234",
        "name": "privateOffercustomer1705", 
        "privateOfferType": "multiPartyPromotionChannelPartner",
        "state": "withdrawn"
        }
    ]
}

Response

The response contains the jobId you can later use to poll the status.

{
    "$schema": "https://schema.mp.microsoft.com/schema/configure-status/2022-07-01",
    "jobId": "c32dd7e8-8619-462d-a96b-0ac1974bace5",
    "jobStatus": "notStarted",
    "jobResult": "pending",
    "jobStart": "2021-12-21T21:29:54.9702903Z",
    "jobEnd": "0001-01-01",
    "errors": []
}

Error codes

HTTP status code Description
401 Authentication Error: Ensure you're using a valid Microsoft Entra access token.
400 Schema Validation. Ensure your request body is following the correct schema and includes all required fields.