払い戻す

現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください
情報

はじめに

収益化を有効にすると、「購入取引」に対する払い戻しをデベロッパーに送信できます。携帯通信会社で、アプリケーションやアプリケーション内のコンテンツの購入に対してモバイル購読者に請求する支払い API をデベロッパーに提供するとします。定期購入者が API を使用して購入を行うたびに、それが購入トランザクションとなります。

購入取引が払い戻しの対象となる場合があります。たとえば、コンテンツが提供されなかったり、第三者が購入に満足しなかったりすることがあります。そのような場合、デベロッパーはサードパーティに払い戻しを行います。収益化では同様の払い戻しを行うことができます。これは、特に収益分配プランに関連しています。

モバイル定期購入者に払い戻しを行ったデベロッパーが、API プロダクトの収益分配プランを購入したとします。プランでデベロッパーが購入トランザクションの正味価格/総額の 70% を受け取るよう求めているとします。払い戻しを行うと、実質的に購入取引が取り消されます。つまり、払い戻しが適用された月について、デベロッパーの支払いから 70% が差し引かれます(月は実際の購入取引が発生した月とは異なる場合があります)。

Classic Edge UI を使用した払い戻しの送信(Edge for Private Cloud のみ)

購入取引が成功した場合、つまり API からサードパーティへの請求が正常に完了した場合、まだ全額払い戻しを手続きしていない場合、払い戻しを送信できます。払い戻しを送信すると、親トランザクション ID を持つ払い戻しトランザクションが作成されます。トランザクション ID は購入トランザクションの ID です。

元の購入トランザクションの全額、または一部について払い戻しを送信できます。一部払い戻しを複数送信することもできますが、払い戻しの合計額が元の購入金額を超えることはできません。

払い戻しを送信するには:

  1. [収益化] タブで [払い戻し] を選択します。

    [払い戻し] ページが開きます。

  2. [Billing Month] プルダウン メニューで、購入トランザクションが発生した月を選択します。[+ 払い戻し] をクリックします。

    選択した月に正常に完了したすべての購入取引のリストが表示されます。

    払い戻しリストは、デベロッパー名または実際の取引で検索してフィルタできます。

    デベロッパーでフィルタするには、[Developer] プルダウン メニューからデベロッパーを選択します。選択したデベロッパーに関連する取引のみのリストが表示されます。

    取引 ID でフィルタするには、払い戻しを行う元の購入の取引 ID を入力します。これにより、その ID のトランザクションが返されます。

  3. 払い戻しするトランザクションの行で [選択] チェックボックスをオンにします。
  4. [タイプ] プルダウン メニューで、[合計] または [一部] を選択します。

    [合計] を選択した場合は、購入の合計金額が払い戻されます。[一部] を選択した場合は、購入の一部が払い戻されます。

    [Partial] を選択した場合は、[Amount] フィールドに一部払い戻しの金額を入力します。払い戻しは、購入総額を上限とします。すでに一部払い戻しをすでに行っている場合は、購入時の残額を上限として入力できます。また、元の購入取引に総額と正味価格の両方がある場合は、払い戻しする部分的な金額が総額か純額かを指定する必要があります。

  5. 払い戻しを手続きするには [保存] を、キャンセルするには [キャンセル] をクリックします。

    払い戻しは、請求月がまだ有効な場合は、元の購入月に計上されます。それ以外の場合は、現在の日付に計上されます。

    一部払い戻しの場合、一部払い戻しが処理され、収益分配は全額に対する一部金額の割合に基づいて差し引かれます。上記の一部払い戻しの例では、一部払い戻し額は 0.50 ÷ 1.12 = 総額の 45% となるため、デベロッパーの収益分配率の 45% が差し引かれます。

払い戻しが処理されたかどうかを UI で確認する

[払い戻し] ページの上部で請求月を選択すると、払い戻しが処理されたかどうかを判断できます。請求月がまだ営業している場合は購入月であり、請求月がクローズされている場合は当月です。これにより、その月に投稿されたすべての払い戻しのリストが表示されます。

API を使用した払い戻しの送信

払い戻しを送信するには、/organizations/{org_name}/monetization-packages/{package_id}/refund-transactions に POST リクエストを発行します。ここで、{package_id} は払い戻しが適用される API パッケージの ID です。

リクエストを発行する際は、以下をクエリ パラメータとして指定する必要があります。

  • 払い戻し対象の購入取引の ID。
  • 購入トランザクションの収益タイプ(GROSS または NET)。
  • 払い戻し額。
  • 払い戻しの理由を説明するメモ。

必要に応じて、払い戻しの対象となる API パッケージを URL パラメータとして指定できます。

払い戻しリクエストで指定できる URL パラメータの一覧については、払い戻しの構成をご覧ください。

次のリクエストでは、購入トランザクションの払い戻しを発行しています。払い戻し額は、購入トランザクションの合計金額の 50% となります。

$ 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

レスポンスは次のようになります(レスポンスの一部のみが表示されます)。

{
  "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"
}

API の払い戻し設定

払い戻しリクエストでは、次のクエリ パラメータを指定できます。

名前 説明 デフォルト 必須 / 任意
monetizationPackageId

払い戻しが適用される API パッケージ。

なし ×
parentTxId

払い戻し対象の購入取引。

なし
revenueType

購入トランザクションの収益タイプ(GROSS または NET)。

なし
refundAmount

払い戻し額。

なし
transactionNote

払い戻しの理由を説明するテキストメモ。

なし

次のステップ

収益化関連のジョブをスケジュールする方法と、自動的にスケジュールされるジョブについては、収益化ジョブをスケジュールするをご覧ください。