WO2014153350A1 - Merchant managed subscriptions - Google Patents

Merchant managed subscriptions Download PDF

Info

Publication number
WO2014153350A1
WO2014153350A1 PCT/US2014/031067 US2014031067W WO2014153350A1 WO 2014153350 A1 WO2014153350 A1 WO 2014153350A1 US 2014031067 W US2014031067 W US 2014031067W WO 2014153350 A1 WO2014153350 A1 WO 2014153350A1
Authority
WO
WIPO (PCT)
Prior art keywords
merchant
server
opt
charge
billing server
Prior art date
Application number
PCT/US2014/031067
Other languages
French (fr)
Inventor
John P. Browne
James C. Mcintyre
Marcin L. Pawlowski
Original Assignee
Boku, 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 US13/846,746 external-priority patent/US9003078B2/en
Priority claimed from US13/846,702 external-priority patent/US20140279455A1/en
Application filed by Boku, Inc. filed Critical Boku, Inc.
Priority to JP2016504337A priority Critical patent/JP6347829B2/en
Publication of WO2014153350A1 publication Critical patent/WO2014153350A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4012Verifying personal identification numbers [PIN]

Definitions

  • This invention relates to a system and method for managing subscriptions in a scenario where a merchant server repeatedly instructs a billing server to charge a user account at a carrier server.
  • a consumer who shops for goods or services online may often be given the option to use a selection of payment sources during checkout, such as payment by credit card, debit card, payment from an account held by an institution, or to charge for a purchase on their phone bill.
  • a merchant server instructs a billing server which is aligned with a carrier server to carry out the charge.
  • the billing server usually communicates with a consumer mobile phone to confirm the charge before placing the charge on the phone bill at the carrier server.
  • the invention provides a method of managing subscriptions with a billing server including a) executing an opt-in method with the billing server, including receiving a first opt-in request at the billing server including a msisdn, generating, with the billing server, a PIN code, transmitting, with the billing server, a text message to a consumer mobile phone at the msisdn with the PIN code, receiving a second opt-in request at the billing server, including a PIN code, verifying, at the billing server, the PIN code received in the second opt-in request against the PIN code transmitted in the text message and recording, at the billing server, an opt-in status as active for the msisdn within the data structure if the PIN code is verified, and b) executing a charge method with the billing server including, receiving, at the billing server, a charge API call from a merchant server at the billing server, including at least one identifier and an amount, determining an opt-in status corresponding to the identifier at the
  • the invention also provides a computer-readable medium having stored thereon a set of instructions which, when executed by a processor of a computer performs a method of managing subscriptions with a billing server including a) executing an opt-in method with the billing server, including receiving a first opt-in request at the billing server including a msisdn, generating, with the billing server, a PIN code, transmitting, with the billing server, a text message to a consumer mobile phone at the msisdn with the PIN code, receiving a second opt-in request at the billing server, including a PIN code, verifying, at the billing server, the PIN code received in the second opt-in request against the PIN code transmitted in the text message, and recording, at the billing server, an opt-in status as active for the msisdn within a data structure if the PIN code is verified, and b) executing a charge method with the billing server including receiving, at the billing server, a charge API call from a merchant server at
  • the invention further provides a billing server including a processor, a computer- readable medium connected to the processor and a set of instructions on the computer- readable medium and executable by the processor.
  • the set of instructions includes an SMS messaging module, a consumer opt-in management module executing an opt-in method including receiving a first opt-in request including a msisdn, generating a PIN code;, transmitting, using the SMS messaging module, a text message to a consumer mobile phone at the msisdn with the PIN code, receiving a second opt-in request including a PIN code, verifying the PIN code received in the second opt-in request against the PIN code transmitted in the text message, and recording an opt-in status as active within a data structure for the msisdn if the PIN code is verified.
  • the set of instructions also includes a carrier billing module executing a charge method including receiving a charge API call from a merchant server, including at least one identifier and an amount, determining an opt-in status corresponding to the identifier in the data structure, and transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
  • a carrier billing module executing a charge method including receiving a charge API call from a merchant server, including at least one identifier and an amount, determining an opt-in status corresponding to the identifier in the data structure, and transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
  • the invention provides a method of managing subscriptions with a merchant server including a) executing an opt-in method with the merchant server, including receiving a msisdn from a consumer device at the merchant server, transmitting a first opt-in request from the merchant server to a billing server, including the msisdn, receiving a PIN code from the consumer device, transmitting a second opt-in request from the merchant server to the billing server, including the PIN code, and receiving a response from the billing server at the merchant server indicating whether the PIN code is verified or invalid, and b) executing a charge method with the merchant server including transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier, and receiving a chargeresult callback notification from the billing server at the merchant server indicating whether a user account at a carrier server
  • the invention also provides a computer-readable medium having stored thereon a set of instructions which, when executed by a processor of a computer performs a method of managing subscriptions with a merchant server including a) executing an opt-in method with the merchant server, including receiving a msisdn from a consumer device at the merchant server, transmitting a first opt-in request from the merchant server to a billing server, including the msisdn, receiving a PIN code from the consumer device, transmitting a second opt-in request from the merchant server to the billing server, including the PIN code; and receiving a response from the billing server at the merchant server indicating whether the PIN code is verified or invalid, and b) executing a charge method with the merchant server including, transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier, and
  • the invention further provides a merchant server including a processor, a computer-readable medium connected to the processor and a set of instructions on the computer-readable medium and executable by the processor.
  • the set of instructions includes a user interface transmitted to a consumer device with a msisdn field for entry of a msisdn and receivable by the processor and transmitted to a billing server in a first opt-in request and a PIN code field for entry of a PIN code and receivable by the processor and transmitted to the billing server in a second opt-in request and a recurring billing management module executing a charge method including transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier, and receiving a chargeresult call back notification from the billing server at the merchant server indicating whether a user account at a carrier server has
  • Figure 1 is a block diagram of system for managing subscriptions, the system including a consumer mobile phone, a merchant server, a billing server and a carrier server;
  • Figure 2 is an interactive diagram illustrating how the consumer mobile phone, merchant server, billing server and carrier server interact for establishing a subscription opt- in and a subsequent charge;
  • Figure 3 is a view of a user interface that resides on the merchant server and is transmitted to the consumer mobile phone or another consumer device where a consumer selects payment by phone for a subscription;
  • Figure 4 is a flow chart illustrating a charge-info method that is used by the merchant server to retrieve charge elements from the billing server, presenting a view of the user interface to the consumer mobile phone and retrieving data entered into fields corresponding to the charge elements from the consumer mobile phone;
  • Figure 5 is a view of the user interface that is used for the charge-info method of Figure 4.
  • Figure 6 illustrates extensions, or a variation, of the charge-info method
  • Figure 7 shows a text message that is received by the consumer mobile phone after entry of the data in Figure 5;
  • Figure 8 is a view of the user interface for the consumer to enter a PIN code
  • Figure 9 is a flow chart of an opt-in method that is used to send the text message, including the PIN code, of Figure 7 for purposes of the consumer to enter the PIN code in the view of Figure 8 during a first and second opt-in request by the merchant server to the billing server;
  • Figure 10 is a view of the user interface that is displayed at the consumer mobile phone to indicate that the PIN code has been validated and that the subscription is now available to the consumer account on the merchant server;
  • Figure 11 shows a text message that is received by the consumer mobile phone indicating successful opt-in for the subscription and discloses the terms of the subscription and provides instructions to the consumer how to cancel their subscription;
  • Figure 12 shows a data structure to indicate an active/inactive opt-in within the billing server
  • Figure 13 shows a text message that is received by the consumer mobile phone with a reminder that a first charge is due to occur based on the subscription
  • Figure 14 is a flow chart of a remind-charge method that is used for the merchant server to cause the billing server to transmit the text message of Figure 13;
  • Figure 15 is a flow chart of a charge method wherein the merchant server instructs the billing serve to charge a user account at the carrier server based on the subscription;
  • Figure 16 shows a text message that is received by the consumer mobile phone when the charge to the carrier server has occurred
  • Figure 17 is a flow chart showing extensions to the charge method in Figure 15;
  • Figure 18 is an interactive chart showing how the consumer can cancel the subscription through the interface of the merchant server
  • Figure 19 is an interactive chart showing how the consumer can cancel the subscription by sending a text message to the billing server;
  • Figure 20 shows an example of text messages that are exchanged to cancel the subscription as described with reference to Figure 19;
  • Figure 21 is a block diagram of the consumer mobile phone illustrating SmartPhone features thereof.
  • Figure 22 is a block diagram of a machine in the form of a computer system forming part of the merchant managed subscription system.
  • FIG. 1 of the accompanying drawings illustrates a merchant managed
  • the subscription system 10 including a consumer mobile phone 12, a merchant server 14, a billing server 16 and a carrier server 18.
  • the merchant server 14 includes a user interface 20 for a consumer using the consumer mobile phone 12 or other consumer device to purchase and manage subscriptions, and a recurring billing management module 22.
  • the billing server 16 includes a consumer opt-in management module 24, a carrier billing module 26 and a Short Message Service (SMS) messaging module 28.
  • SMS Short Message Service
  • the consumer mobile phone 12 communicates with the merchant server 14 at 30 through the user interface 20 to opt-in to a subscription and the merchant server 14 communicates with the billing server 16 at 32 with a set of data that allows the billing server 16 to communicate with the consumer mobile phone 12 for purposes of confirming opt-in by the consumer mobile phone 12.
  • the SMS messaging module 28 communicates via text messaging with the consumer mobile phone 12 to confirm opt-in by the consumer mobile phone 12 and at 36 transmits a text message confirming opt-in by the consumer.
  • the recurring billing management module 22 initiates a charge through the carrier billing module 26.
  • the carrier billing module 29 attempts to place the charge on an account corresponding to a phone number of the consumer mobile phone 12 on the carrier server 18.
  • renewal charges are applied for the subscription and at 39 are communicated to the carrier server 18.
  • the consumer mobile phone 12 can cancel the subscription through the user interface 20, which results in a communication at 44 to cancel opt-in and receive a corresponding text message at 46 from the SMS messaging module 28.
  • the consumer mobile phone 12 can at 48 send a text message directly to the billing server 16 to cancel the subscription and then receive the text message at 46 from the SMS messaging module 28.
  • Figure 2 illustrates the process for the consumer mobile phone 12 to opt-in to a subscription and subsequent charging of the consumer.
  • the consumer makes a selection using the user interface 20 in Figure 1 to pay using mobile payment.
  • Figure 3 shows a view of the user interface 20 that is displayed to the consumer mobile phone 12 for making the selection.
  • the merchant server 14 at 52 transmits a charge-info application programmable interface (API) call to the billing server 16.
  • API application programmable interface
  • the charge-info call is submitted to a dedicated uniform response locator (URL) of the billing server 16 such as
  • the charge-info method is then used by the billing server 16 to obtain information regarding the elements required to charge a consumer and the required localized strings to display to a consumer. These elements are country specific and in some cases may be network specific.
  • the mobile subscriber integrated services digital network number (msisdn) and the network of the consumer mobile phone 12 are required inputs to collect from the consumer mobile phone 12.
  • a charge-info API response transmitted at 54 contains the input elements required for each country and network.
  • the charge-info API response also supplies localized strings that can be used as labels for these input fields.
  • the primary text that needs to be displayed to the consumer mobile phone 12 are the terms and conditions strings for the country or network.
  • the API returns a terms-and- conditions element for the country and, if required, for the network as well and are in many cases different for different countries or networks.
  • the localized text for the terms and conditions is returned in ' ⁇ string>' tags. If a country or network requires that the consumer mobile phone 12 accept terms and conditions, a terms and conditions input element will be included as a checkbox.
  • the charge-info API response returns information regarding all countries that the billing server 16 supports.
  • the API supports an optional country parameter to filter the response to a specific country.
  • Table 1 shows the charge-info request parameters that are required and Table 2 shows the charge-info response parameters.
  • FIG. 4 An example of the charge-info method is illustrated in Figure 4.
  • the merchant sends the charge-info request to the billing server 16.
  • the billing server 16 returns an XML structure that contains all required charge elements, supported networks in each country, and the terms and conditions string to display in each country or network.
  • the merchant server 14 inspects ⁇ inputs> in the XML structure to determine required elements to collect from the consumer.
  • the merchant server 14 selects ⁇ string> from the XML structure for relevant labels and hints in the appropriate language.
  • the merchant server 14 displays terms and conditions for the selected country.
  • the consumer selects the network.
  • the merchant server 14 inspects for network specific terms and conditions and if found, displays these to the consumer at the consumer mobile phone 12.
  • Figure 5 is a view of the user interface 20 in Figure 1 that is displayed for the consumer mobile phone 12 following step 62 in Figure 2 where the consumer mobile phone 12 selects the network and enters their phone number.
  • Figure 6 illustrates an extension (a variation) of the charge-info method.
  • the merchant server 14 sends a charge-info request to the billing server 16 for a specific country.
  • the billing server 16 returns a response that contains charge elements, network and terms and conditions for the specific country.
  • the merchant server 14 After the merchant server 14 receives the data from the consumer mobile phone 12 at 62 in Figures 2 and 4, the merchant server 14 at 72 in Figure 2 transmits a first opt-in API call to the billing server 16.
  • the first opt-in API call is submitted to a dedicated URL of the billing server 16 such as https://gateway.billing server.com/opt-in.
  • An opt-in method is then used by the merchant server 14 and the billing server 16 to obtain an opt-in from a consumer mobile phone 12 for a specific set of subscription terms.
  • the opt-in method is used to obtain a consumer mobile phone 12 opt-in that confirms their access to the trial with eventual subscription billing if they do not cancel the subscription before the end of the trial period.
  • This method requires that the merchant server 14 provide the following:
  • consumer- id unique identifier for the consumer
  • the opt-in method on the billing server 16, generates and at 74 in Figure 2 sends a personal identification number (PIN) code in a text message, using the SMS messaging module 28 in Figure 1 to the consumer mobile phone 12 along with the terms of the subscription.
  • Figure 7 shows the text message that is received by the consumer mobile phone 12.
  • PIN personal identification number
  • the user interface 20 in Figure 1 displays a PIN code field to the consumer mobile phone 12 as further illustrated in Figure 8.
  • the consumer mobile phone 12 enters the PIN code received in the text message of Figure 7 into the PIN code field and transmits it to the merchant server 14.
  • the merchant server 14 receives the PIN code from the consumer mobile phone 12 and at 80 in Figure 2 transmits the retrieved PIN code, along with the msisdn and consumer-id, in a second opt-in request to the same URL as the first opt-in request at the billing server 16.
  • the billing server 16 then verifies and validates the PIN code received from the merchant server 14 at 80 against the PIN code transmitted in the text message at 74, and sends a response back to the merchant server 14.
  • the billing server 16 records or stores the result of the consumer's opt-in so that it can be referenced on subsequent charge API calls that occur when the user is charged for the renewal subscription billing cycles.
  • Table 3 shows the opt-in request parameters that are transmitted at 72 and 80 in Figure 2.
  • Tables 4 and 5 show opt-in response parameters that are determined by the billing server 16 and provided to the merchant server 14 in response to the calls at 72 and 80 in Figure 2.
  • MCC Mobile Country Code
  • MNC Number Mobile Network Code
  • JSON JavaScript Object Notification
  • Frequency is an Enum
  • FIG. 9 An example of the opt-in method is illustrated in Figure 9.
  • the merchant server 14 sends opt-in request containing the msisdn, consumer- id, subscription- id and subscription-terms values.
  • VERIFICATION IN PROGRESS if there is a current, unexpired PIN code that has not been verified, then VERIFICATION IN PROGRESS is returned. Otherwise, a new PIN code is generated and VERIFICATION IN PROGRESS is returned.
  • the billing server 16 at 74 in Figure 2 sends a message to the consumer mobile phone 12 that is appropriate for the country and that includes the PIN code, the terms of the subscription and the terms of the trial.
  • the merchant server 14 collects the PIN code at 78 in Figure 2 and at 80 in Figure 2, sends an opt-in request containing the retrieved PIN code. If the submitted PIN code is correct, then VERIFIED is returned and the billing server 16 sends a confirmation message to the consumer mobile phone 12 that includes the terms of the trial, the subscription, and STOP instructions (to cancel the subscription via SMS). Otherwise, INVALID PIN is returned. Only three PIN code entry attempts (or other limited number of attempts) are allowed.
  • the merchant server 14 collects PIN code after 24 hours and sends an opt-in request containing the PIN. If PIN code is expired, then PIN EXPIRED is returned.
  • Figure 10 is a view of the user interface 20 in Figure 2 that is displayed to the consumer mobile phone 12 to indicate that the PIN code has been transmitted and has been verified and that the subscription is not available to the consumer account on the merchant server 14.
  • Figure 11 shows a text message that the SMS messaging module 28 transmits to the consumer mobile phone 12 at 90 in Figure 2 indicating successful processing of opt-in for the subscription and discloses the terms of the subscription and provides instructions to the consumer how to cancel their subscription.
  • the text message in Figure 11 is bot sent if the opt-in fails due to the PIN code not being verified.
  • Figure 12 shows a data structure within the consumer opt-in management module 24 in Figure 1.
  • a subscription- id for a particular merchant-id is retrieved from the respective merchant server 14.
  • the opt-in status of the respective subscription- id is stored as active and the date and time of the activation and can later be set in a selectable manner to inactive. If the opt-in fails, the activation is also set to inactive.
  • a consumer-id allows a consumer mobile phone 12 to login to an account at the billing server 16. All parameters are stored in relation to a respective msisdn. Each phone number may have one merchant-id having a plurality of subscription-id's for different services and each subscription-id may have a separate set of opt-in parameters.
  • the merchant server 14 may at 90 transmit a remind charge API call to the billing server 16.
  • the remind-charge API call is submitted to ta dedicated URL of the billing server 16.
  • a remind-charge method is then used by the billing server 16 to send a subscription renewal reminder text message at 92 in Figure 2 to consumer mobile phone 12.
  • the reminder text message reminds the consumer that they are subscribed to a service, its cost, how to cancel the subscription and how to contact customer support of the billing server 16. In the case of a free trial, a reminder message should be sent prior to the first renewal charge that occurs after the trial expiration.
  • Figure 13 shows the text message that is received by the consumer mobile phone 12.
  • Table 6 shows parameters for the remind-charge API call at 90 in Figure 2.
  • Tables 7 and 8 show response parameters for the remind-charge API call that are determined by the billing server 16 and transmitted to the merchant server 14.
  • Figure 14 shows an example of a remind-charge method.
  • a merchant server 14 sends remind-charge request containing a msisdn, consumer- id, and subscription-terms values.
  • the billing server 16 sends the SMS message at 96 in Figure 2 to the consumer mobile phone 12 that contains the terms of the subscription and STOP instructions (cancel via SMS). The SMS also contains information on how to contact customer service of the billing server 16.
  • the merchant server 14 at 98 transmits a charge API call to the billing server 16 to request processing of a payment from the consumer mobile phone 12 in a single step.
  • the charge API call is submitted to a dedicated URL of the billing server 16.
  • a charge method can be used to support both one-time and recurring (subscription) charge scenarios.
  • When the charge request is for a subscription a subscription-id and subscription- frequency must be supplied.
  • the subscription-id value references the subscription-id that was collected in the opt-in request. This enables the billing server 16 to check whether there is a corresponding consumer opt-in for the subscription with a status that is active.
  • another identifier can be received by the billing server 16 from the merchant server 14 for determining the opt-in status for the subscription.
  • a charge-id is returned from the billing server 16 to the merchant server 14 at 104 in Figure 2.
  • Acceptance means that the request has been successfully validated and has been submitted at 100 in Figure 2 to the carrier server 18 for processing with a valid response from the carrier server 18 at 102.
  • risk checks Prior to submitting a charge to the carrier server 18 for processing, risk checks would have already been performed by the billing server 16.
  • Charge is an asynchronous request.
  • the billing server 16 having received the charge result from the carrier server 18, sends a callback notification to the merchant server 14 with the final result of the charge attempt.
  • the charge request is idempotent. Each request is uniquely identified by the request-id supplied by the merchant server 14. For example, if two charge requests are made with the same merchant request-id, the user's account is charged only once and both charge requests receive the same response.
  • a chargeresult callback notification provides the final status of a transaction (success or failure) successfully billed chargeresult callback notifications are used by the merchant server 14 to fulfill purchases. For a given transaction, identified by the unique charge-id field value, fulfillment occurs only once.
  • the merchant server 14 may receive a chargeresult callback for the same transaction multiple times if there are communication issues between the billing server 16 and the merchant server 14. Improper acknowledgement responses (ACKs) from the merchant server 14 to the billing server 16 is a common cause of continually retried callback notifications.
  • ACKs Improper acknowledgement responses
  • the merchant server 14 only receives callbacks from the billing server 16 for requests that have been accepted. If a request was not accepted due to a validation error or due to a risk check, the billing server 16 does not submit the request to the carrier server 18 for processing and therefore callback notification is not sent from the billing server 16 to the merchant server 14.
  • Table 9 shows parameters for the charge request at 98 in Figure 2.
  • Table 10 shows parameters for the chargeresult callback notification at 104 in Figure 2.
  • MCC and MNC are used together.
  • Figure 15 shows an example of a charge method.
  • a customer at a consumer mobile phone 12 or other consumer device selects a merchant's service or product on the user interface 20 in Figure 2.
  • the merchant server 14 obtains mobile phone number (msisdn) of the consumer mobile phone 12 and optionally the network of the carrier server 18.
  • the merchant server 14 submits a charge request to the billing server 16 containing the customer- id, subscription- id and purchase details.
  • the billing server 16 performs opt-in status, spend limit, velocity checks, and other consumer protection checks corresponding to the subscription-id. If opt-in status, spend or velocity checks fail or the msisdn is blacklisted, the charge request fails and an appropriate error message is returned.
  • the billing server 16 detects the carrier (using supplied network or a lookup if the network is not supplied) and submits a charge request for an amount equal to or based on the total amount to the carrier server 18 using the carrier's direct API.
  • the charge request from the billing server 16 to the carrier server 14 will only occur if the opt-in status is active, but not if the opt-in status is inactive.
  • the billing server 16 returns the final result of the charge request in a chargeresult callback notification to the merchant server 14.
  • the SMS messaging module 28 then at 120 in Figure 2 transmits a text message to the consumer mobile phone 12 to confirm renewal of the subscription.
  • An example of a text message is shown in Figure 16.
  • Figure 17 shows extensions to the charge flow method in Figure 15. The assumption is that at 122 the charge request fails.
  • the merchant server 14 retries charge submitting the charge request with a new request-id. Due to idempotency, if the charge is retried with a request-id that failed earlier, the billing server 16 will return the same failure response.
  • the billing server 16 uses the carrier charge method to charge the consumer's account.
  • the billing server 16 returns information indicating the success or failure of the charge request in a chargeresult callback notification.
  • Tables 11 and 12 show parameters for a chargeresult callback notification.
  • request-id String 50 Unique merchant supplied identifier for this request to ensure that charges are not duplicated.
  • reference- String 3 Reference currency unit as set currency within the merchant service reference-total- Number Int32 Total charge amount based on the amount reference currency unit.
  • test Boolean Boolean Used to identify test transactions.
  • anti- fraud limits may result in a
  • billing server system e.g. minors.
  • Figure 18 shows the method referenced with respect to Figure 1 wherein the consumer mobile phone 12 cancels the subscription via the user interface 20.
  • the consumer mobile phone 12 cancels with the merchant server 14 using the user interface 20 in Figure 1 of the merchant server 14.
  • the merchant server 14 submits a cancel-opt-in API call at a dedicated URL of the billing server 16 to notify the billing server 16 to cancel the consumer opt-in for their subscription.
  • the billing server 16 cancels the consumer opt-in and updates the relevant subscription- id in Figure 12 as inactive. Further charges against this subscription, if submitted by the merchant server 14 to the billing server 16, will be rejected.
  • the merchant server 14 updates the user interface 20 to reflect that the subscription has been cancelled and recurring billing has been terminated.
  • Figure 19 shows the method referenced with respect to Figure 1 wherein the consumer cancels the subscription via text messaging.
  • the consumer mobile phone 12 sends STOP via SMS text.
  • the text message can be sent as a reply to the short code 723- 53 from which the texts were received by the consumer mobile phone 12.
  • the billing server 16 cancels the subscription and updates the relevant subscription- id in Figure 12 as inactive. Further charges against this subscription, if submitted by the merchant server 14, will be rejected.
  • the billing server 16 sends a confirmation of cancellation SMS text to the consumer mobile phone 12.
  • the billing server 16 sends consumer subscription cancelation notification to the merchant server 14 so that the subscription is cancelled at the merchant server 14.
  • the merchant server 14 terminates recurring billing.
  • Figure 20 shows an example of text messages that are exchanged to cancel the subscription as described with reference to Figure 19.
  • the text messages received and sent at 48 and 46 in Figure 19 are both shown as the second and third messages in Figure 20.
  • Figure 21 is a block diagram illustrating the consumer mobile phone 12, illustrating a touch-sensitive display 1120 or a "touch screen" for convenience.
  • the consumer mobile phone 12 includes a memory 1020 (which may include one or more computer readable storage mediums), a memory controller 1220, one or more processing units (CPU's) 1200, a peripherals interface 1180, RF circuitry 1080, audio circuitry 1100, a speaker 1110, a microphone 1130, an input/output (I/O) subsystem 1060, other input or control devices 1160 and an external port 1240. These components communicate over one or more
  • FIG. 21 The various components shown in Figure 21 may be implemented in hardware, software or a combination of hardware and software, including one or more signal processing and/or application specific integrated circuits.
  • the memory 1020 may include high-speed random access memory and may also include non- volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to the memory 1020 by other components of the consumer mobile phone 12, such as the CPU 1200 and the peripherals interface 1180, is controlled by the memory controller 1220.
  • the peripherals interface 1180 connects the input and output peripherals of the device to the CPU 1200 and memory 1020.
  • the one or more processors 1200 run or execute various software programs and/or sets of instructions stored in the memory 1020 to perform various functions for the consumer mobile phone 12 and to process data.
  • the RF (radio frequency) circuitry 1080 receives and sends RF signals, also called electromagnetic signals.
  • the RF circuitry 1080 converts electrical signals to/from electromagnetic signals and communicates with communications networks and other communications devices via the electromagnetic signals.
  • the RF circuitry 1080 includes well-known circuitry for performing these functions, including an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, and so forth.
  • SIM subscriber identity module
  • the RF circuitry 1080 may communicate with networks, such as the Internet, also referred to as the World Wide Web (WWW), an intranet and/or a wireless network, such as a cellular telephone network, a wireless local area network (LAN) and/or a metropolitan area network (MAN), and other devices by wireless communication.
  • networks such as the Internet, also referred to as the World Wide Web (WWW), an intranet and/or a wireless network, such as a cellular telephone network, a wireless local area network (LAN) and/or a metropolitan area network (MAN), and other devices by wireless communication.
  • the wireless communication may use any of a plurality of communications standards, protocols and technologies that are known in the art.
  • the audio circuitry 1100, the speaker 1110, and the microphone 1130 provide an audio interface between a user and the consumer mobile phone 12.
  • the audio circuitry 1100 receives audio data from the peripherals interface 1180, converts the audio data to an electrical signal, and transmits the electrical signal to the speaker 1110.
  • the speaker 1110 converts the electrical signal to human-audible sound waves.
  • the audio circuitry 1100 also receives electrical signals converted by the microphone 1130 from sound waves.
  • the audio circuitry 1100 converts the electrical signal to audio data and transmits the audio data to the peripherals interface 1180 for processing.
  • the audio circuitry 1100 also includes a headset jack serving as an interface between the audio circuitry 1100 and removable audio input/output peripherals, such as output-only headphones or a headset with both output (e.g., a headphone for one or both ears) and input (e.g., a microphone).
  • a headset jack serving as an interface between the audio circuitry 1100 and removable audio input/output peripherals, such as output-only headphones or a headset with both output (e.g., a headphone for one or both ears) and input (e.g., a microphone).
  • the I/O subsystem 1060 connects input/output peripherals on the consumer mobile phone 12, such as the touch screen 1120 and other input/control devices 1160, to the peripherals interface 1180.
  • the I/O subsystem 1060 includes a display controller 1560 and one or more input controllers 1600 for other input or control devices.
  • the one or more input controllers 1600 receive/send electrical signals from/to other input or control devices 1160.
  • the other input/control devices 1160 may include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, and so forth all serving as forming part of an interface.
  • the input controllers 1600 may be connected to any of the following: a keyboard, infrared port, USB port, and a pointer device such as a mouse.
  • the one or more buttons may include an up/down button for volume control of the speaker 1110 and/or the microphone 1130.
  • the one or more buttons may include a push button. A quick press of the push button may disengage a lock of the touch screen 1120 or begin a process that uses gestures on the touch screen to unlock the device. A longer press of the push button may turn power to the consumer mobile phone 12 on or off.
  • the touch screen 1120 is used to implement virtual or soft buttons and one or more soft keyboards.
  • the touch-sensitive touch screen 1120 provides an input interface and an output interface between the device and a user.
  • the display controller 1560 receives and/or sends electrical signals from/to the touch screen 1120.
  • the touch screen 1120 displays visual output to the user.
  • the visual output may include graphics, text, icons, video, and any combination thereof (collectively termed "graphics"). In some embodiments, some or all of the visual output may correspond to user-interface objects, further details of which are described below.
  • a touch screen 1120 has a touch-sensitive surface, sensor or set of sensors that accepts input from the user based on haptic and/or tactile contact.
  • the touch screen 1120 and the display controller 1560 (along with any associated modules and/or sets of instructions in memory 1020) detect contact (and any movement or breaking of the contact) on the touch screen 1120 and converts the detected contact into interaction with user- interface objects (e.g., one or more soft keys, icons, web pages or images) that are displayed on the touch screen.
  • user- interface objects e.g., one or more soft keys, icons, web pages or images
  • a point of contact between a touch screen 1120 and the user corresponds to a finger of the user.
  • the touch screen 1120 may use LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, although other display technologies may be used in other embodiments.
  • the touch screen 1120 and the display controller 1560 may detect contact and any movement or breaking thereof using any of a plurality of touch sensing technologies now known or later developed, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with a touch screen 1120.
  • the user may make contact with the touch screen 1120 using any suitable object or appendage, such as a stylus, a finger, and so forth.
  • the user interface is designed to work primarily with finger-based contacts and gestures, which are much less precise than stylus-based input due to the larger area of contact of a finger on the touch screen.
  • the device translates the rough finger-based input into a precise pointer/cursor position or command for performing the actions desired by the user.
  • the consumer mobile phone 12 also includes a power system 1620 for powering the various components.
  • the power system 1620 may include a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light-emitting diode (LED)) and any other components associated with the generation, management and distribution of power in portable devices.
  • a power management system e.g., one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light-emitting diode (LED)) and any other components associated with the generation, management and distribution of power in portable devices.
  • power sources e.g., battery, alternating current (AC)
  • AC alternating current
  • the software components stored in memory 1020 include an operating system 1260, a communication module (or set of instructions) 1280, a contact/motion module (or set of instructions) 1300, a graphics module (or set of instructions) 1320, a text input module (or set of instructions) 1340, and applications (or set of instructions) 1360.
  • the operating system 1260 e.g., Darwin, RTXC, LINUX, UNIX, OS X,
  • WINDOWS or an embedded operating system such as VxWorks
  • VxWorks includes various software components and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates
  • the communication module 1280 facilitates communication with other devices over one or more external ports 1240 and also includes various software components for handling data received by the RF circuitry 1080 and/or the external port 1240.
  • the external port 1240 e.g., Universal Serial Bus (USB), FIREWIRE, etc.
  • USB Universal Serial Bus
  • FIREWIRE FireWire
  • the external port 1240 is adapted for coupling directly to other devices or indirectly over a network (e.g., the Internet, wireless LAN, etc.).
  • the contact/motion module 1300 may detect contact with the touch screen 1120 (in conjunction with the display controller 1560) and other touch sensitive devices (e.g., a touchpad or physical click wheel).
  • the contact/motion module 1300 includes various software components for performing various operations related to detection of contact, such as determining if contact has occurred, determining if there is movement of the contact and tracking the movement across the touch screen 1120, and determining if the contact has been broken (i.e., if the contact has ceased). Determining movement of the point of contact may include determining speed (magnitude), velocity (magnitude and direction), and/or an acceleration (a change in magnitude and/or direction) of the point of contact. These operations may be applied to single contacts (e.g., one finger contacts) or to multiple simultaneous contacts (e.g., "multitouch'Vmultiple finger contacts).
  • the contact/motion module 1300 and the display controller 1560 also detects contact on a touchpad.
  • the graphics module 1320 includes various known software components for rendering and displaying graphics on the touch screen 1120, including components for changing the intensity of graphics that are displayed.
  • graphics includes any object that can be displayed to a user, including text, web pages, icons (such as user-interface objects including soft keys), digital images, videos, animations and the like.
  • the text input module 1340 which may be a component of graphics module 1320, provides soft keyboards for entering text in various applications (e.g., contacts, e-mail, IM, blogging, browser, and any other application that needs text input).
  • the applications 1360 may include the mobile application 208.
  • Figure 22 shows a diagrammatic representation of a machine in the exemplary form of a computer system 900 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
  • the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
  • the machine may operate in the capacity of a server or a client machine 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, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA Personal Digital Assistant
  • STB set-top box
  • WPA Personal Digital Assistant
  • the exemplary computer system 900 includes a processor 930 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 932 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), and a static memory 934 (e.g., flash memory, static random access memory (SRAM, etc.), which communicate with each other via a bus 936.
  • a processor 930 e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both
  • main memory 932 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • RDRAM Rambus DRAM
  • static memory 934 e.g., flash memory
  • the computer system 900 may further include a video display 938 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)).
  • the computer system 900 also includes an alpha-numeric input device 940 (e.g., a keyboard), a cursor control device 942 (e.g., a mouse), a disk drive unit 944, a signal generation device 946 (e.g., a speaker), and a network interface device 948.
  • a video display 938 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
  • the computer system 900 also includes an alpha-numeric input device 940 (e.g., a keyboard), a cursor control device 942 (e.g., a mouse), a disk drive unit 944, a signal generation device 946 (e.g., a speaker), and a network interface device 948.
  • the disk drive unit 944 includes a machine-readable medium 950 on which is stored one or more sets of instructions 952 (e.g., software) embodying any one or more of the methodologies or functions described herein.
  • the software may also reside, completely or at least partially, within the main memory 932 and/or within the processor 930 during execution thereof by the computer system 900, the memory 932 and the processor 930 also constituting machine readable media.
  • the software may further be transmitted or received over a network 954 via the network interface device 948.
  • machine-readable medium should be taken to understand a single medium or multiple media (e.g., a centralized or distributed database or data source and/or associated caches and servers) that store the one or more sets of instructions.
  • the term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention.
  • the term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media.

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Telephonic Communication Services (AREA)
  • Meter Arrangements (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A system and method is described for managing subscriptions between a consumer mobile phone, merchant server, billing server and carrier server. A charge-info method is used for the merchant server to retrieve charge elements from the billing server for constructing a user interface for the consumer mobile phone. An opt-in method is used to confirm a consumers opt-in for a subscription. A remind-charge method is used to remind the consumer of an upcoming charge on the subscription. A charge method allows the merchant server to charge a user account on a carrier server via the billing server. A cancel method is used for the consumer to cancel the subscription.

Description

MERCHANT MANAGED SUBSCRIPTIONS
BACKGROUND OF THE INVENTION
1) . Field of the Invention
[0001] This invention relates to a system and method for managing subscriptions in a scenario where a merchant server repeatedly instructs a billing server to charge a user account at a carrier server.
2) . Discussion of Related Art
[0002] A consumer who shops for goods or services online may often be given the option to use a selection of payment sources during checkout, such as payment by credit card, debit card, payment from an account held by an institution, or to charge for a purchase on their phone bill. When the consumer selects to charge to their phone bill, a merchant server instructs a billing server which is aligned with a carrier server to carry out the charge. The billing server usually communicates with a consumer mobile phone to confirm the charge before placing the charge on the phone bill at the carrier server.
[0003] Consumers also purchase subscriptions online, typically for services such as music or movies, and then make repeat payments on a monthly or other billing cycle. These subscriptions are usually charged directly to a credit card account held by a financial institution. Repeated communications with the consumer to confirm each renewal charge is not required in such a situation. However, if such a charge would be submitted by a merchant server to a carrier server, the carrier server typically has a requirement to confirm the charge with the consumer mobile phone. A billing cycle may go by wherein the consumer has neglected to confirm the charge, in which case the subscription would be lost to the merchant.
SUMMARY OF THE INVENTION
[0004] The invention provides a method of managing subscriptions with a billing server including a) executing an opt-in method with the billing server, including receiving a first opt-in request at the billing server including a msisdn, generating, with the billing server, a PIN code, transmitting, with the billing server, a text message to a consumer mobile phone at the msisdn with the PIN code, receiving a second opt-in request at the billing server, including a PIN code, verifying, at the billing server, the PIN code received in the second opt-in request against the PIN code transmitted in the text message and recording, at the billing server, an opt-in status as active for the msisdn within the data structure if the PIN code is verified, and b) executing a charge method with the billing server including, receiving, at the billing server, a charge API call from a merchant server at the billing server, including at least one identifier and an amount, determining an opt-in status corresponding to the identifier at the billing server, and transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
[0005] The invention also provides a computer-readable medium having stored thereon a set of instructions which, when executed by a processor of a computer performs a method of managing subscriptions with a billing server including a) executing an opt-in method with the billing server, including receiving a first opt-in request at the billing server including a msisdn, generating, with the billing server, a PIN code, transmitting, with the billing server, a text message to a consumer mobile phone at the msisdn with the PIN code, receiving a second opt-in request at the billing server, including a PIN code, verifying, at the billing server, the PIN code received in the second opt-in request against the PIN code transmitted in the text message, and recording, at the billing server, an opt-in status as active for the msisdn within a data structure if the PIN code is verified, and b) executing a charge method with the billing server including receiving, at the billing server, a charge API call from a merchant server at the billing server, including at least one identifier and an amount, determining an opt-in status corresponding to the identifier within the data structure at the billing server, and transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
[0006] The invention further provides a billing server including a processor, a computer- readable medium connected to the processor and a set of instructions on the computer- readable medium and executable by the processor. The set of instructions includes an SMS messaging module, a consumer opt-in management module executing an opt-in method including receiving a first opt-in request including a msisdn, generating a PIN code;, transmitting, using the SMS messaging module, a text message to a consumer mobile phone at the msisdn with the PIN code, receiving a second opt-in request including a PIN code, verifying the PIN code received in the second opt-in request against the PIN code transmitted in the text message, and recording an opt-in status as active within a data structure for the msisdn if the PIN code is verified. The set of instructions also includes a carrier billing module executing a charge method including receiving a charge API call from a merchant server, including at least one identifier and an amount, determining an opt-in status corresponding to the identifier in the data structure, and transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
[0007] The invention provides a method of managing subscriptions with a merchant server including a) executing an opt-in method with the merchant server, including receiving a msisdn from a consumer device at the merchant server, transmitting a first opt-in request from the merchant server to a billing server, including the msisdn, receiving a PIN code from the consumer device, transmitting a second opt-in request from the merchant server to the billing server, including the PIN code, and receiving a response from the billing server at the merchant server indicating whether the PIN code is verified or invalid, and b) executing a charge method with the merchant server including transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier, and receiving a chargeresult callback notification from the billing server at the merchant server indicating whether a user account at a carrier server has been charged by the billing server.
[0008] The invention also provides a computer-readable medium having stored thereon a set of instructions which, when executed by a processor of a computer performs a method of managing subscriptions with a merchant server including a) executing an opt-in method with the merchant server, including receiving a msisdn from a consumer device at the merchant server, transmitting a first opt-in request from the merchant server to a billing server, including the msisdn, receiving a PIN code from the consumer device, transmitting a second opt-in request from the merchant server to the billing server, including the PIN code; and receiving a response from the billing server at the merchant server indicating whether the PIN code is verified or invalid, and b) executing a charge method with the merchant server including, transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier, and receiving a chargeresult callback notification from the billing server at the merchant server indicating whether a user account at a carrier server has been charged by the billing server.
[0009] The invention further provides a merchant server including a processor, a computer-readable medium connected to the processor and a set of instructions on the computer-readable medium and executable by the processor. The set of instructions includes a user interface transmitted to a consumer device with a msisdn field for entry of a msisdn and receivable by the processor and transmitted to a billing server in a first opt-in request and a PIN code field for entry of a PIN code and receivable by the processor and transmitted to the billing server in a second opt-in request and a recurring billing management module executing a charge method including transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier, and receiving a chargeresult call back notification from the billing server at the merchant server indicating whether a user account at a carrier server has been charged by the billing server. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The invention is further described by way of example with reference to the accompanying drawings, wherein:
[0011] Figure 1 is a block diagram of system for managing subscriptions, the system including a consumer mobile phone, a merchant server, a billing server and a carrier server;
[0012] Figure 2 is an interactive diagram illustrating how the consumer mobile phone, merchant server, billing server and carrier server interact for establishing a subscription opt- in and a subsequent charge;
[0013] Figure 3 is a view of a user interface that resides on the merchant server and is transmitted to the consumer mobile phone or another consumer device where a consumer selects payment by phone for a subscription;
[0014] Figure 4 is a flow chart illustrating a charge-info method that is used by the merchant server to retrieve charge elements from the billing server, presenting a view of the user interface to the consumer mobile phone and retrieving data entered into fields corresponding to the charge elements from the consumer mobile phone;
[0015] Figure 5 is a view of the user interface that is used for the charge-info method of Figure 4;
[0016] Figure 6 illustrates extensions, or a variation, of the charge-info method;
[0017] Figure 7 shows a text message that is received by the consumer mobile phone after entry of the data in Figure 5;
[0018] Figure 8 is a view of the user interface for the consumer to enter a PIN code;
[0019] Figure 9 is a flow chart of an opt-in method that is used to send the text message, including the PIN code, of Figure 7 for purposes of the consumer to enter the PIN code in the view of Figure 8 during a first and second opt-in request by the merchant server to the billing server;
[0020] Figure 10 is a view of the user interface that is displayed at the consumer mobile phone to indicate that the PIN code has been validated and that the subscription is now available to the consumer account on the merchant server;
[0021] Figure 11 shows a text message that is received by the consumer mobile phone indicating successful opt-in for the subscription and discloses the terms of the subscription and provides instructions to the consumer how to cancel their subscription;
[0022] Figure 12 shows a data structure to indicate an active/inactive opt-in within the billing server;
[0023] Figure 13 shows a text message that is received by the consumer mobile phone with a reminder that a first charge is due to occur based on the subscription;
[0024] Figure 14 is a flow chart of a remind-charge method that is used for the merchant server to cause the billing server to transmit the text message of Figure 13;
[0025] Figure 15 is a flow chart of a charge method wherein the merchant server instructs the billing serve to charge a user account at the carrier server based on the subscription;
[0026] Figure 16 shows a text message that is received by the consumer mobile phone when the charge to the carrier server has occurred;
[0027] Figure 17 is a flow chart showing extensions to the charge method in Figure 15;
[0028] Figure 18 is an interactive chart showing how the consumer can cancel the subscription through the interface of the merchant server;
[0029] Figure 19 is an interactive chart showing how the consumer can cancel the subscription by sending a text message to the billing server; [0030] Figure 20 shows an example of text messages that are exchanged to cancel the subscription as described with reference to Figure 19;
[0031] Figure 21 is a block diagram of the consumer mobile phone illustrating SmartPhone features thereof; and
[0032] Figure 22 is a block diagram of a machine in the form of a computer system forming part of the merchant managed subscription system.
DETAILED DESCRIPTION OF THE INVENTION
[0033] Figure 1 of the accompanying drawings illustrates a merchant managed
subscription system 10, according to an embodiment of the invention, including a consumer mobile phone 12, a merchant server 14, a billing server 16 and a carrier server 18. The merchant server 14 includes a user interface 20 for a consumer using the consumer mobile phone 12 or other consumer device to purchase and manage subscriptions, and a recurring billing management module 22. The billing server 16 includes a consumer opt-in management module 24, a carrier billing module 26 and a Short Message Service (SMS) messaging module 28.
[0034] The consumer mobile phone 12 communicates with the merchant server 14 at 30 through the user interface 20 to opt-in to a subscription and the merchant server 14 communicates with the billing server 16 at 32 with a set of data that allows the billing server 16 to communicate with the consumer mobile phone 12 for purposes of confirming opt-in by the consumer mobile phone 12. At 34 the SMS messaging module 28 communicates via text messaging with the consumer mobile phone 12 to confirm opt-in by the consumer mobile phone 12 and at 36 transmits a text message confirming opt-in by the consumer. At 38 the recurring billing management module 22 initiates a charge through the carrier billing module 26. At 39 the carrier billing module 29 attempts to place the charge on an account corresponding to a phone number of the consumer mobile phone 12 on the carrier server 18. At 40 renewal charges are applied for the subscription and at 39 are communicated to the carrier server 18.
[0035] At 42 the consumer mobile phone 12 can cancel the subscription through the user interface 20, which results in a communication at 44 to cancel opt-in and receive a corresponding text message at 46 from the SMS messaging module 28. Alternatively, the consumer mobile phone 12 can at 48 send a text message directly to the billing server 16 to cancel the subscription and then receive the text message at 46 from the SMS messaging module 28.
[0036] Figure 2 illustrates the process for the consumer mobile phone 12 to opt-in to a subscription and subsequent charging of the consumer. At 50, the consumer makes a selection using the user interface 20 in Figure 1 to pay using mobile payment. Figure 3 shows a view of the user interface 20 that is displayed to the consumer mobile phone 12 for making the selection.
[0037] Referring again to Figure 2, following the selection by the consumer mobile phone 12 at 50, the merchant server 14 at 52 transmits a charge-info application programmable interface (API) call to the billing server 16. The charge-info call is submitted to a dedicated uniform response locator (URL) of the billing server 16 such as
https:/gateway.billingserver.com/charge-info. The charge-info method is then used by the billing server 16 to obtain information regarding the elements required to charge a consumer and the required localized strings to display to a consumer. These elements are country specific and in some cases may be network specific.
[0038] In general, the mobile subscriber integrated services digital network number (msisdn) and the network of the consumer mobile phone 12 are required inputs to collect from the consumer mobile phone 12. In some countries there can be additional elements such as a zip code or a resident registration number. A charge-info API response transmitted at 54 contains the input elements required for each country and network. The charge-info API response also supplies localized strings that can be used as labels for these input fields. [0039] The primary text that needs to be displayed to the consumer mobile phone 12 are the terms and conditions strings for the country or network. The API returns a terms-and- conditions element for the country and, if required, for the network as well and are in many cases different for different countries or networks. The localized text for the terms and conditions is returned in '<string>' tags. If a country or network requires that the consumer mobile phone 12 accept terms and conditions, a terms and conditions input element will be included as a checkbox.
[0040] By default, the charge-info API response returns information regarding all countries that the billing server 16 supports. The API supports an optional country parameter to filter the response to a specific country. Table 1 shows the charge-info request parameters that are required and Table 2 shows the charge-info response parameters.
Table 1
Figure imgf000013_0001
Table 2
Figure imgf000013_0002
The following is an example of strings in a charge-info response to a charge-info <country code="US" name="United States">
<languages>
<language code="en">
<strings language="en">
<string id="MOBILE_NETWORK_LABEL">Select your network</string> <string id="MOBILE_NUMBER_LABEL">Mobile number</string> <string id="ZIP_CODE_LABEL">Zip Code:</string>
<string id="PHONE_EXAMPLE">E.g. 123-123-1234</string>
<string id="TERMS_LABEL">I agree to the Terms of Use</string> <string id="TERMS_STR">This is a SUBSCRIPTION service. Subscriptions will renew automatically until you cancel the service.
</string>
[0042] An example of the charge-info method is illustrated in Figure 4. At 52, the merchant sends the charge-info request to the billing server 16. At 54, the billing server 16 returns an XML structure that contains all required charge elements, supported networks in each country, and the terms and conditions string to display in each country or network. At 56, the merchant server 14 inspects <inputs> in the XML structure to determine required elements to collect from the consumer. At 58, the merchant server 14 selects <string> from the XML structure for relevant labels and hints in the appropriate language. At 60, the merchant server 14 displays terms and conditions for the selected country. At 62, the consumer selects the network. At 64, the merchant server 14 inspects for network specific terms and conditions and if found, displays these to the consumer at the consumer mobile phone 12.
[0043] Figure 5 is a view of the user interface 20 in Figure 1 that is displayed for the consumer mobile phone 12 following step 62 in Figure 2 where the consumer mobile phone 12 selects the network and enters their phone number.
[0044] Figure 6 illustrates an extension (a variation) of the charge-info method. At 66, the merchant server 14 sends a charge-info request to the billing server 16 for a specific country. At 68, the billing server 16 returns a response that contains charge elements, network and terms and conditions for the specific country.
[0045] After the merchant server 14 receives the data from the consumer mobile phone 12 at 62 in Figures 2 and 4, the merchant server 14 at 72 in Figure 2 transmits a first opt-in API call to the billing server 16. The first opt-in API call is submitted to a dedicated URL of the billing server 16 such as https://gateway.billing server.com/opt-in. An opt-in method is then used by the merchant server 14 and the billing server 16 to obtain an opt-in from a consumer mobile phone 12 for a specific set of subscription terms. For example, when a merchant server 14 offers a subscription with a free trial, the opt-in method is used to obtain a consumer mobile phone 12 opt-in that confirms their access to the trial with eventual subscription billing if they do not cancel the subscription before the end of the trial period. This method requires that the merchant server 14 provide the following:
consumer- id (unique identifier for the consumer)
• msisdn (internationally formatted mobile number)
subscription- id (unique value to identify the consumer's subscription)
• subscription-terms (which will include trial terms if applicable)
[0046] The opt-in method, on the billing server 16, generates and at 74 in Figure 2 sends a personal identification number (PIN) code in a text message, using the SMS messaging module 28 in Figure 1 to the consumer mobile phone 12 along with the terms of the subscription. Figure 7 shows the text message that is received by the consumer mobile phone 12.
[0047] At 76 in Figure 2, the user interface 20 in Figure 1 displays a PIN code field to the consumer mobile phone 12 as further illustrated in Figure 8. At 78 in Figure 2, the consumer mobile phone 12 enters the PIN code received in the text message of Figure 7 into the PIN code field and transmits it to the merchant server 14. The merchant server 14 receives the PIN code from the consumer mobile phone 12 and at 80 in Figure 2 transmits the retrieved PIN code, along with the msisdn and consumer-id, in a second opt-in request to the same URL as the first opt-in request at the billing server 16. The billing server 16 then verifies and validates the PIN code received from the merchant server 14 at 80 against the PIN code transmitted in the text message at 74, and sends a response back to the merchant server 14. The billing server 16 records or stores the result of the consumer's opt-in so that it can be referenced on subsequent charge API calls that occur when the user is charged for the renewal subscription billing cycles.
[0048] Table 3 shows the opt-in request parameters that are transmitted at 72 and 80 in Figure 2. Tables 4 and 5 show opt-in response parameters that are determined by the billing server 16 and provided to the merchant server 14 in response to the calls at 72 and 80 in Figure 2.
Table 3
Figure imgf000016_0001
Parameter Type Description Required item-description String The exact quantity and name of the Yes
item(s) being purchased. If more than one
of an item is being purchased (e.g. "1000
Credits"), the quantity must be included.
Overrides the "Product Description".
Restrict to 20 characters. Longer strings
will be truncated.
mcc Number Mobile Country Code (MCC). MCC and No
MNC are used together. If used both must
be supplied.
Billing server assigned merchant identifier
merchant-id String Yes
value.
mnc Number Mobile Network Code (MNC). No msisdn String Subscriber mobile phone number in Yes
international MSISDN format: country
code + mobile phone number.
network String Billing server network code as supplied Conditional from the 'charge-info' API XML
pin-code String PIN code entered by consumer to Conditional indicate opt-in for payment.
service-id String Merchant offering identifier. Yes subscription-id String Merchant assigned unique identifier for Yes
the consumer subscription.
subscription- String JavaScript Object Notification (JSON) Yes terms structure. Should follow the example. The
'amount' fields should be specified in
fractional units. Frequency is an Enum
data structure: DAILY, MONTHLY,
YEARLY. Duration is an integer value
applied to the frequency. The example
specifies a 7 day trial, 799 per month.
{'trial' : {'amount':0,
'frequency' :DAILY,
'duration' :7} , 'sub' : { 'amount' : 799,
'frequency' : MONTHLY, 'duration':
1 } } Table 4
Figure imgf000018_0001
[0049] An example of the opt-in method is illustrated in Figure 9. At 82, the merchant server 14 sends opt-in request containing the msisdn, consumer- id, subscription- id and subscription-terms values. At 84, if there is a current, unexpired PIN code that has not been verified, then VERIFICATION IN PROGRESS is returned. Otherwise, a new PIN code is generated and VERIFICATION IN PROGRESS is returned. The billing server 16 at 74 in Figure 2 sends a message to the consumer mobile phone 12 that is appropriate for the country and that includes the PIN code, the terms of the subscription and the terms of the trial.
[0050] At 86, the merchant server 14 collects the PIN code at 78 in Figure 2 and at 80 in Figure 2, sends an opt-in request containing the retrieved PIN code. If the submitted PIN code is correct, then VERIFIED is returned and the billing server 16 sends a confirmation message to the consumer mobile phone 12 that includes the terms of the trial, the subscription, and STOP instructions (to cancel the subscription via SMS). Otherwise, INVALID PIN is returned. Only three PIN code entry attempts (or other limited number of attempts) are allowed.
[0051] At 88, the merchant server 14 collects PIN code after 24 hours and sends an opt-in request containing the PIN. If PIN code is expired, then PIN EXPIRED is returned.
[0052] Figure 10 is a view of the user interface 20 in Figure 2 that is displayed to the consumer mobile phone 12 to indicate that the PIN code has been transmitted and has been verified and that the subscription is not available to the consumer account on the merchant server 14. Figure 11 shows a text message that the SMS messaging module 28 transmits to the consumer mobile phone 12 at 90 in Figure 2 indicating successful processing of opt-in for the subscription and discloses the terms of the subscription and provides instructions to the consumer how to cancel their subscription. The text message in Figure 11 is bot sent if the opt-in fails due to the PIN code not being verified.
[0053] Figure 12 shows a data structure within the consumer opt-in management module 24 in Figure 1. A subscription- id for a particular merchant-id is retrieved from the respective merchant server 14. The opt-in status of the respective subscription- id is stored as active and the date and time of the activation and can later be set in a selectable manner to inactive. If the opt-in fails, the activation is also set to inactive. A consumer-id allows a consumer mobile phone 12 to login to an account at the billing server 16. All parameters are stored in relation to a respective msisdn. Each phone number may have one merchant-id having a plurality of subscription-id's for different services and each subscription-id may have a separate set of opt-in parameters.
[0054] Referring again to Figure 2, after the consumer mobile phone 12 has opted in and the opt-in data is stored as in Figure 12, the merchant server 14 may at 90 transmit a remind charge API call to the billing server 16. The remind-charge API call is submitted to ta dedicated URL of the billing server 16. A remind-charge method is then used by the billing server 16 to send a subscription renewal reminder text message at 92 in Figure 2 to consumer mobile phone 12. Some countries require reminder messages to be sent on a regular schedule because carriers want to ensure that consumers are aware of their subscription purchases. For this reason, when a consumer mobile phone 12 subscribes to a monthly service in some countries, it is required that a subscription reminder text message is sent three days prior to each renewal billing cycle. The reminder text message reminds the consumer that they are subscribed to a service, its cost, how to cancel the subscription and how to contact customer support of the billing server 16. In the case of a free trial, a reminder message should be sent prior to the first renewal charge that occurs after the trial expiration. Figure 13 shows the text message that is received by the consumer mobile phone 12.
[0055] Table 6 shows parameters for the remind-charge API call at 90 in Figure 2. Tables 7 and 8 show response parameters for the remind-charge API call that are determined by the billing server 16 and transmitted to the merchant server 14.
Table 6
Figure imgf000020_0001
Parameter Type Description Required
Country code in ISO 3166-l-alpha-2
country String Yes standard.
Item- String The exact quantity and name of the Yes item(s) being purchased. If more than one
description of an item is being purchased (e.g. "1000
Credits"), the quantity must be included.
Overrides the "Product Description".
Restrict to 20 characters.
Billing server assigned merchant identifier
merchant-id String Yes value.
msisdn String Subscriber mobile phone number in Yes international MSISDN format: country
code + mobile phone number.
renewal-date String Start date of next subscription cycle. Yes
Format: YYYY-MM-DD.
service-id String Merchant offering identifier. Yes subscription- String Merchant assigned unique identifier Yes id for the consumer subscription.
subscription- String JSON structure, Yes terms {'sub': {'amount': 799,
'frequency' : MONTHLY,
'duration': 1 } }
Table 7
Figure imgf000021_0001
Billing server assigned merchant identifier
merchant-id String Yes value.
msisdn String Subscriber mobile phone number in Yes international MSISDN format: country
code + mobile phone number.
renewal-date String Start date of next subscription cycle. Yes
Format: YYYY-MM-DD.
service-id String Merchant offering identifier. Yes subscription- String Merchant assigned unique identifier for Yes id the consumer subscription.
subscription- String JSON structure, {'sub': {'amount': Yes terms 799, 'frequency' : MONTHLY,
'duration': 1 } }
Table 8
Figure imgf000022_0001
Parameter Type Description Required subscription- String JSON structure, Yes terms {'sub': {'amount': 799,
'frequency' : MONTHLY,
'duration': 1 } }
[0056] Figure 14 shows an example of a remind-charge method. At 94, a merchant server 14 sends remind-charge request containing a msisdn, consumer- id, and subscription-terms values. At 96, the billing server 16 sends the SMS message at 96 in Figure 2 to the consumer mobile phone 12 that contains the terms of the subscription and STOP instructions (cancel via SMS). The SMS also contains information on how to contact customer service of the billing server 16.
[0057] Referring again to Figure 2, on the date and time that the subscription is due for payment, the merchant server 14 at 98 transmits a charge API call to the billing server 16 to request processing of a payment from the consumer mobile phone 12 in a single step. The charge API call is submitted to a dedicated URL of the billing server 16. A charge method can be used to support both one-time and recurring (subscription) charge scenarios. When the charge request is for a subscription, a subscription-id and subscription- frequency must be supplied. The subscription-id value references the subscription-id that was collected in the opt-in request. This enables the billing server 16 to check whether there is a corresponding consumer opt-in for the subscription with a status that is active. In another embodiment another identifier can be received by the billing server 16 from the merchant server 14 for determining the opt-in status for the subscription.
[0058] If the charge request is accepted, a charge-id is returned from the billing server 16 to the merchant server 14 at 104 in Figure 2. Acceptance means that the request has been successfully validated and has been submitted at 100 in Figure 2 to the carrier server 18 for processing with a valid response from the carrier server 18 at 102. Prior to submitting a charge to the carrier server 18 for processing, risk checks would have already been performed by the billing server 16.
[0059] Charge is an asynchronous request. When the charge request has been completed, regardless of a successful or failed charge, the billing server 16, having received the charge result from the carrier server 18, sends a callback notification to the merchant server 14 with the final result of the charge attempt.
[0060] The charge request is idempotent. Each request is uniquely identified by the request-id supplied by the merchant server 14. For example, if two charge requests are made with the same merchant request-id, the user's account is charged only once and both charge requests receive the same response.
[0061] A chargeresult callback notification provides the final status of a transaction (success or failure) successfully billed chargeresult callback notifications are used by the merchant server 14 to fulfill purchases. For a given transaction, identified by the unique charge-id field value, fulfillment occurs only once. The merchant server 14 may receive a chargeresult callback for the same transaction multiple times if there are communication issues between the billing server 16 and the merchant server 14. Improper acknowledgement responses (ACKs) from the merchant server 14 to the billing server 16 is a common cause of continually retried callback notifications.
[0062] The merchant server 14 only receives callbacks from the billing server 16 for requests that have been accepted. If a request was not accepted due to a validation error or due to a risk check, the billing server 16 does not submit the request to the carrier server 18 for processing and therefore callback notification is not sent from the billing server 16 to the merchant server 14.
[0063] Table 9 shows parameters for the charge request at 98 in Figure 2. Table 10 shows parameters for the chargeresult callback notification at 104 in Figure 2.
Table 9
Figure imgf000025_0001
Parameter Type Description Required external-item- String Merchant assigned identifier No id for the purchased item. Billing
server does not validate this
value for uniqueness. item- String Product disclosure describing the Yes description quantity and type of item being
purchased, (i.e. "10 credits" not
"credits") . Restricted to 20
characters. Longer strings will be
truncated. mcc String Mobile country code (MCC). No
MCC and MNC are used together.
If used, both must be supplied.
merchant-id String Billing server assigned Yes merchant identifier value mnc String Mobile network code (MNC). No msisdn Number Subscriber mobile phone number Yes in international MSISDN format:
country code + mobile phone
number.
Table 10
Figure imgf000026_0001
The short code to which the
consumer- auth- String Conditional consumer should send the
short- code
keyword. result-code String The result code for this request. Yes
Human readable description of the result.
result- String Yes
message
Specifies the minimum time (in
retry-delay Number Conditional milliseconds) that the caller should
wait before retrying the request.
Returned when a retry error has
occurred.
[0064] Figure 15 shows an example of a charge method. At 106, a customer at a consumer mobile phone 12 or other consumer device selects a merchant's service or product on the user interface 20 in Figure 2. At 108, the merchant server 14 obtains mobile phone number (msisdn) of the consumer mobile phone 12 and optionally the network of the carrier server 18. At 90, the merchant server 14 submits a charge request to the billing server 16 containing the customer- id, subscription- id and purchase details. At 112, the billing server 16 performs opt-in status, spend limit, velocity checks, and other consumer protection checks corresponding to the subscription-id. If opt-in status, spend or velocity checks fail or the msisdn is blacklisted, the charge request fails and an appropriate error message is returned. At 114, the billing server 16 detects the carrier (using supplied network or a lookup if the network is not supplied) and submits a charge request for an amount equal to or based on the total amount to the carrier server 18 using the carrier's direct API. The charge request from the billing server 16 to the carrier server 14 will only occur if the opt-in status is active, but not if the opt-in status is inactive. At 104, the billing server 16 returns the final result of the charge request in a chargeresult callback notification to the merchant server 14.
[0065] The SMS messaging module 28 then at 120 in Figure 2 transmits a text message to the consumer mobile phone 12 to confirm renewal of the subscription. An example of a text message is shown in Figure 16.
[0066] Figure 17 shows extensions to the charge flow method in Figure 15. The assumption is that at 122 the charge request fails. At 124, the merchant server 14 retries charge submitting the charge request with a new request-id. Due to idempotency, if the charge is retried with a request-id that failed earlier, the billing server 16 will return the same failure response. At 126, the billing server 16 uses the carrier charge method to charge the consumer's account. At 128, the billing server 16 returns information indicating the success or failure of the charge request in a chargeresult callback notification.
[0067] Tables 11 and 12 show parameters for a chargeresult callback notification.
Table 11
Figure imgf000028_0001
Field Type Max Notes
Length
merchant- Number Int32 Merchant net payout value.
payout
service-id String 50 Merchant offering identifier.
Product disclosure describing the item-description String 255
quantity and type of item being purchased. (i.e. "10 credits" not "credits").
request-id String 50 Unique merchant supplied identifier for this request to ensure that charges are not duplicated.
external-id String 50 A merchant supplied identifier for this transaction.
external-item-id String 50 Merchant assigned identifier
for the purchased item.
external-data String Merchant supplied meta data.
end-merchant-id String 50 If a reseller, this represents the end merchant.
reference- String 3 Reference currency unit as set currency within the merchant service reference-total- Number Int32 Total charge amount based on the amount reference currency unit.
reference-tax- Number Int32 Tax amount based on the reference amount currency unit.
reference- Number Int32 Merchant payout based on the merchant- reference currency unit.
payout
test Boolean Boolean Used to identify test transactions.
(See Testing section in Overview of this document).
Time charge request was initiated in time-requested String UTC
UTC format: YYYY-MM-DD Date
HH:MM:SS.
time-completed String UTC Time of when the charge request
Date was completed. Field Type Max Notes
Length
result-code String 20 The result code for this request.
Human readable description of the result-message String 255
result. sig String 255 Hash computation signature
generated based on Security Implementation Guide instructions. timestamp Number Int64 Network Time Protocol (NTP) Unix epoch timestamp.
Table 12
Figure imgf000030_0001
Result
Response Message Comments Code
Anti-fraud -
In certain cases, anti- fraud limits may result in a
7 Transaction
transaction failing e.g. velocity limits.
rejected
Failed - The consumer sent back a keyword to cancel the
8
Cancelled by transaction.
Regulatory
Regulatory (per carrier rules) spend limit has
11 spend limit
been reached by the consumer.
reached
Merchant spend limit Merchant specified spend limit has been
12
reached reached by the consumer.
14 Service suspended
15 Network unavailable
This error occurs when product descriptions
Product description
67 submitted to the carrier for approval have not yet pending approval
been approved.
Rejected product This error occurs when product descriptions
68
description submitted to the carrier are rejected.
Service not supported
86
on network
Pre-paid
Pre-paid mobiles are not supported by certain
90 account not
carriers.
supported
Price point not
95 supported on this
network
Account not authorized Consumer account cannot use mobile billing
96
for purchase service.
Applicable for certain carrier billing workflows that
97 Invalid Zip Code
require consumer entry of a zip code.
A problem with callback ACK caused a fulfillment failure. The transaction was not billed.
101 Fulfillment failed
This is applicable to carrier networks that require fulfillment to occur before billing the consumer. Result
Response Message Comments
Code
Applicable to certain carrier billing workflows
Consumer info validation
500 that require the consumer to enter additional
error
information for validation purposes.
Error due sending or receiving the necessary SMS
700 Handset error
messages to proceed with purchase.
Certain types of consumers cannot make purchases
800 Subscriber not eligible
using the billing server system e.g. minors.
Internal subscription
850 Needs further investigating by billing server.
error
[0068] Figure 18 shows the method referenced with respect to Figure 1 wherein the consumer mobile phone 12 cancels the subscription via the user interface 20. At 42 in Figure 18, the consumer mobile phone 12 cancels with the merchant server 14 using the user interface 20 in Figure 1 of the merchant server 14. At 44, the merchant server 14 submits a cancel-opt-in API call at a dedicated URL of the billing server 16 to notify the billing server 16 to cancel the consumer opt-in for their subscription. At 130, the billing server 16 cancels the consumer opt-in and updates the relevant subscription- id in Figure 12 as inactive. Further charges against this subscription, if submitted by the merchant server 14 to the billing server 16, will be rejected. At 132, the merchant server 14 updates the user interface 20 to reflect that the subscription has been cancelled and recurring billing has been terminated.
[0069] Figure 19 shows the method referenced with respect to Figure 1 wherein the consumer cancels the subscription via text messaging. At 48, the consumer mobile phone 12 sends STOP via SMS text. The text message can be sent as a reply to the short code 723- 53 from which the texts were received by the consumer mobile phone 12. At 134, the billing server 16 cancels the subscription and updates the relevant subscription- id in Figure 12 as inactive. Further charges against this subscription, if submitted by the merchant server 14, will be rejected. At 46, the billing server 16 sends a confirmation of cancellation SMS text to the consumer mobile phone 12. At 136, the billing server 16 sends consumer subscription cancelation notification to the merchant server 14 so that the subscription is cancelled at the merchant server 14. The merchant server 14 terminates recurring billing.
[0070] Figure 20 shows an example of text messages that are exchanged to cancel the subscription as described with reference to Figure 19. The text messages received and sent at 48 and 46 in Figure 19 are both shown as the second and third messages in Figure 20.
[0071] Figure 21 is a block diagram illustrating the consumer mobile phone 12, illustrating a touch-sensitive display 1120 or a "touch screen" for convenience. The consumer mobile phone 12 includes a memory 1020 (which may include one or more computer readable storage mediums), a memory controller 1220, one or more processing units (CPU's) 1200, a peripherals interface 1180, RF circuitry 1080, audio circuitry 1100, a speaker 1110, a microphone 1130, an input/output (I/O) subsystem 1060, other input or control devices 1160 and an external port 1240. These components communicate over one or more
communication buses or signal lines 1030.
[0072] The various components shown in Figure 21 may be implemented in hardware, software or a combination of hardware and software, including one or more signal processing and/or application specific integrated circuits.
[0073] The memory 1020 may include high-speed random access memory and may also include non- volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to the memory 1020 by other components of the consumer mobile phone 12, such as the CPU 1200 and the peripherals interface 1180, is controlled by the memory controller 1220.
[0074] The peripherals interface 1180 connects the input and output peripherals of the device to the CPU 1200 and memory 1020. The one or more processors 1200 run or execute various software programs and/or sets of instructions stored in the memory 1020 to perform various functions for the consumer mobile phone 12 and to process data.
[0075] The RF (radio frequency) circuitry 1080 receives and sends RF signals, also called electromagnetic signals. The RF circuitry 1080 converts electrical signals to/from electromagnetic signals and communicates with communications networks and other communications devices via the electromagnetic signals. The RF circuitry 1080 includes well-known circuitry for performing these functions, including an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, and so forth. The RF circuitry 1080 may communicate with networks, such as the Internet, also referred to as the World Wide Web (WWW), an intranet and/or a wireless network, such as a cellular telephone network, a wireless local area network (LAN) and/or a metropolitan area network (MAN), and other devices by wireless communication. The wireless communication may use any of a plurality of communications standards, protocols and technologies that are known in the art.
[0076] The audio circuitry 1100, the speaker 1110, and the microphone 1130 provide an audio interface between a user and the consumer mobile phone 12. The audio circuitry 1100 receives audio data from the peripherals interface 1180, converts the audio data to an electrical signal, and transmits the electrical signal to the speaker 1110. The speaker 1110 converts the electrical signal to human-audible sound waves. The audio circuitry 1100 also receives electrical signals converted by the microphone 1130 from sound waves. The audio circuitry 1100 converts the electrical signal to audio data and transmits the audio data to the peripherals interface 1180 for processing. The audio circuitry 1100 also includes a headset jack serving as an interface between the audio circuitry 1100 and removable audio input/output peripherals, such as output-only headphones or a headset with both output (e.g., a headphone for one or both ears) and input (e.g., a microphone).
[0077] The I/O subsystem 1060 connects input/output peripherals on the consumer mobile phone 12, such as the touch screen 1120 and other input/control devices 1160, to the peripherals interface 1180. The I/O subsystem 1060 includes a display controller 1560 and one or more input controllers 1600 for other input or control devices. The one or more input controllers 1600 receive/send electrical signals from/to other input or control devices 1160. The other input/control devices 1160 may include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, and so forth all serving as forming part of an interface. The input controllers 1600 may be connected to any of the following: a keyboard, infrared port, USB port, and a pointer device such as a mouse. The one or more buttons may include an up/down button for volume control of the speaker 1110 and/or the microphone 1130. The one or more buttons may include a push button. A quick press of the push button may disengage a lock of the touch screen 1120 or begin a process that uses gestures on the touch screen to unlock the device. A longer press of the push button may turn power to the consumer mobile phone 12 on or off. The touch screen 1120 is used to implement virtual or soft buttons and one or more soft keyboards.
[0078] The touch-sensitive touch screen 1120 provides an input interface and an output interface between the device and a user. The display controller 1560 receives and/or sends electrical signals from/to the touch screen 1120. The touch screen 1120 displays visual output to the user. The visual output may include graphics, text, icons, video, and any combination thereof (collectively termed "graphics"). In some embodiments, some or all of the visual output may correspond to user-interface objects, further details of which are described below.
[0079] A touch screen 1120 has a touch-sensitive surface, sensor or set of sensors that accepts input from the user based on haptic and/or tactile contact. The touch screen 1120 and the display controller 1560 (along with any associated modules and/or sets of instructions in memory 1020) detect contact (and any movement or breaking of the contact) on the touch screen 1120 and converts the detected contact into interaction with user- interface objects (e.g., one or more soft keys, icons, web pages or images) that are displayed on the touch screen. In an exemplary embodiment, a point of contact between a touch screen 1120 and the user corresponds to a finger of the user.
[0080] The touch screen 1120 may use LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, although other display technologies may be used in other embodiments. The touch screen 1120 and the display controller 1560 may detect contact and any movement or breaking thereof using any of a plurality of touch sensing technologies now known or later developed, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with a touch screen 1120.
[0081] The user may make contact with the touch screen 1120 using any suitable object or appendage, such as a stylus, a finger, and so forth. In some embodiments, the user interface is designed to work primarily with finger-based contacts and gestures, which are much less precise than stylus-based input due to the larger area of contact of a finger on the touch screen. In some embodiments, the device translates the rough finger-based input into a precise pointer/cursor position or command for performing the actions desired by the user.
[0082] The consumer mobile phone 12 also includes a power system 1620 for powering the various components. The power system 1620 may include a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light-emitting diode (LED)) and any other components associated with the generation, management and distribution of power in portable devices.
[0083] The software components stored in memory 1020 include an operating system 1260, a communication module (or set of instructions) 1280, a contact/motion module (or set of instructions) 1300, a graphics module (or set of instructions) 1320, a text input module (or set of instructions) 1340, and applications (or set of instructions) 1360.
[0084] The operating system 1260 (e.g., Darwin, RTXC, LINUX, UNIX, OS X,
WINDOWS, or an embedded operating system such as VxWorks) includes various software components and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates
communication between various hardware and software components.
[0085] The communication module 1280 facilitates communication with other devices over one or more external ports 1240 and also includes various software components for handling data received by the RF circuitry 1080 and/or the external port 1240. The external port 1240 (e.g., Universal Serial Bus (USB), FIREWIRE, etc.) is adapted for coupling directly to other devices or indirectly over a network (e.g., the Internet, wireless LAN, etc.).
[0086] The contact/motion module 1300 may detect contact with the touch screen 1120 (in conjunction with the display controller 1560) and other touch sensitive devices (e.g., a touchpad or physical click wheel). The contact/motion module 1300 includes various software components for performing various operations related to detection of contact, such as determining if contact has occurred, determining if there is movement of the contact and tracking the movement across the touch screen 1120, and determining if the contact has been broken (i.e., if the contact has ceased). Determining movement of the point of contact may include determining speed (magnitude), velocity (magnitude and direction), and/or an acceleration (a change in magnitude and/or direction) of the point of contact. These operations may be applied to single contacts (e.g., one finger contacts) or to multiple simultaneous contacts (e.g., "multitouch'Vmultiple finger contacts). The contact/motion module 1300 and the display controller 1560 also detects contact on a touchpad.
[0087] The graphics module 1320 includes various known software components for rendering and displaying graphics on the touch screen 1120, including components for changing the intensity of graphics that are displayed. As used herein, the term "graphics" includes any object that can be displayed to a user, including text, web pages, icons (such as user-interface objects including soft keys), digital images, videos, animations and the like.
[0088] The text input module 1340, which may be a component of graphics module 1320, provides soft keyboards for entering text in various applications (e.g., contacts, e-mail, IM, blogging, browser, and any other application that needs text input). The applications 1360 may include the mobile application 208.
[0089] Figure 22 shows a diagrammatic representation of a machine in the exemplary form of a computer system 900 within which a set of 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 network deployment, the machine may operate in the capacity of a server or a client machine 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, or any machine capable of executing a set of 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 herein.
[0090] The exemplary computer system 900 includes a processor 930 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 932 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), and a static memory 934 (e.g., flash memory, static random access memory (SRAM, etc.), which communicate with each other via a bus 936.
[0091] The computer system 900 may further include a video display 938 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 900 also includes an alpha-numeric input device 940 (e.g., a keyboard), a cursor control device 942 (e.g., a mouse), a disk drive unit 944, a signal generation device 946 (e.g., a speaker), and a network interface device 948.
[0092] The disk drive unit 944 includes a machine-readable medium 950 on which is stored one or more sets of instructions 952 (e.g., software) embodying any one or more of the methodologies or functions described herein. The software may also reside, completely or at least partially, within the main memory 932 and/or within the processor 930 during execution thereof by the computer system 900, the memory 932 and the processor 930 also constituting machine readable media. The software may further be transmitted or received over a network 954 via the network interface device 948.
[0093] While the instructions 952 are shown in an exemplary embodiment to be on a single medium, the term "machine-readable medium" should be taken to understand a single medium or multiple media (e.g., a centralized or distributed database or data source and/or associated caches and servers) that store the one or more sets of instructions. The term "machine-readable medium" shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term "machine-readable medium" shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media.
[0094] While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative and not restrictive of the current invention, and that this invention is not restricted to the specific constructions and arrangements shown and described since modifications may occur to those ordinarily skilled in the art.

Claims

CLAIMS What is claimed:
1. A method of managing subscriptions with a billing server comprising:
a) executing an opt-in method with the billing server, including:
receiving a first opt-in request at the billing server including a msisdn;
generating, with the billing server, a PIN code;
transmitting, with the billing server, a text message to a consumer mobile phone at the msisdn with the PIN code;
receiving a second opt-in request at the billing server, including a PIN code; verifying, at the billing server, the PIN code received in the second opt-in request against the PIN code transmitted in the text message; and
recording, at the billing server, an opt-in status as active for the msisdn within the data structure if the PIN code is verified; and
b) executing a charge method with the billing server including:
receiving, at the billing server, a charge API call from a merchant server at the billing server, including at least one identifier and an amount;
determining an opt-in status corresponding to the identifier at the billing server; and
transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
2. The method of claim 1, wherein the first opt-in request includes a subscription- id, the opt-in status being recorded as active against the subscription-id.
3. The method of claim 2, wherein the msisdn has a plurality of subscription-id's, each having a separate opt-in parameter that is set in a selectable manner to active or inactive.
4. The method of claim 1, wherein the first opt-in request includes a consumer- id (merchant provided unique consumer identifier), a country (country code in ISO 3166-1- alpha-2 standard), an item-description (the exact quantity and name of the item(s) being purchased. If more than one of an item is being purchased (e.g. "1000 Credits"), the quantity must be included. Overrides the "Product Description". Restrict to 20 characters. Longer strings will be truncated), a merchant-id (billing server assigned merchant identifier value), a msisdn (subscriber mobile phone number in international MSISDN format: country code + mobile phone number), a service-id (merchant offering identifier), a subscription-id
(merchant assigned unique identifier for the consumer subscription) and a subscription- terms (JavaScript Object Notification (JSON) structure. The 'amount' fields should be specified in fractional units. Frequency is an Enum data structure: DAILY, MONTHLY, YEARLY. Duration is an integer value applied to the frequency. The example specifies a 7 day trial, 799 per month, {'trial': { 'amount' :0, 'frequency' :DAILY).
5. The method of claim 4, wherein the second opt-in request includes a consumer- id (merchant provided unique consumer identifier), a country (country code in ISO 3166-1- alpha-2 standard), an item-description (the exact quantity and name of the item(s) being purchased. If more than one of an item is being purchased (e.g. "1000 Credits"), the quantity must be included. Overrides the "Product Description". Restrict to 20 characters. Longer strings will be truncated), a merchant-id (billing server assigned merchant identifier value), a msisdn (subscriber mobile phone number in international MSISDN format: country code + mobile phone number), a service-id (merchant offering identifier), a subscription-id
(merchant assigned unique identifier for the consumer subscription) and a subscription- terms (JavaScript Object Notification (JSON) structure. The 'amount' fields should be specified in fractional units. Frequency is an Enum data structure: DAILY, MONTHLY, YEARLY. Duration is an integer value applied to the frequency. The example specifies a 7 day trial, 799 per month, {'trial': { 'amount' :0, 'frequency' :DAILY).
6. The method of claim 1, wherein the charge API call includes s consumer- id (JSON structure containing optional charge elements such as zip or rrn. i.e. {'zip:94939}), a consumer-ip-address (originating IP address of the consumer; used for risk checks. If it cannot be obtained submit a value of "NOT AVAILABLE'.), a country (country code in ISO 3166-l-alpha-2 standard), a currency (ISO 4217 3 letter currency code), an end-merchant-id (billing server assigned merchant identifier for an end merchant submitting transactions via a reseller), an item-description (product disclosure describing the quantity and type of item being purchased, (i.e. "10 credits" not "credits") . Restricted to 20 characters. Longer strings will be truncated), a merchant-id (billing server assigned merchant identifier value), a msisdn (Subscriber mobile phone number in international MSISDN format: country code + mobile phone number), request-id (unique merchant assigned request ID), a subscription frequency (frequency of subscription renewal. (DAILY, MONTHLY, YEARLY)), a subscription- id (merchant assigned unique identifier for the consumer subscription, a service-id (merchant offering identifier) and total-amount (total amount charged including tax).
7. The method of claim 1, wherein the charge method further includes:
transmitting from the billing server a chargeresult callback notification to the merchant server in response to the charge API call.
8. The method of claim 7, wherein the chargeresult callback notification includes a consumer-auth-required (billing server assigned charge identifier (returned if the 'charge' request is successful)), a result-code (the result code for this request) and a result-message (human readable description of the result).
9. The method of claim 1, further comprising:
c) executing a charge-info method, with the billing server, before the opt-in method including:
receiving a charge-info request from the merchant server at the billing server; returning, from the billing server, charge elements to the merchant server in response to the charge-info request, the merchant server collecting data from a consumer based on the charge elements for inclusion in at least the first opt-in request.
10. The method of claim 9, wherein the charge-info request includes a merchant-id (billing server assigned merchant identifier value).
11. The method of claim 10, wherein the charge elements include a country and network.
12. The method of claim 10, further comprising:
returning, with the billing server, terms and condition strings in response to the charge-info request, wherein the terms and conditions are different for different countries.
13. The method of claim 1, further comprising:
c) executing a remind-charge method, with the billing server, after the opt-in method and before the charge method, including:
receiving a remind-charge request from the merchant server at the billing server; and
sending a text message from the billing server to the consumer mobile phone that contains terms of a subscription and a due date for when the charge method will be executed, the charge method being executed on the due date.
14. The method of claim 13, wherein the remind-charge request includes a consumer-id (merchant provided unique consumer identifier), a country (country code in ISO 3166-1- alpha-2 standard), an item-description (the exact quantity and name of the item(s) being purchased. If more than one of an item is being purchased (e.g. "1000 Credits"), the quantity must be included. Overrides the "Product Description". Restrict to 20 characters.), a merchant-id (billing server assigned merchant identifier value), a msisdn (subscriber mobile phone number in international MSISDN format: country code + mobile phone number.), a renewal-date (start date of next subscription cycle. Format: YYYY-MM-DD), a service-id (merchant offering identifier), a subscription-id (merchant assigned unique identifier for the consumer subscription), and a subscription-terms (JSON structure, {'sub': {'amount': 799, 'frequency' : MONTHLY, 'duration': 1 } }).
15. The method of claim 1, further comprising:
c) executing a cancel method at the billing server, including:
receiving a call to cancel the subscription at the billing server; and updating the opt-in status to inactive for the msisdn in response to the call to cancel the subscription.
16. The method of claim 15, wherein the call to cancel the subscription is in the form of a text message from the consumer mobile phone at the msisdn.
17. The method of claim 15, wherein the call to cancel the subscription is received via a cancel opt-in API at the billing server from the merchant server.
18. A computer-readable medium having stored thereon a set of instructions which, when executed by a processor of a computer performs a method of managing subscriptions with a billing server comprising:
a) executing an opt-in method with the billing server, including:
receiving a first opt-in request at the billing server including a msisdn;
generating, with the billing server, a PIN code; transmitting, with the billing server, a text message to a consumer mobile phone at the msisdn with the PIN code;
receiving a second opt-in request at the billing server, including a PIN code; verifying, at the billing server, the PIN code received in the second opt-in request against the PIN code transmitted in the text message; and
recording, at the billing server, an opt-in status as active for the msisdn within a data structure if the PIN code is verified; and
b) executing a charge method with the billing server including:
receiving, at the billing server, a charge API call from a merchant server at the billing server, including at least one identifier and an amount;
determining an opt-in status corresponding to the identifier within the data structure at the billing server; and
transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
19. A billing server comprising:
a processor;
a computer-readable medium connected to the processor; and
a set of instructions on the computer-readable medium and executable by the processor, including:
an SMS messaging module; a consumer opt-in management module executing an opt-in method including:
receiving a first opt-in request including a msisdn;
generating a PIN code;
transmitting, using the SMS messaging module, a text message to a consumer mobile phone at the msisdn with the PIN code;
receiving a second opt-in request including a PIN code;
verifying the PIN code received in the second opt-in request against the PIN code transmitted in the text message; and
recording an opt-in status as active within a data structure for the msisdn if the PIN code is verified; and
a carrier billing module executing a charge method including:
receiving a charge API call from a merchant server, including at least one identifier and an amount;
determining an opt-in status corresponding to the identifier in the data structure; and
transmitting a request to charge a user account to a carrier server if the opt-in status is active, but not if the opt-in status is inactive, the request including an amount corresponding to the amount received in the charge API call.
A method of managing subscriptions with a merchant server comprising:
a) executing an opt-in method with the merchant server, including:
receiving a msisdn from a consumer device at the merchant server; transmitting a first opt-in request from the merchant server to a billing server, including the msisdn;
receiving a PIN code from the consumer device;
transmitting a second opt-in request from the merchant server to the billing server, including the PIN code; and
receiving a response from the billing server at the merchant server indicating whether the PIN code is verified or invalid; and
b) executing a charge method with the merchant server including;
transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier; and
receiving a chargeresult callback notification from the billing server at the merchant server indicating whether a user account at a carrier server has been charged by the billing server.
21. The method of claim 20, wherein the first opt-in request includes a subscription- id, the opt-in being recorded as active against the subscription- id.
22. The method of claim 21, wherein the msisdn has a plurality of subscription-id's, each having a separate opt-in parameter that is set in a selectable manner to active or inactive.
23. The method of claim 20, wherein the first opt-in request includes a consumer- id (merchant provided unique consumer identifier), a country (country code in ISO 3166-1- alpha-2 standard), an item-description (the exact quantity and name of the item(s) being purchased. If more than one of an item is being purchased (e.g. "1000 Credits"), the quantity must be included. Overrides the "Product Description". Restrict to 20 characters. Longer strings will be truncated), a merchant-id (billing server assigned merchant identifier value), a msisdn (subscriber mobile phone number in international MSISDN format: country code + mobile phone number), a service-id (merchant offering identifier), a subscription-id
(merchant assigned unique identifier for the consumer subscription) and a subscription- terms (JavaScript Object Notification (JSON) structure. The 'amount' fields should be specified in fractional units. Frequency is an Enum data structure: DAILY, MONTHLY, YEARLY. Duration is an integer value applied to the frequency. The example specifies a 7 day trial, 799 per month, {'trial': { 'amount' :0, 'frequency' :DAILY).
24. The method of claim 23, wherein the second opt-in request includes a consumer-id (merchant provided unique consumer identifier), a country (country code in ISO 3166-1- alpha-2 standard), an item-description (the exact quantity and name of the item(s) being purchased. If more than one of an item is being purchased (e.g. "1000 Credits"), the quantity must be included. Overrides the "Product Description". Restrict to 20 characters. Longer strings will be truncated), a merchant-id (billing server assigned merchant identifier value), a msisdn (subscriber mobile phone number in international MSISDN format: country code + mobile phone number), a service-id (merchant offering identifier), a subscription-id
(merchant assigned unique identifier for the consumer subscription) and a subscription- terms (JavaScript Object Notification (JSON) structure. The 'amount' fields should be specified in fractional units. Frequency is an Enum data structure: DAILY, MONTHLY, YEARLY. Duration is an integer value applied to the frequency. The example specifies a 7 day trial, 799 per month, {'trial': { 'amount' :0, 'frequency' :DAILY).
25. The method of claim 20, wherein the charge API call includes a consumer- id (JSON structure containing optional charge elements such as zip or rrn. i.e. {'zip:94939}), a consumer-ip- address (originating IP address of the consumer; used for risk checks. If it cannot be obtained submit a value of "NOT AVAILABLE'.), a country (country code in ISO 3166-l-alpha-2 standard), currency (ISO 4217 3 letter currency code), an end-merchant-id (billing server assigned merchant identifier for an end merchant submitting transactions via a reseller), an item-description (product disclosure describing the quantity and type of item being purchased, (i.e. "10 credits" not "credits") . Restricted to 20 characters. Longer strings will be truncated), a merchant-id (billing server assigned merchant identifier value), a msisdn (Subscriber mobile phone number in international MSISDN format: country code + mobile phone number), a request-id (unique merchant assigned request ID), a subscription- frequency (frequency of subscription renewal. (DAILY, MONTHLY, YEARLY)), a subscription- id (merchant assigned unique identifier for the consumer subscription, a service-id (merchant offering identifier) and total-amount (total amount charged including tax.).
26. The method of claim 20, wherein the chargeresult callback notification includes a consumer-auth-required (billing server assigned charge identifier (returned if the 'charge' request is successful)), a result-code (the result code for this request) and a result-message (human readable description of the result).
27. The method of claim 20, further comprising:
c) executing a charge-info method with the merchant server before the opt-in method, including:
transmitting a charge-info request from the merchant server to the billing server;
receiving charge elements from the billing server at the merchant server in response to the charge-info request;
transmitting a user interface from the merchant server to a consumer device, the user interface having fields based on the charge elements; and
receiving, at the merchant server, data entered into the fields at the consumer device, the data received being included in the first opt-in request.
28. The method of claim 27, wherein the charge-info request includes a merchant-id (billing server assigned merchant identifier value).
29. The method of claim 28, wherein the charge elements include a country and network.
30. The method of claim 20, further comprising:
c) executing a remind-charge method with the merchant server after the opt-in method and before the charge method, including: transmitting a remind-charge from the merchant server to the billing server.
31. The method of claim 30, wherein the remind-charge request includes a consumer-id (merchant provided unique consumer identifier), a country (country code in ISO 3166-1- alpha-2 standard), an item-description (the exact quantity and name of the item(s) being purchased. If more than one of an item is being purchased (e.g. "1000 Credits"), the quantity must be included. Overrides the "Product Description". Restrict to 20 characters.), a merchant-id (billing server assigned merchant identifier value), a msisdn (subscriber mobile phone number in international MSISDN format: country code + mobile phone number.), renewal-date (start date of next subscription cycle. Format: YYYY-MM-DD), a service-id (merchant offering identifier), a subscription-id (merchant assigned unique identifier for the consumer subscription), and a subscription-terms (JSON structure, {'sub': {'amount': 799, 'frequency' : MONTHLY, 'duration': 1 } }).
32. The method of claim 20, further comprising:
c) executing a cancel method at the merchant server, including:
transmitting a view of a user interface from the merchant server to a consumer device, the view allowing for selection to cancel the subscription;
receiving a call to cancel the subscription via the interface from the consumer device at the merchant server; and
making a cancel-opt-in API call from the merchant server to the billing server to update the opt-in to inactive.
33. A computer-readable medium having stored thereon a set of instructions which, when executed by a processor of a computer performs a method of managing subscriptions with a merchant server comprising:
a) executing an opt-in method with the merchant server, including:
receiving a msisdn from a consumer device at the merchant server;
transmitting a first opt-in request from the merchant server to a billing server, including the msisdn;
receiving a PIN code from the consumer device;
transmitting a second opt-in request from the merchant server to the billing server, including the PIN code; and
receiving a response from the billing server at the merchant server indicating whether the PIN code is verified or invalid; and
b) executing a charge method with the merchant server including;
transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier; and
receiving a chargeresult callback notification from the billing server at the merchant server indicating whether a user account at a carrier server has been charged by the billing server.
A merchant server comprising
a processor; a computer-readable medium connected to the processor; and
a set of instructions on the computer-readable medium and executable by the processor, including:
a user interface transmitted to a consumer device with a msisdn field for entry of a msisdn and receivable by the processor and transmitted to a billing server in a first opt-in request and a PIN code field for entry of a PIN code and receivable by the processor and transmitted to the billing server in a second opt-in request; and
a recurring billing management module executing a charge method including: transmitting a charge API call from the merchant server to the billing server if the PIN code is verified but not if the PIN code is invalid, the charge API call including an amount and an identifier for the billing server to determine an opt-in status corresponding to the identifier; and
receiving a chargeresult call back notification from the billing server at the merchant server indicating whether a user account at a carrier server has been charged by the billing server.
PCT/US2014/031067 2013-03-18 2014-03-18 Merchant managed subscriptions WO2014153350A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016504337A JP6347829B2 (en) 2013-03-18 2014-03-18 Merchant management subscription

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/846,746 2013-03-18
US13/846,746 US9003078B2 (en) 2013-03-18 2013-03-18 Merchant managed subscriptions at a merchant server
US13/846,702 2013-03-18
US13/846,702 US20140279455A1 (en) 2013-03-18 2013-03-18 Merchant managed subscriptions at a billing server

Publications (1)

Publication Number Publication Date
WO2014153350A1 true WO2014153350A1 (en) 2014-09-25

Family

ID=51581491

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2014/031067 WO2014153350A1 (en) 2013-03-18 2014-03-18 Merchant managed subscriptions

Country Status (2)

Country Link
JP (1) JP6347829B2 (en)
WO (1) WO2014153350A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3014557A4 (en) * 2013-06-26 2016-12-21 Boku Inc Phone-on-file

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6830291B1 (en) * 2020-11-24 2021-02-17 株式会社アクリート Message communication method and program

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078274A1 (en) * 1999-12-30 2004-04-22 Ari Aarnio On-line subscription system and method
US20080097851A1 (en) * 2006-10-17 2008-04-24 Vincent Bemmel Method of distributing information via mobile devices and enabling its use at a point of transaction
US20090055266A1 (en) * 2007-05-24 2009-02-26 Brody Edward Subscription promotion and management system and method
US20090069051A1 (en) * 2007-09-12 2009-03-12 Devicefidelity, Inc. Wirelessly accessing broadband services using intelligent covers
US20100217615A1 (en) * 2009-02-24 2010-08-26 Research In Motion Limited Subscription management for a content-based presence service
US20110078077A1 (en) * 2009-09-29 2011-03-31 Boku, Inc. Systems and Methods to Facilitate Online Transactions
US20110217994A1 (en) * 2010-03-03 2011-09-08 Boku, Inc. Systems and Methods to Automate Transactions via Mobile Devices
US20110295750A1 (en) * 2009-02-14 2011-12-01 Net2Text Limited Secure payment and billing method using mobile phone number or account
US20120089521A1 (en) * 2010-01-11 2012-04-12 Abrevaya Adam Method and apparatus for billing purchases from a mobile phone application
US20120157062A1 (en) * 2010-12-16 2012-06-21 Boku, Inc. Systems and Methods to Selectively Authenticate via Mobile Communications

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1235171A1 (en) * 2001-02-21 2002-08-28 Hitachi Europe Limited Performing a purchasing transaction
JP2003123016A (en) * 2001-10-10 2003-04-25 Fix Inc Charging method, charging system, authentication server and program
JP2004139310A (en) * 2002-10-17 2004-05-13 Nec Infrontia Corp Authentication/payment system of payment card
KR20060009814A (en) * 2003-01-24 2006-02-01 임베디드 와이어리스 랩스 에스디엔 비에이치디 System and method for online commerce
JP2007334647A (en) * 2006-06-15 2007-12-27 Ntt Resonant Inc Charge processing server, network system, purchase price processing method and charge processing program

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078274A1 (en) * 1999-12-30 2004-04-22 Ari Aarnio On-line subscription system and method
US20080097851A1 (en) * 2006-10-17 2008-04-24 Vincent Bemmel Method of distributing information via mobile devices and enabling its use at a point of transaction
US20090055266A1 (en) * 2007-05-24 2009-02-26 Brody Edward Subscription promotion and management system and method
US20090069051A1 (en) * 2007-09-12 2009-03-12 Devicefidelity, Inc. Wirelessly accessing broadband services using intelligent covers
US20110295750A1 (en) * 2009-02-14 2011-12-01 Net2Text Limited Secure payment and billing method using mobile phone number or account
US20100217615A1 (en) * 2009-02-24 2010-08-26 Research In Motion Limited Subscription management for a content-based presence service
US20110078077A1 (en) * 2009-09-29 2011-03-31 Boku, Inc. Systems and Methods to Facilitate Online Transactions
US20120089521A1 (en) * 2010-01-11 2012-04-12 Abrevaya Adam Method and apparatus for billing purchases from a mobile phone application
US20110217994A1 (en) * 2010-03-03 2011-09-08 Boku, Inc. Systems and Methods to Automate Transactions via Mobile Devices
US20120157062A1 (en) * 2010-12-16 2012-06-21 Boku, Inc. Systems and Methods to Selectively Authenticate via Mobile Communications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3014557A4 (en) * 2013-06-26 2016-12-21 Boku Inc Phone-on-file

Also Published As

Publication number Publication date
JP6347829B2 (en) 2018-06-27
JP2016519814A (en) 2016-07-07

Similar Documents

Publication Publication Date Title
US10546331B2 (en) Subscription managed method and system for text-to-pay subscriptions at a subscription server
US9633341B2 (en) Silent SMS triggering for mobile billing at a billing server
US9258691B2 (en) Merchant server programmed for user acquisition within a repeat payment computer system
US9003078B2 (en) Merchant managed subscriptions at a merchant server
US10147131B2 (en) Merchant hosted checkout at a merchant server
US20140324696A1 (en) Billing gateway authorize-and-capture method and system
US9569761B2 (en) Text-to-pay for a new subscription
US9224162B2 (en) Billing gateway charge method and system
US20140279455A1 (en) Merchant managed subscriptions at a billing server
US20150127554A1 (en) Merchant managed method and system for text-to-pay subscriptions at a subscription server
WO2014116285A1 (en) Card linked offers
US9582791B2 (en) Phone-on-file at a billing server
US20130232048A1 (en) Transferring credits from a carrier account
US20150127532A1 (en) Text subscription identifier to renew subscription
US9003079B2 (en) API methods for phone-on-file opt-in at a merchant server
WO2013142441A1 (en) Card linking
US20150073880A1 (en) System and method for metered parking at a billing server
US10438183B2 (en) Merchant hosted checkout at a billing server
JP6686088B2 (en) Billing gateway
US9558480B2 (en) Phone-on-file opt-in at a merchant server
WO2014153350A1 (en) Merchant managed subscriptions
US9996827B2 (en) System and method for metered parking at a parking server
JP6907168B2 (en) Registration phone
US9066222B2 (en) Mobile billing operator server programmed for user acquisition within a repeat payment computer system
US20150006371A1 (en) Api methods for phone-on-file opt-in at a billing server

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14768566

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016504337

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14768566

Country of ref document: EP

Kind code of ref document: A1