Permissions and topics
Every permission an app can request, every webhook topic it can subscribe to, every UI target it can render into and every API error code. Generated from the platform contracts.
On this page
These tables are built from the platform contracts on every docs build, so they always match what the manifest validator accepts.
Permissions
An app lists permission ids in permissions.required and permissions.optional of poltura.app.json, each with a purpose. These are the same permissions merchants give their team members, so a merchant reads the same label at install time as in their team settings. Write permissions change only the fields named in the App API reference. Installation storage and the app.* lifecycle webhooks need no permission.
The full catalogue, with labels and descriptions in English and Hungarian, is served at GET https://api.poltura.com/v1/access/catalog?locale=en (or locale=hu).
| Permission | Access | What merchants see |
|---|---|---|
| orders.read | Read | See orders See orders, their items, payments and fulfilments |
| orders.write | Write | Change orders Edit orders, create fulfilments and returns |
| orders.refund | Write | Refund orders Refund payments |
| products.read | Read | See products See products, variants, prices, stock and collections |
| products.write | Write | Edit products Create and edit products, variants, prices, stock and collections |
| products.publish | Write | Publish products Put products on the storefront and take them down |
| customers.read | Read | See customers See customers, their contact details, addresses and order history |
| customers.write | Write | Change customers Create and edit customers, their addresses and groups |
| promotions.read | Read | See discounts See discounts, promotions and their rules |
| promotions.write | Write | Change discounts Create and change discounts and promotions |
| content.read | Read | See content See pages, blog posts and guides |
| content.write | Write | Change content Write and edit pages, blog posts and guides |
| media.read | Read | See media See the store’s images, videos and files |
| media.write | Write | Upload and edit media Upload, replace and edit images, videos and files |
| media.delete | Write | Delete media Delete images, videos and files nothing uses any more |
| settings.read | Read | See store settings See the store’s name, languages, currencies, regions and shipping |
| settings.write | Write | Change store settings Change the store’s name, languages, currencies, regions and shipping |
| imports.read | Read | See imports and their reports See imports from other platforms and files, and their reports |
| imports.write | Write | Connect shops and run imports Connect another shop and import its products, customers and orders |
| integrations.read | Read | See apps See connected apps and their settings |
| integrations.write | Write | Connect and set up apps Connect apps and change their settings |
| apps.install | Write | Install apps Install and remove apps, and choose the stores and permissions each one gets |
| feeds.read | Read | See feeds See product feeds for comparison sites and marketplaces, and which products they list |
| feeds.write | Write | Set up and change feeds Set up product feeds and change their rules |
| team.read | Read | See the team See the organization’s members and their roles |
| organization.settings.write | Write | Change organization settings Change the organization’s name and settings |
| projects.manage | Write | Create and delete stores Create new stores in the organization and delete existing ones |
| domains.read | Read | See domains See the organization’s domains and their DNS status |
| domains.manage | Write | Add and change domains Add, connect and change domains, and point them at stores |
| billing.read | Read | See invoices and plans See invoices, plans, add-ons and usage |
| billing.accounts.manage | Write | Manage billing accounts Create billing accounts and change their billing details |
| theme.read | Read | See the theme See the storefront theme and its settings |
| theme.write | Write | Change the theme Change the storefront theme, its sections and settings |
| theme.code.write | Write | Edit theme code Change theme code files, styles and assets in a theme draft |
| theme.publish | Write | Publish the theme Make a theme draft live for shoppers, or roll the live theme back |
| storefront.status.read | Read | See the store status and password See whether the store is open, closed or behind a password, and the password |
| storefront.status.manage | Write | Open, close and set the store password Open and close the store, and set or remove its password |
| inbox.read | Read | Read messages Read customer messages and conversations |
| inbox.reply | Write | Reply to messages Reply to customer messages and assign conversations |
| inbox.manage | Write | Change inbox settings Change the inbox’s channels, rules and settings |
| inbox.ai.use | Write | Draft replies with AI Draft replies to customers with AI |
| mail.read | Read | See sent emails See the emails the store sent and whether they arrived |
| mail.content.read | Read | Open sent email content Open what a sent email said |
| mail.resend | Write | Resend sent emails Send an email the store sent once more |
| ai.assistant.use | Write | Use the AI assistant Ask the AI assistant for help in the admin |
| ai.coder.use | Write | Change the store’s code with AI Have AI change the storefront’s code |
| translation.use | Write | Translate the store Translate the store into other languages |
Webhook topics
Subscribe in webhooks[] with a topic and an HTTPS destination. Deliveries are signed with Ed25519; see Webhooks.
| Resource | Topics |
|---|---|
| product | product.createdproduct.updatedproduct.deleted |
| order | order.createdorder.updatedorder.paidorder.fulfilledorder.cancelled |
| customer | customer.createdcustomer.updated |
| inventory | inventory.updated |
| app | app.installedapp.updatedapp.suspendedapp.uninstalled |
| installation | installation.permissions_changedinstallation.stores_changed |
UI targets
Native UI workers render into these targets. See Admin and Storefront.
| Surface | Targets |
|---|---|
| admin | admin.page, admin.home, admin.product, admin.collection, admin.order, admin.customer |
| storefront | storefront.home, storefront.products, storefront.product, storefront.cart, storefront.checkout, storefront.login, storefront.register, storefront.account, storefront.contact, storefront.page, storefront.layout.header, storefront.layout.footer, storefront.app-page |
Error codes
Every App API error carries one of these codes.
| Code | Status |
|---|---|
| invalid_input | 400 |
| unauthorized | 401 |
| forbidden | 403 |
| insufficient_scope | 403 |
| not_found | 404 |
| conflict | 409 |
| stale_version | 412 |
| quota_exceeded | 409 |
| rate_limited | 429 |
| payload_too_large | 413 |
| unsupported_api_version | 400 |
| unavailable | 503 |