Intégrer des remboursements

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Introduction

La monétisation vous permet de publier des remboursements à l'attention des développeurs pour des "transactions d'achat". Supposons que vous soyez un opérateur mobile et que vous proposiez aux développeurs une API de paiement pour facturer aux abonnés mobiles l'achat d'une application ou d'un contenu de cette application. Chaque fois qu'un abonné utilise l'API pour effectuer un achat, il s'agit d'une transaction d'achat.

Les transactions d'achat peuvent donner lieu à un remboursement. Il se peut, par exemple, que le contenu n'ait pas été livré ou que le tiers ne soit pas satisfait de l'achat. Dans ce cas, le développeur rembourse le tiers. La monétisation vous permet d'effectuer un remboursement similaire. Ce point est particulièrement utile pour les plans de partage des revenus.

Imaginez que le développeur qui a émis le remboursement à l'abonné mobile ait souscrit un forfait de partage des revenus pour votre produit d'API. Supposons que le forfait implique que le développeur reçoive 70% du prix net/brut de la transaction d'achat. En publiant un remboursement, vous annulez la transaction d'achat, c'est-à-dire que vous déduisez 70% du paiement dû au développeur pour le mois où le remboursement a été appliqué (le mois peut être différent de celui au cours duquel la transaction d'achat réelle a eu lieu).

Afficher un remboursement à l'aide de l'interface utilisateur Classic Edge (Edge pour Private Cloud uniquement)

Vous pouvez publier un remboursement pour toute transaction d'achat "réussie", c'est-à-dire lorsque l'API a bien facturé le tiers et pour laquelle vous n'avez pas encore émis de remboursement total. L'intégration d'un remboursement entraîne la création d'une opération de remboursement avec un ID de transaction parent, où l'ID de la transaction correspond à l'ID de la transaction d'achat.

Vous pouvez rembourser le montant total de la transaction d'achat d'origine ou un montant partiel. Vous pouvez également publier plusieurs remboursements partiels, mais le montant total des remboursements ne peut pas être supérieur au montant de l'achat d'origine.

Pour publier un remboursement:

  1. Dans l'onglet "Monétisation", sélectionnez "Remboursements".

    La page "Remboursements" s'ouvre.

  2. Dans le menu déroulant "Mois de facturation", sélectionnez le mois au cours duquel la transaction d'achat a été effectuée. Cliquez ensuite sur "+ Remboursements".

    La liste de toutes les transactions d'achat ayant abouti pour le mois sélectionné s'affiche.

    Vous pouvez filtrer la liste des remboursements par nom de développeur ou en recherchant la transaction réelle.

    Pour filtrer par développeur, sélectionnez le développeur dans le menu déroulant "Développeur". La liste qui s'affiche ne comprend que les transactions concernant le développeur sélectionné.

    Pour filtrer par ID de transaction, saisissez l'ID de l'achat d'origine que vous souhaitez rembourser. Cela renvoie la transaction correspondant à cet ID.

  3. Cochez la case "Sélectionner" dans les lignes correspondant à la ou les transactions que vous souhaitez rembourser.
  4. Sélectionnez Total ou Partiel dans le menu déroulant Type.

    Si vous sélectionnez "Total", le montant total de l'achat vous sera remboursé. Si vous sélectionnez "Partiel", une partie de l'achat sera remboursée.

    Si vous sélectionnez "Partiel", saisissez le montant du remboursement partiel dans le champ "Montant". Vous ne pouvez pas rembourser jusqu'au montant total de l'achat. Si vous avez déjà effectué un remboursement partiel, vous ne pouvez indiquer qu'un montant équivalent au montant restant de l'achat. En outre, si la transaction d'achat d'origine présente les prix bruts et nets, vous devez également indiquer si le montant partiel que vous souhaitez rembourser est brut ou net.

  5. Cliquez sur "Enregistrer" pour traiter le remboursement (ou sur "Annuler" pour annuler).

    Le remboursement est effectué sur le mois de l'achat initial si le mois de facturation est toujours en cours. Sinon, il est effectué à la date du jour.

    Dans le cas d'un remboursement partiel, le remboursement est effectué pour le montant partiel et toute part des revenus est déduite selon la proportion du montant partiel par rapport au montant total. Dans l'exemple de remboursement partiel ci-dessus, le montant partiel est égal à 0,50/1,12 = 45% du prix brut. Par conséquent, 45% de la part des revenus du développeur sera déduite.

Vérifier dans l'interface utilisateur si un remboursement a été traité

Pour savoir si un remboursement a été traité, sélectionnez le mois de facturation en haut de la page "Remboursements". Il s'agit du mois de l'achat si le mois de facturation est toujours en cours ou du mois en cours si le mois de facturation est clôturé. La liste de tous les remboursements enregistrés au cours du mois s'affiche.

Publier un remboursement à l'aide de l'API

Pour publier un remboursement, envoyez une requête POST à /organizations/{org_name}/monetization-packages/{package_id}/refund-transactions, où {package_id} correspond à l'identification du package d'API auquel le remboursement s'applique.

Lorsque vous émettez la requête, vous devez la spécifier en tant que paramètres de requête:

  • Identifiant de la transaction d'achat remboursée.
  • Type de revenus (GROSS ou NET) de la transaction d'achat.
  • Montant du remboursement.
  • Une remarque décrivant le motif du remboursement.

Vous pouvez éventuellement identifier en tant que paramètre d'URL un package d'API auquel le remboursement s'applique.

Consultez la section Paramètres de configuration des remboursements pour obtenir la liste complète des paramètres d'URL que vous pouvez spécifier dans une demande de remboursement.

Par exemple, la requête suivante émet le remboursement d'une transaction d'achat. Le montant remboursé correspond à 50% du montant brut de la transaction d'achat.

$ curl -H "Content-Type:application/json" -X POST \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/payment/refund-transactions?revenueType=GROSS&refundAmount=0.5&parentTxId=abf50909-2492-4bf5-8704-ade05f4d43b3&transactionNote=Refund for purchase transaction" \
-u email:password

La réponse doit se présenter comme suit (seule une partie de la réponse est affichée) :

{
  "application" : {
    ...
    },
    "product" : [ {
      ...
      
     {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "Status=='200 OK'"
    } ],
    ...
  },
  "currency" : "USD",
  "developer" : {
    ...
    "legalName" : "DEV ONE",
    "name" : "Dev One",
    "organization" : {
      ...
    },
    ...
  },
  "endTime" : "2013-09-01 21:59:59",
  "environment" : "PROD",
  "euroExchangeRate" : 0.8123,
  "gbpExchangeRate" : 0.6910,
  "grossPrice" : 0.5,
  "id" : "61f7eb88-f8cc-4cda-afd8-4a61fba3dd33",
  "isRevOnGrossOrNet" : "NET",
  "isVirtualCurrency" : false,
  "notes" : "Refund for purchase transaction",
  "itemDesc" : "test application",
  "netPrice" : 0.4464,
  "orgRevenueShareAmount" : 0.1339,
  "parentId" : "abf50909-2492-4bf5-8704-ade05f4d43b3",
  "pkgId" : "myorg@@@payment",
  "pkgRatePlanProductName" : "Payment",
  ...
  },
  "ratePlanLevel" : "STANDARD",
  "revenueShareAmount" : 0.3125,
  "startTime" : "2013-09-01 21:59:59",
  "status" : "SUCCESS",
  "tax" : 0.0536,
  "taxModel" : "UNDISCLOSED",
  "txProviderStatus" : "SUCCESS",
  "type" : "REFUND",
  "usdExchangeRate" : 1.0724,
  "utcEndTime" : "2013-09-01 21:59:59",
  "utcStartTime" : "2013-09-01 21:59:59"
}

Paramètres de configuration des remboursements pour l'API

Les paramètres de requête suivants peuvent être spécifiés dans une demande de remboursement:

Nom Description Par défaut Obligatoire ?
monetizationPackageId

Package d'API auquel le remboursement s'applique.

N/A Non
parentTxId

La transaction d'achat à rembourser.

N/A Oui
revenueType

Type de revenus (GROSS ou NET) de la transaction d'achat.

N/A Oui
refundAmount

Montant du remboursement.

N/A Oui
transactionNote

Une note textuelle décrivant le motif du remboursement.

N/A Oui

Étapes suivantes

Découvrez comment planifier des missions liées à la monétisation et celles qui sont planifiées automatiquement dans Planifier les tâches de monétisation.