AbstractProtected AbstractaccountingThe accounting provider this action is designed for (e.g., 'QuickBooks', 'NetSuite', etc.) Can be 'Generic' for provider-agnostic actions
Protected AbstractintegrationThe integration name to look up in the Integration entity
ProtectedbuildHelper to build consistent error messages for accounting operations
OptionalsystemError: anyProtecteddispatchResolve the company's ERP and invoke the plugin registered as ${verb}:${integration.Name}.
Plugin.Run → InternalRunAction with the same params the caller passed to the dispatcher.
ProtectedformatStandard date format for accounting systems (ISO 8601)
ProtectedformatFormats currency values consistently
ProtectedgetGets the base URL for API calls from the integration
Optionalprovider: IMetadataProviderProtectedgetCommon accounting parameters that many actions will need
ProtectedgetGets the company integration record for the specified company and accounting system
ProtectedgetGets credentials from environment variables Format: BIZAPPS_{PROVIDER}{COMPANY_ID}{CREDENTIAL_TYPE} Example: BIZAPPS_QUICKBOOKS_12345_ACCESS_TOKEN
ProtectedgetGets OAuth tokens - first tries environment variables, then falls back to database
ProtectedgetHelper to get a parameter value from the params array
Protected AbstractInternalOverride of the required abstract method from BaseAction
ProtectedresolveLoad the company's accounting CompanyIntegration (any Integration whose Name is one of the known ERP names). Does not hard-filter to a single vendor.
OptionalintegrationName: stringExecutes the action with the provided parameters.
The action execution parameters including context
Promise resolving to the action result
ProtectedvalidateValidates common accounting data formats
ProtectedvalidateValidates journal entry balance (debits must equal credits)
Base class for all accounting-related actions. Provides common functionality and patterns for interacting with accounting systems.