Blog

Follow Stripe on Twitter

Schedule queries in Stripe Sigma

Mikito Takada on October 18, 2017

Stripe Sigma helps you analyze your Stripe data with industry-standard SQL, making it easier to get powerful real-time insights into your business data. Today, we’re adding a couple more useful features in response to requests we’ve heard.

Scheduled queries

First, we’re adding scheduled queries. With scheduled queries, you can now turn any Sigma query into a daily, weekly, or monthly report. We’ll automatically run any Sigma query you choose and email you the results. (And, as with other Stripe events, scheduled queries will automatically fire a webhook in case you’d like to take programmatic action.)

You can set up scheduled queries to automatically share results with specific team members on your Stripe account. For example, you can send:

  • A list of high-value signups to a sales manager.
  • Monthly balance reports to your accounting team.
  • A report of subscriptions expiring in the next week to your account management team.

You can set up a schedule for an existing query or write a new one.

Declines analysis

Second, you can now write queries in Sigma to analyze declines using detailed data about whether a charge succeeded or failed and why. If you use Stripe Radar, risk scores and rule data are also available to query. We’ve added a few new example templates to Sigma to help. For example, you might use this feature to find why credit cards are getting declined:

Month Outcome reason Issuer decline count
2017-09 do_not_honor 2
2017-09 insufficient_funds 9
2017-08 transaction_not_allowed 1
2017-08 generic_decline 3

We hope these features make Sigma more useful for you. If you have any feedback or questions, let us know!

Start a free trial of Stripe Sigma for your business. Request access

October 18, 2017

New security features for your Stripe account

Aaron Forsander on September 13, 2017

Today, we’re launching two additional features to improve the security of your Stripe account: an option to use hardware tokens for two-step authentication and the ability to create API keys with restricted access and granular permissions.

Two-step authentication with hardware tokens

We first introduced two-step authentication for Stripe accounts back in 2012. Now, in addition to SMS or using Google Authenticator, you can also register a physical security key to approve logins to your Stripe account. We support any device using the Universal 2nd Factor (U2F) standard hosted by the FIDO Alliance. You can read more about the devices and browsers we support; of note, a single hardware key can be registered for two-step authentication with multiple services like AWS, Google, GitHub, and more.

We recommend using a hardware key to protect your Stripe account because they are designed to be resistant to phishing attacks. A U2F key requires physical access to the hardware device, not just access to your password. Unlike two-step authentication that uses SMS or Google Authenticator, you can’t be tricked into entering a pin on the wrong website. In addition, tapping the device is faster than waiting for an SMS code and typing it in.

When you’re ready, you can register a device from your Dashboard settings. Note that you’ll need to enable at least one other two-step authentication method as a backup option before you can add your security key.

Restricted access API keys

We’ve added the ability for businesses to generate multiple API keys, allowing developers to safely grant programmatic access to Stripe accounts while precisely defining the scope of each API key; these keys can also be revoked at any time.

We’ve heard from many of our users—from startups to public companies—that their engineering teams increasingly rely on multiple microservices to interact with and use Stripe’s API. You can now restrict each of these services to the minimum required set of permissions to reduce risk. For example, a data analytics service may be allowed to only read charges on a Stripe account, or the backend for customer support software may be able to exclusively issue refunds, but not alter customer information. Businesses can also use this feature to define restricted access and safely share data when working with third-party partners.

You can generate an API key with restricted access from the Dashboard today. We’re also beta testing the ability to generate these keys programmatically via the API. If you’re interested in this feature, please get in touch.

We hope these features help your business keep your Stripe account safe. You can also check out our security guide to learn about more ways to keep your Stripe integration secure.

September 13, 2017

Supporting Hypothesis

Sam Ritchie on September 1, 2017

In September, Stripe is supporting the development of Hypothesis, an open-source testing library for Python created by David MacIver. Hypothesis is the only project we’ve found that provides effective tooling for testing code for machine learning, a domain in which testing and correctness are notoriously difficult.

Instead of unit tests, Hypothesis lets you define certain properties of your functions that should hold true for every input. A property is a statement like “My sorting function should return a sorted list given any input list.” Every time the tests run, Hypothesis attempts to prove your properties wrong by feeding in thousands of automatically generated example inputs. If any of your properties break, Hypothesis returns the smallest possible example of failing input.

Here’s an example of a Hypothesis test:

from hypothesis import given
import hypothesis.strategies as st

@given(st.lists(st.integers()))
def test_reversing_twice_gives_same_list(xs):
    # This will generate lists of arbitrary length (usually between
    # 0 and 100 elements) whose elements are integers.
    ys = list(xs)
    ys.reverse()
    ys.reverse()
    assert xs == ys

This style of testing is a perfect match for machine learning workflows. We use machine learning to make products like Radar, which helps hundreds of thousands of Stripe users fight fraud at a global scale, more effective. Testing machine learning code is especially critical when your systems can have material consequences for users. Every day, we train many models on large datasets, but unit tests alone can’t capture all of the complexity of the possible input data. For the past few months we’ve been using Hypothesis to generate input data for our tests of the models behind Radar.

While working with Hypothesis, we found that support for property-based testing with Pandas and NumPy wasn’t built out. We’re excited to support the project in making concrete progress towards integrating with these two foundational, commonly-used libraries in Python’s ML toolkit.

We plan to use Hypothesis more broadly at Stripe and hope that the project’s development over the next few months also helps other companies reliably integrate machine learning into more products.

At Stripe, we regularly contribute to open-source projects and rely on open-source software for developing many different parts of our stack. We have a particularly strong interest in areas where the right tooling can provide outsized leverage to the larger developer community. If you’re working on such a project, we’d love to hear from you!

September 1, 2017

Kia ora, New Zealand!

Mac Wang on August 22, 2017

Today we’re officially launching Stripe in New Zealand!

Businesses in New Zealand can now sign up instantly and start accepting payments in minutes with 135+ currencies from customers around the world. From Connect and Subscriptions to Radar and Sigma, New Zealand businesses can now use the full Stripe stack to start and scale global companies.

Thousands of companies gave us feedback and helped shape our product for New Zealand. During our preview, we’ve worked with some of the region’s fastest-growing businesses: Xero uses Stripe to let any of their million users accept credit cards for their invoices—one of the first accounting platforms to do so. Mobi2Go, a software-as-a-service platform for restaurants across the world, uses Stripe to allow restaurants to accept payments from their customers with Apple Pay and cards in local currencies.

And we would love to meet more entrepreneurs and businesses in New Zealand! We’re holding Office Hours this week across four technology hubs in Auckland and Wellington. If you’re considering Stripe, have any questions, or just want to meet other entrepreneurs, we hope to see you there.

We can’t wait to see what Kiwi companies build with Stripe!

Stripe Office Hours
Wed 23
CreativeHQ Wellington 10:00am–12:00pm
Icehouse Auckland 11:00am–1:00pm
BizDojo Wellington 2:00pm–4:00pm
BizDojo Auckland 2:00pm–4:00pm

August 22, 2017

APIs as infrastructure: future-proofing Stripe with versioning

Brandur Leach on August 15, 2017 in Engineering

When it comes to APIs, change isn’t popular. While software developers are used to iterating quickly and often, API developers lose that flexibility as soon as even one user starts consuming their interface. Many of us are familiar with how the Unix operating system evolved. In 1994, The Unix-Haters Handbook was published containing a long list of missives about the software—everything from overly-cryptic command names that were optimized for Teletype machines, to irreversible file deletion, to unintuitive programs with far too many options. Over twenty years later, an overwhelming majority of these complaints are still valid even across the dozens of modern derivatives. Unix had become so widely used that changing its behavior would have challenging implications. For better or worse, it established a contract with its users that defined how Unix interfaces behave.

Similarly, an API represents a contract for communication that can’t be changed without considerable cooperation and effort. Because so many businesses rely on Stripe as infrastructure, we’ve been thinking about these contracts since Stripe started. To date, we’ve maintained compatibility with every version of our API since the company’s inception in 2011. In this article, we’d like to share how we manage API versions at Stripe.

Read more

August 15, 2017

Official support for .NET

Andrew Nelder on August 8, 2017

Today, we’re excited to add .NET to our officially supported languages (alongside Ruby, Python, PHP, Java, Node, and Go). Going forward, we’ll regularly be updating the Stripe .NET library to support our latest products and features.

Over the past few months, we’ve been working closely with Jayme Davis, the maintainer of a popular third-party library for .NET developers, to transfer it over to Stripe. With more than 400,000 downloads, the library represents the cumulative work of dozens of open-source contributors and targets the .NET Standard to support cross-platform compatibility.

The latest release includes some additional improvements:

  • Bitcoin and 3D Secure in Sources. The Sources API offers a single integration path for all payment methods. The .NET library now supports Bitcoin payments and 3D Secure via Sources so that developers can maintain simpler integrations for specific payment methods.
  • Webhook signatures. We’ve added webhook signatures to help you ensure that the information you receive at your webhook endpoint has not been altered by a malicious third party.
  • Improved object expansion. The .NET library now deserializes more objects from our JSON API, which should provide faster access to properties on nested objects. In many cases, it also reduces unnecessary API calls.

We’ve updated our API reference to include complete code samples for .NET and we plan to roll out .NET code examples throughout our documentation over the next few months. You can get the latest library from GitHub or NuGet, and check out a simple example using Stripe and ASP.NET.

We hope these updates make it easier and faster for .NET developers to integrate and use Stripe. We’d also love to hear your feedback and ideas: just open an issue, join our IRC channel, or send us an email.

August 8, 2017

Payable is joining Stripe

Jorge Ortiz on July 26, 2017

We’re excited to announce that Stripe has acquired Payable to help make it easier for platforms and marketplaces on Stripe Connect to meet their tax reporting obligations worldwide.

Multi-sided platforms around the world are using Stripe Connect to accept money, pay it out to third parties, and eliminate all the complexity that’s typically involved. One traditional pain point is tax reporting: as a marketplace, you’re often providing taxable income to participants of your marketplace, which must be reported to the IRS or other tax authorities. We heard from our users that accurately generating, delivering, and filing tax forms for as many as hundreds of thousands of vendors, contractors, and partners in multiple countries was a consistent difficulty and something they’d like to see fixed.

We partnered with Payable in 2015 to provide and distribute 1099 tax forms to Connect platforms. Payable built a deep integration with the Stripe API that automated generating and sending the right tax forms to the right people for thousands of Stripe platforms. Now, as part of Stripe, the Payable team will continue to improve Stripe Connect’s tax support to better serve global platforms and marketplaces.

Payable’s tax reporting tools will stay hosted on payable.com through the next tax season and we’ll use the current Payable integration to generate any required tax forms for 2017. We will fully integrate Payable with Stripe Connect and the Stripe Dashboard after that.

We’re thrilled to welcome the Payable team to Stripe and look forward to making Connect even more useful for marketplace businesses.

July 26, 2017

Marc Andreessen answers questions from Stripe Atlas founders

Patrick McKenzie on July 13, 2017

Startups are a curious alchemy of people, knowledge, money, and technology. Access to these building blocks has historically been grossly uneven, but is improving over time. Open-source software and cloud services have made the core infrastructure of technology companies easier and cheaper to build than ever before. The internet has collected and distributed a growing body of practice for the practical know-how of how to build and scale companies.

There still exists a dependence on certain people, though, particularly where the allocation of money is concerned.

Stripe Atlas helps founders worldwide start ambitious companies. One of the things we hope to do is to decrease the social distance between our entrepreneurs and investors, experts, and others who can help them. To do this, we created a private Stripe Atlas Forum, and have been inviting guests to speak directly with Atlas members and answer their questions about building companies.

Marc Andreessen is a co-founder of Andreessen Horowitz and famously coined the phrase “software is eating the world.” Prior to that, he co-wrote Mosaic, the first mainstream web browser. While he’s unfortunately no longer an active Twitter user (his @pmarca account made for compulsory reading while he was), he did agree to answer over 30 questions from Stripe Atlas founders. These include questions about how to convince a venture capitalist to give one money, what has changed about the tech industry since he co-wrote the first web browser, and where opportunities still exist to build huge, meaningful businesses around technology the world needs. Marc graciously gave us permission to post a portion of his answers publicly, for the benefit of the wider community.

If we can help you with access to the people, knowledge, and technology that will help you start and grow your new business, join Stripe Atlas. (And if you need the money, read Marc’s advice below on pitching venture capitalists.)

Read more

July 13, 2017