Incident response tips from firefighters 👩‍🚒 and new dev foundations videos
Tags: stripedevdigest, payments, devrel
Published: 2021-03-30 15:04:21

📩 We're sharing our most recent developer digest here on DEV! If you're interested in subscribing to monthly developer updates, [sign up on our Docs page](https://stripe.com/docs/upgrades#stay-informed).

![divider](https://dev-to-uploads.s3.amazonaws.com/i/kwi5h27a7elyignm8iie.png)
# March Developer Digest 

## Incident response and building resilience
[![Incident response and building resilience](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ihyrlj5f2ynhk7kz2pdn.png)](https://increment.com/reliability?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d)


Learn how to build more reliable and resilient software, systems, and teams in the latest issue of *Increment*. Highlights include:

- [**Embrace your inner incident commander**](https://increment.com/reliability/technical-incident-command/?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d): Tanya Reilly offers a look at how the principles of incident command, originally developed for firefighters in the 1970s, can help engineering teams put out (metaphorical) fires today.
- [**Everything is broken, and it's okay**](https://increment.com/reliability/failure-is-okay/?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d): Accepting that imperfect things still work is fundamental to preventing failures from becoming catastrophes.
- [**How to build organizational resilience**](https://increment.com/reliability/how-to-build-organizational-resilience/?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d): Learn how teams better equip themselves to tackle the unknown and unexpected by encoding resilience into an organization’s culture. 

[Read the full issue.](https://increment.com/reliability?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d)


## Stay updated with new features
- **Sneak preview:** We're working on an experimental prototype to help you mock the Stripe API for testing and would love your feedback to define the shape of our roadmap. [Check out the preview here](https://docs.google.com/forms/d/e/1FAIpQLSc1Tew4wBErD1Vd9upF4c_xDklGiPJQ9ljE-G6s3YyU3eBoeQ/viewform?usp=sf_link).
- **Discover cards in Canada:** Businesses in Canada can now expand their global reach and [accept payments](https://stripe.com/docs/payments/cards/supported-card-brands?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d) using Discover, Diners Club, and China UnionPay cards. 
- **Financial reporting updates:**
    - You can schedule and receive Balance and Payout reports on a specific frequency directly from the Dashboard instead of manually requesting them. 
    - You can customize which columns to include when downloading [Balance](https://stripe.com/docs/reports/balance?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d#available-columns) or [Payout](https://stripe.com/docs/reports/payout-reconciliation?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d#available-columns) reports from Dashboard or via the API.
    - For a smoother integration process, you can access test mode Balance and Payout reports through the API and Dashboard. 
- **Connect updates:** 
    - Platforms can now create invoices on behalf of connected accounts by using the [`on_behalf_of`](https://stripe.com/docs/invoicing/connect?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d#on-behalf-of) parameter. 
    - Custom and Express platforms can now [update verified user information](https://stripe.com/docs/connect/update-verified-information?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d) without contacting our support team.
- **Test mode API keys:** Previously, the API sent back information for an Account or Person object even when using a [test mode API key](https://stripe.com/docs/keys?utm_medium=earned-email&utm_source=be2c&utm_campaign=GLOBAL_4d02&utm_content=9773&utm_term=db4fa1233a6d#test-live-modes). To prevent inadvertent access to sensitive fields, we now require that you use a live mode API key to retrieve these fields.
- **Faster Stripe CLI builds on M1 Macs**: We now support native M1 builds for the CLI to make your development faster and more efficient. Run `brew update && brew upgrade stripe` to get the update.

## Learn with videos, demos, and guides  
- **Dev foundations videos**: We’re working on a series of introductory videos on topics like authentication, making requests, metadata, pagination, and more so you can get started more easily and quickly with each of our client libraries. 
    - We’ve added new videos about **webhooks** using [Ruby](https://www.youtube.com/watch?v=lmrSi_0UP14), [Python](https://youtu.be/QK31ioLTqGU), [PHP](https://youtu.be/ROBIBNiVPI4), [Node](https://youtu.be/WLHvHUWd2ug), [Go](https://youtu.be/ZEuYtQ-vnB4), [Java](https://youtu.be/LI2dnE6olQY), [.NET](https://www.youtube.com/watch?v=pQQH1bLVqjM) and **idempotency and retries** using [Ruby](https://youtu.be/nnMqSQtSZUQ), [Python](https://youtu.be/y0ONKsP1LkU), [PHP](https://youtu.be/c-LA0AVc6zQ), [Node](https://youtu.be/n5qQcZ18mY4), [Go](https://youtu.be/sUkZnCvmQ8g), [Java](https://youtu.be/ywxFlbY36_o), [.NET](https://youtu.be/fLnM04yS6Zc).
{% youtube nnMqSQtSZUQ %}
    - Check out our video on how to [set up a basic Java Spark application](https://youtu.be/qY2HBiBu2XA) from scratch. 
{% youtube qY2HBiBu2XA %}
    - Subscribe to the playlist for your preferred language to be notified of videos as they’re published weekly: [Ruby](https://www.youtube.com/watch?v=8Db0nTVlKM0&list=PLy1nL-pvL2M50RmP6ie-gdcSnfOuQCRYk), [Python](https://www.youtube.com/watch?v=gRvlMeBks6k&list=PLy1nL-pvL2M55YVn0mGoQ5r-39A1-ZypO), [PHP](https://www.youtube.com/watch?v=CeufP46S5BI&list=PLy1nL-pvL2M6cUbiHrfMkXxZ9j9SGBxFE), [Node](https://www.youtube.com/watch?v=R5RoYDEIhCI&list=PLy1nL-pvL2M5xNIuNapwmABwEy2uifAlY), [Go](https://www.youtube.com/watch?v=oJRPV07bVS0&list=PLy1nL-pvL2M5eqpSBR9KL7K0lcnWo0V0a), [Java](https://www.youtube.com/watch?v=t4iJ07E_tA8&list=PLy1nL-pvL2M5TnSGVjEHTTMgdnnHi-KPg), [.NET](https://www.youtube.com/watch?v=N20T0rXAWsc&list=PLy1nL-pvL2M4cNNoUtjWevYSci4ubsbhC).

## Community
- **Laravel Cashier updates**: Laravel Cashier provides an expressive interface to Stripe's subscription billing capabilities and now supports [Checkout and metered billing](https://blog.laravel.com/cashier-stripe-metered-billing-and-stripe-checkout-support). 
- **Laravel testing tutorial**: Learn how to [write tests for Checkout and customer portal integrations](https://carlalexander.ca/test-stripe-checkout-customer-portal-laravel-dusk/) using Laravel Dusk and the Stripe CLI. 
- **Django payments tutorial**: JustDjango shows how to [set up Stripe Checkout to collect one-time payments with Django](https://www.youtube.com/watch?v=722A27IoQnk) using stripe-python. 
{% youtube 722A27IoQnk %}
- **Django models tutorial**: Walk through [how to set up your Django models for subscriptions](https://blog.theodo.com/2021/03/stripe-django-models/) with Arohan Subramonia of Theodo.
- **Spring Boot app for card payments livestream:** Marco Behler continues his livestream on [how to build a complete Java web app](https://www.youtube.com/watch?v=BIDNKRluql4) with Stripe payments functionality by [showing how to accept one-time donations](https://youtu.be/gUqMdwgEAIQ?t=500).
{% youtube gUqMdwgEAIQ %} 
- **Firebase extension overview:** Learn how to use the Stripe Invoice extension for Firebase to [create, send, and track invoices](https://www.youtube.com/watch?v=h_KLJGkv6Fg).
{% youtube h_KLJGkv6Fg %} 
- Thank you to our top open-source contributors this month: [merrickfox](https://github.com/merrickfox), [bayandin](https://github.com/bayandin) ([stripe-go](https://github.com/stripe/stripe-go)); [KaanOzkan](https://github.com/KaanOzkan), [Morriar](https://github.com/Morriar), [RyanBrushett](https://github.com/RyanBrushett), [sharpobject](https://github.com/sharpobject), [paracycle](https://github.com/paracycle), [kddeisz](https://github.com/kddeisz) ([sorbet](https://github.com/sorbet/sorbet)); [hibariya](https://github.com/hibariya), [maeda-kazuya](https://github.com/maeda-kazuya), ([stripe-samples](https://github.com/stripe-samples)); [jofftiquez](https://github.com/jofftiquez) ([stripe-js](https://github.com/stripe/stripe-js)).

## Stay connected
- [Follow us at @StripeDev on Twitter](https://twitter.com/stripedev) for developer updates and answers to your technical questions. Let us know what you’re working on with the Stripe API!
- [Subscribe to Stripe Developers on YouTube](https://www.youtube.com/stripedevelopers) for developer office hours, live streams, and online workshops.
- [Check out our samples on Github](https://github.com/stripe-samples) for sample integrations built by Stripe.
- [Add us on DEV](https://dev.to/stripe) for how-to articles and past editions of the dev digest.