Partager via


Créer une offre privée directe d’éditeur de logiciels indépendants pour le client

Utilisez cette méthode pour créer une offre privée pour un client directement en tant qu’éditeur de logiciels indépendants.

Requête

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

En-tête de requête

En-tête Type Description
Autorisation Chaîne Obligatoire. Jeton d’accès Microsoft Entra dans le formulaire Bearer <token>.

Facultatif : clientID

Paramètres de la demande

$version - obligatoire. Il s’agit de la version du schéma utilisé dans la requête.

Corps de la demande

Fournissez les détails de l’offre privée à l’aide du schéma d’offre privée isv vers le client. Cela doit inclure un nom.

Les options suivantes reflètent les options dans l’Espace partenaires lors de la création d’une offre privée pour un client. Les options sont définies par les valeurs offerPricingType répertoriées ici :

valeur offerPricingType Équivalent de l’option de création d’offre privée de l’Espace partenaires
editExistingOfferPricingOnly Personnaliser la tarification des offres publiques et des plans existants : utilisez cette option pour créer une offre privée pour tous les types d’offres transactionnelles : SaaS, Azure Machines Virtuelles et Applications Azure. Vous pouvez personnaliser la tarification de votre partenaire via des tarifs absolus ou des remises en pourcentage.
saasNew CustomPlans Personnaliser les tarifs, les quantités de compteurs et les limites utilisateur pour l’offre SaaS : utilisez cette option pour créer une offre privée pour un plan SaaS en personnalisant le prix absolu de votre partenaire, les quantités de dimension de mesure et les limites utilisateur.
vmSoftwareReservations Personnaliser les tarifs et les quantités spécifiques des offres de réservation de logiciels de machine virtuelle : utilisez cette option pour créer une offre privée multiparte pour vendre des réservations de logiciels de machine virtuelle (1 an ou 3 ans) et personnaliser le prix absolu du partenaire, la taille du processeur virtuel, les quantités, la durée et la planification de paiement.

Pour les trois options de type tarifaire précédentes, les besoins en ressources spécifiques à un plan peuvent varier, consultez le tableau suivant pour plus d’informations.

Nom de la ressource editExistingOfferPricingOnly saasNew CustomPlans vmSoftwareReservations
prisée. Plan Définissez cette valeur sur l’ID de plan du plan public à configurer dans le corps de la demande. Non applicable Non applicable
pricing.basePlan Non applicable Définissez cette valeur sur l’ID de plan du plan public à configurer dans le corps de la demande. Définissez cette valeur sur l’ID de plan du plan public à configurer dans le corps de la demande.
pricing.newPlanDetails.name Non applicable Définissez cette valeur sur le nom du nouveau plan qui sera affiché au client dans le corps de la demande. Non applicable au corps de la demande, sera généré par le système et disponible dans la réponse du travail une fois terminé.
pricing.newPlanDetails.description Non applicable Définissez cette valeur sur la description qui sera affichée au client pour le nouveau plan dans le corps de la demande. Non applicable au corps de la demande, sera généré par le système et disponible dans la réponse du travail une fois terminé.

Exemples de corps de requête

Exemple de corps de demande utilisant la tarification de remise pour personnaliser la tarification pour un plan public existant uniquement

{
 "$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
  "resources": [ 
    {
       "$schema": "https://schema.mp.microsoft.com/schema/private-offer/2023-07-15", 
       "name": "privateOffercustomer1705",
       "state": "live",
       "privateOfferType": "customerPromotion",
       "offerPricingType": "editExistingOfferPricingOnly",
       "variableStartDate": true,
       "end": "2022-01-31",
       "acceptBy": "2022-02-28",
       "preparedBy": "amy@contoso.com",
       "termsAndConditionsDocSasUrl": "https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4rFOA  ",
       "notificationContacts": [ "amy@contoso.com" ],
       "beneficiaries": [ 
          { "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
       ], 
       "pricing": [ 
          { "product": "product/34771906-9711-4196-9f60-4af380fd5042", "plan":"plan/123456","discountType": "percentage", "discountPercentage": 5 }
       ]
    }
  ]
}

Exemple de corps de requête utilisant la tarification absolue pour personnaliser la tarification pour un plan public existant uniquement

Si vous utilisez des tarifs absolus au lieu d’une remise basée sur des pourcentages :

  1. Créer une ressource au-dessus de la ressource d’offre privée qui définit la tarification absolue
  2. Incluez cette ressource nouvellement créée en tant qu’autre objet dans la liste des ressources du schéma de configuration.

Utilisez cette méthode pour obtenir la ressource de tarification de votre plan public existant, modifier les prix, puis utiliser la ressource modifiée pour votre offre privée.

GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15

Exemple de ressource de tarification absolue

{
    "$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
    "resourceName": "newSimpleAbsolutePricing",
    "product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
    "offerPricingType": "editExistingOfferPricingOnly",
    "plan": "plan/987654",
    "pricing": {
        "recurrentPrice": {
 "priceInputOption": "usd",
            "prices": [
                {
                    "pricePerPaymentInUsd": 1,
                    "billingTerm": {
                        "type": "month",
                        "value": 1
                    }
                },
                {
                    "pricePerPaymentInUsd": 2,
                    "paymentOption": {
                        "type": "month",
                        "value": 1
                    },
                    "billingTerm": {
                        "type": "year",
                        "value": 1
                    }
                }
            ]
        },
        "customMeters": {
            "priceInputOption": "usd",
            "meters": {
                "meter1": {
                    "pricePerPaymentInUsd": 1
                }
            }
        }
    }
}

Inclure cette ressource en tant qu’objet dans le module tarifaire

[
    {
        "product": "product/34771906-9711-4196-9f60-4af380fd5042",
        "plan": "plan/123456",
        "discountType": "percentage",
        "discountPercentage": 5
    },
    {
        "product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
        "plan": "plan/987654",
        "discountType": "absolute",
        "priceDetails": {
            "resourceName": "newSimpleAbsolutePricing"
        }
    }
]

Exemple de corps de requête utilisant la tarification absolue pour personnaliser la tarification, la mesure des quantités et les limites utilisateur pour l’offre SaaS

Utilisez la méthode suivante pour créer une ressource de prix et de disponibilité absolue pour l’offre.

GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15

Exemple de ressource de tarification absolue pour une offre SaaS à taux fixe qui personnalise les quantités de prix et de compteur

{
    "$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
    "product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
    "resourceName": "newSaaSPlanAbsolutePricing",
    "plan": "plan/  123456",
    "offerPricingType": "saasNewCustomizedPlans",
    "pricing": {
        "recurrentPrice": {
            "recurrentPriceMode": "flatRate",
            "priceInputOption": "usd",
            "prices": [
                {
                    "billingTerm": {
                        "type": "month",
                        "value": 1
                    },
                    "paymentOption": {
                        "type": "month",
                        "value": 1
                    },
                    "pricePerPaymentInUsd": 0.1
                },
                {
                    "billingTerm": {
                        "type": "year",
                        "value": 1
                    },
                    "paymentOption": {
                        "type": "month",
                        "value": 1
                    },
                    "pricePerPaymentInUsd": 0.12
                }
            ]
        },
        "customMeters": {
            "priceInputOption": "usd",
            "meters": {
                "meter1": {
                    "includedQuantities": [
                        {
                            "billingTerm": {
                                "type": "month",
                                "value": 1
                            },
               "quantity": 10.0,
                            "isInfinite": false
                        },
                        {
                            "billingTerm": {
                                "type": "year",
                                "value": 1
                            },
               "quantity": 15.0,
                            "isInfinite": false
                        }
                    ]
                },
                "meter2": {
                    "includedQuantities": [
                        {
                            "billingTerm": {
                                "type": "month",
                                "value": 1
                            },
                            "isInfinite": true
                        },
                        {
                            "billingTerm": {
                                "type": "year",
                                "value": 1
                            },
                            "isInfinite": true
                        }
                    ]
                }
            }
        }
    }
}

Exemple de ressource de tarification absolue pour une offre SaaS par utilisateur qui personnalise les limites de prix et d’utilisateur

{
    "$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
    "resourceName": "newSaaSPlanAbsolutePricing",
    "product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
    "plan": "plan/123456",
    "offerPricingType": "saasNewCustomizedPlans",
    "pricing": {
        "recurrentPrice": {
            "recurrentPriceMode": "perUser",
            "priceInputOption": "usd",
            "userLimits": {
                "min": 20,
                "max": 100
            },
            "prices": [
                {
                    "billingTerm": {
                        "type": "month",
                        "value": 1
                    },
                    "paymentOption": {
                        "type": "month",
                        "value": 1
                    },
                    "pricePerPaymentInUsd": 0.01
                },
                {
                    "billingTerm": {
                        "type": "year",
                        "value": 1
                    },
                    "paymentOption": {
                        "type": "year",
                        "value": 1
                    },
                    "pricePerPaymentInUsd": 0.02
                }
            ]
        }
    }
}

Inclure cette ressource en tant qu’objet dans le module tarifaire

{
 "$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
  "resources": [ 
    {
       "$schema": "https://schema.mp.microsoft.com/schema/private-offer/2023-07-15", 
       "name": "privateOffercustomer1705",
       "state": "live",
       "privateOfferType": "customerPromotion",
       "offerPricingType": "saasNewCustomizedPlans",
       "variableStartDate": true,
       "end": "2022-01-31",
       "acceptBy": "2022-02-28",
       "preparedBy": "amy@contoso.com",
       "termsAndConditionsDocSasUrl": "https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4rFOA",
       "notificationContacts": [ "amy@contoso.com" ],
       "beneficiaries": [ 
          { "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
       ], 
       "pricing": [ 
          {
           "product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
           "discountType": "absolute",
           "priceDetails": {
              "resourceName": "newSaaSPlanAbsolutePricing"
             }
           "basePlan": "plan/123456",
                "newPlanDetails": {
                "name": "newPlanName",
                "description": "newPlanDescription"
             }
        ]
     }
  ]
}

Exemple de corps de requête utilisant des tarifs absolus pour personnaliser la tarification et des quantités spécifiques pour les offres de réservation de logiciels de machine virtuelle

Utilisez la méthode suivante pour créer une ressource de prix et de disponibilité absolue pour l’offre.

GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15

Exemple de ressource de tarification absolue pour une offre de machine virtuelle qui personnalise les prix et les quantités

{
    "$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
    "resourceName": "newVMSRAbsolutePricing",
    "product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
    "offerPricingType": "vmSoftwareReservations",
    "plan": "plan/987654",
    "softwareReservation": {
        "reservationDuration": {
            "type": "year",
            "value": 1
         },
        "paymentSchedule": {
            "type": "year",
            "value": 1
         },
        "vmPrices": {
            "36Core": {
                "quantity": 4.0,
                "unitPricePerPaymentPeriodInUsd": 0.04
            }
        }
    }       
}

Inclure cette ressource en tant qu’objet dans le module tarifaire

{
 "$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
  "resources": [ 
    {
       "$schema": "https://schema.mp.microsoft.com/schema/private-offer/2023-07-15", 
       "name": "privateOffercustomer1705",
       "state": "live",
       "privateOfferType": "customerPromotion",
       "offerPricingType": "vmSoftwareReservations",
       "variableStartDate": true,
       "end": "2022-01-31",
       "acceptBy": "2022-02-28",
       "preparedBy": "amy@contoso.com",
       "termsAndConditionsDocSasUrl": "https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4rFOA",
       "notificationContacts": [ "amy@contoso.com" ],
       "beneficiaries": [ 
          { "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
       ], 
       "pricing": [ 
          {
           "product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
           "discountType": "absolute",
           "priceDetails": {
              "resourceName": "newVMSRAbsolutePricing"
             }
           "basePlan": "plan/987654"
        ]
     }
  ]
}

Response

La réponse contient l’id de travail que vous pouvez utiliser ultérieurement pour interroger l’état :

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

Codes d’erreur

Code d’état HTTP Description
401 Erreur d’authentification : vérifiez que vous utilisez un jeton d’accès Microsoft Entra valide.
400 Validation de schéma. Vérifiez que le corps de votre demande suit le schéma correct et inclut tous les champs obligatoires.

Étapes suivantes