Skip to content

API & Architecture

Verified against source (7)

  • Config/CustomRoutes.config
  • application/QboRouteHandler.cs
  • application/HttpAsyncHandler.cs
  • application/AbstractObject.cs
  • Interfaces/IQueue.cs
  • Interfaces/IService.cs
  • src/QueueService

QBO is API-first. Every screen in QBO calls the same operations you can call from an integration, a workflow step, or a scheduled job. If you can do it in the UI, you can automate it.

  • One pattern for every module. Processes, contacts, documents, messages, and workflows all respond to /api/{module}/{operation}, with shared operations such as Save, Search, and Summary.
  • Run now or queue it. The same operation runs immediately on a web server, or is queued for app servers when it’s long-running, scheduled, or rate-limited.
  • Extend without forking. New operations come from configuration (SQL statements, routes, service recipes) or plugins, and appear in the API, workflow, and permissions automatically.
Concept In QBO What it does
Operation a method signature, {Module}/{Operation}?{parameters} A C# method, SQL statement, or configured service on a module.
Route CustomRoute Maps a URL to an operation. Standard routes provide /api/{module}/{operation}.
Queue IQueue Buffers operations for app servers, with retries, throttling, priorities, and calendars. Implementations include Amazon SQS and SQL Server Service Broker.
Queue Service a Windows service on app servers Pops queued messages and runs the operation.
Schedule Schedule A recurrence in plain English, such as Daily at 6am or Monthly on the 2nd Sat.
Calendar Calendar Business days, hours, and holidays that queues, schedules, and checks respect.
Setting SystemDefault and application settings Configuration values, overridable by role or user.
Service IService A plugin operation, such as a REST call, a recipe of operations, or custom code.
  1. A caller (a browser, an integration, or a workflow step) sends /api/{module}/{operation} with parameters.
  2. QBO authenticates the caller and checks the operation’s permission and row-level access (see Security).
  3. QBO runs the operation and returns XML, JSON, HTML, or CSV, or queues it and returns a message ID.
  4. Queued work runs on app servers, which scale out independently of the web tier.

Use the buttons under the page title. Power user covers queues, schedules, calendars, settings, custom routes, health checks, and logs. Developer covers the route pattern, standard operations, save conventions, queuing from the API, and writing plugins. For the deployment picture, see Architecture.