How I launched a Point of Sale App within 14 days (and why this is still too long)

Online payments have become pretty simple for developers. I love providers such as Stripe, Braintree, and Paymill.

However, I think it’s yet a well-kept secret that integrating Point of Sale payments (that is payments with physical cards) is becoming a lot easier as well.

I’m a software engineer at payworks, a company whose vision is to make Point of Sale payments for developers as simple as online payments already are.

“Eat your own dogfood”, they say, and so I set out to launch my own Point of Sale App. It took me 2 day of coding, and 14 days in total until I was launching and processing live credit cards.

The PITA: Collecting payments for our small “office shop”

We have a small ‘office shop’ at payworks. Well, calling it a shop is too much already: it’s more a jar. You would put in 1€, and you could take a drink, either a Club Mate or Spezi.

For everyone, this was a big hassle:

  • You would have to actually bring a coin, or you would have to remember that you took a drink and bring a coin later.
  • We did not know when to order new drinks.
  • Once new drinks would be delivered and had to be paid, it was usual that some cash was missing. (“WHO DIDN’T PAY?”)
Yes, that red thing is a ‘Pfandmarke’.

It was time for a solution worthy of 2015.

The payworks Drinks App

I put together a simple app that lists our co-workers. You can register a drink by selecting your name, and then the drink.

Adding a drink

This is what the developer kit looks like.

Unboxing the developer kit

I chose to use the Miura Shuttle, but the SDK allows you to use different card readers without any code changes (here is a list of supported readers).

At the same time I applied for live processing credentials. To accept payments, I had to sign a so-called “acquiring contract”, which allowed me to send the payments to payworks’ bank account. It took me a couple of days, because there was no pre-packaged deal and I had to negotiate the processing fees. (Update: we now have a pre-packaged deal for developers, see below.)

After two weeks, I had the reader and the live credentials.

Traction

I think it’s pretty cool how the drinks app has been adopted at the office — in the meantime, I also added cereals and snack bars to the offerings. The payouts go directly to our bank account, with transaction fees of 2.75% for credit (MasterCard, Visa) and 0.95% for debit (Maestro, VPAY).

Why this is still too long (and what we’re doing about it)

In total, it took me 14 days to go live. Out of that, coding was 2 days. The other 12 days was waiting for the card reader, and getting the acquiring contract.

This is still too long. It’s possible to launch a full-blown online shop with payments in under 24 hours. Braintree even allows signing up with just an email address and process payments instantly.

We believe it should be possible to launch an app with live credit card processing at a Hackathon.

Improvements

To get there, we’ve been working on three things:

  • The Pay Button, which is currently in Beta. This is similar to Stripe’s premade Checkout form — a full UI that you can just drop into your app.
  • Developer Pricing, which is already public and available. It allows you to get started quickly with competitive rates and a volume-based margin.
  • Automated Merchant Boarding, which we are working on right now.

Update: Meanwhile, a lot has improved. Check it out!