Blog

Follow Stripe on Twitter

Photo of Ryan Orbuch

A new and improved onboarding flow for Express accounts

Ryan Orbuch on June 24, 2019

Platforms and marketplaces like RVshare, Lugg, and Qwick use Stripe Connect to onboard and pay their owners, movers, and hospitality professionals. Building a great experience for these people and businesses is key to a platform’s success, and we’ve consistently heard that user onboarding is one of the most difficult challenges platforms face. Based on user feedback and analysis of thousands of Express accounts, we made a number of updates to the Connect onboarding flow that drove a 5.3% average increase in conversion rates.

“With Express, signing up to get paid is really easy for our professionals. The new UI helped us increase onboarding conversion by 17% and improved the overall user experience.”
— Trevor Baker, Director of Product, Qwick

Design improvements

It’s now easier for a platform’s users to fill out the onboarding form. A new progress bar shows users where they are in the process, and bigger form fields make it easier to enter their information on mobile devices. The platform’s brand is also much more visible in the form.

The new, improved Connect onboarding flow for Express accounts on desktop and mobile.

Better user guidance

When a user enters invalid information, they’ll get immediate feedback as they fill out the form. Improvements to field validation help ensure that users submit valid information, while keeping the form user-friendly.

When a user enters invalid information (like an invalid address), they’re prompted to update their information.
When a user enters invalid information (like an invalid address), they’re prompted to update their information.

Accessibility upgrades

To provide the best experience for all users, including people who are blind or have low vision or motor impairments, we built the new onboarding flow and reporting dashboard for Express accounts to follow Web Content Accessibility Guidelines. Implementing the latest standards in semantic HTML, labeling controls, keyboard navigation, and focus management helps users onboard and manage their payouts with a keyboard and screen reader, without compromising functionality.

Users can enter information and navigate rich menus with a keyboard and screen reader.
Comprehensive labels and semantic HTML make our interfaces accessible to people who are blind or have low vision.
Comprehensive labels and semantic HTML make our interfaces accessible to people who are blind or have low vision.

Localized flows

Creating a UI that’s tailored to your users’ preferred language and region makes your platform feel like a local business. The onboarding flow has been rebuilt to dynamically update whenever local requirements, laws, or regulations change across the world. This helps platforms quickly expand to new markets outside the US, without having to build new onboarding flows or worry about ongoing maintenance costs or compliance. Express accounts are currently available in the US and Canada, and we’re working on bringing them to more countries soon.

To onboard a French-speaking user in Canada, you'd need to localize the form to handle changes in field structure and validation, business entity types, and compliance requirements (e.g., in Canada, you can’t require collection of a Social Insurance Number). The Connect onboarding flow for Express accounts handles all of these considerations.
To onboard a French-speaking user in Canada, you'd need to localize the form to handle changes in field structure and validation, business entity types, and compliance requirements (e.g., in Canada, you can’t require collection of a Social Insurance Number). The Connect onboarding flow for Express accounts handles all of these considerations.

These are the first of many improvements we’re making to the Connect onboarding flow to improve conversion and help platforms save time, money, and development resources. To try the new onboarding flow for Express accounts, check out the demo, or read the docs.

June 24, 2019

Photo of Devesh Senapati

Stripe Terminal is now generally available in the US

Devesh Senapati on June 11, 2019

Today we’re excited to make Stripe Terminal available to all users in the US. Terminal is a set of SDKs, APIs, and pre-certified card readers that lets you extend your Stripe integration to accept in-person payments.

Businesses of all types are already using Stripe Terminal to build their in-person payment experiences. Online-first retailers like Warby Parker are using Terminal to build a fully customized in-person checkout. Housecall Pro—a software platform that helps more than 50,000 home service professionals run their businesses—now lets its users manage online bookings and accept in-person payments with Stripe all from one app.

“We created a rich customer experience within our app to accept in-person payments, and it only took us a week of development time.”
— Troy Payne, Head of Engineering at Squire

Unify your payments stack

While we mostly focus on internet businesses, 90% of consumer spending still takes place in person. Businesses that operate both online and in person can find it challenging to create a consistent experience and track customers across channels. Stripe Terminal works seamlessly with your existing Stripe integration to create a single view of customers and sales across channels, which makes reporting and reconciliation easier.

“Terminal eliminated the need to manually record payments, saving us more than two hours each day.”
— Jame Mackson, Lead Engineer at The Wedding Shoppe Inc.

In-person payments, made for developers

With the JavaScript, iOS, and Android SDKs, you can integrate Stripe Terminal into your web, iOS, or Android app in a few days. You can customize every user-facing aspect of your point of sale, including the reader screen. And since Terminal is designed to work with your existing Stripe integration, you can set up in-person payments for subscription businesses using Stripe Billing, or for platforms and marketplaces using Stripe Connect.

Customized splash screens on Stripe Terminal readers
Customized splash screens on Stripe Terminal readers

Built for SaaS platforms and marketplaces

If you’re doing a wide deployment of in-person payments to third parties, Stripe Terminal is for you. Terminal helps Connect platforms extend their reach by letting connected accounts accept in-person payments from within their platform. Your platform’s users can receive a unified payout for payments accepted online or in person. You can manage your entire fleet of readers and can ship them directly to your connected accounts using your Stripe Dashboard.

“It took us two weeks to integrate Terminal and start offering it to 1,500 of our Pros. They’re now saving money on in-person payments, saving time with automated reconciliation, and getting their money fast with Instant Payouts.”
— Sean Devlin, Senior Director of Special Projects at Housecall Pro

Getting started with Stripe Terminal

Any Stripe user in the US can now start integrating Terminal in three steps:

  1. Build your mobile or web app interface for in-person sales
  2. Integrate the Terminal SDK to create a connection between your app and the card reader
  3. Pair the Stripe card reader with the SDK and take your first in-person payment

We currently support two types of card readers. You can explore which one is right for your business in the docs or get started by ordering from the Dashboard.

We’re still actively working on Terminal and have plenty of improvements in the works. If you have any feedback or questions, we’d love to hear from you. If you’re outside the US, you can get notified when Terminal is available in your country.

June 11, 2019

Photo of John Collison

Stripe Sessions

John Collison on June 10, 2019

One of our favorite things about working at Stripe is that we serve some of the most demanding customers: high-growth, technology businesses, rapidly expanding around the world, inventing new business models along the way. In some ways, that makes our job harder—it’s tough to stay ahead! But in other ways it makes things a lot simpler. As we think about the next few years of Stripe’s development, we don’t have to overcomplicate things. We can set our roadmap directly based on what we hear from our users.

That’s why we started hosting Stripe Sessions a few years ago. It’s an annual event to get together with our users, show them what’s new about Stripe, and hear their feedback. There are always dozens of engineers, product managers, domain experts, and all sorts of other folks from around Stripe there.

Last year was a record year: over a thousand people came to one of our Sessions events in San Francisco, New York, Paris, and London. In between demos and product announcements, we heard from the likes of Airbnb, Shopify, Xero, and Remitly; we received thousands of comment cards; and we asked Stewart Butterfield the tough questions.

This year, we’re excited to more than double the size of Sessions and hear from speakers like Nat Friedman, CEO of GitHub. But we also want to make sure it’s always a gathering that lets everyone spend meaningful time together. To that end, we’ll be capping attendance at 1,200 for our main event in San Francisco this year, with additional events to follow in Asia and Europe in the fall.

Registration opens today. We’ll be announcing this year’s speaker line-up over the next few weeks. If you want to join us in San Francisco, please register soon.

I hope to see you on September 10.

Join us in San Francisco on September 10 Register now

June 10, 2019

Photo of Jeff Jo

The secret life of DNS packets: investigating complex networks

Jeff Jo on May 21, 2019 in Engineering

DNS is a critical piece of infrastructure used to facilitate communication across networks. It’s often described as a phonebook: in its most basic form, DNS provides a way to look up a host’s address by an easy-to-remember name. For example, looking up the domain name stripe.com will direct clients to the IP address 53.187.159.182, where one of Stripe’s servers is located. Before any communication can take place, one of the first things a host must do is query a DNS server for the address of the destination host. Since these lookups are a prerequisite for communication, maintaining a reliable DNS service is extremely important. DNS issues can quickly lead to crippling, widespread outages, and you could find yourself in a real bind.

It’s important to establish good observability practices for these systems so when things go wrong, you can clearly understand how they’re failing and act quickly to minimize any impact. Well-instrumented systems provide visibility into how they operate; establishing a monitoring system and gathering robust metrics are both essential to effectively respond to incidents. This is critical for post-incident analysis when you’re trying to understand the root cause and prevent recurrences in the future.

In this post, I’ll describe how we monitor our DNS systems and how we used an array of tools to investigate and fix an unexpected spike in DNS errors that we encountered recently.

Read more

May 21, 2019

Photo of Rob Story

Railyard: how we rapidly train machine learning models with Kubernetes

Rob Story on May 7, 2019 in Engineering

Stripe uses machine learning to respond to our users’ complex, real-world problems. Machine learning powers Radar to block fraud, and Billing to retry failed charges on the network. Stripe serves millions of businesses around the world, and our machine learning infrastructure scores hundreds of millions of predictions across many machine learning models. These models are powered by billions of data points, with hundreds of new models being trained each day. Over time, the volume, quality of data, and number of signals have grown enormously as our models continuously improve in performance.

Running infrastructure at this scale poses a very practical data science and ML problem: how do we give every team the tools they need to train their models without requiring them to operate their own infrastructure? Our teams also need a stable and fast ML pipeline to continuously update and train new models as they respond to a rapidly changing world. To solve this, we built Railyard, an API and job manager for training these models in a scalable and maintainable way. It’s powered by Kubernetes, a platform we’ve been working with since late 2017. Railyard enables our teams to independently train their models on a daily basis with a centrally managed ML service.

In many ways, we’ve built Railyard to mirror our approach to products for Stripe’s users: we want teams to focus on their core work training and developing machine learning models rather than operating infrastructure. In this post, we’ll discuss Railyard and best practices for operating machine learning infrastructure we’ve discovered while building this system.

Read more

May 7, 2019

Photo of David Singleton

Stripe’s fifth engineering hub is Remote

David Singleton on May 2, 2019

Stripe has engineering hubs in San Francisco, Seattle, Dublin, and Singapore. We are establishing a fifth hub that is less traditional but no less important: Remote. We are doing this to situate product development closer to our customers, improve our ability to tap the 99.74% of talented engineers living outside the metro areas of our first four hubs, and further our mission of increasing the GDP of the internet.

Stripe will hire over a hundred remote engineers this year. They will be deployed across every major engineering workstream at Stripe.

Our users are everywhere. We have to be, too.

Our remotes keep us close to our customers, which is key to building great products. They are deeply embedded in the rhythms of their cities. They see how people purchase food differently in bodegas, konbini, and darshinis. They know why it is important to engineer robustness in the face of slow, unreliable internet connections. They have worked in and run businesses that don’t have access to global payments infrastructure.

Stripe has had hundreds of extremely high-impact remote employees since inception. Historically, they’ve reported into teams based in one of our hubs. We had a strong preference for managers to be located in-office and for teams to be office-centric, to maximize face-to-face bandwidth when doing creative work.

As we have grown as a company, we have learned some things.

One is that the technological substrate of collaboration has gotten shockingly good over the last decade. Most engineering work at Stripe happens in conversations between engineers, quiet thinking, and turning those thoughts into artifacts. Of these, thinking is the only one that doesn’t primarily happen online.

There was a time when writing on a whiteboard had substantially higher bandwidth than a Word doc over email. Thankfully Google Docs, Slack, git, Zoom, and the like deliver high-bandwidth synchronous collaboration on creative work. The experience of using them is so remarkably good that we only notice it when something is broken. Since you write code via pull requests and not whiteboards, your reviewer needs to have access to the same PR; having access to the same whiteboard is strictly optional.

While we did not initially plan to make hiring remotes a huge part of our engineering efforts, our remote employees have outperformed all expectations. Foundational elements of the Stripe technology stack, our products, our business, and our culture were contributed by remotes. We would be a greatly diminished company without them.

Stripe’s new remote engineering hub

We have seen such promising results from our remote engineers that we are greatly increasing our investment in remote engineering.

We are formalizing our Remote engineering hub. It is coequal with our physical hubs, and will benefit from some of our experience in scaling engineering organizations. For example, there will be dedicated engineering teams in the Remote hub that exist in no other hub. (Some individuals report to a team located in a different hub, and we expect this will remain common, but the bulk of high-bandwidth coworker relationships are within-hub.) We also have a remote engineering lead, analogous to the site leads we have for our physical hubs.

We are expanding the scope we will hire for remotely. In addition to hiring engineers, we plan to begin hiring remote product managers, engineering managers, and technical program managers later this year. (We will continue hiring remote employees in non-engineering positions across the company as well.)

We intend to expand our remote engineering hiring aggressively. We will hire at least a hundred remote engineers this year. We expect to be constrained primarily by our capacity to onboard and support new remote engineers, and we will work to increase that capacity.

We will continue to improve the experience of being a remote. We have carefully tracked the experience of our remote employees, including in our twice-annual employee survey. Most recently, 73% of engineers at Stripe believe we do a good job of integrating remote employees.

Great user experiences are made in the tiny details. We care about the details to a degree that is borderline obsessive. A recent example: we wrote code to attach a videoconferencing link to every calendar invitation by default, so that remotes never feel awkward having to ask for one.

More to come

There are still some constraints on our ambitions. In our first phase, we will be focused primarily on remote engineers in North America, starting with the US and Canada. While we are confident that great work is possible within close time zones, we don’t yet have structures to give remotes a reliably good experience working across large time zone differences. And though we intend to hire remote engineers in Europe and Asia eventually, our hubs in Dublin and Singapore are not sufficiently established to support remotes just yet.

Most engineers working at Stripe are full-time employees, with a full benefits suite. There is substantial organizational, legal, and financial infrastructure required to support each new jurisdiction we hire in, so we have to be measured in how quickly we expand. We can support most US states today, and plan to expand our hiring capabilities to include jurisdictions covering more than 90% of the US population as quickly as possible. We intend, over the longer term, to be everywhere our customers are.

We will continue encouraging governments worldwide to lower barriers to hiring. Our customers, from startups to international conglomerates, all feel the pain of this. We think making it easier for companies to hire would produce a step-function increase in global GDP.

We want to talk to you

We would love to talk about our Remote hub or remote positions at Stripe. Our CEO and co-founder, Patrick Collison, and I will host a remote coffee on May 22, 2019; sign up to be invited to it. We are also, and always, available on the internet.

May 2, 2019

Photo of Tara Seshan

SCA, invoicing, and tax tools for Stripe Billing

Tara Seshan on April 25, 2019

Since our launch last April, we’ve seen a wide range of businesses use Stripe Billing to manage their recurring revenue and send invoices, including European businesses like Deliveroo, Front, Channel 4, Shadow, and Typeform. Today, we’re launching new features for Stripe Billing to help recurring revenue businesses in Europe expand internationally and minimise the impact of upcoming Strong Customer Authentication (SCA) regulatory requirements.

Minimise churn with SCA-ready tools

SCA requirements go into effect in September 2019 and will require additional authentication for many European online payments. This will be particularly challenging for recurring revenue businesses because most subscription payments are processed automatically using stored payment information. When these payments require SCA, businesses will need to contact their subscribers and ask them to provide two-factor authentication (i.e. they may need to enter a password or verify the payment on their phone). Banks will begin to decline payments that have not collected this additional authentication when it’s required.

Stripe Billing makes meeting these new requirements easier in a few ways:

  • If a recurring charge requires SCA, Stripe Billing can now email subscribers automatically with a link to complete two-factor authentication via 3D Secure 2. These emails can be customised to match your brand. (Soon, you’ll also be able to send them from your own domain.)
  • For invoice payments that require SCA, Stripe Billing’s hosted invoice page will now prompt cardholders for two-factor authentication automatically—no changes required by your business

Under the hood, these new features take advantage of Stripe’s new Payment Intents API, which allows us to automatically apply any SCA exemptions available for a given payment. Our goal is to help you comply with SCA requirements while minimising the number of charges requiring additional authentication.

Send customised and compliant invoices in multiple languages

When scaling internationally, it can be challenging for recurring revenue businesses to comply with local accounting rules and meet global customer expectations. These challenges are much more complicated for B2B businesses that sign custom pricing deals and send invoices for manual payment. To help make international invoicing easier, we’ve made our invoices much more flexible:

  • In addition to matching the logo and colour scheme of the invoice to your brand, Stripe Billing now lets you add memos, footers, and custom fields to your invoices.
  • Sequential and unique invoice numbers can be customised with a customer prefix.
  • Credit notes can be issued to refund an invoice or reduce the amount owed.
  • Invoices can now be sent in 13 different languages: French, German, Spanish, Italian, Dutch, Danish, Swedish, Finnish, Norwegian, Hebrew, Arabic, and Japanese, as well as English.
PDF and hosted invoices in French
PDF and hosted invoices in French

Collect and report on VAT without leaving the Dashboard

We’ve added a new tax rates feature to help businesses collect the right amount of tax and remit it to the government.

You can now create inclusive or exclusive tax rates for VAT, GST, and US sales tax for different jurisdictions. These tax rates can then be applied to individual invoice line items, invoice subtotals, or all of the invoices for a subscription. Invoices can also now display the customer’s tax ID and Stripe Billing now automatically validates EU VAT numbers to make sure they are correct. As you’d expect, CSV reports detailing which tax rates were applied and how much tax was collected can be downloaded from the Dashboard.

To get started with Stripe Billing, visit the quickstart guide—you can use all of these new features either from the Dashboard or via the API. If you’re already using Stripe Billing and want to learn more about updating your integration to be SCA-ready, we’ve put together a short migration guide.

We’ll continue to add more features to Stripe Billing to help you manage the complexity of running a global business.

Please let us know if you have any questions or feedback—we’d love to hear from you.

April 25, 2019