AU2014201080B2 - Facilitating billing of embedded applications - Google Patents

Facilitating billing of embedded applications Download PDF

Info

Publication number
AU2014201080B2
AU2014201080B2 AU2014201080A AU2014201080A AU2014201080B2 AU 2014201080 B2 AU2014201080 B2 AU 2014201080B2 AU 2014201080 A AU2014201080 A AU 2014201080A AU 2014201080 A AU2014201080 A AU 2014201080A AU 2014201080 B2 AU2014201080 B2 AU 2014201080B2
Authority
AU
Australia
Prior art keywords
application
user
plan
billing
account
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
AU2014201080A
Other versions
AU2014201080A1 (en
Inventor
Sharon Beloli
Farhang Kassaei
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PayPal Inc
Original Assignee
PayPal Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2011237500A external-priority patent/AU2011237500B2/en
Application filed by PayPal Inc filed Critical PayPal Inc
Priority to AU2014201080A priority Critical patent/AU2014201080B2/en
Publication of AU2014201080A1 publication Critical patent/AU2014201080A1/en
Assigned to PAYPAL, INC. reassignment PAYPAL, INC. Request for Assignment Assignors: EBAY INC.
Application granted granted Critical
Publication of AU2014201080B2 publication Critical patent/AU2014201080B2/en
Priority to AU2016201048A priority patent/AU2016201048B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Doc Id: 1000523327 Various embodiments described herein include one or more of systems, software, and methods to automatically facilitate a billing transaction between a third-party developer and a user subscribing to a third-party application. Some such embodiments create a sub-account under a serving platform account 5 registered to the user. Some embodiments include storing a billing plan associated with the third-party application, the billing plan defining a fee to subscribe to the third-party application.

Description

Doc Id: 1000523327 FACILITATING BILLING OF EMBEDDED APPLICATIONS 5 RELATED APPLICATIONS This application claims the priority benefit of U.S. Provisional Application No. 61/322,685, filed April 9, 2010, and to U.S. Patent Application Serial No. 12/874,017, filed on September 1, 2010, both of which are incorporated herein by reference. This application is also related to International 10 Application Number PCT/US2011/031598 (International Publication Number WO 2011/127296), filed on 7 April 2011, the contents of which are hereby incorporated herein by reference. TECHNICAL FIELD 15 This application relates generally to the field of electronic-based commerce. BACKGROUND With the widespread acceptance of the Internet as an interactive 20 communication medium, deploying applications that run on a common platform has increased in popularity. For example, an online marketplace may deploy, within the common platform, an application to manage a high volume of sales within the marketplace. Some of these applications are provided by the marketplace itself, whereas others are written and sold by third-party software 25 developers. In order to subscribe to these applications, especially third-party applications, subscribers typically have to search the Internet for the applications. To receive revenue for the use of the application, the developer of the third-party application usually must provide a billing system to properly authenticate, record, and process billing transactions (e.g., subscribing to or 30 purchasing the application). As a result, subscribers may potentially interact with a number of different billing systems when purchasing from more than one developer. 1 Doc Id: 1000523327 Furthermore, subscriptions to these third-party applications are handled outside of the online marketplace (e.g., a web platform marketplace), and some sellers may not trust third-parties (e.g., the third-party software developers) with payment details. 5 Reference to any prior art in the specification is not, and should not be taken as, an acknowledgment or any form of suggestion that this prior art forms part of the common general knowledge in Australia or any other jurisdiction or that this prior art could reasonably be expected to be ascertained, understood and regarded as relevant by a person skilled in the art. 10 SUMMARY OF THE INVENTION In one aspect the present invention provides a system comprising: an application module configured to store an application; a plan module configured to store a billing plan that defines different fee plans for different statuses of 15 users to subscribe to the application; an account module configured to create, using one or more processors, a sub-account in accordance with the billing plan and in response to a request received from a device of a user to subscribe to the application, the sub-account being a child account that corresponds to a parent account of the user; and a billing module configured to facilitate a transaction 20 between the sub-account and a developer account based on a fee plan among the different fee plans defined by the billing plan. In a second aspect the present invention provides a method comprising: storing an application; storing a billing plan that defines different fee plans for different statuses of users to subscribe to the application; creating, using one or 25 more processors, a sub-account in accordance with the billing plan and in response to a request received from a device of a user to subscribe to the application, the sub-account being a child account that corresponds to a parent account of the user; and facilitating a transaction between the sub-account and a developer account based on a fee plan among the different fee plans defined by 30 the billing plan. In a further aspect the present invention provides non-transitory machine readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations 2 Doc Id: 1000523327 comprising: storing an application; storing a billing plan that defines different fee plans for different statuses of users to subscribe to the application; creating, using the one or more processors, a sub-account in accordance with the billing plan and in response to a request received from a device of a user to subscribe to 5 the application, the sub-account being a child account that corresponds to a parent account of the user; and facilitating a transaction between the sub-account and a developer account based on a fee plan among the different fee plans defined by the billing plan. 10 BRIEF DESCRIPTION OF DRAWINGS Embodiments of the present invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numbers indicate similar elements. FIG. 1 is a block diagram of a system within which a method and system 15 to facilitate billing of embedded applications in a serving platform may be implemented, according to an example embodiment. FIG. 2 is a block diagram illustrating modules of an application marketplace platform, according to an example embodiment. FIG. 3 is a block diagram illustrating an example data structure 20 representing a billing plan, according to an example embodiment. FIG. 4 is a state diagram illustrating a lifecycle of a billing plan, according to an example embodiment. FIG. 5 is a flow chart illustrating a method for charging a user for a third party application provided by the application serving platform, according to an 25 example embodiment. FIG. 6 is a block diagram illustrating an example structure of a user account, according to an example embodiment. FIG. 7 is a message diagram illustrating messages involved in billing a subscriber, according to various example embodiments. 30 FIG. 8 is an alternative message diagram illustrating messages involved in billing a subscriber, according to various example embodiments. FIG. 9 is a further alternative message diagram illustrating messages involved in billing a subscriber, according to various example embodiments. 3 Doc Id: 1000523327 FIG. 10 is a diagrammatic representation of a machine in the example form of a computer system within which set instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. 5 DETAILED DESCRIPTION In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of some example embodiments. It will be evident, however, to one skilled in the 10 art that the present invention may be practiced without these specific details. Further, well-known instruction instances, protocols, structures, and techniques have not been shown in detail. An application marketplace platform is a framework that enables third party applications to offer custom functionality and tools within a serving 15 platform (e.g., an e-commerce marketplace). Rather than taking users away from the serving platform to access these tools, the serving platform enables third-party developers to contribute to the serving platform in a controlled and consistent manner. This effort enables the serving platform to leverage the strengths of the developer community to enhance the buying and selling 20 experience on the serving platform. As users of the serving platform scale, they may be able to add applications to their existing tool set without the need to migrate to a completely different environment or serving platform. To illustrate, a user initially may sell a small number of items on a serving platform. At this point in time, the user 25 may be viewed by the serving platform as a casual seller. Over time, the user may become increasingly popular within the serving platform, such that the user is completing a large number of transactions every month. At this point in time, the user may be viewed by the serving platform as a power seller. As such, the user may benefit from an inventory management application. An application 30 marketplace platform that, in this case, provides an inventory management application, benefits the user by providing tools that support the user in growing their presence within the serving platform. 4 Doc Id: 1000523327 For third-party developers, the application marketplace platform relieves the burden of a significant development task for the third-party developer by providing, among other things, billing and payment facilitates. The billing facilities are integrated into the application marketplace platform, thus providing 5 a flexible approach of generating fees based, in part, on functionality provided by the serving platform. A billing plan generally refers to one or more fees associated with a third-party application deployed by the application marketplace platform. In an example embodiment, a third-party developer defines the billing plan for the 10 third-party application and submits the billing plan to the application marketplace platform. In some example embodiments, the third-party developer may submit one or more billing plans for a particular application. In other embodiments, a billing plan may be partitioned to define multiple fee plans, depending on any number of factors, including, for example, the status of the 15 purchasing user within the serving platform. After the third-party developer submits the billing plan to the application marketplace platform, the application marketplace platform makes at least some portion of the billing plan viewable to users interested in purchasing the third party application. In an example embodiment, a user agrees to the fees 20 described by the billing plan at the time the user subscribes to the third-party application. Further details regarding the various example embodiments described above will now be discussed with reference to the figures accompanying the present specification. It should be noted that while example embodiments are 25 discussed with respect to a marketplace and an application marketplace platform, embodiments may be applicable to non-marketplace environments (e.g., a publication system or a social networking system). FIG. 1 is a network diagram depicting a client-server system 100, within which one example embodiment of facilitating billing of a third-party 30 application deployed by a common platform. FIG. 1 shows basic relationships between the parts of the client-server system 100. A serving platform (SP) 102, in the example, forms a network-based marketplace that provides server-side functionality, via a network 104 (e.g., the 5 Doc Id: 1000523327 Internet or Wide Area Network (WAN)) to one or more client machines 110, 112, and 130. FIG. 1 illustrates, for example, a web client 106 (e.g., a browser, such as the INTERNET EXPLORER browser developed by MICROSOFT Corporation of Redmond, Washington State), and a programmatic client 108 5 executing on respective client machines 110 and 112. The client machines 110 and 112 have associated display devices 134 and 136 (e.g., a monitor) for viewing data. An application program interface (API) server 114 and a web server 116 are coupled to, and provide programmatic and web interfaces respectively to, an 10 application marketplace platform 118. In turn, the application marketplace platform 118 is coupled to one or more databases (e.g., 126 and 128) via one or more database servers 124. The application marketplace platform 118 integrates with a third-party platform 140 to deploy a third-party application 132 on the SP 102. In example 15 embodiments, the third-party platform 140, third-party application 132, and the application marketplace platform 118 may implement or call standard, predefined interfaces. On the third-party side, the third-party application 132 may implement a participant interface implementation to provide an interface with the application marketplace platform 118. On the application marketplace 20 side, the application marketplace platform 118 may implement an application integration services interface to provide platform functionality to the third-party application 132. FIG. 2 is a block diagram illustrating modules of the application marketplace platform 118 used in facilitating billing of subscriptions to third 25 party applications, according to an example embodiment. The application marketplace platform 118 may comprise an ID mapper module 202, a billing profile module 204, an account profile module 206, a billing module 208, a billing plan vetting module 210, an application module 212, a usage module 214, and an application integration interface module 216. Further modules and 30 components not necessary for functions of the example embodiment are not shown or described. The ID mapper module 202 allows a flexible approach, for both the application marketplace platform 118 and third-party developers, to refer to 6 Doc Id: 1000523327 billing plans stored by the application marketplace platform 118. As will be described in further detail below, the application marketplace platform 118 may refer to billing plans based on an assigned identifier created when the billing plan is submitted to the application marketplace platform 118. The ID mapper 5 module 202 allows a third-party developer to specify an additional identifier that refers to the submitted billing plan. In this way, the application marketplace platform 118 may refer to the billing plan with the assigned identifier and the third-party developer may refer to the same billing plan with the specified identifier. As a result, third-party developers may more easily integrate existing 10 billing systems with the application marketplace platform by allowing the third party developers to maintain pre-existing identifiers used within systems outside of the application marketplace platform 118. The billing profile module 204 receives and stores billing plans submitted by the third-party developers. The billing profile module 204 may 15 reference the submitted billing plan based on the identifier either assigned by the billing profile module 204 or specified by the third-party developer. As will be further explained below (see, e.g., FIG. 3), a billing plan may include information describing various aspects related to a cost of a third-party application. For example, the billing plan may include an indication of whether 20 a specific charge is a periodic charge or a one-time charge. Additionally, the billing plan may further include a cost to the charge (e.g., a transaction fee or service charge), as may be represented in various currencies. Still further, the billing plan may also describe charges for the subscriber's use of the third-party application, such as, for example, a fee for each query to a database. 25 The account profile module 206 manages user accounts related to subscriptions to third-party applications. When a user subscribes to a third-party application, the account profile module 206 will create an account specific to the subscribed third-party application. The created account holds billing information specific to the user and the third-party application. In example 30 embodiments, each user (e.g., at the client machines 110 or 112) is registered to an account of the SP 102 that includes, for example, the user's personal information. When the user subscribes to a third-party application offered by the application marketplace platform 118, the account profile module 206 may 7 Doc Id: 1000523327 create a sub-account under the account of the SP 102. The created sub-account may be specific to the subscribed third-party application. The sub-account may, in example embodiments, inherit the user's personal information associated with the account of the SP 102, as will be discussed below. 5 The billing module 208 facilitates periodic or triggered billing transactions between the user and the third-party developer as specified by a billing plan. For example, the billing plan may have a data field that includes a time component for periodic charges (e.g., 1-year subscription). When the user subscribes to a billing plan of a third-party application that includes such a data 10 field, the billing module 208 may automatically trigger a billing transaction, to be stored by the account profile module 206, between the user and the third party developer at each period specified by the billing plan. The billing plan vetting module 210 confirms whether the submitted billing plan meets criteria defined by the application marketplace platform 118. 15 As will be described in further detail below, once a third-party developer submits a billing plan, the billing plan vetting module 210 may authorize the billing plan (e.g., authorize use of the billing plan) if it meets determinable standards, as set forth by the application marketplace platform 118. For example, some example embodiments may allow a billing plan to provide 20 textual fields that are displayable to users of the SP 102. To illustrate authorizing such a textual field, the application marketplace platform 118 may provide a policy that billing plans may not include obscene language. In this case, the billing plan vetting module 210 may authorize a billing plan if the billing plan vetting module 210 determines that the submitted billing plan does 25 not include language considered to be obscene by the application marketplace platform 118, as specified by a configuration file accessible to administrators of the SP 102, for example. The application module 212 receives and stores the third-party applications deployed by the application marketplace platform 118. The 30 application module 212 may store the third-party applications in the application database 126. The usage module 214 receives events related to usage-based billing. For example, a third-party application may report a usage event (e.g., login, 8 Doc Id: 1000523327 database access, or any other application use) to the usage module 214. Responsive to receiving usage-based billing events, the usage module 214 records billing records in the third-party application specific account created by the account profile module 206. 5 The application integration interface module 216 is a programmable interface. A third-party platform, for example, invokes functionality provided by the application integration interface module 216 to provide functionality offered by the SP 102. For example, the SP 102 may provide functionality that returns a status of a user of the SP 102. The status may indicate whether the user 10 is a high-volume seller or a low volume seller. FIG. 3 is a diagram that shows an example data structure representing a billing plan 300. A third-party platform may submit the billing plan 300, or some portion thereof, to the application marketplace platform 118 to define a billing plan associated with the third-party application 132, both shown in FIG. 15 1. A developer application identifier (ID) 302 identifies a developer of the third-party application. In some embodiments, the developer application ID 302 matches an identifier (ID) value assigned to the third-party application 132 when the third-party application 132 is initially submitted to the application 20 marketplace platform 118. A developer application name 304 is a textual representation of a name of the third-party application provided by the developer. The developer application name 304 may be shown in a billing statement to the subscriber. A developer plan identifier (ID) 306 is a developer-assigned identifier 25 that the application marketplace platform 118 may include in messages to the third-party platform (e.g., messages to notify the third-party platform of a new subscription). Plan name 308 and plan description 310 are display elements that provide human-readable information to the user regarding the billing plan. For example, the plan name 308 field may be included in the billing statement and 30 show a name of the billing plan. The plan description 310 is a human-readable textual field that describes the billing plan. In an example embodiment, the application marketplace platform 118 displays the plan description 310 to a user viewing the billing plan. 9 Doc Id: 1000523327 This field allows the user to better understand the billing plan by providing a short description. The plan dates field 312 represents a time frame that the billing plan is available for subscription. For example, the plan dates field 312 may indicate a 5 start and end date that a user may subscribe to the billing plan. The application marketplace platform 118 may prohibit a user from subscribing until the current date is within the time range specified by the plan dates field 312. A plan type field 314 identifies whether the billing plan is a billable plan or non-billable plan. That is, the developer may choose to indicate a free plan by 10 setting the plan type field 314 to a value that indicates that the billing plan 300 is a non-billable plan, or may choose to indicate that the plan includes at least one charge by setting the plan type filed 314 to a value indicating that the billing plan 300 is a billable plan. A recurring charge field 316 represents an amount of a recurring charge 15 for usage of the third-party application 132. In some embodiments, the recurring charge field 316 may indicate a currency of the amount applied. A recurring period field 318 represents a period or frequency of the charge represented by the recurring charge field 316. In some embodiments, the recurring charge may indicate daily, weekly, bi-monthly, monthly, quarterly, bi-annually, annual 20 charges, or any other periodic charge for usage of the third-party application 132. A one-time fees field 320 may indicate that the billing plan has a one time setup fee. The one-time fees field 320 may also indicate that the billing plan has a one-time fee that is charged once for the lifetime of the subscription. 25 A usage field 322 indicates whether the billing plan includes usage-based charges. If the usage field 322 indicates that the billing plan includes usage based charges, a usage category field 324 and a usage details field 326 provide further information related to the usage-based charges. The usage category field 324 indicates which usage category types the third-party application uses. In 30 some embodiments, the usage category field 324 may include multiple sub fields. For example, the usage category field 324 may include a value indicating a subscription charge if the third-party application 132 sends the subscription fee charge (e.g., through the application integration services interface) rather than 10 Doc Id: 1000523327 having the application marketplace platform 118 automatically charging the subscription fee to the third-party application specific account. As another example, the usage category field 324 may include a value indicating a plan usage charge if the third-party application 132 sends account activity usage 5 records to the application marketplace platform 118. As a further example, the usage category field 324 may include a value indicating a non-plan usage charge if the third-party application 132 sends non-plan related account activity (e.g., in a online marketplace, postage fees) to the application marketplace platform 118. The usage details field 326 provides one or more details about usage 10 charges. In some embodiments, the usage details field 326 may include human readable descriptions that are intended to be displayed to the user prior to the user subscribing to the billing plan. The usage details field 326 may further include markup tags (e.g., <b>, <strong>, <em>, <i>, <u>, <ol>, <ul>, or other similar markup tags). 15 The order of the fields of the billing plan 300 can be varied as desired, as can the content of each field. FIG. 3 is intended only to be an example of one possible data structure; many other formats exist, as would be appreciated by those skilled in the art. FIG. 4 is a state diagram illustrating a billing plan lifecycle 400 that is 20 used to track the process of submitting a billing plan, configuring the billing plan, and enabling the billing plan for use by the users. At operation 402, the application marketplace platform 118 of FIG. 1 receives a billing plan (e.g., billing plan 300 of FIG. 3) from a third-party application developer, also referred to as a developer. While the billing plan is 25 in a stored state, the application marketplace platform 118 permits the developer to test (e.g., subscribe and use the application) and make changes to the billing plan in the subscription flow without being charged by the application marketplace platform 118. In an example embodiment, the application marketplace platform 118 does not create a billing record if the developer 30 application ID 302 of FIG. 3 corresponds to the user subscribing to the billing plan. The application marketplace platform 118 moves the billing plan 300 to a submitted state at operation 404 responsive to the developer requesting the 11 Doc Id: 1000523327 application marketplace platform 118 to configure the billing plan 300 (e.g., for use with the third-party application 132). The application marketplace platform 118 prohibits the developer from modifying the billing plan while the billing plan is in the submitted state. 5 The billing plan remains in the submitted state until the application marketplace platform 118 changes the billing plan to a pending state in operation 406. This may occur, for example, upon commencement of configuration of the billing plan 300. While the billing plan is in the pending state, the billing plan vetting module 210 of FIG. 2 configures the billing plan stored in the billing 10 profile module 204 of FIG. 2. In some example embodiments, the vetting module 210 of FIG. 2 configures the billing plan for use with the third-party application 132. As an example, if the billing plan vetting module 210 finds an error in the information provided by the developer, the application marketplace platform 118 notifies the developer and the billing plan is placed back in the 15 stored state (e.g., operation 402) for the developer to edit. In an example embodiment, an employee of the marketplace manually reviews the submitted information. In another example embodiment, at least some portion of the review is performed automatically (e.g., by the application market platform 118). For example, the application marketplace platform 118 may parse the billing 20 plan for objectionable language or according to predefined rules. An active state applies to the billing plan after the billing plan vetting module 210 has configured the billing plan at operation 408. In some embodiments, users can or cannot see the plan based on a visibility setting (e.g., hidden or visible) and based on the plan's date range (e.g., start date and end 25 date). The application marketplace platform 118 may set the visibility setting to "hidden" and may suggest to the developer to do a final verification. Once the developer is reasonably satisfied that the billing plan performs as expected, the developer may send a request (e.g., send a control input via a user interface) to the application marketplace platform 118 to set the plan to a "visible" state. The 30 visible state allows other users to subscribe to the third-party application. FIG. 5 is a flow chart showing a billing process 500, according to one example embodiment. At operation 502, the application marketplace platform 12 Doc Id: 1000523327 118 of FIG. 1 receives a subscription request from a user to subscribe to a third party application, also referred to as a service. At operation 504, the account profile module 206 of FIG. 2 creates a sub account under a user-account of the user requesting the subscription. 5 Switching focus for a moment to better describe the account structure of the user, FIG. 6 is a block diagram that illustrates an example structure 600 of a user account. FIG. 6 shows that a user-account 602 acts as a parent account for sub-accounts 604, 606, and 608. The user-account 602 is the user's account within the SP 102 (see FIG. 1). Typically, the user-account 602 includes a user 10 profile 610 The user profile may 610 include personal information of the user, such as, for example, an email address, a physical mailing address, a user name (first and last names), a company name, a phone number, and other personal information. Responsive to a user subscribing to a third-party application from the application marketplace platform 118, the account profile module 206 (see 15 FIG. 2) may extend the user-account 602 to have a third-party application accounts (also referred to as a sub-accounts) to store account information specific to the subscription and use of the third-party application. In some example embodiments, information in the user profile 610 may be pulled from the user-account 602 to the sub-account (e.g., 604) by the account profile 20 module 206. In other embodiments, the sub-account includes the user profile 610 indirectly by reference, based on the child-parent relationship between the user-account 602 and sub accounts (e.g. 604, 606, and 608). For each new third party application, the account profile module 206 creates a separate sub-account (e.g., 606 and 608) to hold account information of the user's subscription to the 25 third-party application. Each account (user-account and sub-account) may include a number of identifiers. The user-account 602 may be identified by any combination of, for example, a user identifier of the user within the SP 102, an account identifier assigned by the application marketplace, or a registration email address. In turn, 30 the sub-accounts (e.g., 604, 606, and 608) may each be identified by an automatically generated identifier(s) (e.g., 614, 616, and 618, respectively) assigned by the application marketplace platform 118. In some embodiments, the generated identifier for the sub-account may indicate the third-party 13 Doc Id: 1000523327 developer providing the application for subscription. For example, identifiers 614 and 616 include the prefix X, which may correspond to a particular third party developer, while a Y prefix of identifier 618 may correspond to different third-party developer. The application marketplace platform 118 of FIG. 2 may 5 automatically generate the third-party developer prefix identifiers. With reference back to FIG. 5, operation 506 involves receiving a billing event from the third-party application. In an example embodiment, a third-party application can charge subscribers (e.g., cause subscribers to be charged) for usage and also for setup fees, one-time fees, and even recurring fees, by 10 reporting these transactions to the billing module 208 (see FIG. 2). For recurring fees, sending a usage charge is an alternative to having the billing module 208 manage periodic charges on the third-party developer's behalf. To engage in usage-based billing, the billing profile module 204 of FIG. 2 receives the billing plan, submitted by a third-party developer, which defines usage based charges. 15 Operation 508 involves the application marketplace platform 118 of FIG. 2 storing the billing event in the sub-account created at operation 504. The billing event may explicitly define an amount the subscriber is to be charged (e.g., one time fees), as determined by the third-party application. Alternatively, a billing event may describe a billing event based on user's use of the 20 application. Operation 510 involves the application marketplace platform 118 billing the subscriber. In an example embodiment, usage-based fees are billed at the time the application marketplace platform 118 receives the billing event at operation 506. Alternatively, the application marketplace platform 118 may bill 25 usage-based fees periodically according to the period defined by recurring period field 318 (with reference to FIG. 3). Example embodiments that bill usage based fees at the beginning or end of the specified period may also bill recurring expenses based on the reoccurring period. FIGS. 7-9 are message diagrams illustrating messages 700, 800, and 900 30 between a subscriber, an application marketplace platform, a third-party platform, and a third-party application. A subscriber shall refer to a user of the SP 102 of FIG. 1 that uses the application marketplace platform to purchase or subscribe to the third-party applications that are useable within the SP 102. 14 Doc Id: 1000523327 In particular, FIGS. 7-9 show messages to bill a subscriber based on the subscriber's profile within the application marketplace platform. For example, the serving platform serving as an e-commerce platform may designate certain users as "power sellers" based on a volume of sales within the e-commerce 5 platform. In such a case, a third-party developer may define a billing plan that charges "casual sellers" one fee while "power sellers" are charged another fee. FIG. 7 is a message diagram illustrating a series of messages 700 that enable a third-party platform 706 to charge a subscriber 702 based on user information stored within the SP 102, according to an example embodiment. 10 FIG. 7 shows that the subscriber 702 subscribes to a third-party application 708 by sending a subscription message 710 to an application marketplace platform 704. The subscriber 702 may select to subscribe to a billing plan (see, e.g., FIG. 3, the billing plan 300), which may be provided by the third-party application 708. 15 Responsive to receiving the subscription message 710, the application marketplace platform 704 sends a message 712 to the third-party platform 706 indicating that the subscriber 702 is requesting to subscribe to the selected billing plan, as provided by third-party application 708. The message 712 may include an identification of the selected billing plan and an identification of the 20 subscriber 702. In an example embodiment, the third-party platform 706 verifies those identifications and may determine that the subscriber 702 is authorized (e.g., permitted) to subscribe to the third-party application 708 according to the selected billing plan (e.g., that the subscriber 702 is in good standing, based on previous transactions, with the third-party developer). Based on successfully 25 authorizing the subscriber 702, the third-party platform 706 may return an indication of approval to the application marketplace platform 704 that the subscriber 702 is authorized to subscribe to the third-party application 708. Based on the approval from the application marketplace platform 704, the application marketplace platform 704 may create a sub-account under the 30 user-account of the SP 102 belonging to the subscriber, according to message 714. A third-party developer may define different types of billing plans. A billing plan may contain one or more fees rated (e.g., set or provided) by the 15 Doc Id: 1000523327 billing system or one or more fees rated by the third party developer. In a subscription flow, a subscriber may select a billing plan (e.g., from among multiple billing plans presented to the subscriber). If the billing plan contains fees that are rated by the billing system, then the rate is predefined, and the 5 billing system may calculate the fees. If a billing plan contains fees that are rated by the third party developer, then the rate may be determined by the third party developer based on usage of the application or user attributes. If a fee is rated by the third party developer based on user attributes, then the billing rates may differ for different subscribers (e.g., a particular billing rate for low volume 10 sellers and another billing rate for high volume sellers). To determine an appropriate billing rate for the subscriber 702, the third party platform 706 may send a message 716 requesting user information associated with the subscriber 702. Based on the user information, the third party platform 706 may determine an appropriate billing rate for the subscriber 15 702 and pass the rate (e.g., via an API for usage data). For example, the user information may indicate that the subscriber 702 is a power seller. Accordingly, the third-party platform 706 may record subsequent usage fees or recurring fees based on a fee associated with the power seller. On the other hand, the user information may indicate that the subscriber 702 is a low volume seller and, as a 20 result, should be charged at a different rate. FIG. 7 shows that the subscriber 702 may operate or use the third-party application 708, as indicated by message 718. In response to the subscriber's use, the third-party application 708 may send the third-party platform 706 a message 722 to record a usage-based fee. Responsive to receiving the message 25 720 to record usage, the third-party platform 706 may determine the appropriate fee for the subscriber 702, based on a rate selected earlier in the message 716, and communicate the appropriate fee to the application marketplace platform 704 at message 722. The application marketplace platform 704 may store the fee under the sub-account (e.g., message 724), and bill the subscriber 702 at an 30 appropriate time (e.g., immediately or based on a determinable period (e.g., monthly)). FIG. 8 shows an alternative approach to charging a subscriber 802 based on subscriber information stored in an application marketplace platform 804. 16 Doc Id: 1000523327 Whereas the messages 700 of FIG. 7 determine a billing charge based on user information at the time the subscriber 702 of FIG. 7 subscribes to the third-party application 708, also of FIG. 7, messages 800 determine a billing charge after recording each use of a third-party application 808 by the subscriber 802. To 5 illustrate, in response to a third-party application 808 sending a message 810 to record usage of the subscriber 802, a third-party platform 806 requests user information from the application marketplace platform 804 at message 812. Based on receiving the user information, at message 814, the third-party application 806 determines the appropriate rate for the subscriber's usage and 10 then sends a message 816 to the application marketplace platform 804 to add a usage fee. This approach has the advantage of the third-party platform 806 automatically determining the appropriate fee even where the status of the subscriber 802 changes after the subscriber 802 has subscribed to the third-party application 808. 15 FIG. 9 shows yet another approach to charging the subscriber based on subscriber information stored in the application marketplace platform, according to some example embodiments. Compared to FIG. 7 and 8, a third-party platform 906 in FIG. 9 authorizes a subscription based on user information (e.g., whether the subscriber qualifies as a power seller) stored in an application 20 marketplace platform 904. In one example embodiment, a third-party application 908, in response to receiving a request from the application marketplace platform 904 to subscribe a subscriber 902 to a billing plan, requests user information corresponding to the subscriber 902 from the application marketplace platform 904. Consequently, a third-party platform 906 25 may determine whether the subscriber matches predefined requirements of the billing plan (e.g., the subscriber is a power seller). This approach allows the third-party developer to define a single billing plan that includes one or more use charges based on possible attributes of user information, rather than defining a plurality of billing plans, each billing plan defining a use charge for each 30 possible attribute of user information. Note that although the above specification describes billing related to a subscription model, other similar models may also be provided in example embodiments. For example, the application marketplace platform may allow 17 Doc Id: 1000523327 one time purchase billing plans. Note also that the application marketplace platform may simply facilitate a transaction between the subscriber, third-party developer, and a financial institution. In this case, the application marketplace platform does not directly handle or is not responsible for the exchange of fees. 5 The application marketplace platform may merely facilitate the payment processing. For example, the payment may be deducted from a primary payment account of a subscriber and be sent to an account belonging to a third party developer. In various example embodiments, a full payment for a usage charge may be collected prior to completion of the transaction. Alternatively, a full or 10 partial payment may be collected as a one-time payment (e.g., initiated by the user) or as part of a regular payment cycle (e.g., monthly payments). EXAMPLE MACHINE ARCHITECTURE AND MACHINE-READABLE MEDIUM 15 FIG. 10 is a block diagram of a machine in the example form of a computer system 1000 within which instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked 20 deployment, the machine may operate in the capacity of a server or client devices in a server-client network environment, or as a peer machine in a peer to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, 25 or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed 30 herein. The example computer system 1000 includes a processor 1002 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1004 and a static memory 1006, which communicate with each other 18 Doc Id: 1000523327 via a bus 1008. The computer system 1000 may further include a video display unit 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 1000 also includes an alphanumeric input device 1012 (e.g., a keyboard), a user interface (UI) navigation device 1014 (e.g., a mouse), a disk 5 drive unit 1016, a signal generation device 1018 (e.g., a speaker) and a network interface device 1020. MACHINE-READABLE STORAGE MEDIUM The disk drive unit 1016 includes a machine-readable storage medium 10 1022 on which is stored one or more sets of instructions 1024 and data structures (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 1024 may also reside, completely or at least partially, within the main memory 1004 and/or within the processor 1002 during execution thereof by the computer system 1000, the main memory 15 1004 and the processor 1002 also constituting machine-readable media. While the machine-readable storage medium 1022 is shown in an example embodiment to be a single medium, the term "machine-readable storage medium" may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or 20 more instructions 1024 or data structures. The term "machine-readable storage medium" shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data 25 structures utilized by or associated with such instructions. The term "machine readable storage medium" shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media. Specific examples of machine-readable storage media include non-volatile memory, including by way of example semiconductor memory devices, e.g., erasable 30 programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM 19 Doc Id: 1000523327 and DVD-ROM disks. Moreover, the machine-readable storage medium may be a non-transitory machine-readable storage medium. TRANSMISSION MEDIUM 5 The instructions 1024 may further be transmitted or received over a communications network 1026 using a transmission medium. The instructions 1024 may be transmitted using the network interface device 1020 and any one of a number of well-known transfer protocols (e.g., Hypertext Transfer Protocol (HTTP)). Examples of communication networks include a local area network 10 (LAN), a wide area network (WAN), the Internet, mobile telephone networks, Plain Old Telephone Service (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term "transmission medium" shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog 15 communications signals or other intangible media to facilitate communication of such software. MODULES, COMPONENTS AND LOGIC Certain embodiments are described herein as including logic or a number 20 of components, modules, or mechanisms (e.g., collectively referred to as "components" hereinafter). A component is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more components of a 25 computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a component that operates to perform certain operations as described herein In various embodiments, a component may be implemented mechanically or electronically. For example, a component may comprise 30 dedicated circuitry or logic that is permanently configured (e.g., as a special purpose processor) to perform certain operations. A component may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily 20 Doc Id: 1000523327 configured by software to perform certain operations. It will be appreciated that the decision to implement a component mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software), may be driven by cost and time considerations. 5 Accordingly, the term "component" should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which components are temporarily 10 configured (e.g., programmed), each of the components need not be configured or instantiated at any one instance in time. For example, where the components comprise a general-purpose processor configured using software, the general purpose processor may be configured as respective different components at different times. Software may accordingly configure a processor, for example, to 15 constitute a particular component at one instance of time and to constitute a different component at a different instance of time. Components can provide information to, and receive information from, other components. Accordingly, the described components may be regarded as being communicatively coupled. Where multiples of such components exist 20 contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the components. In embodiments in which multiple components are configured or instantiated at different times, communications between such components may be achieved, for example, through the storage and retrieval of information in 25 memory structures to which the multiple components have access. For example, one component may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further component may then, at a later time, access the memory device to retrieve and process the stored output. Components may also initiate communications with 30 input or output devices, and can operate on a resource (e.g., a collection of information). Although certain specific example embodiments are described herein, it will be evident that various modifications and changes may be made to these 21 Doc Id: 1000523327 embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific 5 embodiments in which the subject matter may be practiced. The embodiments are described and illustrated in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed 10 Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term "invention" merely for 15 convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments 20 shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description. Furthermore, unless specifically stated otherwise, the terms "a" or "an" are herein used, as is common in patent 25 documents, to include one or more than one instance. Finally, as used herein, the conjunction "or" refers to a non-exclusive "or," unless specifically stated otherwise. 22

Claims (16)

  1. 2. The system of claim 1, wherein: the fee plan among the different fee plans for the different statuses defines a usage fee that represents a cost to the user for a use of the application. 20
  2. 3. The system of claim 1 further comprising: a usage module configured to receive usage information that indicates a use of the application by the user, the usage information being received from the application. 25
  3. 4. The system of claim 1 further comprising: an application integration interface module configured to provide a status of the user to a third-party platform configured to determine the fee plan among the different fee plans. 30
  4. 5. The system of claim 4, wherein: the application integration interface module is configured to provide the status as an indicator of whether the user is a high-volume seller. 23 Doc Id: 1000523327
  5. 6. The system of claim 1 further comprising: an application integration interface module configured to provide an identifier of the user and an identifier of the fee plan to a third-party platform configured to 5 authorize a subscription by the user to the application in accordance with the fee plan.
  6. 7. The system of claim 6, wherein: the account module is configured to create the sub-account in response to an 10 authorization of the subscription received from the third-party platform.
  7. 8. The system of claim 1 further comprising: a billing plan vetting module configured to authorize the billing plan that defines the different fee plans for different statuses by determining that the billing plan 15 meets a set of criteria.
  8. 9. The system of claim 8, wherein: the billing plan vetting module is configured to determine that the billing plan meets the set of criteria as a result of the billing plan failing to include obscene 20 language in a textual field displayable to the user, the obscene language being specified by a configuration file.
  9. 10. A method comprising: storing an application; 25 storing a billing plan that defines different fee plans for different statuses of users to subscribe to the application; creating, using one or more processors, a sub-account in accordance with the billing plan and in response to a request received from a device of a user to subscribe to the application, the sub-account being a child account that 30 corresponds to a parent account of the user; and facilitating a transaction between the sub-account and a developer account based on a fee plan among the different fee plans defined by the billing plan. 24 Doc Id: 1000523327
  10. 11. The method of claim 10, wherein: the fee plan among the different fee plans for the different statuses defines a usage fee that represents a cost to the user for a use of the application. 5 12. The method of claim 10 further comprising: receiving usage information that indicates a use of the application by the user, the usage information being received from the application.
  11. 13. The method of claim 10 further comprising: 10 providing a status of the user to a third-party platform configured to determine the fee plan among the different fee plans.
  12. 14. The method of claim 13, wherein: the providing of the status provides an indicator of whether the user is a high 15 volume seller.
  13. 15. The method of claim 10 further comprising: providing an identifier of the user and an identifier of the fee plan to a third party platform configured to authorize a subscription by the user to the 20 application in accordance with the fee plan.
  14. 16. The method of claim 15, wherein: the creating of the sub-account is in response to an authorization of the subscription received from the third-party platform. 25
  15. 17. The method of claim 10 further comprising: authorizing the billing plan that defines the different fee plans for different statuses by determining that the billing plan meets a set of criteria. 30 18. The method of claim 17, wherein: the determining that the billing plan meets the set of criteria is based on the billing plan failing to include obscene language in a textual field displayable to the user, the obscene language being specified by a configuration file. 25 Doc Id: 1000523327
  16. 19. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising: 5 storing an application; storing a billing plan that defines different fee plans for different statuses of users to subscribe to the application; creating, using the one or more processors, a sub-account in accordance with the billing plan and in response to a request received from a device of a user to 10 subscribe to the application, the sub-account being a child account that corresponds to a parent account of the user; and facilitating a transaction between the sub-account and a developer account based on a fee plan among the different fee plans defined by the billing plan. 15 20. The non-transitory machine-readable storage medium of claim 19, wherein the operations further comprise: providing an identifier of the user and an identifier of the fee plan to a third party platform configured to authorize a subscription of the user to the application in accordance with the fee plan; and wherein 20 the creating of the sub-account is in response to an authorization of the subscription received from the third-party platform.. 26
AU2014201080A 2010-04-09 2014-02-28 Facilitating billing of embedded applications Active AU2014201080B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2014201080A AU2014201080B2 (en) 2010-04-09 2014-02-28 Facilitating billing of embedded applications
AU2016201048A AU2016201048B2 (en) 2010-04-09 2016-02-19 Facilitating billing of embedded applications

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US61/322,685 2010-04-09
US12/874,017 2010-09-01
AU2011237500A AU2011237500B2 (en) 2010-04-09 2011-04-07 Facilitating billing of embedded applications
AU2014201080A AU2014201080B2 (en) 2010-04-09 2014-02-28 Facilitating billing of embedded applications

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
AU2011237500A Division AU2011237500B2 (en) 2010-04-09 2011-04-07 Facilitating billing of embedded applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
AU2016201048A Division AU2016201048B2 (en) 2010-04-09 2016-02-19 Facilitating billing of embedded applications

Publications (2)

Publication Number Publication Date
AU2014201080A1 AU2014201080A1 (en) 2014-03-20
AU2014201080B2 true AU2014201080B2 (en) 2015-11-19

Family

ID=50280553

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2014201080A Active AU2014201080B2 (en) 2010-04-09 2014-02-28 Facilitating billing of embedded applications

Country Status (1)

Country Link
AU (1) AU2014201080B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038523A1 (en) * 2000-06-19 2007-02-15 E4X Inc. System and method for transactional hedging
US20080133878A1 (en) * 2004-10-13 2008-06-05 Ebay Inc. Method and system to locate a storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038523A1 (en) * 2000-06-19 2007-02-15 E4X Inc. System and method for transactional hedging
US20080133878A1 (en) * 2004-10-13 2008-06-05 Ebay Inc. Method and system to locate a storage device

Also Published As

Publication number Publication date
AU2014201080A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
AU2011237500B2 (en) Facilitating billing of embedded applications
US7848736B2 (en) Package billing for micro-transactions
US20160117713A1 (en) Error detection and correction in complex entitlement benefits
US8682290B2 (en) Systems and methods for automatic generation, registration and mobile phone billing of a pod using third party web page content
US10291715B1 (en) Controlling access to services via usage models
US7826829B2 (en) Automated billing and distribution platform for application providers
US8606247B2 (en) Systems and methods for billing for a network enabled application through a network platform regardless of whether the network enabled application is hosted by the platform
US20120296823A1 (en) Content owner verification and digital rights management for automated distribution and billing platforms
US20090287592A1 (en) System and method for conferring a benefit to a thrid party from the sale of leads
WO2008116097A1 (en) Application pod integration with automated mobile phone billing and distribution platform
CA2610216A1 (en) Billing system and method for micro-transactions
WO2007084593A2 (en) Package billing for micro-transactions
US20020035479A1 (en) Access contract changing method for automatically changing an access contract between a prepaid contract and a postpaid contract
CN104137475B (en) Method and apparatus for charging
US9645862B2 (en) Computing consumption of application programming interfaces
AU2016201048B2 (en) Facilitating billing of embedded applications
AU2014201080B2 (en) Facilitating billing of embedded applications
AU2011100380A4 (en) Method and system to embed applications in a web platform
WO2008051982A2 (en) Content owner verification and digital rights management for automated distribution and billing platforms
US20150134516A1 (en) System and method for raising and administering a fund
WO2008036685A2 (en) Billing for network enabled application through a network platform

Legal Events

Date Code Title Description
PC1 Assignment before grant (sect. 113)

Owner name: PAYPAL, INC.

Free format text: FORMER APPLICANT(S): EBAY INC.

FGA Letters patent sealed or granted (standard patent)