Skip to main content
Publishing makes your app available to every merchant in the App Store. You define a public listing, submit it, and JTL reviews it before it goes live.

Before You Start

Your app needs to be registered, provisioned, and tested, and you need to Become a Seller to list it. Deploy your app to a public URL with HTTPS and update its URLs to production in the app manifest before you submit.

The Listing Manifest

You define your listing in a manifest. Set distributionType to PUBLIC to list it in the App Store.

Filling in your Listing

Before you submit, replace any development placeholders with production content:
  • Icons and screenshots: Replace placeholder URLs with your production assets hosted at stable, publicly accessible URLs. Provide both light and dark icon variants.
  • Names and descriptions: Finalize the copy for every locale you support (name.{locale}.short, name.{locale}.full, description.{locale}.short, description.{locale}.full).
  • Benefits: Provide three to five localized benefits describing the value your app offers merchants.
  • Compatibility: List the supported JTL products and specify a valid minVersions entry for each.
  • Support URLs: Set support.url.{locale} and support.documentation.{locale} to publicly accessible support and documentation pages.
  • Legal URLs: Ensure legal.privacyPolicy, legal.termsOfUse, legal.gdpr.request, and legal.gdpr.delete all point to published pages. These are required for JTL compliance.
Names, descriptions, benefits, supported products, and support URLs are localized by locale, allowing a single manifest to support multiple markets. See the Listing Manifest Reference for more details.

Pricing

Public listings must define at least one subscription tier under pricing.subscriptionTiers, up to a maximum of four.
You can configure your pricing tiers now, but merchant billing through them is not yet available. Defining your tiers now ensures your listing is ready when billing becomes available.
Each subscription tier includes:
  • an id
  • locale-keyed content (its name, description, and up to ten features)
  • pricing information
For free tiers, set isFree to true. For paid tiers, set isFree to false and specify monthlyPriceEur. Use isMostPopular to highlight a single recommended tier. A listing can contain only one free tier and only one tier marked as most popular. Subscription tiers are displayed in ascending price order, with the free tier appearing first.

Create the Listing

Create your listing as a draft. All three paths produce the same listing.
If you’re using one of the JTL Cloud App starter templates, update the listing.json file in your project root, then create the listing draft:
If you’re building your app from scratch:
  1. Create a listing.json file in your project root
  2. Generate the listing draft:
The CLI reads your listing.json and creates a listing in the DRAFT state in the Partner Portal.Once the listing is created, use the returned URL to open the listing in the Partner Portal to review and submit it.

Submit for Review

Submit your listing when it’s complete. JTL validates it, and if anything required is missing, you’re pointed at the fields that need attention. Your listing stays in DRAFT until you submit it. After you submit, it moves to SUBMITTED and enters review.

Review and Publication

Your listing moves through these states: While your listing is SUBMITTED, IN_REVIEW, or APPROVED, it’s locked for editing. If it’s rejected, edit it to address the feedback and submit again.

Pre-submission Checklist

Confirm everything is in order before you submit:

What’s Next?

Share a Private App

Prefer to limit access? Share your app with selected merchants using activation codes.

App Shell & UI

Add panel views, custom tabs, and deeper ERP integration to your app.