- One-time payments
- Recurring subscriptions
- SaaS pricing plans
- Checkout experiences
- Upgrades and downgrades
- Customer billing management
- Payment-driven access to features
What you can build with Stripe
Stripe can power many different types of payment workflows. One-time purchases For example:Sell this course for $99. Customers should receive access to the course after successful payment.Subscriptions For example:
Create Starter, Pro, and Business plans at $29, and $99 per month.

Customers must pay a $50 consultation fee before their appointment is confirmed.Feature access For example:
The Analytics feature should only be available to customers with an active Pro or Business subscription.Billing management For example:
Add a Billing page where customers can see their current plan and manage their subscription.AIWA can build these experiences around your Stripe connection.
Before You Start
You’ll need a Stripe account before connecting Stripe to your application. You’ll also need the appropriate Stripe credentials for the environment you’re using. Stripe provides separate environments for testing and live payments.We recommend building and testing your payment workflow using Stripe’s test environment before accepting real payments.
Connect Stripe to AIWA
Open your AIWA project and navigate to the Connectors area. Find Stripe and select it.

Test Mode vs Live Mode
Stripe provides separate environments for development and production. Test Mode Use this while building. Transactions don’t charge real cards, allowing you to test:- Successful payments
- Failed payments
- Checkout
- Subscriptions
- Billing flows
- Webhooks
- Application behavior after payment
Build Your First Payment Flow
Once Stripe is connected, tell AIWA what you want customers to purchase. For example:Add a one-time payment of $29 for the Complete Marketing Course. Customers should click Buy Now, complete payment through Stripe, and receive access to the course dashboard after successful payment.

Building Subscriptions
Stripe is especially useful for SaaS applications with recurring billing. Suppose you have:Add monthly subscriptions for Starter at 49, and Business at $99. Users should select their plan from the pricing page and complete payment through Stripe. After successful payment, update their account with the correct subscription.Now you’re defining both the payment and the application behavior.
Define what each plan includes
Pricing isn’t the only thing AIWA needs to understand. Tell AIWA what each subscription unlocks. For example:Starter users can create up to 3 projects. Pro users can create up to 20 projects and access analytics. Business users have unlimited projects, analytics, and team collaboration.Your application can then use the customer’s subscription to determine which functionality is available. Conceptually:
Payment Success
Don’t define payment behavior only around checkout. Tell AIWA what should happen after Stripe confirms a successful payment. For example:After successful payment, record the purchase, update the customer’s subscription, unlock Pro features, and redirect them to the dashboard.This creates a complete payment workflow.
Payment Failure
Payments can fail. Your application should handle that properly. For example:If payment fails, don’t activate the subscription. Show the customer that payment was unsuccessful and allow them to try again.Conceptually:
Don’t Trust the Success Page Alone
A customer reaching:Stripe Webhooks
Stripe can notify your application when important billing events happen. These notifications are commonly called webhooks. For example:Subscription events happen later
Imagine someone subscribes today. Thirty days later, Stripe attempts to renew their subscription. The customer may not even have your application open. Your application still needs to know whether:- Renewal succeeded
- Renewal failed
- Subscription changed
- Subscription was cancelled
Keep Stripe and Your Database in Sync
Your application may store information such as:Upgrades
Suppose a Starter customer wants to move to Pro. You could tell AIWA:Allow Starter customers to upgrade to Pro from the Billing page. After Stripe confirms the subscription change, update their account and unlock Pro functionality.Your application should reflect the updated plan once the billing change succeeds.
Downgrades
Downgrades may require more product decisions. Imagine:- Starter: 3 projects
- Pro: 20 projects
If a user downgrades below their current project usage, don’t delete existing projects. Prevent them from creating additional projects until they’re within their new plan limit.That’s a product rule. Stripe manages the billing change. AIWA builds your application’s behavior around it.
Cancellations
You should also decide what cancellation means. For example:When customers cancel, keep their Pro access until the end of their current billing period. After the subscription expires, move them to the Starter plan.Or:
This product has no free plan. After the paid billing period ends, keep the account but restrict access until the customer subscribes again.There isn’t one correct cancellation model. Tell AIWA how your product should behave.
Customer Billing Management
For subscription products, customers often need somewhere to manage billing. You can ask AIWA:Add a Billing section to Account Settings. Show the customer’s current plan and subscription status and provide an option to manage their subscription.Depending on your Stripe implementation, customers can use Stripe’s billing management functionality for actions such as managing their subscription or payment details.
Paid Feature Restrictions
Your application should enforce paid functionality based on actual subscription state. For example:Analytics should only be available to Pro and Business customers. Starter users should see an upgrade page instead.Important paid-access rules should be enforced appropriately rather than relying only on hiding navigation links.
Example: SaaS Subscription
Here’s a more complete prompt:Add Stripe subscriptions to this SaaS application. Create three monthly plans: Starter: $19/month: 3 projects Pro: $49/month: 20 projects + analytics Business: $99/month: unlimited projects + analytics + team collaboration Users should select a plan from the pricing page and complete checkout through Stripe. After Stripe confirms payment, update the user’s subscription and unlock the appropriate features. Add a Billing page showing their current plan and subscription status. Customers should be able to manage their subscription. If a subscription expires, restrict features based on their new account state.For something this important, I’d recommend: Plan + Max → Review → Build rather than immediately asking AIWA to implement everything.
Example: Paid Booking
Stripe isn’t only for SaaS. Suppose you’re building a consultation platform.Customers should choose an available appointment, enter their information, and pay a $100 consultation fee through Stripe. Only create a confirmed booking after payment succeeds. Send the customer a confirmation email afterward.Conceptually:
Example: One-Time Digital Product
You could also build:Sell this report for $49. Customers should pay through Stripe and receive access to the report inside their account after payment is verified.Your application can record the purchase so the customer doesn’t need to pay again every time they return.
Test Your Payment Workflow
Before accepting real payments, test the entire customer journey. Don’t only test whether Stripe Checkout opens. Test: Checkout Can the customer reach Stripe? Successful payment Does the application recognize the payment? Application state Does the user’s plan or purchase update? Feature access Are the correct features unlocked? Refresh Does the correct access remain after refreshing or signing in again? Failure What happens when payment fails? Cancellation Does your application respond correctly? Renewal For subscriptions, does the application process billing events correctly? Permissions Can users access features they haven’t paid for? Payment testing should cover the complete workflow, not only the payment screen.Common Problems
Checkout doesn’t open
Check whether Stripe is connected correctly and whether the application is successfully creating the checkout session. Use Debug Mode and provide any error message you receive.Payment succeeds but plan doesn’t update
This usually means the payment itself and your application’s subscription state need to be investigated separately. Tell AIWA:Stripe payment succeeds, but the user’s plan remains Starter afterward. Debug the payment confirmation and subscription update flow. Don’t change the checkout interface.
Plan updates only after refreshing
Tell AIWA:Stripe successfully updates the subscription, but the dashboard continues showing the previous plan until the page is refreshed. Fix the application state so the updated subscription appears after payment.
Users can access paid features without paying
This is more serious. Tell AIWA:Users without an active Pro subscription can access the Analytics feature directly. Audit the Pro feature authorization and ensure paid access is enforced appropriately on the server side.
Test payments work but live payments don’t
Check that you’ve moved from the correct Stripe test configuration to the appropriate live configuration. Test and live credentials are different. Also verify that any production webhook configuration required by your application is correctly configured.Debugging Stripe
If something isn’t working, use Debug Mode. A strong debugging request looks like:Stripe checkout completes successfully. Expected: The user should be upgraded to Pro immediately after payment. Actual: Payment succeeds, but the user’s account remains on Starter. The Stripe transaction appears successful. Debug the complete payment confirmation and subscription update flow. Identify the root cause and fix it without changing the existing pricing or checkout UI.Give AIWA:
- What should happen
- What actually happens
- Any error you’re seeing
- Which part already works
Keep Your Stripe Credentials Secure
Stripe secret credentials should never be intentionally exposed in your application’s frontend. If you believe a live Stripe credential has been exposed, rotate or revoke it through Stripe and update your application’s configuration.Think Beyond the Payment Button
Adding Stripe isn’t simply:Put a payment button here.Think about the complete lifecycle:
Next: Resend
Stripe handles money. Next, we’ll connect your application to Resend so it can communicate with users through transactional email. We’ll cover workflows such as:- Welcome emails
- Booking confirmations
- Order confirmations
- Contact notifications
- Team invitations
- Application-triggered emails
Resend
Connect Resend and send transactional email from your AIWA app.
