Insights 10 min read

Adalo + Stripe Payment Integration: Setup, Pitfalls, and Apple's Rules

By Betsy Herrera
February 26, 2026
Share this insight

The Adalo + Stripe space

Adding payments to an Adalo app is one of the most common - and most error-prone - integrations. Stripe is the go-to payment processor, but the integration involves multiple moving parts: test vs live keys, component configuration, post-payment action chains, and (critically) Apple's rules about in-app purchases that can get your entire app rejected.

Setup: Step by Step

1. Configure Stripe Keys

Get your API keys from the Stripe Dashboard. You need both:

  • Publishable Key (starts with pk_test_ or pk_live_)
  • Secret Key (starts with sk_test_ or sk_live_)

Critical: Use test keys during development. Switch to live keys ONLY when publishing. Mixing test/live keys is the #1 cause of 'Payment Failed' errors.

2. Add the Stripe Component

Add the Stripe Purchase component from Adalo's marketplace. Configure: amount (in cents - $10.00 = 1000), currency, and your publishable key.

3. Build the Action Chain

The most common mistake: configuring the Stripe component but forgetting the post-payment action chain. After a successful payment, you must:

  1. Create a record in your 'Payments' or 'Subscriptions' collection
  2. Update the user's account status (e.g., set isPaid = true)
  3. Navigate to a confirmation screen

Without step 2, the payment goes through on Stripe's end but your app doesn't reflect it.

The Apple In-App Purchase Rule

This catches most Adalo builders off guard: Apple requires that digital goods and services sold within iOS apps use Apple's In-App Purchase (IAP) system. If your app sells digital content, subscriptions, or premium features through Stripe, Apple will reject it.

When Stripe Is Allowed

  • Physical goods (e-commerce)
  • Services performed outside the app (consulting, deliveries)
  • Person-to-person services (tutoring, coaching)

When You Must Use Apple IAP

  • Premium app features or content
  • Subscriptions to digital services
  • Virtual currencies or credits
  • Removing ads

Common Integration Failures

1. Payment Succeeds on Stripe but App Doesn't Update

Cause: Missing or broken 'On Success' action chain. The Stripe charge went through, but no database record was created in Adalo.

Fix: Verify your On Success action chain includes a Create Record action. Check that all field mappings are correct. Test the entire flow with Stripe test keys.

2. Amount Displays Wrong

Cause: Stripe uses cents, not dollars. Entering '10' charges $0.10, not $10.00.

Fix: Multiply your dollar amount by 100. Use a formula or store prices in cents in your database.

3. Webhooks Don't Fire

Cause: Adalo doesn't natively support Stripe webhooks. Subscription renewals, refunds, and failed charges happen outside Adalo's awareness.

Fix: Use Make.com or Zapier to listen for Stripe webhook events and update your Adalo database via the Adalo API. This is essential for subscription-based apps.

Subscription Management

Adalo's Stripe integration handles one-time payments well but struggles with subscriptions. For recurring billing, you need:

  • Stripe Customer Portal for users to manage their subscription
  • Webhook listener for renewal/cancellation events
  • Automated status updates in your Adalo database

This goes beyond what Adalo can handle natively and is a common trigger for migration to a custom solution.

Rehost builds payment systems - from simple Stripe in Adalo to full subscription management with webhooks and customer portals. Get Expert Rescue →

FAQ

Can I use Stripe in an Adalo iOS app?

Only for physical goods and real-world services. Digital goods, premium features, and subscriptions must use Apple's In-App Purchase system. Violating this rule results in App Store rejection.

How do I handle refunds in Adalo?

Process refunds directly in the Stripe Dashboard. Adalo has no built-in refund mechanism. To update the user's status automatically, set up a Stripe webhook that triggers a database update via Make.com or the Adalo API.

Why does my Adalo Stripe payment show 'Failed'?

Most common causes: using test keys with a live card (or vice versa), amount set in dollars instead of cents, or the Stripe component's publishable key doesn't match the secret key environment. Check the Stripe Dashboard → Payments → Logs for the specific error.

Let us handle it.

Do-It-For-Me

Stop debugging platform limitations. Hand off your application to certified experts. We provide dedicated engineering, ongoing maintenance, and guaranteed SLAs at a set cost basis of $850/month for business and startup applications. Transparent timelines, zero hidden fees.

Simple contract · Cancel anytime

Share this article

Build with us.

Turn insights into action. Let's build something great together.