Many subscriptions billing technology companies are implementing Oracle cloud. These companies use the Oracle Cloud Receivables module to book subscription sale & leverage the robust Oracle Fusion Receivables Revenue Recognition process. However, it is crucial to build a methodology to integrate the billing platform with Oracle Fusion Receivables.
Following processes should be considered for integrating billing data with Oracle Cloud Receivables.
Identify middleware to communicate between Billing platform and Oracle cloud receivable:
Business must procure any of the above middleware software licenses.
Identify communication methods to process billing data to book it as a sale and recognize revenue in Receivables.
It is very important to validate how the billing platform can make this data available. There are many ways to gather data from the billing platform.
API: Here, the source system has inbuilt services that can be leveraged to pull data in a specific format.
Connectors: Here, the source system makes available data fields in connectors. All data is available in these fields. The integrator should identify these data fields and fetch related data from these connectors by writing scripts and queries.
FTP: Here, the source system gives data in a file, which can be in various format like CSV, Spreadsheet etc. The source system should pull these files to a particular data server location using internet protocols (IP addresses). Integrator uses these files to fetch related data from it.
Data Massaging, Validations, Mapping & Storage
It is necessary to validate and massage data before importing it in Oracle Cloud Receivables.
Massaging: Oracle cloud accepts this billing data in a specified manner. It is very important to validate and add additional information if it is not there before moving it in Receivables Interface tables. Common data elements can be grouped and imported as a single invoice in Receivables per business requirement. e.g., record lines having the same customer, transaction date, currency can be grouped as a single invoice having multiple lines of different SKUs, Revenue Recognition date etc. These lines can also be grouped by SKU, Revenue Recognition dates etc.
Data Validations and Mapping: Source system data must be validated before importing it in Receivables, like Customer, Items (SKUs), Sales Rep etc. It should be validated with Receivable master data. If the same is not available, then it can be treated as new and created. The need to map this data as per the business rule with Oracle Receivables specifications like customer classification mapped as Receivable Transaction Type, or billing Source mapped as Receivable Transaction source or source system SKU mapped with Receivables SKUs.
Certain data elements are not available in the Source system. These can be hardcoded before inserting them in the receivables interface table e.g., Ledger Name, Business Unit, Accounting Rule, Invoice Rule, Payment Term, Remit-To address etc.
Data Storage: It is necessary to have a staging table to perform the above-mentioned data massaging & validations. This table can be a part of any on-demand cloud computing platform like Amazon Web Services or a business owned server.
Massaged data is available to import in the Receivable interface table. Middleware should use web service functionality to load data in interface table, then call Auto invoice functionality to import data by source as multiple billing platforms in Oracle Cloud Receivable.
There are three stages where errors should be identified.
Staging table: Here, data is inserted from the source system. There is a possibility of an error while inserting data, like insufficient data where fetched data is not as per the staging table field, or the connection is broken. These errors should be identified by middleware and notified to process owners.
Processes should be designed to correct the data at the source system and re-process it, or UI should be designed to correct this erroneous data in the staging table by the user. Erroneous data should be flagged separately and archived if corrected data is re-processed from the source system.
Interface table: Here, data is inserted from the staging table.
Oracle Receivable performs its data validation in this process. There is a possibility of error due to insufficient data not identified at staging table validation, like wrong ledger ID or Business unit ID or wrong customer ID or connection error. These errors should be identified by middleware and notified to process owners.
Processes should be designed to correct erroneous data in the staging table by using UI or mapping to be updated to process data in the staging table. Data can be corrected at the source billing system and re-processed. Erroneous data should be flagged separately and archived if corrected data is re-processed from the source system in the staging table.
Receivable Base Table: Here, data is imported from the interface table.
Auto Invoice import process performs numerous validations to create Receivable transaction (Invoice/Credit Note). If Auto Invoice identifies any error, then it rejects the entire batch of records. These errors are identified in the Execution report. This report should be notified to process owners. Receivable provides UI to correct any errored data in the interface table.
Errors can be due to inaccurate data from the source system like wrong customer name or SKU, or currency or wrong mapping in the staging table to derive some fields from creating Receivable Transaction like Ledger ID or Business Unit ID.
Processes should be designed to either correct these error records in the interface table using UI or reject error records, and correct/update errored data in the source system and re-process it or if the mapping is wrong, then update/create mappings in the staging table re-import it. Oracle Receivables will never import rejected/errored data in Receivables. These rejected records in the interface table can be purged.
There are two types of notifications: Success & Errors. These notifications should be generated in all stages of data transfer like staging, Interface, and Receivable base tables. Notifications can be alerted by email to the process owners.
Stage Table: Here, data is transferred from the source system. All success and errors records should be notified to process owners in a detailed or summary report. The process owner should take appropriate action as per notification.
Interface Table: Here, data is transferred from the staging table. All success and error records should be notified to process owners in a detailed or summary report. The process owner should take appropriate action as per notification.
Base Table: Here, data is transferred from the Interface table. Auto Invoice generates its Execution report, which shows the error and success record count summary and errors in details. This report should be notified to process owners to take appropriate action.
The above-mentioned processes help design this integration with Oracle Receivable.
About the Author
Swapnil Patkar, Principal Solution Architect, Enterprise Cloud Apps - Oracle