Partager via


Modifier le cycle de facturation d’un abonnement client

s’applique à: Espace partenaires | Espace partenaires géré par 21Vianet | Espace partenaires pour Microsoft Cloud pour le gouvernement des États-Unis

Conseil / Astuce

Cette API vous permet de modifier votre fréquence de facturation pour les anciens abonnements uniquement.

Pour modifier votre fréquence de facturation pour les abonnements New Commerce Experience (NCE) et les abonnements hérités, vous pouvez utiliser Mettre à jour un abonnement par ID - Développeur d’applications partenaire | API Microsoft Learn .

Met à jour une commande d’une facturation mensuelle à une facturation annuelle ou d’une facturation annuelle à une facturation mensuelle.

Dans l’Espace partenaires, cette opération peut être effectuée en accédant à la page des détails de l’abonnement d’un client. Une fois là-bas, vous verrez une option définissant le cycle de facturation actuel de l’abonnement avec la possibilité de le modifier et de le soumettre.

Hors du champ d’application de cet article :

  • Modification du cycle de facturation des versions d’évaluation
  • Modification des cycles de facturation pour les offres à durée non annuelle (mensuelle, semestrielle) et les abonnements Azure
  • Modification des cycles de facturation des abonnements inactifs
  • Modification des cycles de facturation pour les abonnements basés sur une licence de services en ligne Microsoft

Conditions préalables

  • Informations d’identification décrites dans l’authentification de l’Espace partenaires. Ce scénario prend en charge l'authentification avec des identifiants d'application autonomes ainsi que des identifiants combinés application+utilisateur.

  • ID du client (customer-tenant-id). Si vous ne connaissez pas l'identifiant du client, vous pouvez le rechercher dans le Centre de Partenaires en sélectionnant l'espace de travail Clients, puis le client dans la liste des clients, puis Compte. Dans la page Compte du client, recherchez l’ID Microsoft dans la section Informations sur le compte client. L’ID Microsoft est le même que l’ID de client (customer-tenant-id).

  • Un ID de commande.

C#

Pour modifier la fréquence du cycle de facturation, mettez à jour la propriété Order.BillingCycle .

// IAggregatePartner partnerOperations;
// string customerId;
// string offerId;
// string orderId;

var order = new Order()
{
    ReferenceCustomerId = customerId,
    BillingCycle = BillingCycleType.Annual,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            LineItemNumber = 0,
            OfferId = offerId,
            SubscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            Quantity = 1
        }
    }
};

var createdOrder = partnerOperations.Customers.ById(customerId).Orders.ById(orderId).Patch(order);

Requête REST

Syntaxe de la requête

Méthode URI de la requête
RAPIÉCER {baseURL}/v1/customers/{customer-tenant-id}/orders/{order-id} HTTP/1.1

Paramètre d’URI

Ce tableau répertorie le paramètre de requête requis pour modifier la quantité de l’abonnement.

Nom Catégorie Obligatoire Descriptif
customer-tenant-ID Identifiant Unique Global (GUID) O Un GUID customer-tenant-id qui identifie le client
Identifiant-de-commande Identifiant Unique Global (GUID) O L’identifiant de la commande

En-têtes de requête

Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.

Corps de la requête

Les tableaux suivants décrivent les propriétés dans le corps de la demande.

JSON

Propriété Catégorie Obligatoire Descriptif
Id ficelle N Un identifiant de commande fourni lors de la création de la commande
ReferenceCustomerId ficelle O L’identifiant du client
Cycle de facturation ficelle O Indique la fréquence à laquelle le partenaire est facturé pour cette commande. Les valeurs prises en charge sont les noms de membres trouvés dans BillingCycleType.
Postes tableau d’objets O Un tableau de ressources OrderLineItem
DateDeCréation date/heure N La date de création de la commande, au format date-heure
Attributs Objet N Contient « ObjectType » : « OrderLineItem »

OrderLineItem

Propriété Catégorie Obligatoire Descriptif
LineItemNumber nombre O Le numéro de l’article, commençant par 0
Identifiant de l'offre ficelle O L’ID de l’offre
Identifiant d'abonnement (SubscriptionId) ficelle O ID de l’abonnement
Nom convivial ficelle N Nom convivial de l’abonnement défini par le partenaire pour aider à lever l’ambiguïté
Quantité nombre O Le nombre de licences ou d’instances
PartnerIdOnRecord ficelle N Le PartnerID du partenaire de référence
Attributs Objet N Contient « ObjectType » : « OrderLineItem »

Exemple de requête

Mise à jour de la facturation annuelle

PATCH https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/CF3B0E37-BE0B-4CDD-B584-D1A97D98A922 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 414
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "BillingCycle" : "Annual",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "SubscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "FriendlyName": "Some friendly name",
            "Quantity": 2,
            "PartnerIdOnRecord": null,
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

Réponse REST

En cas de réussite, cette méthode renvoie l’ordre d’abonnement mis à jour dans le corps de la réponse.

Réussite de la réponse et codes d’erreur

Chaque réponse est accompagnée d’un code d’état HTTP qui indique la réussite ou l’échec ainsi que des informations de débogage supplémentaires. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et les paramètres supplémentaires. Pour obtenir la liste complète, consultez Codes d’erreur.

Exemple de réponse

HTTP/1.1 200 OK
Content-Length: 1135
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 17a2658e-d2cc-439b-a2f0-2aefd9344fbc
MS-CV: WtFy3zI8V0u2lnT9.0
MS-ServerId: 020021921
Date: Wed, 25 Jan 2017 23:01:08 GMT

{
    "id": "cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
    "referenceCustomerId": "4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04",
    "billingCycle": "Annual",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "195416C1-3447-423A-B37B-EE59A99A19C4",
            "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
            "friendlyName": "new offer purchase",
            "quantity": 5,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
                    "method": "GET",
                    "headers": []
                }
            }
        },
        {
            "lineItemNumber": 1,
            "offerId": "2828BE95-46BA-4F91-B2FD-0BEF192ECF60",
            "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
            "friendlyName": "Some friendly name",
            "quantity": 2,
            "links": {
                "subscription": {
                    "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-01-25T14:53:12.093-08:00",
    "links": {
        "self": {
            "uri": "/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/orders/cf3b0e37-be0b-4cdd-b584-d1a97d98a922",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6ImNmM2IwZTM3LWJlMGItNGNkZC1iNTg0LWQxYTk3ZDk4YTkyMiIsInZlcnNpb24iOjJ9",
        "objectType": "Order"
    }
}