November Developer Digest: The *new* Payment element, Node SDK + Cloudflare Workers, and Stripe Identity samples

Tags: payments, devrel, stripedevdigest
Published: 2021-11-30 22:12:43

📩 We're sharing our most recent developer digest here on DEV! If you're interested in subscribing to monthly developer updates, [sign up here](https://go.stripe.global/dev-digest).
![Horizontal rule](https://res.cloudinary.com/practicaldev/image/fetch/s--XRaNCJc4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kwi5h27a7elyignm8iie.png)

## November Developer Digest 
## Introducing the Payment Element
![Image of Stripe's Payment Element](https://lh5.googleusercontent.com/_mUDzu7Xs3YofzLmvgzO-ncooPzFhtcPb-DgymNOsdO-LtPr8xbWwNcN5KMMJrmN5a1JxaCGWJ7Rv6fSq3C312NSrdYVmHfEWKB8qWMbt7KW4DKadRsx2iaPC6AWCmzI5hLMPjvT)

The new [Payment Element](https://stripe.com/docs/payments/payment-element?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97) lets you build a custom payment flow that supports [18+ payment methods](https://stripe.com/docs/payments/payment-methods/integration-options?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97) with a single integration. Once integrated, you can add additional payment methods with no frontend changes. 
Explore our [code samples](https://stripe.com/docs/payments/quickstart?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97) or learn how to [migrate from an existing integration](https://stripe.com/docs/payments/payment-element/migration?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97). 

## Stay updated

**Stripe Node SDK and Cloudflare Workers:** You can now use the [Stripe Node SDK](https://github.com/stripe/stripe-node)  with [Cloudflare Workers](https://workers.cloudflare.com/). Learn how to integrate Cloudflare Workers and Stripe Checkout on [Cloudflare’s blog post](https://blog.cloudflare.com/announcing-stripe-support-in-workers) or get started with our example [Cloudflare Worker Template](https://github.com/stripe-samples/stripe-node-cloudflare-worker-template).

**Stripe Checkout:** 

- **Checkout email overwriting disabled:** When you pass a customer email address into a [Checkout Session](https://stripe.com/docs/api/checkout/sessions/create?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97), the customer will not be able to edit this email address. This will help eliminate duplicate subscriptions created for the same customer.
- **SEPA and Bacs in Subscription mode:** Checkout in subscription mode now supports both [SEPA direct debit](https://stripe.com/docs/billing/subscriptions/sepa-debit?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97&platform=checkout) and [Bacs direct debit](https://stripe.com/docs/billing/subscriptions/bacs-debit?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97), allowing you to use these common payment methods for recurring payments.

**New identity sample:** There’s a new [Stripe Sample on Identity](https://github.com/stripe-samples/identity) to demonstrate how to verify a user’s identity using both the in-modal verification and a full redirect to a Stripe hosted page.

**Klarna is now supported across Payment Intents, Payment Element, and Checkout**: [Klarna](https://stripe.com/docs/payments/klarna/accept-a-payment?platform=checkout&utm_medium=earned-email&utm_source=841a&utm_campaign=GLOBAL_47f2&utm_content=b7c8&utm_term=33c0b643367b) is a popular buy now, pay later payment method that lets customers break their payment into interest-free installments. Klarna is now available for Stripe developers in the US and 19 European countries. Learn more in the [integration guide](https://stripe.com/docs/payments/klarna).

**Developer contest in Japan:** Create and publish a Stripe guide for your fellow developers. Winning entries will receive a cash prize or a Stripe voucher. The submission deadline is December 31, 2021 11:59pm (JST). [Learn more about the contest here](https://jpdevguides-en.splashthat.com/). 

**China UnionPay in the UK and EU:** China UnionPay is now available in the UK and Europe, which allows users in those countries to [sell to Chinese customers](https://stripe.com/blog/global-launch-of-chinese-payment-methods?utm_medium=earned-email&utm_source=5e3f&utm_campaign=GLOBAL_40a2&utm_content=a7df&utm_term=4854b5e37a97).

### Mobile SDK updates

**Stripe Android SDK version 18.1.0 and 18.2.0**: Android [version 18.1.0](https://github.com/stripe/stripe-android/releases/tag/v18.1.0) introduces several new features to PaymentSheet, including support for more payment methods like SEPA Direct Debit, Bancontact, iDEAL, and Sofort as well as support for setting up future usage for cards and Google Pay. [Version 18.2.0](https://github.com/stripe/stripe-android/releases/tag/v18.2.0) introduces Klarna as a payment method, re-enables WeChat Pay, and includes several bug fixes.

**Stripe iOS SDK version 21.9.0:** iOS SDK [version 21.9.0](https://github.com/stripe/stripe-ios/releases/tag/21.9.0) introduces several new features to PaymentSheet, including support for more payment methods like SEPA Direct Debit, Bancontact, iDEAL, and Sofort as well as support for setting up future usage for cards, Apple Pay, and Google Pay.

## Learn 
![Thumbnail of Payment Element video](https://lh5.googleusercontent.com/PxoV-_7WG4rR6S5zqQkyy2zXlvxEHwE71uh8lejIyvSYt8-MWlEEPuITEDhShzMM1Z2gQpXYZY5npb8TgWBKQstB5hrXKo14bUXmQsGaO7Z7napdGe95cK0oc3YWZt7KB_TQSXFJ)


**Payment Element:** In [this edition](https://www.youtube.com/watch?v=MfFCg7kYCa4), Charles walks through setting up the brand new Payment Element with a Node.js app using vanilla HTML and JavaScript on the client.

**Deduplicating payment methods:** When attaching payment methods to a customer, a common mistake is to store duplicate details. In [this dev byte](https://www.youtube.com/watch?v=MvMmOWWHjVo), you’ll learn how to use the unique fingerprint to ensure only unique payment methods are added to your customers.

**Artisanal, machine-generated API libraries:** Learn how Stripe builds and maintains 7 official client libraries in [this talk](https://www.youtube.com/watch?v=mgRreyw-Nlg) at Strange Loop. Richard dives deep into how the codegen tooling works and how to think about data structures.

**Building a paywall:** Learn how to use Replit.Web and Stripe Checkout to build a paywall in [this episode](https://youtu.be/-_lA7fS5kf4?t=17).
{% youtube -_lA7fS5kf4?t=17 %}

## Community 

Thank you to our top open-source contributors this month: [arnav13081994](https://github.com/arnav13081994), [ajamous](https://github.com/ajamous), [deidyomega](https://github.com/deidyomega), [ob1dev](https://github.com/ob1dev), [vinistock](https://github.com/vinistock), [paracycle](https://github.com/paracycle), [Morriar](https://github.com/Morriar), [MathyouMB](https://github.com/MathyouMB), [ilyailya](https://github.com/ilyailya), [hibariya](https://github.com/hibariya).   


- [Flutter-stripe](https://pub.dev/packages/flutter_stripe) is out of beta with a stable release.
- Read part 1 of [How to Migrate From tipsi-stripe to the stripe-react-native SDK](https://callstack.com/blog/how-to-migrate-from-tipsi-stripe-to-stripe-react-native-sdk/) [blog post from [Jakob Klobus](https://twitter.com/souhepend), software developer at [Callstack](https://callstack.com/)]
- Watch [Figuring It Out: Open Source for Dummies](https://youtu.be/Ia8ohPvkry0?t=1594). [AWS Community Ignite talk by Jofferson Tiquez, lead maintainer of [Vue Stripe](https://vuestripe.com/)]
{% youtube Ia8ohPvkry0?t=1594 %}

- [Learn how to get started](https://learn-laravel-cashier.com/) with [Cashier Stripe](https://github.com/laravel/cashier-stripe) and [Cashier Paddle](https://github.com/laravel/cashier-paddle). [Video course from [Dries Vints](https://twitter.com/driesvints), co-maintainer of Cashier Stripe and Cashier Paddle]
- Watch [Pitching the Jamstack and Headless CMS to non-devs](https://www.youtube.com/watch?v=Cj2d1Tl-tMk) [conference talk from [Nick DeJesus](https://twitter.com/dayhaysoos) at Next.js Conf] 
{% youtube Cj2d1Tl-tMk %}
- Watch part 1 of [Combining Next.JS, AWS Amplify, and Stripe to build a catering app](https://blog.focusotter.com/combining-nextjs-aws-amplify-and-stripe-to-build-a-catering-app-part-1) [blog post from [Focus Otter](https://blog.focusotter.com/) by Michael Liendo] 
- Read [Fetch both price and product data from Stripe in a single API call](https://blog.focusotter.com/fetch-both-price-and-product-data-from-stripe-in-a-single-api-call) from Stripe in a single API call [blog post from [Focus Otter](https://blog.focusotter.com/) by Michael Liendo]

## Stay connected

💬 [Follow us at @StripeDev on Twitter](https://twitter.com/stripedev) for updates and answers to your developer questions. Let us know what you’re working on with the Stripe API!
👾 [Join the Stripe Discord server](https://stripe.com/go/developer-chat) to chat live with other developers.
📺 [Subscribe to Stripe Developers on YouTube](https://www.youtube.com/stripedevelopers) for office hours, live streams, and online technical workshops.
📚 [Add us on DEV](https://dev.to/stripe) for how-to articles and past editions of this developer digest.

![Horizontal rule](https://res.cloudinary.com/practicaldev/image/fetch/s--XRaNCJc4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/kwi5h27a7elyignm8iie.png)

What would you like to see more (or less) of? Let us know by replying to this email. If you have questions, comments, or need help with code, we’re here to help [via email](https://support.stripe.com/contact/login), or on [Discord](https://stripe.com/go/developer-chat), [Twitter](https://twitter.com/StripeDev), and [Stack Overflow](https://stackoverflow.com/tags/stripe-payments/info). View our [code samples](https://github.com/stripe-samples) on GitHub.

—The Stripe team