webMethods.io API Gateway: Integration with Billing System for Monetization

Introduction

This article explains about integrating the API’s, Plans and Packages available on API gateway with Zuora Integration Billing system for the monetization use case.

Audience

It is assumed that readers of this article know how to setup API’s, Plans and Packages on API Gateway.

Prerequisites

  • Configure the API at API gateway.
  • Create the Plan and Package at the API Gateway.
  • In this case, package is created as PetStorepackage and plan as Plan1.
  • Zuora Account subscription.

What is Zuora and why do you need it

  • Zuora is a technology solutions provider that offers complete Order-to-Revenue capabilities for modern businesses.
  • It can manage quotes, orders, billing, and revenue recognition for the entire customer lifecycle on a single platform.  

Object Mapping between API Gateway and Zuora

In this case, the assets of API gateway are mapped to objects of Zuora Billing system:

  • API of API Gateway becomes Feature in Zuora
  • Application of API Gateway becomes Subscription in Zuora
  • Package of API Gateway becomes Product in Zuora
  • Plans of API Gateway becomes Product Rate Plan in Zuora

              

Use case

  • Fetch the component details for API, Package and Plan from on-prem API Gateway using the exposed API.
  • Map the details with Zuora’s exposed APIs
  • Push the details to Zuora billing system        

Framework built on Integration Server

  • In this case, framework is designed on on-prem Integration Server, and the package is named as WxAPIGateway
  • This package is responsible for fetching the details from on-prem API Gateway and invoking Zuora integration package named WxZuoraIntegration.
  • Scheduler is created on WxAPIGateway package which is responsible for pulling the components from API Gateway.

                

           

Plug ’n’ Play

  • In the current scenario API Gateway is the source system and Zuora is the destination system.
  • WxAPIGateway package contains all the services which take care of getting the data and then invoking the services of WxZuoraIntegration package for pushing it Zuora billing system.
  • In future, if some other billing system comes into existence and wants to use our framework, then their service needs to be configured on Integration Server using extended settings.
  • Post-configuration of the service, assets of API Gateway can be pushed to the new billing system also.

          

Push Model Approach

  • In this case, the push model approach is followed.
  • Flow Service is created and configured as a scheduler on Integration Server.
  • This scheduler is responsible for connecting to on-premise API Gateway, and getting the response details for each component (Plans, Packages, APIs).

          

Zuora Billing System Setup

  • Generate the Client ID and Client Secret key from Manage user in the Zuora portal.

       

        

  • Configure the above details in extended settings on Integration server Admin Page.

                    

Testing Demo                      

  • Enable the scheduler.
  • Once the scheduler executes, it will fetch the components from API Gateway and push it to Zuora Billing System.
  • In this case, at the API Gateway we have the below artifacts:

API Name: PetStore

Package Name: PetStorePackage

Plan Name: Plan1

  • Login to Zuora billing system portal and verify the assets
  • Navigate to Product

        

  • Package become product catalog

    

    

  • API becomes feature

       

      

  • Plan becomes product rate Plan.

     

    Note:

  •     Attached the packages used to create the framework.
  •     Properties Created and configured at IS admin page under extended settings            

                 watt.api.monetization.gateway.authheader=

                 watt.api.monetization.gateway.callbacks=wx.zuora.pub:monetizeAPIAssets

                 watt.api.monetization.zuora.baseURL=

                 watt.api.monetization.zuora.clientid=

                 watt.api.monetization.zuora.clientsecret=

WxAPIGateway.zip (66.8 KB)

WxZuoraIntegration.zip (101 KB)