Loading…
Browse by type
Tutorial reads
Tutorial posts on Yomu, summarised newest first.
- 615 posts
- 20 companies
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
Tutorial posts
Importing sales data from Stripe into AWS
The article presents a low-code method for analyzing Stripe business and customer data and moving scheduled report results into AWS. Stripe Sigma lets users query payment, subscription, and plan-related data with SQL, while Sigma Assistant can generate and execute queries from natural-language prompts such as cancellation analysis. For delivery, the article uses the sigma.scheduled_query_run.created event and Stripe's Event Destination to Amazon EventBridge, where a partner event bus and event rule trigger AWS services without a separate public webhook API. Its Lambda example downloads the report CSV with the Stripe API key, parses it into JavaScript objects, and publishes the result through Amazon SNS; the same event-driven pattern can support Lambda, Step Functions, or Glue workflows.
Building serverless usage notification with AWS
Pay-as-you-go services need a way to warn customers when consumption reaches a configured limit, but building usage aggregation, monitoring, and notification workflows adds operational complexity. This tutorial uses Stripe Billing Alerts to define a customer-specific usage threshold with a customer_id, meter_id, gte value, and recurrence, then sends billing.alert.triggered events through Stripe Event Destinations to an Amazon EventBridge partner event source. It tests the flow with Stripe Meter Events and shows AWS CLI rules routing the event to Amazon SNS, as well as a Lambda example that retrieves the customer's email from Stripe and sends mail with Amazon SES. The result is a minimal-code notification path using AWS services, with sandbox setup required because some APIs and features may not be available in conventional test mode.
Securing Stripe API Keys in AWS with automatic rotation
The article presents a production-grade approach to securing Stripe API keys in AWS, motivated by the risks and operational limits of basic secret storage for payment processing. It compares AWS Parameter Store with Secrets Manager, emphasizing built-in rotation, CloudTrail audit trails, IAM integration, larger secrets, and cross-account access despite higher cost. The implementation uses environment-specific secret paths, tags, and IAM conditions to isolate development, staging, and production credentials, with separate rotation schedules. For zero-downtime rotation, applications refresh cached credentials after authentication failures while both old and new keys remain valid during a transition. The design also covers CloudWatch monitoring, emergency rotation procedures, cross-region replication, region-specific schedules, and cost considerations, concluding that ongoing review is necessary for secure and reliable payment operations.
Building rock-solid Stripe integrations: A developer's guide to success
The guide presents ten practices for building production-ready Stripe integrations, covering payment forms, subscriptions, and operational concerns. It recommends verifying webhook signatures with the Stripe-Signature header and endpoint secret, recording event IDs for idempotency, and returning a fast 2xx response while processing asynchronously. Test and live API keys, webhook endpoints, logs, and monitoring should remain separate, while error handling should distinguish card, request, and API failures and use exponential backoff for retries. The guide also recommends testing successful, declined, insufficient-funds, and 3DS scenarios with Stripe test cards, alongside simulated webhook events. Its conclusion emphasizes edge-case planning, logging, monitoring, and ongoing review as foundations for reliable, secure payment processing that can scale with business needs.
New to Stripe? Learn the key concepts for software developers.
The guide introduces software developers to Stripe’s main objects and workflows for integrating payments, recurring billing, and related account activity. It begins with Payment Intents, which specify an amount and currency, track a payment’s lifecycle, and produce a client secret for completing the frontend flow, then covers Payment Methods and Customers, including Setup Intents and attaching a default payment method. For subscriptions, it distinguishes Products, Prices, and Subscriptions, and explains using events and webhooks to react to asynchronous payment and subscription changes while verifying webhook signatures. It also describes Disputes, refunds, and expanded API responses, including retrieving related resources in one call. The guide recommends starting in test mode and using dashboard logs while consulting Stripe’s documentation and changelog as the platform evolves.
How to Submit Your System for Cross
Enterprise applications with SSO still need scalable identity management for customer organizations, including user provisioning, updates, and deprovisioning. This guide presents SCIM (System for Cross-domain Identity Management) as the standards-based connection to Okta for automating those lifecycle operations and controlling access. SCIM can synchronize users in real time as employees join, leave, or change roles, while reducing manual work and inconsistent deprovisioning risks. To submit the integration to the Okta Integration Network, partners need an Okta Integrator Free Plan, two Runscope test links for CRUD and SPEC tests, manual Okta SCIM integration tests, a provisioning-enabled instance, confirmation, and a publicly accessible SCIM server. The submission can expose an integration to Okta’s customer base of 18,000+ organizations and provide verified enterprise-ready status.
Crush errors with Sandbox testing
Payment integrations can encounter errors caused by external events, such as network issues or outages, or by bugs in application code, and unhandled failures can stall checkout. The post presents Stripe Sandboxes as isolated environments for reproducing live-integration failures without changing live payment settings or traffic, optionally copying settings when a sandbox is created. Developers can use Workbench’s Errors and Logs views to diagnose a card_declined response, then route test requests through sandbox keys and a test card. On the Python backend, a try/except implementation catches Stripe errors and generic exceptions and returns an error response instead of leaving the payment page stalled. Sandboxes remain separate after creation, but each Stripe account can have at most five, so unused environments may be deleted or have their test data cleared while settings are preserved.
Testing Connect onboarding with Sandboxes
Stripe Connect testing can become unwieldy as platforms cover payment methods, US states, international countries, and merchant verification conditions, while the existing test mode stays synchronized with live settings. Sandboxes provide an isolated environment that can replicate a platform’s live configuration without affecting live payment traffic. The workflow covers creating a Sandbox, confirming that Connect settings such as negative-liability handling were preserved, and onboarding test connected accounts through Stripe-provided or custom flows. To reproduce a website-verification failure, a custom account can use “https://inaccessible.stripe.com”; after testing an update to “https://accessible.stripe.com” in the Sandbox, the platform can apply the fix to its production onboarding flow.
How do I store inventory data in my Stripe application
The DevRel Swag Store uses Stripe payments and AWS services to keep product inventory accurate and visible in near real time. Stripe products retain core payment information, while Amazon DynamoDB stores inventory and other attributes, keyed by Stripe product ID and store ID; EventBridge routes payment events to Lambda, which atomically decrements stock and publishes updates through AWS IoT Core to the frontend. DynamoDB condition expressions prevent decrements when stock is insufficient, while post-payment validation and refunds address the delay before a Stripe Payment Link is disabled, although Stripe fees may be non-refundable. A custom Payment Intent flow can check stock before payment, authorize funds with manual capture for up to seven days, update inventory after payment success, and then capture the charge.
Enhance your monitoring by integrating Stripe events with AWS CloudWatch Log Groups
Stripe events notify account owners about changes such as successful charges, failed invoice payments, and available reconciliation reports. Because Stripe retains events for 13 months but exposes older events than 30 days only as summaries, Amazon EventBridge can route them into an AWS account and Amazon CloudWatch Log Groups can provide longer-term monitoring and analysis. The setup uses CloudWatch metric filters to match event types such as invoice.payment_failed, convert matches into custom metrics, and support alarms, Amazon SNS notifications, dashboards, and Logs Insights queries. For example, a failed-invoice alarm can use a five-minute observation period, Sum statistics, and a threshold based on expected failure volume or anomaly detection. The resulting setup supports near-real-time visibility into successful charges and failed payments, historical trend analysis, troubleshooting, and responses to unusual activity.
Friday, 4 PM: Best Time to Post on YouTube
The guide examines whether publishing time affects YouTube performance, while arguing that content quality, channel consistency, and audience preferences matter more than any universal schedule. It explains that early views, comments, and shares provide feedback to YouTube’s recommendation system, which can then surface videos to followers and other viewers on the home page and in suggested videos. General patterns favor afternoons and evenings, with Friday at about 4 p.m. identified as the strongest broad slot, although day-by-day windows vary and evergreen tutorials may benefit more from search-oriented titles and descriptions. The recommended workflow uses YouTube Studio Analytics and the “When your viewers are on YouTube” heatmap to select candidate times, then checks later engagement to see whether those patterns hold.
Getting started with Stripe in the UAE: A comprehensive guide for developers
The guide explains how developers can use Stripe for UAE-based e-commerce businesses, following its public debut in the country in April 2021. It covers Stripe Billing for recurring billing, Stripe Connect for marketplaces, Stripe Radar's machine-learning fraud protection, and the platform's support for Apple Pay, Google Pay, and more than 135 currencies including AED, BHD, and KWD. Account setup requires business details, KYC documentation based on entity type, and a linked bank account, with sole proprietors and free zone establishments allowed to use personal accounts under the stated conditions. The Dashboard supports payout and transaction tracking, customer and product management, real-time updates, data exports, tax configuration, and Payment Links, while UAE payouts are described as arriving in AED or USD on a T+5 business-day schedule.
Using demo data for testing Stripe integrations in AWS-hosted applications
Stripe sandboxes let developers manage multiple test environments from one Stripe account for AWS-hosted applications, extending Stripe’s test mode with simulated external events, fake balances, and Test Payouts using API v2 keys. The post describes seeding a sandbox with products and other Stripe objects by exporting production data to CSV for import or generating records with the Stripe CLI and scripts. For local use, developers authenticate with stripe login, while CI scripts pass a sandbox key to each CLI request and can optionally delete the created products afterward. It recommends storing the key in AWS Secrets Manager, retrieving it at runtime through the AWS CLI or SDK, restricting access with IAM, avoiding logs and source repositories, and rotating keys; this lets CI scripts use sandbox data without exposing credentials.
Tips & Tricks for Migrating to Router 2.0
Heroku Router 2.0 is generally available and is expected to become the default, making migration planning important before rollout. The guidance recommends creating a staging application, enabling the http-routing-2-dot-0 feature, restarting web dynos when needed, and checking response headers and system logs to confirm routing. Router 2.0 identifies requests with Via values such as “2.0 heroku-router” or “1.1 heroku-router,” and its logs add protocol, tls, and tls_version fields. HTTP/2 is enabled by default on custom domains with valid TLS certificates, while HTTP/2 can be disabled through a Labs feature. Keepalives are also enabled between the router and web dynos, but applications using recent Puma versions may need the keepalive opt-out because of a connection-handling bug.
Avoiding silent errors in your Stripe integration
Stripe integrations can appear healthy while API and webhook failures accumulate unnoticed when applications lack robust logging and alerting. The post demonstrates Stripe Workbench, a Dashboard view that stores available information by default, obfuscates sensitive data, and provides searchable logs without code changes or additional software. In the example, about 50% of daily API calls fail; the Errors tab groups failures and connects each type to sample requests and related logs, revealing repeated card-verification errors and a request associated with an “Attacker Engineering Test Key” whose Go user-agent conflicted with the stated .NET backend. The investigation identifies a team testing attack-like API calls in production and recommends stopping production-key testing, avoiding test requests in production, and using Sandboxes.
Developing and investigating subscription data flow
The article presents Stripe Sandboxes as isolated environments for developing and investigating subscription systems without affecting production data or settings. It explains how to create subscriptions, inspect dashboard actions through Workbench, and review API requests, JSON resource data, and webhook events such as customer.subscription.created and invoice.created. Test Clocks allow developers to advance time and examine subscription cancellation behavior, including the customer.subscription.deleted event after a scheduled cancellation. Workbench’s Shell tab, API Explorer, and Print SDK Request feature support testing requests in the browser and converting them into implementation code, while the article stresses testing plan changes, trial expirations, cancellations, and payment failures.
Managing SaaS access control with Stripe’s Entitlements API
Managing access rights across multiple SaaS pricing plans can require maintaining feature lists, subscription and pricing relationships, and related database resources as plans or features change. The post presents Stripe’s Entitlements API as a way to register features, associate them with Stripe Products, and retrieve active entitlements for a customer’s subscriptions. Its example defines Free, Personal, and Business monthly products priced at $0, $98, and $980, then maps article-viewing and business-report features to those products using Stripe CLI commands in Workbench. Customer entitlement checks can support application authorization, while entitlements.active_entitlement_summary.updated webhooks expose before-and-after permission data for workflows triggered by plan changes or cancellations.
Preparing for Stripe API upgrades
Upgrading a third-party API can bring new features and fixes but may also introduce breaking changes, so applications should be evaluated before production changes. Stripe Sandboxes provide isolated test accounts with separate API keys and access controls, optionally copying production configuration without copying products, customers, or transaction data. The workflow uses Dashboard Workbench to inspect and upgrade the sandbox API version, then runs the application with sandbox credentials and forwards webhook events through the Stripe CLI. In the example, Stripe.net 41.0.0 rejected an event because it expected API version 2022-11-15 while the sandbox delivered 2024-09-30.acacia; upgrading the SDK to 46.0.0 resolved the mismatch.
How to Build Secure Okta Node.js Integrations with DPoP
Okta management API integrations can use a Node.js service app with OAuth 2.0 client credentials, but a bearer access token can be replayed by anyone who obtains it during its one-hour lifetime. The tutorial configures Okta for private_key_jwt authentication, grants the okta.users.read scope and Read-only Administrator role, and builds a Node.js service that requests and caches an access token. It then enables Demonstrating Proof of Possession (DPoP), handles an initial use_dpop_nonce response by retrying the token request with a nonce-bound proof, and generates a fresh proof for each API call. Each request binds the proof to the access token through the SHA-256-based ath value and uses DPoP rather than Bearer authorization. The demonstrated service successfully lists users through Okta Admin Management API endpoints.
Easily debug your 3DS authentication with Stripe Workbench
Stripe Workbench provides browser-based tools for investigating EMV 3DS authentication and related payment flow behavior in the Stripe dashboard. It lets developers inspect Payment Intent and Charge data, including payment_method_details.card.three_d_secure.authentication_flow and result, to determine whether authentication used a challenge UI and whether it completed successfully. The Inspector also exposes API history and webhook events, while the Events tab can filter historical payment_intent.requires_action events and show their frequency over a selected period. In the Shell tab, stripe trigger payment_intent.requires_action simulates a 3DS-related flow and generates event data without installing additional tools, allowing webhook handling to be tested and investigated from the dashboard.
Top topics
- Architecture830
- Performance812
- LLMs648
- Machine Learning617
- Open Source561
- AI Agents542
- AI454
- Developer Experience446
Weekly digest
The best engineering reads, once a week.