Profiting from your app

Creating Web Apps is not only fun; it's also a great way to turn your passion into revenue! This article introduces the topic of app payments, looking at how the different types of payments are implemented (both paying for apps and in-app purchases), and how the actual transactions are handled in different countries.

The Firefox Marketplace is an outstanding marketplace for Web app developers, supporting both paid and free apps, in-app purchasing, a variety of device platform apps, and more. The Firefox Marketplace provides competitive pricing and offers consumers a variety of payment methods. Payments are processed by a payment provider who can charge the app directly to a user's mobile phone account or to a credit card.

Note: The payments section of the Marketplace FAQ provides a lot of answers to common questions about Marketplace payments.

Creating paid apps

It is up to you whether you want to make your app free or charge money for it, and the process of submitting your app to the Firefox Marketplace is very similar for both. The Firefox Marketplace currently supports two app payment models:

  • Paid or freemium apps (users must pay before installing the app)
  • Recurring subscriptions (planned)

When the app is a paid app, you just need to select a different option and choose a price for it, which the user will then be charged at the time of download. Bear in mind that currently only the Firefox OS distribution option supports paid apps, because they need to be properly installed and verified by the Marketplace. Read our App payments guide for more information on what's required in the code when building paid apps.

If you charge for your app on the Marketplace, the buyer will receive a digital receipt after paying for it. It is the responsibility of you and your app to verify this receipt, making sure the app is paid for properly. Usually this is done when the app starts; you can find out how to do this in Validating a receipt.

Mozilla strongly encourages developers to provide users with a way to preview the functionality of an app before requiring payment. This can be accomplished by offering free and paid versions of the same app or by utilizing in-app payments.

In-app payments

In-app payments (users making payments from within the app) are a flexible way to charge for a variety of digital goods and services from within an app. They provide another way to monetize your app with the added bonus of enhancing an existing app instead of requiring the user to purchase a new one.

For example, in-app payments can be used to:

  • sell special abilities, items, or upgrades in a game.
  • upgrade or unlock additional app features.
  • implement a time-based free trial.
  • replenish a virtual currency or credits within an app.

Mozilla's in-app payment model works very similarly to Google's In-Apps Payments system. The Firefox Marketplace system is as follows:

  • The app initiates a payment by signing a JWT request and calling a JavaScript function.
  • This starts the buyflow in a lightbox (served from an <iframe>), in which:
    • The buyer logs in with Mozilla Persona.
    • The buyer completes the purchase.
  • The app receives a JavaScript callback when the buyer closes the window
  • The app server receives a signed POST request with a Mozilla transaction ID indicating that the purchase was completed successfully.

The Firefox Marketplace provides a JavaScript utility library to aid in this process.

"Freemium" apps

Mozilla also supports developers who wish to release a free version of their paid app with reduced functionality allowing users to preview the app. To facilitate this "freemium" model, a free and paid app can be linked together, allowing the developer to pitch the features of the paid upgrade in an "upsell" block on the free app's details page.

Refunds

Refunds may be authorized by Mozilla, the payment processor, or the mobile network operator if a user requests a refund. These refunds will be authorized according to our refund policy in compliance with local consumer laws, the mobile operator's refund policy, and credit card refund policies. In-app purchases are not refundable through Mozilla.

If an app purchase is refunded, its receipt is invalidated. Therefore, developers should always validate receipts to ensure proper licensing of any instance of an app. Apps that receive an abnormal volume of refund requests may be investigated by Mozilla.

Note: Our In-App Payments guide provides a wealth of information on how in-app payments work and sample code for implementation. Keep this reference handy as the in-app payment process is currently in an experimental state.

Note: While we encourage apps using in-app payments to be free for download, it's possible to have a paid app that also uses in-app payments.

Pricing and handing payments

It is all well and good using the right code in your apps, and verifying apps through the Marketplace, but you might be wondering how those payments are actually handled across different regions around the world.

Each app listed in the Firefox Marketplace are sold by the payment provider, who is the merchant of record and is responsible for processing the transaction, collecting sales taxes and value added taxes (VAT), ensuring compliance with local consumer regulations, disbursing funds, processing refunds, and performing other duties of a merchant. Mozilla is providing the venue where the buyers (app users) and sellers (app developers) come together, but it is not a party to the transactions. Bango is the payment provider for Firefox Marketplace.

A payment processor handles the transaction between the buyer (app user) and seller (app developer), including matters such as credit card processing. Payment processors typically charge a fee for each transaction for providing this service. Developers need to create an account with each payment processor through the Firefox Marketplace Developer Hub.

In order to support the operation of the Firefox Marketplace, improve our apps platform, and advance our mission, Mozilla and its partners take a share of each transaction and pays the entire transaction fee out of its share. Currently, developers keep 70% of each app purchase or in-app purchase that uses the Marketplace (after VAT and fees, which are included in the end user price). Mozilla and its partners receive 30%.

The Firefox Marketplace aims to support as many countries, languages, and currencies as possible. We would like to be able to support a localized version of the Marketplace and allow payments to be made to and from each country.

Find out more:

  • Our App Pricing guide contains more information on what price points are used, and how the pricing works with regards to credit cards, taxes, etc.
  • Payments status looks at what countries currently have app payments available in them, what exchange rate is used, and what else you need to be aware of in each region.

Document Tags and Contributors

Last updated by: Designer-Slash-Developer,