← All Documentation

Permissions & Scopes

Mercentia uses granular, scope-based permissions. Apps must declare the permissions they need upfront, and merchants approve them during installation. Follow the principle of least privilege — only request what your app actually uses.

How Permissions Work

  1. You declare required permissions in your app submission
  2. Merchants see exactly what your app can access before installing
  3. The OAuth token is scoped to only the approved permissions
  4. API calls to resources outside your granted scope return 403 Forbidden
  5. Merchants can revoke access at any time by uninstalling

Scope Reference

Products & Catalog

ScopeAccessWhat It Grants
read_productsReadView products, variants, images, pricing, tags, collections, categories
write_productsRead + WriteCreate, update, and delete products. Manage variants, images, and collections

Orders & Fulfillment

ScopeAccessWhat It Grants
read_ordersReadView orders, line items, payments, refunds, fulfillment status
write_ordersRead + WriteUpdate orders, add notes and tags, create draft orders
manage_fulfillmentsWriteCreate fulfillments, add tracking numbers, update shipment status
manage_checkoutsWriteModify checkout flow, add custom fields, apply discounts at checkout

Customers

ScopeAccessWhat It Grants
read_customersReadView customer profiles, addresses, order history, tags. Subject to GDPR/CCPA
write_customersRead + WriteCreate and update customers, manage tags. Requires DPA and privacy compliance

Inventory & Shipping

ScopeAccessWhat It Grants
read_inventoryReadView stock levels, locations, reorder points
write_inventoryRead + WriteAdjust stock levels, set reorder points
read_shippingReadView shipping zones, rates, carriers, tracking info
write_shippingRead + WriteGenerate labels, update tracking, configure carriers

Marketing & Discounts

ScopeAccessWhat It Grants
read_discountsReadView discount codes, promotions, gift cards
write_discountsRead + WriteCreate and manage discount codes, promotions

Content & Store

ScopeAccessWhat It Grants
read_contentReadView pages, blog posts, navigation menus
write_contentRead + WriteCreate and edit pages, blog posts, navigation
read_analyticsReadView sales data, traffic, conversion rates, top products
read_store_settingsReadView store name, domain, currencies, languages, tax config

Data Protection Notes

Customer data is sensitive. Apps requesting read_customers or write_customers must:
  • Have a signed Data Processing Agreement (DPA)
  • Comply with GDPR Article 28 (processor obligations)
  • Implement right to erasure — when a customer requests deletion, your app must delete their data within 30 days
  • Never sell, share, or use customer data for purposes other than app functionality
  • Disclose all data processing in your privacy policy

Common Rejection Reasons (Permissions)

  • Over-requesting: App requests write_customers but only displays customer data (should use read_customers)
  • Unnecessary scopes: A shipping label app requests read_analytics — not relevant to its function
  • Missing justification: App requests sensitive scopes without explaining why in the submission form
  • Missing DPA: App requests customer data scopes without a signed Data Processing Agreement