Sitemap

The Cost of Change: Overcoming Fixed Fees in the Shift to Micropayments

8 min readDec 8, 2024

With the expansion of the global digital market, the importance of micropayments has been on a steady rise. These small transactions cover low-cost online services and content such as articles, music, apps, or in-game items. Traditional payment methods like credit cards often become impractical due to high fees, prompting the question: Is it easy to find cheaper alternatives?

This article explores the shift from subscription models to a pay-as-you-go economy and offer practical tips on how to reduce fees associated with micropayments.

Are subscriptions overrated?

Perhaps. According to , the surge in popularity of subscriptions seems propelled more by companies rather than by consumer demand. Customers opt in when they see a clear financial benefit, or when there is no other alternative. SaaS platforms face an ever increasing expectation of exclusive access to premium offerings, benefits, or discounts when engaging new subscribers.

Customers prefer pay-as-you-go model, but subscription is often either more beneficial for them or they have no other option but to subscribe.

(Source: Deloitte)

Despite the fact that under certain circumstances, subscriptions would be a better choice, a significant portion of consumers prefers a (PAYG) alternative.

Here are some of the compelling reasons for why PAYG works so well:

  • No long-term commitments: Subscriptions usually dictate a commitment to a service for a set period of time. This can be inconvenient, especially considering the upfront costs of purchasing an annual plan.
  • No upfront cost: Prepaid services have a negative impact on the consumer’s budgeting. Whereas with PAYG, the consumer only pays for the immediate use. No prepayment is necessary.
  • No money wasted on unused services: A subscription may include features ore services that the customer doesn’t need or want. Paying for what’s actually useful and nothing else is a huge benefit.
  • Flexibility and controlled budgeting: This is particularly beneficial for those who don’t use the service consistently enough.

The case for micropayments

Beyond flexibility and cost savings, there has been a steady increase in a certain kind of one-off payments.

Micropayments, small transactions often used for digital products, are becoming increasingly significant due to the expansive growth of the digital economy. As businesses and consumers alike migrate online, goods and services you’d normally get in your local store for pennies can now be purchased online as well.

Another factor that makes micropayments a viable option is the evolution of content consumption patterns. With a clear departure from traditional strategies such as subscriptions or advertisements, creators and digital businesses use micropayments as a means to monetise individual pieces of content or services. This plays nicely with the consumers’ preference for PAYG, and it allows for a high degree of personalisation: a stark difference to lump-sum subscription models.

What are the main characteristics and benefits of micropayments?

  • Low transaction value: The transaction value can range anywhere from a few dollars to only a fraction of a cent.
  • Reliance on digital wallets and crypto currencies: To keep the cost low and to ensure quick processing, micro transactions often rely on digital wallets and crypto currencies rather than banking systems.
  • Increased inclusivity and global reach: Micropayments are accessible to wider audiences across the globe, including those who may not have the means for larger purchases.
  • Personal needs first: Consumers enjoy a better control over their spendings, while businesses are able to provide highly personalised service offerings.

How to accommodate these transactions of minimal value efficiently?

Fees and extra charges that might be acceptable when purchasing an annual subscription for a hefty amount can easily become a showstopper for transactions worth a few dollars or less.

It’s not just banks. Payment processors want their cut too!

Credit card transactions incur fees that might be too steep for small payments. Digital wallets to the rescue? Well, it depends on who do you run the transaction with.

Stripe, for example, charges 2.9% of the transaction amount plus a fixed fee of $0.30 (varies per country). This standard rate applies to both credit and debit cards, including payments through wallets like Apple Pay, Google Pay, or Alipay. ()

PayPal’s fees for online transactions are even pricier. As of now, PayPal digital payment rates are 3.49% plus $0.49. This includes services such as PayPal Checkout, Venmo, PayPal Credit, and others. For debit and credit transactions the percentage cut drops to 2.99%, but the fixed fee remains the same. ()

Wise, formerly known as TransferWire, operates somewhat differently, as its focus is primarily on international money transfers. However, the fees follow a similar pattern. Depending on the currency and the destination country, Wise typically charges a percentage of the transfer amount plus a small fixed fee. ()

Are micropayments exempt from standard fees?

Well, as a merchant you have to make an effort.

Stripe applies standard fees to low-value transactions. This might be a blocker!

Trying to avoid the processor fees by directly dealing with a bank doesn’t help either.

This hardly comes as a surprise.

Both Stripe and PayPal allow merchants to apply for lower transaction fees with a special consideration to micropayments. I haven’t personally gone down this route, but the PayPal’s option seems more straightforward.

PayPal offers so called where they automatically apply a lower fee if the paid amount is low enough. This is a subject of an explicit approval by PayPal, but once you’re in you should be good to go. of relative and fixed fees for micropayments.

Stripe, on the other hand, only provides a fairly vague . Someone followed it through and shared their experience on .

Stripe seems to be less willing to give up on their standard fees.

Workarounds?

If you’re using PayPal or Stripe for payment processing and your business doesn’t have a special deal, then you are really looking at workarounds.

An obvious solution in this situation is to pile up small payments and wait until they accumulate to a larger sum. This helps you avoid a fixed fee paid individually for each item.

How does it work in practice? Let me use Stripe as an example.

One option is to sign up your customers to a monthly free plan and create an invoice item for each transaction. The key here is to keep adding invoice items, as opposed to individual invoices! Stripe will automatically create and send an invoice at the end of the billing period.

Alternatively, you can keep track of micropayments on your end and only process the payment with Stripe once it makes sense financially. This gives you more flexibility, since you aren’t tied to a fixed billing cycle. On the other hand, it might be more challenging to implement.

I personally think that pursuing a custom solution is worth a try. It gives you flexibility to process payments at will — e.g. when individual transactions accrue to a certain amount, or when a time period has elapsed (not necessarily a whole billing cycle).

PayPal is somewhat less flexible, as it only allows you to submit an invoice. There are limitations that might prevent you from adding all of the individual payments.

Let me conclude with a few code examples to get you started.

Code examples

Let’s take a look at how to create charges and submit them when they accumulate. I will use Stripe’s JavaScript SDK for clarity.

Creating an invoice item with Stripe relies on a reference to the customer and the underlying price you’re charging for. No other details are necessary, which makes for a quick and convenient implementation.

const stripe = require('stripe')('sk_test_RXHltS2OKzISvxWQ7NmRN57i001oa6x7o4');

const invoiceItem = await stripe.invoiceItems.create({
customer: 'cus_NeZei8imSbMVvi',
price: 'price_1MtGUsLkdIwHu7ix1be5Ljaj',
});

// Source: Stripe docs

When the time is right, issue an invoice and instruct Stripe to collect the payment.


const invoice = await stripe.invoices.create({
customer: 'cus_NeZei8imSbMVvi',
});

const paidInvoice = await stripe.invoices.pay(invoice.id)

// The payment might fail. Don't forget to handle it.

PayPal isn’t as flexible. Unlike Stripe, it doesn’t support adding invoice items over a period of time. When it comes to keeping track of micropayments, you’re on your own.

Once you’re ready, you use the REST API to ..

var fetch = require('node-fetch');

val response = fetch('http://api-m.sandbox.paypal.com/v2/invoicing/invoices', {
method: 'POST',
headers: {
'Authorization': 'Bearer zekwhYgsYYI0zDg0p_Nf5v78VelCfYR0',
'Content-Type': 'application/json',
'Prefer': 'return=representation'
},
body: JSON.stringify({ "detail": { "invoice_number": "#123", "reference": "deal-ref", "invoice_date": "2018-11-12", "currency_code": "USD", "note": "Thank you for your business.", "term": "No refunds after 30 days.", "memo": "This is a long contract", "payment_term": { "term_type": "NET_10", "due_date": "2018-11-22" } }, "invoicer": { "name": { "given_name": "David", "surname": "Larusso" }, "address": { "address_line_1": "1234 First Street", "address_line_2": "337673 Hillside Court", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" }, "email_address": "[email protected]", "phones": [ { "country_code": "001", "national_number": "4085551234", "phone_type": "MOBILE" } ], "website": "www.test.com", "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy- Jb5SeuGj185MNNw6g", "logo_url": "http://example.com/logo.PNG", "additional_notes": "2-4" }, "primary_recipients": [ { "billing_info": { "name": { "given_name": "Stephanie", "surname": "Meyers" }, "address": { "address_line_1": "1234 Main Street", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" }, "email_address": "[email protected]", "phones": [ { "country_code": "001", "national_number": "4884551234", "phone_type": "HOME" } ], "additional_info_value": "add-info" }, "shipping_info": { "name": { "given_name": "Stephanie", "surname": "Meyers" }, "address": { "address_line_1": "1234 Main Street", "admin_area_2": "Anytown", "admin_area_1": "CA", "postal_code": "98765", "country_code": "US" } } } ], "items": [ { "name": "Yoga Mat", "description": "Elastic mat to practice yoga.", "quantity": "1", "unit_amount": { "currency_code": "USD", "value": "50.00" }, "tax": { "name": "Sales Tax", "percent": "7.25" }, "discount": { "percent": "5" }, "unit_of_measure": "QUANTITY" }, { "name": "Yoga t-shirt", "quantity": "1", "unit_amount": { "currency_code": "USD", "value": "10.00" }, "tax": { "name": "Sales Tax", "percent": "7.25", "tax_note": "Reduced tax rate" }, "discount": { "amount": { "currency_code": "USD", "value": "5.00" } }, "unit_of_measure": "QUANTITY" } ], "configuration": { "partial_payment": { "allow_partial_payment": true, "minimum_amount_due": { "currency_code": "USD", "value": "20.00" } }, "allow_tip": true, "tax_calculated_after_discount": true, "tax_inclusive": false, "template_id": "TEMP-19V05281TU309413B" }, "amount": { "breakdown": { "custom": { "label": "Packing Charges", "amount": { "currency_code": "USD", "value": "10.00" } }, "shipping": { "amount": { "currency_code": "USD", "value": "10.00" }, "tax": { "name": "Sales Tax", "percent": "7.25" } }, "discount": { "invoice_discount": { "percent": "5" } } } } })
});

// The request might fail. Don't forget to handle it.

val invoice = response.json();

// Source: PayPal docs

.. and .


fetch(`http://api-m.sandbox.paypal.com/v2/invoicing/invoices/${invoice.id}/send`, {
method: 'POST',
headers: {
'Authorization': 'Bearer zekwhYgsYYI0zDg0p_Nf5v78VelCfYR0',
'Content-Type': 'application/json',
'PayPal-Request-Id': 'b1d1f06c7246c'
},
body: JSON.stringify({ "send_to_invoicer": true })
});

Summary

Micropayments enable new business opportunities but their adoption doesn’t come with additional hurdles and challenges. Overcoming traditional fee structure is certainly not easy, and it might require creativity and investment in alternative payment methods.

Tomas Zezula
Tomas Zezula

Written by Tomas Zezula

Software engineer with an itch for payment automation and Fintech. Learning by doing.

No responses yet