This page applies to Apigee and Apigee hybrid.
View Apigee Edge documentation.
Debug monetization using Debug as described in the following sections.
Debugging the authentication policy phase
Apigee monetization uses the VerifyAPIKey or VerifyAccessToken policy to determine if an incoming request is monetizable by checking for the active published rate plan. For more information about adding the policy, see Adding an authentication policy.
For example, the following image shows the details of the VerifyAPIKey policy phase in the request flow.
After authenticating the user, the VerifyAPIKey policy checks all published rate plans to determine which, if any, is active based on their activation and expiration times. If an active published rate plan is found, the following flow variables are populated:
Flow variable | Setting |
---|---|
mint.mintng_is_apiproduct_monetized |
true if active published rate plan is found. |
mint.mintng_rate_plan_id |
Rate plan ID. |
mint.rateplan_end_time_ms |
Expiration time for the rate plan. For example: 1619433556408 |
mint.rateplan_start_time_ms |
Activation time of the rate plan. For example: 1618433956209 |
If no active published rate plan is found, the mint.mintng_is_apiproduct_monetized
flow variable is set to false
and the additional flow
variables are not populated.
For more information, see mint flow variables.
Debugging the MonetizationLimitsCheck policy phase
Apigee monetization uses the MonetizationLimitsCheck policy to enforce developer subscriptions to the API product. For more information about adding the policy, see Enforcing developer subscriptions to API products.
For example, the following image shows the details of the MonetizationLimitsCheck policy phase in the request flow.
If the developer purchased a subscription to the API product, the following flow variables are populated:
Flow variable | Description |
---|---|
mint.limitscheck.is_request_blocked |
true for blocked requests. |
mint.limitscheck.is_subscription_found |
true if an API subscription is found. |
mint.limitscheck_purchased_product_name |
Name of the purchased API product. For example: MyProduct |
mint.limitscheck.status_message |
Status message. For example: limits_check_success |
mint.prepaid_developer_balance |
Current balance in the developer's prepaid account wallet associated with the rate plan's currency. |
mint.prepaid_developer_currency |
Currency of the balance available in the
mint.prepaid_developer_balance variable. |
mint.subscription_end_time_ms |
End time of the API product subscription. |
mint.subscription_start_time_ms |
Start time of the API product subscription. For example: 1618433956209 |
If the developer did not purchase a subscription to the API product:
mint.limitscheck_is_subscription_found
flow variable is set tofalse
mint.limitscheck.is_request_blocked
is set totrue
- No other flow variables are populated.
For more information, see mint flow variables.
Debugging the Quota policy phase
Apigee monetization uses the Quota policy to enforce the quotas defined at the API product level. Quotas define the number of requests allowed for an API product over a given time period. For more information about the adding the policy, see Enforcing monetization quotas in an API proxies.
For example, the following image shows the details of the Quota policy phase in the request flow where the quota has been exceeded.
In this example, the quota has been exceeded, an HTTP 429 Too Many Requests
status is returned, and the flow ratelimit.*
flow
variables are populated to provide more details about the quota exception. For a description of the ratelimit.*
, see the Quota policy flow variables.
Debugging the DataCapture policy phase
Apigee uses the monetization variables captured by the DataCapture policy for rating, calculating revenue share, and analytics. For more information about the capturing the monetization variables in the policy, see Capturing monetization data.
For example, the following image shows the details of the DataCapture policy execution phase in the response flow.
If there are no errors when capturing the monetization variables, the following flow variables are populated for a transaction:
Flow variable | Description |
---|---|
mint.mintng_currency |
Currency for calculating the revenue. This flow variable has the value of the |
mint.mintng_price |
Revenue for calculating the developer's share. This flow variable has the value of the |
mint.mintng_price_multiplier |
Factor (multiplier) by which the per-transaction cost is multiplied. This flow variable has the value of the |
mint.mintng_tx_success |
Specifies if the transaction is monetized. This flow variable has the value of the |
Debugging the monetized API proxy execution phase
After the successful execution of the monetized API proxy, a set of flow variables are populated with information about the monetization consumption-based fees and rates charged.
For example, the following image shows the details of the Proxy Execution phase in the PostClient flow where the variables are populated.
If the monetized API proxy execution succeeds, the following flow variables are populated:
Flow variable | Description |
---|---|
message.status.code |
HTTP status code of the response message from target.
If you have any policy in your response, the value of this variable is overridden by status code returned by the policy. |
mint.limitscheck.is_request_blocked |
Flag that specifies whether the API request is blocked. |
mint.mintng_consumption_pricing_rates |
Consumption-based fees set in the rate plan. |
mint.mintng_consumption_pricing_type |
Consumption-based pricing type set in the rate plan. For example: FIXED_PER_UNIT |
mint.mintng_dev_share |
Revenue to be shared with developer. |
mint.mintng_price_multiplier |
Factor (multiplier) captured from the DataCapture policy. The per-transaction cost is multiplied by this factor. |
mint.mintng_rate |
Rate charged for the API call. |
mint.mintng_rate_before_multipliers |
Rate charged for the API call without the perUnitPriceMultiplier calculation. |
mint.mintng_revenue_share_rates |
Revenue share rates set in the rate plan. |
mint.mintng_revenue_share_type |
Revenue share type set in the rate plan. |
mint.prepaid_updated_developer_usage |
Current usage of the prepaid developer. |
mint.status |
Status of the monetized call. Populated only on error. |
mint.status_code |
HTTP status code of the monetized call. Populated only on error. |
mint.tx_success_result |
Indicates whether monetization is successful for the transaction. |
For a detailed description of all the variables,
see mint flow variables.