Skip to content
UA — Перейти на українську Start free

← Back to the developers overview

Extension manifest fields

code, version, platform, capabilities, entrypoints, settings_schema and the other required fields.

Every field below is required. Unknown fields are not allowed.

  • code — 2–120 characters: lowercase latin letters, digits, “.”, “_”, “-”; starts with a letter or digit. E.g. acme.delivery.
  • name, vendor — package and developer name, up to 180 characters.
  • version — SemVer: 1.4.0 or 2.0.0-beta.1.
  • platform — compatible Tobto.shop versions: "^1.0" or ">=1.0.1 <2.0".
  • trust_level — community for third-party developers (official and verified are for publishers vetted by Tobto.shop).
  • capabilities — 1 to 16 from a closed list: catalog.read, payment.intent.create, payment.webhook.handle, payment.refund.create, payment.reconcile, shipping.quote, shipping.shipment, shipping.labels, shipping.tracking, fiscal.receipt.issue, fiscal.refund.issue, fiscal.reconcile, marketplace.yml.export, marketplace.yml.diagnostics, mcp.catalog.read, mcp.cart.create.
  • entrypoints — an object mapping each capability to a fully-qualified PHP class; its keys must equal capabilities exactly.
  • permissions — admin permissions the extension adds (up to 100), e.g. settings.fiscal.manage.
  • hooks — events the extension subscribes to (up to 100).
  • settings_schema — JSON Schema of the settings: type "object", additionalProperties false, types string, integer, number, boolean. Secrets use format "password" together with writeOnly: true.
  • migrations — list of *.migration.json paths (may be empty).
  • safe_mode_compatible — true when the extension can run in the store’s safe mode.

Example (abridged, from the official Checkbox extension):

{
  "code": "checkbox",
  "name": "Checkbox",
  "vendor": "LaraCart",
  "version": "1.0.1",
  "platform": "^1.0",
  "trust_level": "official",
  "capabilities": ["fiscal.receipt.issue", "fiscal.refund.issue", "fiscal.reconcile"],
  "permissions": ["settings.fiscal.manage"],
  "hooks": ["fiscal.before_issue"],
  "entrypoints": {
    "fiscal.receipt.issue": "LaraCart\\Official\\Checkbox\\CheckboxProvider",
    "...": "..."
  },
  "settings_schema": {
    "type": "object",
    "additionalProperties": false,
    "required": [],
    "properties": {}
  },
  "migrations": [],
  "safe_mode_compatible": false
}

Third-party browser scripts (browser_origins) are allowed only for official or verified packages with manifest_contract_version: 3. A community package that declares browser_origins fails the checks.

Developer documentation