Package org.wso2.am.monetization.api
Interface Monetization
-
public interface MonetizationSPI for external monetization engine integrations (e.g., Moesif + Stripe).
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Map<String,String>configMonetizationSetup(String organization, Map<String,Object> orgContext)Configures the monetization billing engine for an organizationvoiddeleteBillingMeters(String organization, Map<String,Object> monetizationContext)Deletes billing meters from the engine.default voiddisableBillingEngineSetup(String organization, String engineName, String env)Disables the billing engine setup for an organization.booleandisableMonetization(String organization, String apiIdentifier, Map<String,Object> monetizationContext)Disables monetization for an APIList<Map<String,Object>>enableMonetization(String organization, Map<String,Object> apiMetadata, List<Map<String,Object>> plans)Enables monetization for an APIMap<String,String>getTotalRevenue(String tenantDomain, String apiIdentifier, List<MoesifPlanInfo> moesifPlanList, Map<String,Object> inputContext)Returns aggregated revenue for an API.Map<String,String>getUsageData(String tenantDomain, Map<String,Object> usageInputContext)Returns current usage metrics for a subscription.default voidinit(String serviceUrl)Initializes the implementation with the billing service base URL.Map<String,String>monetizeSubscription(String tenantDomain, Map<String,Object> subscriptionData)Executes the subscription monetization workflow (customer creation, billing subscription, usage metering linkage).List<Map<String,Object>>provisionCommercialPlans(String organization, Map<String,Object> orgContext, List<Map<String,Object>> plans)Provisions org-level commercial plans with the billing engine,default voidsyncBillingUser(String billingCustomerId, String userEmail, String organization, String env)Syncs a billing user to the monetization engine.
-
-
-
Method Detail
-
init
default void init(String serviceUrl)
Initializes the implementation with the billing service base URL.- Parameters:
serviceUrl- the billing service base URL
-
configMonetizationSetup
Map<String,String> configMonetizationSetup(String organization, Map<String,Object> orgContext) throws MonetizationException
Configures the monetization billing engine for an organization- Parameters:
organization- tenant/org idorgContext- setup context (billingEngine, stripeSecretKey, devPortalWebhookUrl, etc.)- Returns:
- setup outputs (webhook endpoint ids, signing secret, etc.)
- Throws:
MonetizationException- if configuration fails
-
provisionCommercialPlans
List<Map<String,Object>> provisionCommercialPlans(String organization, Map<String,Object> orgContext, List<Map<String,Object>> plans) throws MonetizationException
Provisions org-level commercial plans with the billing engine,- Parameters:
organization- torganization idorgContext- engine context (billingEngine, environment, etc.)plans- org-level plans with pricing metadata- Returns:
- plans
- Throws:
MonetizationException- if provisioning fails
-
enableMonetization
List<Map<String,Object>> enableMonetization(String organization, Map<String,Object> apiMetadata, List<Map<String,Object>> plans) throws MonetizationException
Enables monetization for an API- Parameters:
organization- tenant or organizationapiMetadata- API metadata (name, version, provider)plans- plans to meter- Returns:
- plans and billing meters
- Throws:
MonetizationException- if monetization enablement fails
-
disableMonetization
boolean disableMonetization(String organization, String apiIdentifier, Map<String,Object> monetizationContext) throws MonetizationException
Disables monetization for an API- Parameters:
organization- organizationapiIdentifier- API UUIDmonetizationContext- context (environment, billingEngine, etc.)- Returns:
- true if disabled successfully
- Throws:
MonetizationException- if disabling monetization fails
-
deleteBillingMeters
void deleteBillingMeters(String organization, Map<String,Object> monetizationContext) throws MonetizationException
Deletes billing meters from the engine.- Parameters:
organization- organizationmonetizationContext- context (environment, billingEngine, billingMeterIds)- Throws:
MonetizationException- if deletion fails
-
monetizeSubscription
Map<String,String> monetizeSubscription(String tenantDomain, Map<String,Object> subscriptionData) throws MonetizationException
Executes the subscription monetization workflow (customer creation, billing subscription, usage metering linkage).- Parameters:
tenantDomain- tenant or organizationsubscriptionData- subscriber, application, API, plan, and payment details- Returns:
- created subscription info (customerId, subscriptionId, etc.)
- Throws:
MonetizationException- if subscription monetization fails
-
getUsageData
Map<String,String> getUsageData(String tenantDomain, Map<String,Object> usageInputContext) throws MonetizationException
Returns current usage metrics for a subscription.- Parameters:
tenantDomain- tenant or organizationusageInputContext- usage context (subscriptionId, billingMeterId, timeRange, etc.)- Returns:
- usage data metrics
- Throws:
MonetizationException- if usage data retrieval fails
-
getTotalRevenue
Map<String,String> getTotalRevenue(String tenantDomain, String apiIdentifier, List<MoesifPlanInfo> moesifPlanList, Map<String,Object> inputContext) throws MonetizationException
Returns aggregated revenue for an API.- Parameters:
tenantDomain- tenant or organizationapiIdentifier- API UUID or identifiermoesifPlanList- list of Moesif plan informationinputContext- revenue context (timeRange, currency, etc.)- Returns:
- revenue data
- Throws:
MonetizationException- if revenue retrieval fails
-
syncBillingUser
default void syncBillingUser(String billingCustomerId, String userEmail, String organization, String env) throws MonetizationException
Syncs a billing user to the monetization engine.- Parameters:
billingCustomerId- billing customer IDuserEmail- user emailorganization- organizationenv- environment- Throws:
MonetizationException- if user sync fails
-
disableBillingEngineSetup
default void disableBillingEngineSetup(String organization, String engineName, String env) throws MonetizationException
Disables the billing engine setup for an organization.- Parameters:
organization- tenant/org idengineName- billing engine name (e.g. "STRIPE")env- environment- Throws:
MonetizationException- if disabling setup fails
-
-