Skip to content

Account and Billing QA: corrected typos, added assets, improved formatting #381

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/troubleshooting/account-and-billing-QA/_category_.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"label": "Accounts and Billing QA"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
keywords: ['account', 'flutterflow']
slug: /add-tax-ids-vat-to-your-flutterflow-account
title: Add Tax IDs (VAT) to Your FlutterFlow Account
---
# Add Tax IDs (VAT) to Your FlutterFlow Account

Adding a Tax Identification Number (VAT ID) to your FlutterFlow account ensures your billing information accurately reflects your business details for tax purposes. Follow the simple steps below to update your account:

:::info[Prerequisites]
In order to get started, you'll need to already have a FlutterFlow account. Be sure to sign up if you haven't already!

Be sure to review your account defaults before moving forward. By default, your account will have the name you entered at sign-up and the billing information associated with the card on file. You may need to update these so that they match your VAT information.
:::



## Steps to update your account

### Contact Support for VAT or other Tax ID Additions

To add your VAT or other tax identifiers, please email support@flutterflow.io. In order to update your account to be tax-exempt, please provide the following information in your email:

- VAT ID

- Company Name

- Company Address

Using the details provided, our team will verify your tax ID and share confirmation or next steps.

### Additional Information

Due to limitations with our payment processor, Stripe, we cannot update past invoices with your VAT ID. Your VAT ID will be applied to **all future invoices**, ensuring compliance with tax requirements.

By following these steps, you can easily add your VAT ID to your FlutterFlow account, helping to streamline your billing and tax reporting process.



Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
keywords: ['downgrading', 'teams', 'other']
slug: /downgrading-from-a-teams-plan-to-a-pro-or-other-plan
title: Downgrading from a Teams plan to a Pro (or other) plan
---
# Downgrading From a Teams Plan to a Pro (or other) Plan

The best way to downgrade from a Teams plan to a different plan is to let your current subscription expire. You can cancel your account to initiate this process.

To cancel your account, click on your name in the bottom right-hand corner of the screen on app.flutterflow.io.

![](../assets/20250430121153659010.png)

From the **My Account** page, click **Cancel Subscription** in the **My Plan** section.

![](../assets/20250430121153891955.png)

You will see the date your subscription expires reflected in the **My Plan** section after confirming your cancelation.

![](../assets/20250430121154120311.png)

On the date your plan expires, your account will be automatically changed to a free account. From there, you can upgrade your account to a Teams plan by clicking the **Upgrade** button in the bottom right-hand corner.

If you have an urgent need to downgrade from Teams to a Pro plan, please contact us at support@flutterflow.io.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
keywords: ['subscription', 'cancel', 'flutterflow']
slug: /how-to-cancel-my-flutterflow-subscription
title: How to Cancel my FlutterFlow Subscription
---
# How to Cancel my FlutterFlow Subscription

You can cancel your plan at any time. You will have access to the paid features until your next billing cycle date.​

Please follow these steps below to cancel your account:

- Log in to FlutterFlow and click on your name in the bottom right-hand corner. This will take you to your **My Account** page:

![](../assets/20250430121447310219.png)

- Click **Cancel Subscription** under My Plan.

![](../assets/20250430121447630867.png)

- Complete the required Cancelation Survey and select **Cancel Subscription.**

A confirmation of your cancelation will appear.

:::note
You will have access to paid features until the end of your current billing cycle. When your billing cycle ends, your account will automatically be converted to a Free account.
:::


You can confirm your account has been canceled by checking **My Plan**.

To the right of this title, it will say **Active until [x date].**

![](../assets/20250430121447869708.png)
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
keywords: ['fails', 'payment', 'succeeds']
slug: /how-to-check-if-a-stripe-payment-succeeds-or-fails
title: How to Check if a Stripe Payment Succeeds or Fails?
---
# How to Check if a Stripe Payment Succeeds or Fails

## Understanding Action Output Variables in FlutterFlow

FlutterFlow actions come with a feature that allows you to name an action output variable, which holds the return value after the action's execution. This functionality is crucial in tracking the status of operations, including payments.​

## Default PaymentId in Stripe Actions

In the context of Stripe payments, FlutterFlow assigns a default variable named "**paymentId**" to the action output. This variable is instrumental in discerning the payment's status.​

![](../assets/20250430121315284187.png)

## ​Checking Payment Status

When a Stripe payment action runs, the next immediate step is to verify if the "paymentId" is set and non-empty.

A non-empty "paymentId" signifies a successful transaction, as it indicates that Stripe has returned a valid identifier for the processed payment.

![](../assets/20250430121315556496.png)

![](../assets/20250430121315814333.png)

## Subsequent Actions Based on Payment Status
Upon confirming the payment status, you can trigger the corresponding actions:

- ### Indicating Successful Payment to Your Users:

- Display a confirmation message using a snack bar.

- Navigate the user to a success screen with a thank-you message.

- Perform any other success-related actions such as updating the database, sending confirmation emails, etc.

- ### Indicating Failed Payment to Your Users:

- Prompt the user to attempt payment again.

- Reset the payment inputs and guide the user through the payment process once more or let them try again if they want to.

- Provide feedback on what might have gone wrong to improve user experience.

FlutterFlow's capability to handle action outputs, particularly with payment systems like Stripe, gives developers a powerful tool to create seamless and responsive payment flows in their apps. By following the steps outlined above, you can ensure that your app appropriately responds to the outcome of each Stripe payment, enhancing the user's experience.​

![](../assets/20250430121316063461.png)​​
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
keywords: ['upgrade', 'plan', 'paid']
slug: /how-to-upgrade-to-a-paid-plan
title: How to upgrade to a paid plan
---
# How to Upgrade to a Paid Plan.

To change your plan type, please follow these steps:

- Login to your account and visit [app.flutterflow.io](https://app.flutterflow.io)


- In the bottom right-hand corner, click **Upgrade**

![](../assets/20250430121445951298.png)

- In the pop-up that follows, you will be prompted to choose your plan. The benefits of each plan are listed below the upgrade buttons. You have the option to select **Monthly** or **Annual** billing. With an Annual plan you will save up to 28% more.

![](../assets/20250430121446291042.png)

For new users, you will receive a 14-day free trial on any personal plan.

:::note
Teams plans are not eligible for free trials at this time.
:::

- After selecting a plan, you will be routed to the payments page. Please note our system requires a card on file, but you are free to cancel at anytime from your FlutterFlow account details. For trial users, you will see your **Total due today** is $0.

![](../assets/20250430121446674539.png)

Once you confirm your selection, you will be routed back to [app.flutterflow.io](https://app.flutterflow.io)


In the bottom right-hand corner, you will see your new plan type reflected.

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
keywords: ['failed', 'card', 'payment']
slug: /my-payment-failed-how-can-i-change-to-a-different-credit-card
title: My Payment Failed, How Can I Change to a Different Credit Card?
---
# My Payment Failed, How Can I Change to a Different Credit Card?

Failed subscription payments happen from time to time. These steps will help you troubleshoot the issue and update your payment method.

:::tip
The most common causes for failed payments are insufficient funds, payment blocked by your credit card provider, or an expired card. If your payment fails, please reach out to your credit card provider for more details on why the payment failed.
:::

You can use these steps to update your payment method on an open invoice (where your credit card has not been charged), you can change your payment method using these steps:

- Head to the My Account Page

- Select **Manage Billing**

- Scroll to **Invoice History**

- Locate the invoice that failed (*it should be at the top*) and click the icon

![](../assets/20250430121458849389.png)

- Enter your updated payment information

Once your updated transaction is successfully completed, your system access will be restored.
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
---
keywords: ['testing', 'revenuecat', 'error']
slug: /troubleshooting-revenuecat-integration-in-flutterflow-apps
title: Troubleshooting RevenueCat Integration in FlutterFlow Apps
---
# Troubleshooting RevenueCat Integration in FlutterFlow Apps

Integrating RevenueCat with FlutterFlow adds robust in-app purchasing and subscription management to your mobile applications. However, developers may encounter various issues during the integration process.

This article provides a structured troubleshooting guide to ensure a seamless integration, covering prerequisites, common pitfalls, and how to resolve specific problems.​​

## App Publishing Check

### Issue:
The app must be published on the Google Play Store and Apple App Store to test RevenueCat features fully.​

Why You May Have Faced This:

Publishing your app is a prerequisite for RevenueCat integration because it needs to communicate with the actual store's APIs to manage transactions and subscriptions.

### How to Fix It:

For Google Play Store:

- Create and submit a release in the Google Play Console.

- Utilize the Internal Testing track for quicker deployment and testing.

- Upload your APK or App Bundle and submit it for review.

- Use this video to set up a Flutter environment on a macOS device.

For Apple App Store:

- Prepare and submit your app in FlutterFlow.

- Deploy your app and configure it in App Store Connect.

- Use TestFlight for beta testing without a full App Store review.

Refer to this [video tutorial](https://youtu.be/mMeQhLGD-og?si=9GW39cvNNYvV9it4) for setting up a Flutter environment on Windows.


## Subscription Products Creation

### Issue:

Subscription products may not be correctly created in the app stores, causing issues with RevenueCat integration.​

Why You May Face This:

Each subscription product requires careful setup within the respective store's console, including unique identifiers and pricing configurations.

How to Fix It:

- Ensure that subscription products are correctly created in both Google Play Console and App Store Connect.

- Follow RevenueCat's documentation for Android and iOS product setup.

## RevenueCat Setup

### Issue:

RevenueCat may not be properly set up, causing issues with product offerings or actions not triggering as expected.

Why You May Face This:

Improper configuration in RevenueCat can lead to failed transactions or incorrect entitlement deliveries.​

How to Fix It:

- Ensure that the app is registered with RevenueCat.

- Check that Products, Entitlements, and Offers are correctly configured in RevenueCat.

- Connect RevenueCat to both app stores with the correct credentials.

## FlutterFlow Integration

### Issue:

The RevenueCat integration may not function if not enabled or configured properly in FlutterFlow.​

How to Fix It:

- Enable RevenueCat in the FlutterFlow project settings.

- Enter the correct API keys for both Play Store and App Store.

## Testing and Environment Limitations

### Issue:

RevenueCat integration does not work in web, test, or run mode within FlutterFlow. This can lead to confusion when testing in-app purchase functionality.

Why You May Face This:

RevenueCat's services are designed to interact with mobile app stores (Google Play and Apple App Store), which requires a native environment that is not available in web or test modes.​

How to Fix It:
To ensure proper testing of RevenueCat functionalities, follow these steps:

- **Use an Emulator/Simulator**:

For Android, use an emulator that has Google Play Services installed. Ensure that you are signed in with a Google account that has been added as a tester in the Google Play Console.

For iOS, use Xcode's simulator to test the integration. You will need to use a sandbox account configured in App Store Connect for testing in-app purchases.

- **Test on a Real Device**:

Deploy the app to the Google Play Store or Apple App Store. You may use internal testing tracks or TestFlight for Apple to distribute your app to testers without releasing it to the general public.

Real device testing allows you to interact with the actual payment and subscription services provided by Google and Apple, giving you the most accurate testing environment.

- **Understanding Testing Limitations**:

Remember that in-app purchases and subscriptions will not work in FlutterFlow's web, test, or RUN mode because these modes do not support the native in-app purchase functionality that RevenueCat uses.

- **TestFlight Error Logs (if you are testing the iOS version)**:

When using TestFlight, you have the benefit of accessing error logs directly from your test users. These logs can be critical in identifying issues that may not be present during emulator testing.

Consult the TestFlight documentation to understand how to access and interpret these logs for troubleshooting any errors that occur during testing.

## Error Analysis

### Issue:

Null value errors or other unexpected behaviors may occur, indicating issues in the setup.

How to Fix It:

- Review the error messages from Crashlytics or during testing to identify misconfigurations.

- Ensure debug logging is enabled in FlutterFlow to get detailed logs for troubleshooting.

## Key Points to Remember

- Always test in an environment that mirrors the production setup.

- Subscription products must have matching identifiers in both RevenueCat and the app stores.

- Debug logging can provide invaluable insights when troubleshooting.

- Regularly review RevenueCat and FlutterFlow documentation and update the **`purchases_flutter`** package as needed.

- Use the RevenueCat Launch Checklist to ensure all settings are correct before going live.

For further guidance and support, make use of FlutterFlow's resources:

[RevenueCat x FlutterFlow Documentation](https://docs.flutterflow.io/integrations/payments/revenuecat/)


[In-App Subscriptions Using RevenueCat and FlutterFlow Blog Post](https://blog.flutterflow.io/in-app-subscriptions-using-revenue-cat/)

:::note
A clear understanding of the RevenueCat data model and FlutterFlow's integration points is crucial for troubleshooting any issues that arise during the setup process.
:::
Loading