RentalTideRentalTideRentalTideDocs
Dashboard›

Scopes & embed locations

The OAuth scopes an app can request and the surfaces where an embedded app can render inside RentalTide.

Scopes

Declare the scopes your app needs when you register it. Merchants approve them at install, and the host enforces them on every API call your app makes.

ScopeGrants
read:bookingsView bookings, orders, and rental schedules.
write:bookingsCreate, update, and cancel bookings and orders.
read:customersView customer and renter profiles.
write:customersCreate and update customer records.
read:inventoryView inventory, assets, and availability.
write:inventoryUpdate inventory, assets, and pricing.
read:posView point-of-sale catalog and carts.
write:posCreate POS orders and carts.
read:transactionsView payments and transaction history.
write:transactionsInitiate payments and refunds.
read:analyticsView aggregated metrics and dashboards.
read:reportsView and export reports.
webhooks:receiveReceive event notifications from RentalTide.

Request the least you need. Apps that ask for narrow scopes get approved and installed faster.

How the host maps calls to scopes

Each API path resolves to a resource family, and the method decides read vs write:

Path prefixResourceGET →other →
/bookings, /orders, /schedulesbookingsread:bookingswrite:bookings
/customers, /renterscustomersread:customerswrite:customers
/inventory, /assets, /availabilityinventoryread:inventorywrite:inventory
/pos, /cartsposread:poswrite:pos
/transactions, /payments, /refundstransactionsread:transactionswrite:transactions
/analytics, /metricsanalyticsread:analyticsread:analytics
/reports, /exportsreportsread:reportsread:reports

Paths outside these families are not available to apps (default-deny).

Embed locations

An embed location is a surface inside RentalTide where your app's iframe mounts. Declare one or more when you register. Each provides a resource in context.

LocationResource in contextTypical scopesStatus
dashboard-widgetnoneread:analytics, read:bookingsLive
order-detailsthe orderread:bookingsLive
booking-detailsthe bookingread:bookingsLive
customer-profilethe customerread:customersLive
pos-cartthe active cartread:pos, write:posLive
settings-panelnone—Live
inventory-detailthe inventory itemread:inventoryPlanned
asset-trackingthe assetread:inventory, read:bookingsPlanned
checkout-flowthe in-progress cartread:bookings, read:posPlanned

Planned locations are accepted by the SDK and the sandbox, but no RentalTide screen mounts them yet, so an app declaring only a planned location will never render in production. Talk to us before you build against one.

This table is about app embeds, not embedded insurance

A coverage provider renders nothing and declares no embed location: RentalTide draws the card, the questions, the policy and its documents itself, from your endpoints. That whole flow — including the renter's Next Steps page, where the policy and its document appear and anyone who declined is offered the coverage again — is live today, and none of it depends on a location in this table.

What is still planned here is an app embedding its own UI at those points.

Read the current resource from app.context.resource:

TypeScript

The canonical lists (SCOPE_CATALOG, EMBED_LOCATIONS) ship in @rentaltide/app-sdk, so your UI and the docs always agree.

Was this page helpful?
Need help? Contact Support.See what’s new. Check out changelog.Questions? Book a video chat.
Ask AI
Responses are generated using AI and may contain mistakes.
Ask questions about RentalTide and get help with your integration.