Core concepts
Accounts and tenancy
A key is bound to one subscription. Most resources are limited to exactly that subscription; contacts, projects, tags and custom fields are also visible from a billing account's parent.
Organizations and accounts
Link to this section: Organizations and accountsA Filmo company can be one subscription on its own, or an organization with several. In an organization, a full account is the parent, and a billing account is one that bills under a parent full account. The key you create belongs to one of them, and GET /api returns the name of the account that made the request.
No operation ever crosses data between different organizations.
Two kinds of visibility
Link to this section: Two kinds of visibility- Organization
- Full account (parent)Sees only its own data.
- Billing accountsBill under the parent. They also see the parent's inherited resources.
Inherited from the parent account
A billing account sees the parent's and validates references against that same set
- Inherited from the parent account
- Contacts
- Inherited from the parent account
- Projects
- Inherited from the parent account
- Tags
- Inherited from the parent account
- Custom fields
- Inherited from the parent account
- Reading an order by id
Strict subscription equality
Bounded exactly to the subscription that owns the key
- Strict subscription equality
- Items
- Strict subscription equality
- Serialized items
- Strict subscription equality
- Spaces
- Strict subscription equality
- Invoices
- Strict subscription equality
- Quotes
- Strict subscription equality
- Tasks
- Strict subscription equality
- Task types
- Strict subscription equality
- Repair tickets
- Strict subscription equality
- Vehicles
- Strict subscription equality
- Staff
- Strict subscription equality
- Subrents
- Strict subscription equality
- Purchase orders
- Strict subscription equality
- Contracts
- Strict subscription equality
- Project types
- Strict subscription equality
- The order list
- Strict subscription equality
- Availability
- There is no widening between sibling billing accounts, nor from a parent to its billing accounts, and no operation crosses data between organizations.
- Reading a resource outside your tenancy is a
404 not_found, identical to it not existing. Writing a body that references an identifier outside it is a400 validation_errornaming the field, and nothing is written.
How far a key sees depends on how Filmo models the ownership of each resource. The table below lists the resources of each kind.
| Semantics | Resources | What a key sees |
|---|---|---|
| Inherited from the parent account | Contacts, projects, tags and custom fields, and reading an order by id | A billing account also sees these resources of its parent account, and validates references against that same set when it writes. A full account, and a subscription outside any organization, only sees its own. |
| Strict subscription equality | Everything else: items, serialized items, spaces, invoices, quotes, tasks, task types, repair tickets, vehicles, staff, subrents, purchase orders, contracts, project types, the order list and availability | Exactly the subscription that owns the key. Not widened to the organization. |
Inheritance goes one way only. There is no widening between sibling billing accounts, nor from a parent to its billing accounts. Reading an order by id is inherited, but the order list is strict, so an order you can open by id may not appear in your list.
What you get outside your tenancy
Link to this section: What you get outside your tenancy| You do | Result | Why |
|---|---|---|
| Read a resource outside the tenancy of your key | 404 not_found | It is identical to the resource not existing. The API never reveals that it exists. |
Write a body that references an identifier outside your tenancy, such as the contactId of an order | 400 validation_error naming the field, and nothing is written | The message is the same whether the identifier does not exist or belongs to another account, so it cannot be used to probe either. It is a 400 because what is wrong is the body, not the route. |
A 404 is not always a deleted record
If a record disappears from your sync with a 404, it may have been deleted, archived, or never been in your tenancy. Confirm before deleting anything on your side; Syncing data explains how.
Integrations that serve several rental companies need one key per customer account; see Multi-account integrations. The same ideas in the app are covered in Workspace preferences.
Related pages
Link to this section: Related pagesCore concepts
Records and ids
Every record has an opaque id that Filmo assigns. Keep your own ids in a mapping table on your side, and use a reference field only where the API has one.
Core concepts
Permissions
A refusal has three different causes: the key lacks a scope, the key's owner lacks a permission, or the account lacks an add-on. Each has a different status or code and a different fix.
Guides
Multi-account integrations
Give each customer account its own credential, store it with that account's timezone and currency, and treat a failing credential as the state of one connection, not of your whole product. OAuth is available for a server you run, and API keys are simpler for server-to-server work.
Was this page helpful?