Intégrer des remboursements

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

Introduction

La monétisation vous permet d'effectuer des remboursements auprès des développeurs pour les "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 de contenu dans l'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 à des remboursements. Par exemple, le contenu peut ne pas être fourni, ou le tiers n'est pas satisfait de l'achat. Dans ce cas, le développeur effectue un remboursement auprès du tiers. La monétisation vous permet d'effectuer un remboursement analogue. Cela est particulièrement pertinent pour les plans de partage des revenus.

Imaginez que le développeur qui a effectué le remboursement auprès de l'abonné mobile a souscrit un plan de partage des revenus pour votre produit d'API. Supposons que le plan prévoit que le développeur reçoive 70% du prix net/brut de la transaction d'achat. En effectuant un remboursement, vous annulez la transaction d'achat. Autrement dit, 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 a eu lieu).

Effectuer un remboursement à l'aide de l'interface utilisateur Classic Edge (Edge pour le cloud privé uniquement)

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

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

Pour effectuer 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 eu lieu. Cliquez ensuite sur "+ Remboursements".

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

    Vous pouvez filtrer la liste des remboursements par nom de développeur ou en effectuant une recherche sur la transaction réelle.

    Pour filtrer par développeur, sélectionnez le développeur dans le menu déroulant "Développeur". La liste des transactions liées au développeur sélectionné s'affiche.

    Pour filtrer par ID de transaction, saisissez l'ID de transaction de l'achat d'origine que vous voulez rembourser. La transaction correspondant à cet ID s'affiche.

  3. Cochez la case "Sélectionner" dans la ou les lignes correspondant aux 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 sera remboursé. Si vous sélectionnez "Partiel", un montant partiel de l'achat sera remboursé.

    Si vous sélectionnez "Partiel", saisissez le montant du remboursement partiel dans le champ "Montant". Vous ne pouvez que le montant total de l'achat. Si vous avez déjà effectué un remboursement partiel, vous ne pouvez saisir qu'un montant inférieur ou égal au montant restant de l'achat. De plus, si la transaction d'achat d'origine comporte à la fois des prix bruts et nets, vous devrez é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é pour le mois de l'achat d'origine si le mois de facturation est toujours ouvert. Sinon, le remboursement est effectué à la date actuelle.

    Pour un remboursement partiel, le remboursement est traité pour le montant partiel, et tout partage des revenus est déduit en fonction de la proportion du montant partiel par rapport au montant total. Dans l'exemple de remboursement partiel ci-dessus, le montant partiel correspond à 0,50/1,12 = 45% du prix brut. Par conséquent, 45% du partage des revenus du développeur seront déduits.

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

Pour déterminer si un remboursement a été effectué, 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 ouvert, ou du mois en cours si le mois de facturation est fermé. La liste de tous les remboursements effectués au cours du mois s'affiche.

Effectuer un remboursement à l'aide de l'API

Pour effectuer 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 envoyez la requête, vous devez spécifier les éléments suivants en tant que paramètres de requête :

  • L'identification de la transaction d'achat remboursée.
  • Le type de revenus (GROSS ou NET) de la transaction d'achat.
  • Le montant du remboursement.
  • Une note décrivant le motif du remboursement.

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

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

Par exemple, la requête suivante effectue un remboursement pour une transaction d'achat. Le montant du remboursement 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

Le package d'API auquel le remboursement s'applique.

N/A Non
parentTxId

La transaction d'achat à rembourser.

N/A Oui
revenueType

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

N/A Oui
refundAmount

Le 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 tâches liées à la monétisation et les tâches planifiées automatiquement dans Planifier des tâches de monétisation.