Developer Spotlight: Reference Health

Developer Spotlight: Reference Health

Empowering health care providers with a secure omnichannel payment platform

Today we are going to share a very inspiring story from John Bona, the co-founder of Reference Health. Reference Health is a platform that enables health care providers to accept payments with Square, directly in their electronic medical record (EMR) or patient portal. John sat with us to tell us about the beginning of his entrepreneurial journey, the business challenges he helped to resolve, and his experience working with the Square developer platform.

John, could you tell us what inspired you to launch Reference Health?

I used to work as a data analyst for a large health system and during my nights and weekends, I built a custom iPad application for patients to easily check into their appointments at a kiosk. However, we soon realized the appointment check-in feature alone was not sufficient and we also needed the app to take secure payments. That’s when I started working with the Square SDKs to take our app to the next level, enabling patients to pay in person, right from an iPad-based kiosk. Thanks to the Square developer platform, patients’ payments were secure and fully integrated with our EMR. The benefits of this integration for patients and hospitals were so impressive that I quickly realized there was an opportunity to grow this into a separate business. So, about two years ago, I decided to found Reference Health. I quit my full-time job and dedicated myself to growing Reference Health with my co-founder.

"The fact that all Square payments are already PCI compliant has been a game-changer for us. Normally, hospitals and clinics invest a lot of their own time, money, and resources to comply with PCI requirements. Square significantly reduces that burden in a way that we have not seen other providers do"

What are some of the key factors that helped you build and grow your business?

The Square developer platform has been a critical element for our success. I am not sure we would have been able to launch Reference Health without the tools and resources Square makes available to developers. First, the fact that all Square payments are already PCI compliant has been a game-changer for us. Normally, hospitals and clinics invest a lot of their own time, money, and resources to comply with PCI requirements. Square significantly reduces that burden in a way that we have not seen other providers do. Second, the automation Square APIs bring to our systems and processes enable us to keep our costs low and price our services more competitively. For example, using App Fees for Terminal API allows us to automatically collect our flat transaction fee from each payment processed, making our billing significantly more scalable and transparent. Third, Square developer documentation makes it easier to test and launch new features our customers will use to run their hospital or clinic. We started with just Terminal API and Web Payments SDK, but then we quickly moved on to using more and more APIs.

John Bona

Could you tell us about your customers and the type of problems you help them to resolve?

One health care specialty that has really benefited from our services is dermatology clinics. We see a lot of health care organizations using separate systems to take patient payments and retail payments. Often their retail systems are not integrated with their EMR which means they need to manually reenter every single payment into their patient’s ledger. Reference Health enables these clinics to take patient payments and retail payments directly from their EMR via Square Terminal. All these transactions are automatically posted and reconciled between the clinics’ billing systems and bank accounts, taking away the need for manual dual-entry. With the introduction of the Square Catalog API and Inventory API, we enable our customers to automatically update their inventory every time they take a payment, no matter whether it is online or in person. This has made a huge difference, especially for those clinics that have tens of thousands of products.

Are there any other APIs that helped you resolve your customers’ business problems?

We use the Gift Cards API to help clinics accept and manage Square Gift Card payments for the products or services they sell. Clinics can swipe a physical gift card on Square Terminal or type in a gift card account number from an eGift card and we post the payment to the EMR. We also recently integrated with the Loyalty API. Many dermatology clinics offer a loyalty program to their patients but have been struggling using a separate system to find their patient’s profile, check if they qualify for a reward, and manually update the patient’s reward balance after taking a payment. The Loyalty API helped us build a loyalty program natively within our application. This means that patients' reward balances are updated automatically, as soon as they make a payment, and any discounts available to them are automatically applied to the transaction creating a much more seamless experience for both front-desk staff and patients.

Group 1

Tell us a little bit more about how you integrate Square APIs into the Reference Health systems.

Our application leverages the Terminal API to enable hospitals and clinics to take in-person card payments via Square Terminal (tap, dip, and swipe) and the Web Payments SDK to take keyed-in transactions. We also utilize the Web Payments SDK to take payments on our online patient payment page and within patient portals. On the back-end we listen to all webhooks coming back from Square, including payments created and updated, and have separate processes for each individual EMR because they all have different ways of posting payments into patients’ records. The first iteration of our application was a Chrome extension because, initially, we focused on web-based EMRs. We realized the easiest way to enable front-desk staff to take payments was to give them a tool incorporated into the browser they already use all the time as part of their day-to-day tasks. But as we added more and more features and started supporting EMRs that use a native Windows application instead of a web browser, we evolved our Chrome extension into a separate desktop application.

As a developer, what are some of the tools and resources you use to run your business?

Square puts multiple resources at our disposal, so it’s easier for us to build compelling solutions for our customers. The Build with Square Slack channel is a resource that we use regularly to connect with the Square developer support team and review threads started by other developers. The Square Developer Forum is also helpful to search certain topics and see how other developers resolved a challenge that we might be experiencing too. The API Explorer is another very useful tool that we leverage to quickly test our HTTP requests using sandbox or production resources in our Square account. Finally, having the opportunity to showcase our Reference Health app on the Square App Marketplace really helped us to gain credibility in the eyes of prospective customers because they know that in order to feature our app there, we had to go through the Square quality assurance process. As a startup, this has been particularly important in order to sign up our first customers when we first launched.

Outside of Square tools, we rely heavily on Amazon Web Services to power our stack, utilizing more of their managed services so we can focus more on building features for the health care organizations we work with today and easily scale up without heavy upfront costs. While we’re just one of many countless teams that have built on top of AWS, all of our backend services are built with Swift (on Linux) and the Vapor framework. We were early adopters of Swift and Vapor while I was at Cleveland Clinic, partially because our team was composed of iOS developers who needed the ability to use a familiar language and be productive building backend services from day one. We continued our use of Swift and Vapor when building Reference Health’s backend services beyond just familiarity — the quick startup time and efficient use of CPU/memory resources permits us to run on smaller instances, reducing our infrastructure costs as we scale while not impacting our services’ response latency.

What recommendations would you give to developers that want to launch a new business?

To those developers who are considering launching their own business leveraging the Square payment APIs, I would recommend not to make the same mistakes we made at the beginning. We initially focused solely on helping customers take in-person payments and we kind of ignored all the other use cases, especially enabling customers to take online payments. The Square APIs can deliver a real omnichannel experience to sellers and buyers, so I would invite other developers to structure their application with an omnichannel approach from the get-go.


We want to give a big thanks to John Bona from Reference Health for taking the time to talk with us about his company and experience building with Square.

Watch our Sandbox 101 videos to learn how you can get started with Terminal API, Web Payments SDK, Loyalty API, and Gift Cards API in your own application. You can also check out our developer documentation. And as always, please share your feedback on our community Slack channel or Square Developer Forums. If you want to keep up to date with the rest of our content, be sure to follow this blog and our Twitter account.

Table Of Contents
View More Articles ›