All public marketplace apps must pass a review before they are listed. This page explains what our review team checks, what is required, and how to avoid common rejections.Documentation Index
Fetch the complete documentation index at: https://docs.fluveo.com/llms.txt
Use this file to discover all available pages before exploring further.
Review process
Submit for review
Call
POST /v1/apps/:id/submit_for_review when your app is ready. The status changes from draft (or rejected) to in_review.Review team evaluates
Our team checks your app against the guidelines below. This typically takes 1-3 business days.
Required fields
The following must be set before submitting for review:| Field | Requirement |
|---|---|
name | Required for all apps |
description | Required for all apps. Should clearly explain what the app does. |
redirect_uris | At least one valid HTTPS redirect URI |
requested_scopes | At least one scope |
privacy_policy_url | Required for public apps (distribution_type: "public") |
What reviewers check
Functionality
- The app serves a clear purpose that benefits merchants.
- All declared scopes are justified by the app’s functionality.
- Redirect URIs use HTTPS and point to working endpoints.
Security
- OAuth flow is implemented correctly.
- Tokens are stored securely and not exposed in client-side code.
- The app does not request more scopes than it needs.
Content
- App name and description are accurate and not misleading.
- No trademark violations or impersonation of other apps.
- No offensive, harmful, or illegal content.
Privacy
- Privacy policy URL is valid and accessible.
- The privacy policy explains what data the app collects and how it is used.
- The app handles merchant data in accordance with its stated policy.
Common rejection reasons
| Reason | How to fix |
|---|---|
| Missing or broken privacy policy URL | Ensure the URL is accessible and contains a complete privacy policy |
| Overly broad scopes | Only request scopes your app actually uses. Justify each scope in your description. |
| Vague or misleading description | Clearly explain what your app does, what data it accesses, and why |
| Non-HTTPS redirect URI | All redirect URIs must use HTTPS |
| Missing description | Add a thorough description before resubmitting |
| Broken redirect endpoint | Ensure your OAuth callback URL is live and responding |
Resubmitting after rejection
If your app is rejected:- Check the
rejection_reasonfield on the app object. - Fix the identified issues.
- Update the app with
POST /v1/apps/:id. - Resubmit with
POST /v1/apps/:id/submit_for_review.
Updating published apps
Once an app is published, certain fields are restricted to prevent breaking changes for merchants who have already installed the app:| Restricted field | What to do instead |
|---|---|
name | Create a new version of the app |
requested_scopes | Create a new version of the app |
redirect_uris | Create a new version of the app |
category | Create a new version of the app |
version | Create a new version of the app |
privacy_policy_url | Create a new version of the app |
descriptionshort_descriptionicon_urlhomepage_urlsupport_urlwebhook_urlwebhook_eventsmetadata
Private apps
Private apps (distribution_type: "private") do not require review for installation. They are only accessible by the developer’s own merchant account. However, you can still submit a private app for review if you plan to make it public later.
Next steps
- Build an App — Start building your app
- OAuth Flow — Implement the authorization flow
- Scopes Reference — Choose appropriate scopes