# App review & publishing

What a version needs before you submit it, what the LARM team reviews, and the stages an app goes through before it reaches merchants.

## Version details

| Field | Rule |
|---|---|
| Name in Arabic and English | 2 to 160 characters |
| Description in Arabic and English | 10 to 2000 characters |
| Short description | 10 to 240 characters, shown on the app store card |
| Category | Reports & analytics, Catalog management, Physical inventory, Content tools, Messaging & marketing |
| Version number | semver, such as `1.2.0` |
| Scopes | Required and optional, with a justification of 10 to 500 characters for each |
| Redirect URLs | 1 to 5 |
| Webhook URL | At most one |
| Launch URL, uninstall & privacy webhook URL, support URL and privacy policy URL | Required |
| Testing instructions | 10 to 2000 characters: how the reviewer can try your app |

All URLs must be https, with no username, `#` or `*`, and at most 2048 characters.

## Images

| Image | Size | Format and file size |
|---|---|---|
| Logo | Exactly 512 × 512 | PNG or WebP, up to 256 KB, single frame |
| Cover | 2.2:1 aspect ratio, from 440 × 200 to 4400 × 2000 | PNG or JPEG, up to 512 KB |
| Screenshots | Up to 6, 320 to 4000 pixels | PNG or JPEG, up to 512 KB each, with alt text |

For the cover, 1320 × 600 works well.

## Stages

| Version | Meaning |
|---|---|
| `draft` | A draft you can edit |
| `submitted` | Submitted and waiting for review |
| `in_review` | Under review |
| `changes_requested` | Changes are required; the notes are in the review requests |
| `approved` | Approved |
| `published` | Published to merchants |
| `retired` | Replaced by a newer version |

App review takes up to 5 business days (Sunday to Thursday).

## What app review checks

- The scopes match the app's function, and the justification for each scope is clear. Customer data and digital content scopes are reviewed more closely.
- Install, authorization and launch work on a development store following your instructions.
- The webhook endpoint verifies signatures and responds quickly.
- The uninstall & privacy webhook URL receives data-deletion requests and acknowledges them.
- The privacy policy and support page are available and are specific to your app.

## After publishing

- Any change to scopes or URLs requires a new version and a new review.
- Merchants on the previous version stay on it until they approve the new version's scopes, if the scopes changed.
- Paid apps are not available yet. Your app must be free for merchants on LARM.
