@servicetitan/moneyout-api-client 1.28.0 → 1.29.0-beta.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -44,6 +44,15 @@ export interface IExpenseManagement {
|
|
|
44
44
|
* Update sync status for one or more expense transactions (used by monolith batch posting).
|
|
45
45
|
*/
|
|
46
46
|
updateSyncStatus(tenantId: number, request: UpdateExpenseSyncStatusRequest, cancelToken?: CancelToken): AxiosPromise<UpdateExpenseSyncStatusResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Read the raw provider-reported merchant/cardholder names for a batch of expenses (used by the
|
|
49
|
+
monolith's historical name backfill). POST rather than GET because 500 GUIDs overflow the request
|
|
50
|
+
line. Deliberately ignores the default list visibility filter: a row with null names means the
|
|
51
|
+
provider reported none (terminal — nothing to backfill), while an ID returned under
|
|
52
|
+
`notFoundIds` did not resolve and should be retried. Unpaged — over 500 distinct IDs is a 400,
|
|
53
|
+
never a silent truncation. Requires the `ExpenseSync` permission.
|
|
54
|
+
*/
|
|
55
|
+
listRawNames(tenantId: number, request: ListExpenseRawNamesRequest, cancelToken?: CancelToken): AxiosPromise<ListExpenseRawNamesResponse>;
|
|
47
56
|
/**
|
|
48
57
|
* Mark an expense as "not a ServiceTitan expense" (outbound retract). Writes
|
|
49
58
|
`is_st_expense="false"` to the provider, persists `IsStExpense=false`, and removes the
|
|
@@ -121,6 +130,15 @@ export declare class ExpenseManagement implements IExpenseManagement {
|
|
|
121
130
|
* Update sync status for one or more expense transactions (used by monolith batch posting).
|
|
122
131
|
*/
|
|
123
132
|
updateSyncStatus(tenantId: number, request: UpdateExpenseSyncStatusRequest, cancelToken?: CancelToken): AxiosPromise<UpdateExpenseSyncStatusResponse>;
|
|
133
|
+
/**
|
|
134
|
+
* Read the raw provider-reported merchant/cardholder names for a batch of expenses (used by the
|
|
135
|
+
monolith's historical name backfill). POST rather than GET because 500 GUIDs overflow the request
|
|
136
|
+
line. Deliberately ignores the default list visibility filter: a row with null names means the
|
|
137
|
+
provider reported none (terminal — nothing to backfill), while an ID returned under
|
|
138
|
+
`notFoundIds` did not resolve and should be retried. Unpaged — over 500 distinct IDs is a 400,
|
|
139
|
+
never a silent truncation. Requires the `ExpenseSync` permission.
|
|
140
|
+
*/
|
|
141
|
+
listRawNames(tenantId: number, request: ListExpenseRawNamesRequest, cancelToken?: CancelToken): AxiosPromise<ListExpenseRawNamesResponse>;
|
|
124
142
|
/**
|
|
125
143
|
* Mark an expense as "not a ServiceTitan expense" (outbound retract). Writes
|
|
126
144
|
`is_st_expense="false"` to the provider, persists `IsStExpense=false`, and removes the
|
|
@@ -453,6 +471,41 @@ export interface UpdateExpenseSyncStatusRequest {
|
|
|
453
471
|
/** Batch ID. Required when transitioning to Posted. */
|
|
454
472
|
batchId?: number | undefined;
|
|
455
473
|
}
|
|
474
|
+
/** Response for a batched raw-name read. Splits the two outcomes the caller has to treat differently instead of leaving them to be told apart by absence. */
|
|
475
|
+
export interface ListExpenseRawNamesResponse {
|
|
476
|
+
/** One row per requested ID that resolved. A row whose names are both null is a terminal
|
|
477
|
+
outcome — the provider reported no names, so there is nothing to backfill and no reason to retry.
|
|
478
|
+
|
|
479
|
+
Ordered by ID within a single response. Note this differs from notFoundIds, which follows
|
|
480
|
+
request order — match on ID rather than by position, and do not assume the two are parallel. The C#
|
|
481
|
+
SDK splits large reads into batches and concatenates them, so its merged rows are ordered by ID only
|
|
482
|
+
within each batch, not across the whole result. */
|
|
483
|
+
rows: ExpenseRawNameResponse[];
|
|
484
|
+
/** Requested IDs that did not resolve in this tenant. Distinct from a row with null names: these were
|
|
485
|
+
not read at all, so a backfill should retry them rather than record "no raw name". Duplicates in the
|
|
486
|
+
request are collapsed before this is computed, so each unresolved ID appears once, in the order of
|
|
487
|
+
its first occurrence in the request. */
|
|
488
|
+
notFoundIds: string[];
|
|
489
|
+
}
|
|
490
|
+
/** Raw provider-reported names for one expense transaction, as captured before ServiceTitan vendor/employee resolution. A row exists for every requested ID that resolved, so both names being null is a terminal outcome — the provider reported none, and there is nothing to backfill. IDs that did not resolve are reported separately under notFoundIds rather than being left to be inferred from their absence here. */
|
|
491
|
+
export interface ExpenseRawNameResponse {
|
|
492
|
+
/** Expense transaction ID. */
|
|
493
|
+
id: string;
|
|
494
|
+
/** Merchant name as reported by the provider. Null when the provider reported none. */
|
|
495
|
+
merchantName?: string | undefined;
|
|
496
|
+
/** Cardholder display name as reported by the provider. Null when the provider reported none. */
|
|
497
|
+
cardholderName?: string | undefined;
|
|
498
|
+
}
|
|
499
|
+
export interface ListExpenseRawNamesRequest {
|
|
500
|
+
/** IDs of the expense transactions to read raw provider names for. Maximum 500 distinct IDs —
|
|
501
|
+
duplicates are collapsed before the cap is applied, so 900 IDs that dedupe to 500 is accepted while
|
|
502
|
+
501 distinct IDs is a 400. Empty is accepted and returns no rows.
|
|
503
|
+
|
|
504
|
+
Separately, the request body is capped at 256 KB (~6,700 IDs) as an allocation guard, so a batch
|
|
505
|
+
padded with enough duplicates to exceed that is rejected with a 413 before the 500-distinct rule is
|
|
506
|
+
evaluated. No sensible batch comes close. */
|
|
507
|
+
expenseIds: string[];
|
|
508
|
+
}
|
|
456
509
|
/** Body for the promote endpoint: tokens previously returned from the draft-upload endpoint, to be associated with this expense. Filename is whatever was captured at draft-upload time (no caller-supplied override). */
|
|
457
510
|
export interface AddExpenseAttachmentsRequest {
|
|
458
511
|
tokens: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expense-management.api.d.ts","sourceRoot":"","sources":["../src/expense-management.api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expense-management.api.d.ts","sourceRoot":"","sources":["../src/expense-management.api.ts"],"names":[],"mappings":"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"}
|
|
@@ -222,6 +222,32 @@ export class ExpenseManagement {
|
|
|
222
222
|
};
|
|
223
223
|
return makeCodedException(axios.request(options_));
|
|
224
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Read the raw provider-reported merchant/cardholder names for a batch of expenses (used by the
|
|
227
|
+
monolith's historical name backfill). POST rather than GET because 500 GUIDs overflow the request
|
|
228
|
+
line. Deliberately ignores the default list visibility filter: a row with null names means the
|
|
229
|
+
provider reported none (terminal — nothing to backfill), while an ID returned under
|
|
230
|
+
`notFoundIds` did not resolve and should be retried. Unpaged — over 500 distinct IDs is a 400,
|
|
231
|
+
never a silent truncation. Requires the `ExpenseSync` permission.
|
|
232
|
+
*/ listRawNames(tenantId, request, cancelToken) {
|
|
233
|
+
let url_ = "/v1/tenant/{tenantId}/expense-transactions/raw-names";
|
|
234
|
+
if (tenantId === undefined || tenantId === null) throw new Error("The parameter 'tenantId' must be defined.");
|
|
235
|
+
url_ = url_.replace("{tenantId}", encodeURIComponent("" + tenantId));
|
|
236
|
+
url_ = url_.replace(/[?&]$/, "");
|
|
237
|
+
const content_ = request;
|
|
238
|
+
let options_ = {
|
|
239
|
+
baseURL: this.baseUrl,
|
|
240
|
+
cancelToken,
|
|
241
|
+
data: content_,
|
|
242
|
+
url: url_,
|
|
243
|
+
method: "POST",
|
|
244
|
+
headers: {
|
|
245
|
+
"Content-Type": "application/json",
|
|
246
|
+
"Accept": "application/json"
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
return makeCodedException(axios.request(options_));
|
|
250
|
+
}
|
|
225
251
|
/**
|
|
226
252
|
* Mark an expense as "not a ServiceTitan expense" (outbound retract). Writes
|
|
227
253
|
`is_st_expense="false"` to the provider, persists `IsStExpense=false`, and removes the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/expense-management.api.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// <auto-generated>\n// Generated with ApiClientGenerator, using the NSwag toolchain\n// </auto-generated>\n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport axios, { AxiosRequestConfig, AxiosPromise, CancelToken } from 'axios';\nimport { injectable, inject, optional, symbolToken } from '@servicetitan/react-ioc';\nimport { makeCodedException, makeContent } from './utils';\n// @ts-ignore: needed for Date serialization if a DateTime parameter has an Unspecified attribute on it\nimport moment from 'moment';\n\nexport interface IExpenseManagement {\n /**\n * List expense transactions with optional filters.\n * @ids (optional) Filter by specific expense IDs.\n * @vendorIds (optional) Filter by vendor IDs.\n * @jobIds (optional) Filter by job IDs.\n * @projectIds (optional) Filter by project IDs.\n * @syncStatuses (optional) Filter by sync statuses (e.g. \"Pending\", \"Posted\", \"Exported\").\n * @transactionStatuses (optional) Filter by transaction statuses (e.g. \"Pending\", \"Complete\", \"Declined\").\n * @receiptStatuses (optional) Filter by receipt statuses (e.g. \"Missing\", \"Attached\", \"Verified\").\n * @dateFrom (optional) Filter by transaction date (inclusive start).\n * @dateTo (optional) Filter by transaction date (inclusive end).\n * @creditCardAccountIds (optional) Filter by credit card GL account IDs.\n * @businessUnitIds (optional) Filter by business unit IDs.\n * @batchId (optional) Filter by batch ID.\n * @totalMin (optional) Filter by minimum total cost.\n * @totalMax (optional) Filter by maximum total cost.\n * @needsReview (optional) Filter by review state (missing ST mappings such as vendor, cardholder, job, or project). When true, return only transactions that need review; when false, return only transactions that do not; when null (default), the filter is not applied and both are returned.\n * @includeUnqualifiedProviderTransactions (optional) When false (default), provider-originated transactions are returned only once they have qualified (cleared by the card network AND marked ready by the provider); manual transactions are always returned. When true, un-qualified provider transactions (pending / not-ready) are also returned. Use true only for show-everything views.\n * @page (optional) Page number (1-based). Defaults to 1.\n * @pageSize (optional) Number of items per page. Defaults to 50.\n * @sortBy (optional) Property name to sort by (e.g. \"transactionDate\", \"total\", \"syncStatus\"). Defaults to \"transactionDate\".\n * @sortDirection (optional) Sort direction: \"asc\" or \"desc\". Defaults to \"desc\".\n */\n list(tenantId: number, ids: string[] | null | undefined, vendorIds: number[] | null | undefined, jobIds: number[] | null | undefined, projectIds: number[] | null | undefined, syncStatuses: string[] | null | undefined, transactionStatuses: string[] | null | undefined, receiptStatuses: string[] | null | undefined, dateFrom: Date | null | undefined, dateTo: Date | null | undefined, creditCardAccountIds: number[] | null | undefined, businessUnitIds: number[] | null | undefined, batchId: number | null | undefined, totalMin: number | null | undefined, totalMax: number | null | undefined, needsReview: boolean | null | undefined, includeUnqualifiedProviderTransactions: boolean | undefined, page: number | undefined, pageSize: number | undefined, sortBy: string | null | undefined, sortDirection: string | null | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfExpenseTransactionResponse>;\n /**\n * Create a new expense transaction\n */\n create(tenantId: number, request: CreateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse>;\n /**\n * Get a single expense transaction by ID\n */\n get(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse>;\n /**\n * Update an existing expense transaction\n */\n update(tenantId: number, id: string, request: UpdateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse>;\n /**\n * Delete an expense transaction (only if Pending)\n */\n delete(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * Update sync status for one or more expense transactions (used by monolith batch posting).\n */\n updateSyncStatus(tenantId: number, request: UpdateExpenseSyncStatusRequest, cancelToken?: CancelToken): AxiosPromise<UpdateExpenseSyncStatusResponse>;\n /**\n * Mark an expense as \"not a ServiceTitan expense\" (outbound retract). Writes\n `is_st_expense=\"false\"` to the provider, persists `IsStExpense=false`, and removes the\n monolith projection. Idempotent: a no-longer-ST expense returns 200 with no provider call.\n */\n retract(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * List attachments for an expense transaction\n */\n listAttachments(tenantId: number, expenseId: string, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]>;\n /**\n * Download an attachment file\n */\n downloadAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * Delete an attachment from an expense transaction\n */\n deleteAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * Bind one or more draft attachment tokens (from the draft-upload endpoint) to this\n expense transaction as permanent attachments.\n */\n promoteAttachments(tenantId: number, expenseId: string, request: AddExpenseAttachmentsRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]>;\n /**\n * Get well-known GL account ids for the tenant (from cache). Returns null ids when the cache is cold or degraded.\n */\n getWellKnownGlAccounts(tenantId: number, cancelToken?: CancelToken): AxiosPromise<WellKnownGlAccountsResponse>;\n}\n\nexport const BASE_URL_TOKEN_ExpenseManagement = symbolToken<string>('BASE_URL_TOKEN', false);\n\n@injectable()\nexport class ExpenseManagement implements IExpenseManagement {\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@inject(BASE_URL_TOKEN_ExpenseManagement) @optional() private readonly baseUrl = \"\") {\n }\n\n /**\n * List expense transactions with optional filters.\n * @ids (optional) Filter by specific expense IDs.\n * @vendorIds (optional) Filter by vendor IDs.\n * @jobIds (optional) Filter by job IDs.\n * @projectIds (optional) Filter by project IDs.\n * @syncStatuses (optional) Filter by sync statuses (e.g. \"Pending\", \"Posted\", \"Exported\").\n * @transactionStatuses (optional) Filter by transaction statuses (e.g. \"Pending\", \"Complete\", \"Declined\").\n * @receiptStatuses (optional) Filter by receipt statuses (e.g. \"Missing\", \"Attached\", \"Verified\").\n * @dateFrom (optional) Filter by transaction date (inclusive start).\n * @dateTo (optional) Filter by transaction date (inclusive end).\n * @creditCardAccountIds (optional) Filter by credit card GL account IDs.\n * @businessUnitIds (optional) Filter by business unit IDs.\n * @batchId (optional) Filter by batch ID.\n * @totalMin (optional) Filter by minimum total cost.\n * @totalMax (optional) Filter by maximum total cost.\n * @needsReview (optional) Filter by review state (missing ST mappings such as vendor, cardholder, job, or project). When true, return only transactions that need review; when false, return only transactions that do not; when null (default), the filter is not applied and both are returned.\n * @includeUnqualifiedProviderTransactions (optional) When false (default), provider-originated transactions are returned only once they have qualified (cleared by the card network AND marked ready by the provider); manual transactions are always returned. When true, un-qualified provider transactions (pending / not-ready) are also returned. Use true only for show-everything views.\n * @page (optional) Page number (1-based). Defaults to 1.\n * @pageSize (optional) Number of items per page. Defaults to 50.\n * @sortBy (optional) Property name to sort by (e.g. \"transactionDate\", \"total\", \"syncStatus\"). Defaults to \"transactionDate\".\n * @sortDirection (optional) Sort direction: \"asc\" or \"desc\". Defaults to \"desc\".\n */\n list(tenantId: number, ids: string[] | null | undefined, vendorIds: number[] | null | undefined, jobIds: number[] | null | undefined, projectIds: number[] | null | undefined, syncStatuses: string[] | null | undefined, transactionStatuses: string[] | null | undefined, receiptStatuses: string[] | null | undefined, dateFrom: Date | null | undefined, dateTo: Date | null | undefined, creditCardAccountIds: number[] | null | undefined, businessUnitIds: number[] | null | undefined, batchId: number | null | undefined, totalMin: number | null | undefined, totalMax: number | null | undefined, needsReview: boolean | null | undefined, includeUnqualifiedProviderTransactions: boolean | undefined, page: number | undefined, pageSize: number | undefined, sortBy: string | null | undefined, sortDirection: string | null | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions?\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (ids !== undefined && ids !== null)\n ids && ids.forEach(item => { url_ += \"ids=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (vendorIds !== undefined && vendorIds !== null)\n vendorIds && vendorIds.forEach(item => { url_ += \"vendorIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (jobIds !== undefined && jobIds !== null)\n jobIds && jobIds.forEach(item => { url_ += \"jobIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (projectIds !== undefined && projectIds !== null)\n projectIds && projectIds.forEach(item => { url_ += \"projectIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (syncStatuses !== undefined && syncStatuses !== null)\n syncStatuses && syncStatuses.forEach(item => { url_ += \"syncStatuses=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (transactionStatuses !== undefined && transactionStatuses !== null)\n transactionStatuses && transactionStatuses.forEach(item => { url_ += \"transactionStatuses=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (receiptStatuses !== undefined && receiptStatuses !== null)\n receiptStatuses && receiptStatuses.forEach(item => { url_ += \"receiptStatuses=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (dateFrom !== undefined && dateFrom !== null)\n url_ += \"dateFrom=\" + encodeURIComponent(dateFrom ? \"\" + dateFrom.toJSON() : \"\") + \"&\";\n if (dateTo !== undefined && dateTo !== null)\n url_ += \"dateTo=\" + encodeURIComponent(dateTo ? \"\" + dateTo.toJSON() : \"\") + \"&\";\n if (creditCardAccountIds !== undefined && creditCardAccountIds !== null)\n creditCardAccountIds && creditCardAccountIds.forEach(item => { url_ += \"creditCardAccountIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (businessUnitIds !== undefined && businessUnitIds !== null)\n businessUnitIds && businessUnitIds.forEach(item => { url_ += \"businessUnitIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (batchId !== undefined && batchId !== null)\n url_ += \"batchId=\" + encodeURIComponent(\"\" + batchId) + \"&\";\n if (totalMin !== undefined && totalMin !== null)\n url_ += \"totalMin=\" + encodeURIComponent(\"\" + totalMin) + \"&\";\n if (totalMax !== undefined && totalMax !== null)\n url_ += \"totalMax=\" + encodeURIComponent(\"\" + totalMax) + \"&\";\n if (needsReview !== undefined && needsReview !== null)\n url_ += \"needsReview=\" + encodeURIComponent(\"\" + needsReview) + \"&\";\n if (includeUnqualifiedProviderTransactions === null)\n throw new Error(\"The parameter 'includeUnqualifiedProviderTransactions' cannot be null.\");\n else if (includeUnqualifiedProviderTransactions !== undefined)\n url_ += \"includeUnqualifiedProviderTransactions=\" + encodeURIComponent(\"\" + includeUnqualifiedProviderTransactions) + \"&\";\n if (page === null)\n throw new Error(\"The parameter 'page' cannot be null.\");\n else if (page !== undefined)\n url_ += \"page=\" + encodeURIComponent(\"\" + page) + \"&\";\n if (pageSize === null)\n throw new Error(\"The parameter 'pageSize' cannot be null.\");\n else if (pageSize !== undefined)\n url_ += \"pageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\n if (sortBy !== undefined && sortBy !== null)\n url_ += \"sortBy=\" + encodeURIComponent(\"\" + sortBy) + \"&\";\n if (sortDirection !== undefined && sortDirection !== null)\n url_ += \"sortDirection=\" + encodeURIComponent(\"\" + sortDirection) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<PagedResponseOfExpenseTransactionResponse>(options_));\n }\n\n /**\n * Create a new expense transaction\n */\n create(tenantId: number, request: CreateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseTransactionResponse>(options_));\n }\n\n /**\n * Get a single expense transaction by ID\n */\n get(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseTransactionResponse>(options_));\n }\n\n /**\n * Update an existing expense transaction\n */\n update(tenantId: number, id: string, request: UpdateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseTransactionResponse>(options_));\n }\n\n /**\n * Delete an expense transaction (only if Pending)\n */\n delete(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * Update sync status for one or more expense transactions (used by monolith batch posting).\n */\n updateSyncStatus(tenantId: number, request: UpdateExpenseSyncStatusRequest, cancelToken?: CancelToken): AxiosPromise<UpdateExpenseSyncStatusResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/sync-status\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<UpdateExpenseSyncStatusResponse>(options_));\n }\n\n /**\n * Mark an expense as \"not a ServiceTitan expense\" (outbound retract). Writes\n `is_st_expense=\"false\"` to the provider, persists `IsStExpense=false`, and removes the\n monolith projection. Idempotent: a no-longer-ST expense returns 200 with no provider call.\n */\n retract(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}/retract\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * List attachments for an expense transaction\n */\n listAttachments(tenantId: number, expenseId: string, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseAttachmentResponse[]>(options_));\n }\n\n /**\n * Download an attachment file\n */\n downloadAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments/{attachmentId}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n if (attachmentId === undefined || attachmentId === null)\n throw new Error(\"The parameter 'attachmentId' must be defined.\");\n url_ = url_.replace(\"{attachmentId}\", encodeURIComponent(\"\" + attachmentId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * Delete an attachment from an expense transaction\n */\n deleteAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments/{attachmentId}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n if (attachmentId === undefined || attachmentId === null)\n throw new Error(\"The parameter 'attachmentId' must be defined.\");\n url_ = url_.replace(\"{attachmentId}\", encodeURIComponent(\"\" + attachmentId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * Bind one or more draft attachment tokens (from the draft-upload endpoint) to this\n expense transaction as permanent attachments.\n */\n promoteAttachments(tenantId: number, expenseId: string, request: AddExpenseAttachmentsRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments/promote\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseAttachmentResponse[]>(options_));\n }\n\n /**\n * Get well-known GL account ids for the tenant (from cache). Returns null ids when the cache is cold or degraded.\n */\n getWellKnownGlAccounts(tenantId: number, cancelToken?: CancelToken): AxiosPromise<WellKnownGlAccountsResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/gl-accounts/well-known\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<WellKnownGlAccountsResponse>(options_));\n }\n}\n\n/** Generic paged response wrapper with total count for pagination support. */\nexport interface PagedResponseOfExpenseTransactionResponse {\n /** Data collection */\n data: ExpenseTransactionResponse[];\n /** Current page number */\n page: number;\n /** Page size */\n pageSize: number;\n /** Total count of items (null if pagination not required) */\n totalCount?: number | undefined;\n /** Whether there are more pages */\n hasMore: boolean;\n}\n\nexport interface BaseEntityApiModel {\n id: string;\n createdOn: Date;\n modifiedOn: Date;\n}\n\nexport interface ExpenseTransactionResponse extends BaseEntityApiModel {\n /** Tenant that owns this expense. */\n tenantId: number;\n /** Tenant-scoped expense transaction display number. */\n number: string;\n /** Free-text summary or notes for the expense. */\n summary?: string | undefined;\n /** The date the transaction occurred (from card statement). */\n transactionDate?: Date | undefined;\n /** Computed total: sum of line item amounts + tax + shipping. Negative for refunds. */\n total: number;\n /** True when this transaction is a refund/reversal rather than a charge. */\n isRefund: boolean;\n /** Provider id of the parent charge this refund reverses; null otherwise. */\n parentExternalId?: string | undefined;\n /** Internal MOS ExpenseId of the parent charge this refund reverses, when known; null otherwise. */\n parentExpenseId?: string | undefined;\n /** IDs of refund transactions that reference this expense as their parent.\nPopulated on GET-by-id only; null on list responses. Empty list when no refunds exist. */\n refundExpenseIds?: string[] | undefined;\n /** Tax portion of the total. */\n tax: number;\n /** Shipping portion of the total. */\n shipping: number;\n /** Vendor where the expense was incurred. */\n vendorId: number;\n /** Business unit this expense is charged to. */\n businessUnitId?: number | undefined;\n /** Job this expense is associated with, if any. */\n jobId?: number | undefined;\n /** Project this expense is associated with, if any. */\n projectId?: number | undefined;\n /** Purchase order linked to this expense for two-way matching. */\n purchaseOrderId?: number | undefined;\n /** Employee (cardholder) who made the purchase. */\n employeeId?: number | undefined;\n /** Credit card GL account (Liability:Credit Card) this expense was charged to. */\n creditCardAccountId?: number | undefined;\n /** Merchant processing status (e.g. Pending, Complete, Error, Declined). */\n transactionStatus: string;\n /** Provider-supplied context for the transaction status — e.g. decline reason, error message, or status-specific note. */\n transactionStatusDetails?: string | undefined;\n /** Computed field: true if essential ST-related bindings are not set for the transaction (such as VendorId, cardholder, etc). */\n needsReview: boolean;\n /** MOS-owned export-readiness headline (e.g. Pending, ReadyForExport, Exported). Composed by\nExpenseStatusRules; folds in NeedsReview and ProviderRequirementsMet. */\n expenseStatus: string;\n /** Whether the upstream card provider considers this transaction's requirements met and approved.\nTri-state: null = provider has not yet determined (never coerced to false). Distinct from\nNeedsReview, which reflects ServiceTitan binding gaps rather than provider sign-off. */\n providerRequirementsMet?: boolean | undefined;\n /** Status of receipt documentation (e.g. Pending, Received). */\n receiptStatus: string;\n /** Last 4 digits of the card number. */\n cardNumberLast4?: string | undefined;\n /** Accounting sync/export status (e.g. Pending, Posted, Exported). */\n syncStatus: string;\n /** Batch this expense was posted in, if any. */\n batchId?: number | undefined;\n /** Identifier from the external expense provider (e.g. Ramp transaction ID). */\n externalId?: string | undefined;\n /** Name of the external provider (e.g. \"Ramp\"). */\n externalSource?: string | undefined;\n /** Card identifier from the external provider (e.g. Ramp card_id). */\n externalCardId?: string | undefined;\n /** Human-readable merchant category (e.g. \"Supermarkets and grocery stores\").\nProvider-supplied for card-sourced expenses (e.g. Ramp's `sk_category_name`); free-text for manual entries. */\n merchantCategory?: string | undefined;\n /** Default debit GL account for the expense. Line items may override with their own GeneralLedgerAccountId. */\n debitAccountId?: number | undefined;\n /** Default budget code for the expense. Line items may override with their own BudgetCodeId. */\n budgetCodeId?: number | undefined;\n /** True when the debit GL account was assigned via the safe-degrade fallback (the tenant's\nUncategorized account) rather than a confident binding. Mirrors the persisted\nExpenseTransaction.DebitGlFallbackApplied and is folded into NeedsReview; surfaced so the UI\ncan warn that the GL account needs correcting. */\n debitGlFallbackApplied: boolean;\n /** True when this expense transaction originated in ServiceTitan (as opposed to being sourced\nentirely from an external provider). Tri-state: null means unknown/not set. */\n isStExpense?: boolean | undefined;\n /** ServiceTitan-internal reference number for this expense, when it originated in ST. Null for\nprovider-sourced transactions. A blank value on an ST expense is folded into NeedsReview;\nsurfaced so the UI can explain the review reason. */\n stReferenceNumber?: string | undefined;\n /** Denormalized project label(s) for display/export. */\n projectLabels?: string | undefined;\n /** Provider-reported (external) values, captured verbatim before ServiceTitan resolution. Surfaced\nso a \"needs review\" expense whose merchant/cardholder did not resolve to a ServiceTitan\nvendor/employee can show what the provider sent. Null when no provider details are recorded. */\n externalDetails?: ExpenseTransactionExternalDetailsResponse;\n /** Line items with expense GL accounts. */\n lineItems: ExpenseTransactionLineItemResponse[];\n /** Receipt attachments. File content is in Azure Blob Storage; these are metadata records. */\n attachments: ExpenseAttachmentResponse[];\n}\n\n/** Provider-reported (external) values for an expense transaction, captured verbatim as the card provider sent them. Present so a \"needs review\" expense whose merchant/cardholder did not resolve to a ServiceTitan vendor/employee can surface what the provider sent (with a not-found-in-ServiceTitan indicator) instead of a blank. Null when no provider details are recorded. */\nexport interface ExpenseTransactionExternalDetailsResponse {\n /** Merchant name as reported by the provider. */\n merchantName?: string | undefined;\n /** Cardholder display name as reported by the provider. */\n cardholderName?: string | undefined;\n /** Cardholder email as reported by the provider. */\n cardholderEmail?: string | undefined;\n /** Provider's own identifier for the cardholder. */\n cardholderUserId?: string | undefined;\n /** Human-readable GL account name the provider coded on the transaction header. */\n glAccountName?: string | undefined;\n /** GL account identifier the provider coded on the transaction header. */\n glAccountId?: string | undefined;\n}\n\nexport interface ExpenseTransactionLineItemResponse extends BaseEntityApiModel {\n /** Description of the line item. */\n description: string;\n /** Total dollar amount for this line item (Quantity × UnitPrice). */\n amount: number;\n /** Number of units purchased. */\n quantity: number;\n /** Dollar amount per unit. */\n unitPrice: number;\n /** Optional debit GL account override at the line level (defaults to header DebitAccountId if null). */\n generalLedgerAccountId?: number | undefined;\n /** Optional job override at the line level (defaults to header job if null). */\n jobId?: number | undefined;\n /** Optional project override at the line level (defaults to header project if null). */\n projectId?: number | undefined;\n /** Optional business unit override at the line level (defaults to header BU if null). */\n businessUnitId?: number | undefined;\n /** Optional budget code override at the line level (defaults to header BudgetCodeId if null). */\n budgetCodeId?: number | undefined;\n /** Denormalized project label for this line item. */\n projectLabels?: string | undefined;\n}\n\n/** Metadata information for an expense attachment (receipt). Not the actual file. */\nexport interface ExpenseAttachmentResponse extends BaseEntityApiModel {\n /** Sanitized file name for display and download. */\n filename: string;\n /** Original file name as uploaded by the user. */\n originalFilename: string;\n /** MIME content type. */\n contentType: string;\n /** File size in bytes. */\n fileSize: number;\n}\n\nexport interface CreateExpenseTransactionRequest {\n /** Tenant-scoped expense transaction display number. */\n number: string;\n /** The date the transaction occurred (from card statement). */\n transactionDate?: Date | undefined;\n /** Tax portion of the total. */\n tax: number;\n /** Shipping portion of the total. */\n shipping: number;\n /** Vendor where the expense was incurred. */\n vendorId: number;\n /** Business unit this expense is charged to. */\n businessUnitId?: number | undefined;\n /** Job this expense is associated with, if any. */\n jobId?: number | undefined;\n /** Project this expense is associated with, if any. */\n projectId?: number | undefined;\n /** Purchase order linked to this expense for two-way matching. */\n purchaseOrderId?: number | undefined;\n /** Employee (cardholder) who made the purchase. */\n employeeId?: number | undefined;\n /** Credit card GL account (Liability:Credit Card) this expense was charged to. */\n creditCardAccountId?: number | undefined;\n /** Last 4 digits of the card number. */\n cardNumberLast4?: string | undefined;\n /** Human-readable merchant category. */\n merchantCategory?: string | undefined;\n /** Merchant processing status (e.g. \"Pending\", \"Complete\", \"Error\", \"Declined\"). Defaults to \"Complete\" for manual input. */\n transactionStatus?: string | undefined;\n /** Provider-supplied context for the transaction status — e.g. decline reason, error message, or status-specific note. */\n transactionStatusDetails?: string | undefined;\n /** Free-text summary or notes for the expense. */\n summary?: string | undefined;\n /** Default debit GL account for the expense. Line items may override with their own GeneralLedgerAccountId. */\n debitAccountId?: number | undefined;\n /** Default budget code for the expense. Line items may override with their own BudgetCodeId. */\n budgetCodeId?: number | undefined;\n /** Denormalized project label(s) for display/export. */\n projectLabels?: string | undefined;\n /** Line items with expense GL accounts. */\n lineItems: ExpenseTransactionLineItemRequest[];\n}\n\nexport interface ExpenseTransactionLineItemRequest {\n /** Description of the line item. */\n description: string;\n /** Number of units purchased. */\n quantity: number;\n /** Dollar amount per unit. */\n unitPrice: number;\n /** Optional debit GL account override at the line level (defaults to header DebitAccountId if null). */\n generalLedgerAccountId?: number | undefined;\n /** Optional job override at the line level (defaults to header job if null). */\n jobId?: number | undefined;\n /** Optional project override at the line level (defaults to header project if null). */\n projectId?: number | undefined;\n /** Optional business unit override at the line level (defaults to header BU if null). */\n businessUnitId?: number | undefined;\n /** Optional budget code override at the line level (defaults to header BudgetCodeId if null). */\n budgetCodeId?: number | undefined;\n /** Denormalized project label for this line item. */\n projectLabels?: string | undefined;\n}\n\nexport interface UpdateExpenseTransactionRequest {\n /** Tenant-scoped expense transaction display number. */\n number: string;\n /** The date the transaction occurred (from card statement). */\n transactionDate?: Date | undefined;\n /** Tax portion of the total. */\n tax: number;\n /** Shipping portion of the total. */\n shipping: number;\n /** Vendor where the expense was incurred. */\n vendorId: number;\n /** Business unit this expense is charged to. */\n businessUnitId?: number | undefined;\n /** Job this expense is associated with, if any. */\n jobId?: number | undefined;\n /** Project this expense is associated with, if any. */\n projectId?: number | undefined;\n /** Purchase order linked to this expense for two-way matching. */\n purchaseOrderId?: number | undefined;\n /** Employee (cardholder) who made the purchase. */\n employeeId?: number | undefined;\n /** Credit card GL account (Liability:Credit Card) this expense was charged to. */\n creditCardAccountId?: number | undefined;\n /** Last 4 digits of the card number. */\n cardNumberLast4?: string | undefined;\n /** Human-readable merchant category (e.g. \"Supermarkets and grocery stores\").\nProvider-supplied for card-sourced expenses (e.g. Ramp's `sk_category_name`); free-text for manual entries. */\n merchantCategory?: string | undefined;\n /** Merchant processing status (e.g. \"Pending\", \"Complete\", \"Error\", \"Declined\"). */\n transactionStatus?: string | undefined;\n /** Provider-supplied context for the transaction status — e.g. decline reason, error message, or status-specific note. */\n transactionStatusDetails?: string | undefined;\n /** Free-text summary or notes for the expense. */\n summary?: string | undefined;\n /** Default debit GL account for the expense. Line items may override with their own GeneralLedgerAccountId. */\n debitAccountId?: number | undefined;\n /** Default budget code for the expense. Line items may override with their own BudgetCodeId. */\n budgetCodeId?: number | undefined;\n /** Denormalized project label(s) for display/export. */\n projectLabels?: string | undefined;\n /** Line items with expense GL accounts. Include Id for existing items, omit for new. */\n lineItems: UpdateExpenseTransactionLineItemRequest[];\n}\n\nexport interface UpdateExpenseTransactionLineItemRequest {\n /** Unique GUID for the line item: reuse the existing id to update a line, or supply a fresh\nGUID (e.g. `Guid.NewGuid()`) for a new one. Must be non-empty and unique within the\nrequest — null or an empty GUID is rejected with a 400 (UpdateAsync diffs the collection by id). */\n id?: string | undefined;\n /** Description of the line item. */\n description: string;\n /** Number of units purchased. */\n quantity: number;\n /** Dollar amount per unit. */\n unitPrice: number;\n /** Optional debit GL account override at the line level (defaults to header DebitAccountId if null). */\n generalLedgerAccountId?: number | undefined;\n /** Optional job override at the line level (defaults to header job if null). */\n jobId?: number | undefined;\n /** Optional project override at the line level (defaults to header project if null). */\n projectId?: number | undefined;\n /** Optional business unit override at the line level (defaults to header BU if null). */\n businessUnitId?: number | undefined;\n /** Optional budget code override at the line level (defaults to header BudgetCodeId if null). */\n budgetCodeId?: number | undefined;\n /** Denormalized project label for this line item. */\n projectLabels?: string | undefined;\n}\n\nexport interface UpdateExpenseSyncStatusResponse {\n /** Whether any expenses were updated. */\n updated: boolean;\n /** Number of expense transactions that were updated. */\n updatedCount: number;\n}\n\nexport interface UpdateExpenseSyncStatusRequest {\n /** IDs of the expense transactions to update. Maximum 500. */\n expenseIds: string[];\n /** Target sync status (e.g. \"Pending\", \"Posted\", \"Exported\"). */\n targetStatus: string;\n /** Batch ID. Required when transitioning to Posted. */\n batchId?: number | undefined;\n}\n\n/** Body for the promote endpoint: tokens previously returned from the draft-upload endpoint, to be associated with this expense. Filename is whatever was captured at draft-upload time (no caller-supplied override). */\nexport interface AddExpenseAttachmentsRequest {\n tokens: string[];\n}\n\nexport interface WellKnownGlAccountsResponse {\n uncategorizedExpenseAccountId?: number | undefined;\n}\n"],"names":["axios","injectable","inject","optional","symbolToken","makeCodedException","BASE_URL_TOKEN_ExpenseManagement","ExpenseManagement","list","tenantId","ids","vendorIds","jobIds","projectIds","syncStatuses","transactionStatuses","receiptStatuses","dateFrom","dateTo","creditCardAccountIds","businessUnitIds","batchId","totalMin","totalMax","needsReview","includeUnqualifiedProviderTransactions","page","pageSize","sortBy","sortDirection","cancelToken","url_","undefined","Error","replace","encodeURIComponent","forEach","item","toJSON","options_","baseURL","baseUrl","url","method","headers","request","create","content_","data","get","id","update","delete","updateSyncStatus","retract","listAttachments","expenseId","downloadAttachment","attachmentId","deleteAttachment","promoteAttachments","getWellKnownGlAccounts","jsonParseReviver"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kBAAkB,GAClB,kBAAkB,GAClB,wBAAwB;AACxB,mBAAmB;AACnB,mEAAmE;AACnE,oBAAoB;AACpB,wBAAwB;AACxB,uCAAuC;AAEvC,OAAOA,WAA8D,QAAQ;AAC7E,SAASC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,WAAW,QAAQ,0BAA0B;AACpF,SAASC,kBAAkB,QAAqB,UAAU;AA8E1D,OAAO,MAAMC,mCAAmCF,YAAoB,kBAAkB,OAAO;AAG7F,OAAO,MAAMG;IAMT;;;;;;;;;;;;;;;;;;;;;;KAsBC,GACDC,KAAKC,QAAgB,EAAEC,GAAgC,EAAEC,SAAsC,EAAEC,MAAmC,EAAEC,UAAuC,EAAEC,YAAyC,EAAEC,mBAAgD,EAAEC,eAA4C,EAAEC,QAAiC,EAAEC,MAA+B,EAAEC,oBAAiD,EAAEC,eAA4C,EAAEC,OAAkC,EAAEC,QAAmC,EAAEC,QAAmC,EAAEC,WAAuC,EAAEC,sCAA2D,EAAEC,IAAwB,EAAEC,QAA4B,EAAEC,MAAiC,EAAEC,aAAwC,EAAEC,WAAyB,EAA2D;QACx4B,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAIC,QAAQsB,aAAatB,QAAQ,MAC7BA,OAAOA,IAAI0B,OAAO,CAACC,CAAAA;YAAUN,QAAQ,SAASI,mBAAmB,KAAKE,QAAQ;QAAK;QACvF,IAAI1B,cAAcqB,aAAarB,cAAc,MACzCA,aAAaA,UAAUyB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,eAAeI,mBAAmB,KAAKE,QAAQ;QAAK;QACzG,IAAIzB,WAAWoB,aAAapB,WAAW,MACnCA,UAAUA,OAAOwB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,YAAYI,mBAAmB,KAAKE,QAAQ;QAAK;QAChG,IAAIxB,eAAemB,aAAanB,eAAe,MAC3CA,cAAcA,WAAWuB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,gBAAgBI,mBAAmB,KAAKE,QAAQ;QAAK;QAC5G,IAAIvB,iBAAiBkB,aAAalB,iBAAiB,MAC/CA,gBAAgBA,aAAasB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,kBAAkBI,mBAAmB,KAAKE,QAAQ;QAAK;QAClH,IAAItB,wBAAwBiB,aAAajB,wBAAwB,MAC7DA,uBAAuBA,oBAAoBqB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,yBAAyBI,mBAAmB,KAAKE,QAAQ;QAAK;QACvI,IAAIrB,oBAAoBgB,aAAahB,oBAAoB,MACrDA,mBAAmBA,gBAAgBoB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,qBAAqBI,mBAAmB,KAAKE,QAAQ;QAAK;QAC3H,IAAIpB,aAAae,aAAaf,aAAa,MACvCc,QAAQ,cAAcI,mBAAmBlB,WAAW,KAAKA,SAASqB,MAAM,KAAK,MAAM;QACvF,IAAIpB,WAAWc,aAAad,WAAW,MACnCa,QAAQ,YAAYI,mBAAmBjB,SAAS,KAAKA,OAAOoB,MAAM,KAAK,MAAM;QACjF,IAAInB,yBAAyBa,aAAab,yBAAyB,MAC/DA,wBAAwBA,qBAAqBiB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,0BAA0BI,mBAAmB,KAAKE,QAAQ;QAAK;QAC1I,IAAIjB,oBAAoBY,aAAaZ,oBAAoB,MACrDA,mBAAmBA,gBAAgBgB,OAAO,CAACC,CAAAA;YAAUN,QAAQ,qBAAqBI,mBAAmB,KAAKE,QAAQ;QAAK;QAC3H,IAAIhB,YAAYW,aAAaX,YAAY,MACrCU,QAAQ,aAAaI,mBAAmB,KAAKd,WAAW;QAC5D,IAAIC,aAAaU,aAAaV,aAAa,MACvCS,QAAQ,cAAcI,mBAAmB,KAAKb,YAAY;QAC9D,IAAIC,aAAaS,aAAaT,aAAa,MACvCQ,QAAQ,cAAcI,mBAAmB,KAAKZ,YAAY;QAC9D,IAAIC,gBAAgBQ,aAAaR,gBAAgB,MAC7CO,QAAQ,iBAAiBI,mBAAmB,KAAKX,eAAe;QACpE,IAAIC,2CAA2C,MAC3C,MAAM,IAAIQ,MAAM;aACf,IAAIR,2CAA2CO,WAChDD,QAAQ,4CAA4CI,mBAAmB,KAAKV,0CAA0C;QAC1H,IAAIC,SAAS,MACT,MAAM,IAAIO,MAAM;aACf,IAAIP,SAASM,WACdD,QAAQ,UAAUI,mBAAmB,KAAKT,QAAQ;QACtD,IAAIC,aAAa,MACb,MAAM,IAAIM,MAAM;aACf,IAAIN,aAAaK,WAClBD,QAAQ,cAAcI,mBAAmB,KAAKR,YAAY;QAC9D,IAAIC,WAAWI,aAAaJ,WAAW,MACnCG,QAAQ,YAAYI,mBAAmB,KAAKP,UAAU;QAC1D,IAAIC,kBAAkBG,aAAaH,kBAAkB,MACjDE,QAAQ,mBAAmBI,mBAAmB,KAAKN,iBAAiB;QACxEE,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAA4CN;IACvF;IAEA;;KAEC,GACDO,OAAOrC,QAAgB,EAAEoC,OAAwC,EAAEf,WAAyB,EAA4C;QACpI,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1DsB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,MAAMa,WAAWF;QAEjB,IAAIN,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAkB,MAAMD;YACNL,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAA6BN;IACxE;IAEA;;KAEC,GACDU,IAAIxC,QAAgB,EAAEyC,EAAU,EAAEpB,WAAyB,EAA4C;QACnG,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAIyC,OAAOlB,aAAakB,OAAO,MAC3B,MAAM,IAAIjB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,QAAQC,mBAAmB,KAAKe;QACpDnB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAA6BN;IACxE;IAEA;;KAEC,GACDY,OAAO1C,QAAgB,EAAEyC,EAAU,EAAEL,OAAwC,EAAEf,WAAyB,EAA4C;QAChJ,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAIyC,OAAOlB,aAAakB,OAAO,MAC3B,MAAM,IAAIjB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,QAAQC,mBAAmB,KAAKe;QACpDnB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,MAAMa,WAAWF;QAEjB,IAAIN,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAkB,MAAMD;YACNL,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAA6BN;IACxE;IAEA;;KAEC,GACDa,OAAO3C,QAAgB,EAAEyC,EAAU,EAAEpB,WAAyB,EAAsB;QAChF,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAIyC,OAAOlB,aAAakB,OAAO,MAC3B,MAAM,IAAIjB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,QAAQC,mBAAmB,KAAKe;QACpDnB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;YACpB;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAAON;IAClD;IAEA;;KAEC,GACDc,iBAAiB5C,QAAgB,EAAEoC,OAAuC,EAAEf,WAAyB,EAAiD;QAClJ,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1DsB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,MAAMa,WAAWF;QAEjB,IAAIN,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAkB,MAAMD;YACNL,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAAkCN;IAC7E;IAEA;;;;KAIC,GACDe,QAAQ7C,QAAgB,EAAEyC,EAAU,EAAEpB,WAAyB,EAAsB;QACjF,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAIyC,OAAOlB,aAAakB,OAAO,MAC3B,MAAM,IAAIjB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,QAAQC,mBAAmB,KAAKe;QACpDnB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;YACpB;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAAON;IAClD;IAEA;;KAEC,GACDgB,gBAAgB9C,QAAgB,EAAE+C,SAAiB,EAAE1B,WAAyB,EAA6C;QACvH,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAI+C,cAAcxB,aAAawB,cAAc,MACzC,MAAM,IAAIvB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,eAAeC,mBAAmB,KAAKqB;QAC3DzB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAA8BN;IACzE;IAEA;;KAEC,GACDkB,mBAAmBhD,QAAgB,EAAE+C,SAAiB,EAAEE,YAAoB,EAAE5B,WAAyB,EAAsB;QACzH,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAI+C,cAAcxB,aAAawB,cAAc,MACzC,MAAM,IAAIvB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,eAAeC,mBAAmB,KAAKqB;QAC3D,IAAIE,iBAAiB1B,aAAa0B,iBAAiB,MAC/C,MAAM,IAAIzB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,kBAAkBC,mBAAmB,KAAKuB;QAC9D3B,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;YACpB;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAAON;IAClD;IAEA;;KAEC,GACDoB,iBAAiBlD,QAAgB,EAAE+C,SAAiB,EAAEE,YAAoB,EAAE5B,WAAyB,EAAsB;QACvH,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAI+C,cAAcxB,aAAawB,cAAc,MACzC,MAAM,IAAIvB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,eAAeC,mBAAmB,KAAKqB;QAC3D,IAAIE,iBAAiB1B,aAAa0B,iBAAiB,MAC/C,MAAM,IAAIzB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,kBAAkBC,mBAAmB,KAAKuB;QAC9D3B,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;YACpB;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAAON;IAClD;IAEA;;;KAGC,GACDqB,mBAAmBnD,QAAgB,EAAE+C,SAAiB,EAAEX,OAAqC,EAAEf,WAAyB,EAA6C;QACjK,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1D,IAAI+C,cAAcxB,aAAawB,cAAc,MACzC,MAAM,IAAIvB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,eAAeC,mBAAmB,KAAKqB;QAC3DzB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,MAAMa,WAAWF;QAEjB,IAAIN,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAkB,MAAMD;YACNL,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAA8BN;IACzE;IAEA;;KAEC,GACDsB,uBAAuBpD,QAAgB,EAAEqB,WAAyB,EAA6C;QAC3G,IAAIC,OAAO;QACX,IAAItB,aAAauB,aAAavB,aAAa,MACvC,MAAM,IAAIwB,MAAM;QACpBF,OAAOA,KAAKG,OAAO,CAAC,cAAcC,mBAAmB,KAAK1B;QAC1DsB,OAAOA,KAAKG,OAAO,CAAC,SAAS;QAE7B,IAAIK,WAA+B;YAC/BC,SAAS,IAAI,CAACC,OAAO;YACrBX;YACAY,KAAKX;YACLY,QAAQ;YACRC,SAAS;gBACL,gBAAgB;gBAChB,UAAU;YACd;QACJ;QAEA,OAAOvC,mBAAmBL,MAAM6C,OAAO,CAA8BN;IACzE;IA5YA,YAAY,AAAuEE,UAAU,EAAE,CAAE;;QAFjG,uBAAUqB,oBAAV,KAAA;aAEmFrB,UAAAA;aAFzEqB,mBAAmE9B;IAG7E;AA4YJ"}
|
|
1
|
+
{"version":3,"sources":["../src/expense-management.api.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// <auto-generated>\n// Generated with ApiClientGenerator, using the NSwag toolchain\n// </auto-generated>\n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport axios, { AxiosRequestConfig, AxiosPromise, CancelToken } from 'axios';\nimport { injectable, inject, optional, symbolToken } from '@servicetitan/react-ioc';\nimport { makeCodedException, makeContent } from './utils';\n// @ts-ignore: needed for Date serialization if a DateTime parameter has an Unspecified attribute on it\nimport moment from 'moment';\n\nexport interface IExpenseManagement {\n /**\n * List expense transactions with optional filters.\n * @ids (optional) Filter by specific expense IDs.\n * @vendorIds (optional) Filter by vendor IDs.\n * @jobIds (optional) Filter by job IDs.\n * @projectIds (optional) Filter by project IDs.\n * @syncStatuses (optional) Filter by sync statuses (e.g. \"Pending\", \"Posted\", \"Exported\").\n * @transactionStatuses (optional) Filter by transaction statuses (e.g. \"Pending\", \"Complete\", \"Declined\").\n * @receiptStatuses (optional) Filter by receipt statuses (e.g. \"Missing\", \"Attached\", \"Verified\").\n * @dateFrom (optional) Filter by transaction date (inclusive start).\n * @dateTo (optional) Filter by transaction date (inclusive end).\n * @creditCardAccountIds (optional) Filter by credit card GL account IDs.\n * @businessUnitIds (optional) Filter by business unit IDs.\n * @batchId (optional) Filter by batch ID.\n * @totalMin (optional) Filter by minimum total cost.\n * @totalMax (optional) Filter by maximum total cost.\n * @needsReview (optional) Filter by review state (missing ST mappings such as vendor, cardholder, job, or project). When true, return only transactions that need review; when false, return only transactions that do not; when null (default), the filter is not applied and both are returned.\n * @includeUnqualifiedProviderTransactions (optional) When false (default), provider-originated transactions are returned only once they have qualified (cleared by the card network AND marked ready by the provider); manual transactions are always returned. When true, un-qualified provider transactions (pending / not-ready) are also returned. Use true only for show-everything views.\n * @page (optional) Page number (1-based). Defaults to 1.\n * @pageSize (optional) Number of items per page. Defaults to 50.\n * @sortBy (optional) Property name to sort by (e.g. \"transactionDate\", \"total\", \"syncStatus\"). Defaults to \"transactionDate\".\n * @sortDirection (optional) Sort direction: \"asc\" or \"desc\". Defaults to \"desc\".\n */\n list(tenantId: number, ids: string[] | null | undefined, vendorIds: number[] | null | undefined, jobIds: number[] | null | undefined, projectIds: number[] | null | undefined, syncStatuses: string[] | null | undefined, transactionStatuses: string[] | null | undefined, receiptStatuses: string[] | null | undefined, dateFrom: Date | null | undefined, dateTo: Date | null | undefined, creditCardAccountIds: number[] | null | undefined, businessUnitIds: number[] | null | undefined, batchId: number | null | undefined, totalMin: number | null | undefined, totalMax: number | null | undefined, needsReview: boolean | null | undefined, includeUnqualifiedProviderTransactions: boolean | undefined, page: number | undefined, pageSize: number | undefined, sortBy: string | null | undefined, sortDirection: string | null | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfExpenseTransactionResponse>;\n /**\n * Create a new expense transaction\n */\n create(tenantId: number, request: CreateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse>;\n /**\n * Get a single expense transaction by ID\n */\n get(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse>;\n /**\n * Update an existing expense transaction\n */\n update(tenantId: number, id: string, request: UpdateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse>;\n /**\n * Delete an expense transaction (only if Pending)\n */\n delete(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * Update sync status for one or more expense transactions (used by monolith batch posting).\n */\n updateSyncStatus(tenantId: number, request: UpdateExpenseSyncStatusRequest, cancelToken?: CancelToken): AxiosPromise<UpdateExpenseSyncStatusResponse>;\n /**\n * Read the raw provider-reported merchant/cardholder names for a batch of expenses (used by the\n monolith's historical name backfill). POST rather than GET because 500 GUIDs overflow the request\n line. Deliberately ignores the default list visibility filter: a row with null names means the\n provider reported none (terminal — nothing to backfill), while an ID returned under\n `notFoundIds` did not resolve and should be retried. Unpaged — over 500 distinct IDs is a 400,\n never a silent truncation. Requires the `ExpenseSync` permission.\n */\n listRawNames(tenantId: number, request: ListExpenseRawNamesRequest, cancelToken?: CancelToken): AxiosPromise<ListExpenseRawNamesResponse>;\n /**\n * Mark an expense as \"not a ServiceTitan expense\" (outbound retract). Writes\n `is_st_expense=\"false\"` to the provider, persists `IsStExpense=false`, and removes the\n monolith projection. Idempotent: a no-longer-ST expense returns 200 with no provider call.\n */\n retract(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * List attachments for an expense transaction\n */\n listAttachments(tenantId: number, expenseId: string, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]>;\n /**\n * Download an attachment file\n */\n downloadAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * Delete an attachment from an expense transaction\n */\n deleteAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void>;\n /**\n * Bind one or more draft attachment tokens (from the draft-upload endpoint) to this\n expense transaction as permanent attachments.\n */\n promoteAttachments(tenantId: number, expenseId: string, request: AddExpenseAttachmentsRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]>;\n /**\n * Get well-known GL account ids for the tenant (from cache). Returns null ids when the cache is cold or degraded.\n */\n getWellKnownGlAccounts(tenantId: number, cancelToken?: CancelToken): AxiosPromise<WellKnownGlAccountsResponse>;\n}\n\nexport const BASE_URL_TOKEN_ExpenseManagement = symbolToken<string>('BASE_URL_TOKEN', false);\n\n@injectable()\nexport class ExpenseManagement implements IExpenseManagement {\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@inject(BASE_URL_TOKEN_ExpenseManagement) @optional() private readonly baseUrl = \"\") {\n }\n\n /**\n * List expense transactions with optional filters.\n * @ids (optional) Filter by specific expense IDs.\n * @vendorIds (optional) Filter by vendor IDs.\n * @jobIds (optional) Filter by job IDs.\n * @projectIds (optional) Filter by project IDs.\n * @syncStatuses (optional) Filter by sync statuses (e.g. \"Pending\", \"Posted\", \"Exported\").\n * @transactionStatuses (optional) Filter by transaction statuses (e.g. \"Pending\", \"Complete\", \"Declined\").\n * @receiptStatuses (optional) Filter by receipt statuses (e.g. \"Missing\", \"Attached\", \"Verified\").\n * @dateFrom (optional) Filter by transaction date (inclusive start).\n * @dateTo (optional) Filter by transaction date (inclusive end).\n * @creditCardAccountIds (optional) Filter by credit card GL account IDs.\n * @businessUnitIds (optional) Filter by business unit IDs.\n * @batchId (optional) Filter by batch ID.\n * @totalMin (optional) Filter by minimum total cost.\n * @totalMax (optional) Filter by maximum total cost.\n * @needsReview (optional) Filter by review state (missing ST mappings such as vendor, cardholder, job, or project). When true, return only transactions that need review; when false, return only transactions that do not; when null (default), the filter is not applied and both are returned.\n * @includeUnqualifiedProviderTransactions (optional) When false (default), provider-originated transactions are returned only once they have qualified (cleared by the card network AND marked ready by the provider); manual transactions are always returned. When true, un-qualified provider transactions (pending / not-ready) are also returned. Use true only for show-everything views.\n * @page (optional) Page number (1-based). Defaults to 1.\n * @pageSize (optional) Number of items per page. Defaults to 50.\n * @sortBy (optional) Property name to sort by (e.g. \"transactionDate\", \"total\", \"syncStatus\"). Defaults to \"transactionDate\".\n * @sortDirection (optional) Sort direction: \"asc\" or \"desc\". Defaults to \"desc\".\n */\n list(tenantId: number, ids: string[] | null | undefined, vendorIds: number[] | null | undefined, jobIds: number[] | null | undefined, projectIds: number[] | null | undefined, syncStatuses: string[] | null | undefined, transactionStatuses: string[] | null | undefined, receiptStatuses: string[] | null | undefined, dateFrom: Date | null | undefined, dateTo: Date | null | undefined, creditCardAccountIds: number[] | null | undefined, businessUnitIds: number[] | null | undefined, batchId: number | null | undefined, totalMin: number | null | undefined, totalMax: number | null | undefined, needsReview: boolean | null | undefined, includeUnqualifiedProviderTransactions: boolean | undefined, page: number | undefined, pageSize: number | undefined, sortBy: string | null | undefined, sortDirection: string | null | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions?\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (ids !== undefined && ids !== null)\n ids && ids.forEach(item => { url_ += \"ids=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (vendorIds !== undefined && vendorIds !== null)\n vendorIds && vendorIds.forEach(item => { url_ += \"vendorIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (jobIds !== undefined && jobIds !== null)\n jobIds && jobIds.forEach(item => { url_ += \"jobIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (projectIds !== undefined && projectIds !== null)\n projectIds && projectIds.forEach(item => { url_ += \"projectIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (syncStatuses !== undefined && syncStatuses !== null)\n syncStatuses && syncStatuses.forEach(item => { url_ += \"syncStatuses=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (transactionStatuses !== undefined && transactionStatuses !== null)\n transactionStatuses && transactionStatuses.forEach(item => { url_ += \"transactionStatuses=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (receiptStatuses !== undefined && receiptStatuses !== null)\n receiptStatuses && receiptStatuses.forEach(item => { url_ += \"receiptStatuses=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (dateFrom !== undefined && dateFrom !== null)\n url_ += \"dateFrom=\" + encodeURIComponent(dateFrom ? \"\" + dateFrom.toJSON() : \"\") + \"&\";\n if (dateTo !== undefined && dateTo !== null)\n url_ += \"dateTo=\" + encodeURIComponent(dateTo ? \"\" + dateTo.toJSON() : \"\") + \"&\";\n if (creditCardAccountIds !== undefined && creditCardAccountIds !== null)\n creditCardAccountIds && creditCardAccountIds.forEach(item => { url_ += \"creditCardAccountIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (businessUnitIds !== undefined && businessUnitIds !== null)\n businessUnitIds && businessUnitIds.forEach(item => { url_ += \"businessUnitIds=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (batchId !== undefined && batchId !== null)\n url_ += \"batchId=\" + encodeURIComponent(\"\" + batchId) + \"&\";\n if (totalMin !== undefined && totalMin !== null)\n url_ += \"totalMin=\" + encodeURIComponent(\"\" + totalMin) + \"&\";\n if (totalMax !== undefined && totalMax !== null)\n url_ += \"totalMax=\" + encodeURIComponent(\"\" + totalMax) + \"&\";\n if (needsReview !== undefined && needsReview !== null)\n url_ += \"needsReview=\" + encodeURIComponent(\"\" + needsReview) + \"&\";\n if (includeUnqualifiedProviderTransactions === null)\n throw new Error(\"The parameter 'includeUnqualifiedProviderTransactions' cannot be null.\");\n else if (includeUnqualifiedProviderTransactions !== undefined)\n url_ += \"includeUnqualifiedProviderTransactions=\" + encodeURIComponent(\"\" + includeUnqualifiedProviderTransactions) + \"&\";\n if (page === null)\n throw new Error(\"The parameter 'page' cannot be null.\");\n else if (page !== undefined)\n url_ += \"page=\" + encodeURIComponent(\"\" + page) + \"&\";\n if (pageSize === null)\n throw new Error(\"The parameter 'pageSize' cannot be null.\");\n else if (pageSize !== undefined)\n url_ += \"pageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\n if (sortBy !== undefined && sortBy !== null)\n url_ += \"sortBy=\" + encodeURIComponent(\"\" + sortBy) + \"&\";\n if (sortDirection !== undefined && sortDirection !== null)\n url_ += \"sortDirection=\" + encodeURIComponent(\"\" + sortDirection) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<PagedResponseOfExpenseTransactionResponse>(options_));\n }\n\n /**\n * Create a new expense transaction\n */\n create(tenantId: number, request: CreateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseTransactionResponse>(options_));\n }\n\n /**\n * Get a single expense transaction by ID\n */\n get(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseTransactionResponse>(options_));\n }\n\n /**\n * Update an existing expense transaction\n */\n update(tenantId: number, id: string, request: UpdateExpenseTransactionRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseTransactionResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseTransactionResponse>(options_));\n }\n\n /**\n * Delete an expense transaction (only if Pending)\n */\n delete(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * Update sync status for one or more expense transactions (used by monolith batch posting).\n */\n updateSyncStatus(tenantId: number, request: UpdateExpenseSyncStatusRequest, cancelToken?: CancelToken): AxiosPromise<UpdateExpenseSyncStatusResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/sync-status\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<UpdateExpenseSyncStatusResponse>(options_));\n }\n\n /**\n * Read the raw provider-reported merchant/cardholder names for a batch of expenses (used by the\n monolith's historical name backfill). POST rather than GET because 500 GUIDs overflow the request\n line. Deliberately ignores the default list visibility filter: a row with null names means the\n provider reported none (terminal — nothing to backfill), while an ID returned under\n `notFoundIds` did not resolve and should be retried. Unpaged — over 500 distinct IDs is a 400,\n never a silent truncation. Requires the `ExpenseSync` permission.\n */\n listRawNames(tenantId: number, request: ListExpenseRawNamesRequest, cancelToken?: CancelToken): AxiosPromise<ListExpenseRawNamesResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/raw-names\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ListExpenseRawNamesResponse>(options_));\n }\n\n /**\n * Mark an expense as \"not a ServiceTitan expense\" (outbound retract). Writes\n `is_st_expense=\"false\"` to the provider, persists `IsStExpense=false`, and removes the\n monolith projection. Idempotent: a no-longer-ST expense returns 200 with no provider call.\n */\n retract(tenantId: number, id: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{id}/retract\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (id === undefined || id === null)\n throw new Error(\"The parameter 'id' must be defined.\");\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * List attachments for an expense transaction\n */\n listAttachments(tenantId: number, expenseId: string, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseAttachmentResponse[]>(options_));\n }\n\n /**\n * Download an attachment file\n */\n downloadAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments/{attachmentId}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n if (attachmentId === undefined || attachmentId === null)\n throw new Error(\"The parameter 'attachmentId' must be defined.\");\n url_ = url_.replace(\"{attachmentId}\", encodeURIComponent(\"\" + attachmentId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * Delete an attachment from an expense transaction\n */\n deleteAttachment(tenantId: number, expenseId: string, attachmentId: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments/{attachmentId}\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n if (attachmentId === undefined || attachmentId === null)\n throw new Error(\"The parameter 'attachmentId' must be defined.\");\n url_ = url_.replace(\"{attachmentId}\", encodeURIComponent(\"\" + attachmentId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n }\n };\n\n return makeCodedException(axios.request<void>(options_));\n }\n\n /**\n * Bind one or more draft attachment tokens (from the draft-upload endpoint) to this\n expense transaction as permanent attachments.\n */\n promoteAttachments(tenantId: number, expenseId: string, request: AddExpenseAttachmentsRequest, cancelToken?: CancelToken): AxiosPromise<ExpenseAttachmentResponse[]> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/{expenseId}/attachments/promote\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n if (expenseId === undefined || expenseId === null)\n throw new Error(\"The parameter 'expenseId' must be defined.\");\n url_ = url_.replace(\"{expenseId}\", encodeURIComponent(\"\" + expenseId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = request;\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n data: content_,\n url: url_,\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<ExpenseAttachmentResponse[]>(options_));\n }\n\n /**\n * Get well-known GL account ids for the tenant (from cache). Returns null ids when the cache is cold or degraded.\n */\n getWellKnownGlAccounts(tenantId: number, cancelToken?: CancelToken): AxiosPromise<WellKnownGlAccountsResponse> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/gl-accounts/well-known\";\n if (tenantId === undefined || tenantId === null)\n throw new Error(\"The parameter 'tenantId' must be defined.\");\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = <AxiosRequestConfig>{\n baseURL: this.baseUrl,\n cancelToken,\n url: url_,\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<WellKnownGlAccountsResponse>(options_));\n }\n}\n\n/** Generic paged response wrapper with total count for pagination support. */\nexport interface PagedResponseOfExpenseTransactionResponse {\n /** Data collection */\n data: ExpenseTransactionResponse[];\n /** Current page number */\n page: number;\n /** Page size */\n pageSize: number;\n /** Total count of items (null if pagination not required) */\n totalCount?: number | undefined;\n /** Whether there are more pages */\n hasMore: boolean;\n}\n\nexport interface BaseEntityApiModel {\n id: string;\n createdOn: Date;\n modifiedOn: Date;\n}\n\nexport interface ExpenseTransactionResponse extends BaseEntityApiModel {\n /** Tenant that owns this expense. */\n tenantId: number;\n /** Tenant-scoped expense transaction display number. */\n number: string;\n /** Free-text summary or notes for the expense. */\n summary?: string | undefined;\n /** The date the transaction occurred (from card statement). */\n transactionDate?: Date | undefined;\n /** Computed total: sum of line item amounts + tax + shipping. Negative for refunds. */\n total: number;\n /** True when this transaction is a refund/reversal rather than a charge. */\n isRefund: boolean;\n /** Provider id of the parent charge this refund reverses; null otherwise. */\n parentExternalId?: string | undefined;\n /** Internal MOS ExpenseId of the parent charge this refund reverses, when known; null otherwise. */\n parentExpenseId?: string | undefined;\n /** IDs of refund transactions that reference this expense as their parent.\nPopulated on GET-by-id only; null on list responses. Empty list when no refunds exist. */\n refundExpenseIds?: string[] | undefined;\n /** Tax portion of the total. */\n tax: number;\n /** Shipping portion of the total. */\n shipping: number;\n /** Vendor where the expense was incurred. */\n vendorId: number;\n /** Business unit this expense is charged to. */\n businessUnitId?: number | undefined;\n /** Job this expense is associated with, if any. */\n jobId?: number | undefined;\n /** Project this expense is associated with, if any. */\n projectId?: number | undefined;\n /** Purchase order linked to this expense for two-way matching. */\n purchaseOrderId?: number | undefined;\n /** Employee (cardholder) who made the purchase. */\n employeeId?: number | undefined;\n /** Credit card GL account (Liability:Credit Card) this expense was charged to. */\n creditCardAccountId?: number | undefined;\n /** Merchant processing status (e.g. Pending, Complete, Error, Declined). */\n transactionStatus: string;\n /** Provider-supplied context for the transaction status — e.g. decline reason, error message, or status-specific note. */\n transactionStatusDetails?: string | undefined;\n /** Computed field: true if essential ST-related bindings are not set for the transaction (such as VendorId, cardholder, etc). */\n needsReview: boolean;\n /** MOS-owned export-readiness headline (e.g. Pending, ReadyForExport, Exported). Composed by\nExpenseStatusRules; folds in NeedsReview and ProviderRequirementsMet. */\n expenseStatus: string;\n /** Whether the upstream card provider considers this transaction's requirements met and approved.\nTri-state: null = provider has not yet determined (never coerced to false). Distinct from\nNeedsReview, which reflects ServiceTitan binding gaps rather than provider sign-off. */\n providerRequirementsMet?: boolean | undefined;\n /** Status of receipt documentation (e.g. Pending, Received). */\n receiptStatus: string;\n /** Last 4 digits of the card number. */\n cardNumberLast4?: string | undefined;\n /** Accounting sync/export status (e.g. Pending, Posted, Exported). */\n syncStatus: string;\n /** Batch this expense was posted in, if any. */\n batchId?: number | undefined;\n /** Identifier from the external expense provider (e.g. Ramp transaction ID). */\n externalId?: string | undefined;\n /** Name of the external provider (e.g. \"Ramp\"). */\n externalSource?: string | undefined;\n /** Card identifier from the external provider (e.g. Ramp card_id). */\n externalCardId?: string | undefined;\n /** Human-readable merchant category (e.g. \"Supermarkets and grocery stores\").\nProvider-supplied for card-sourced expenses (e.g. Ramp's `sk_category_name`); free-text for manual entries. */\n merchantCategory?: string | undefined;\n /** Default debit GL account for the expense. Line items may override with their own GeneralLedgerAccountId. */\n debitAccountId?: number | undefined;\n /** Default budget code for the expense. Line items may override with their own BudgetCodeId. */\n budgetCodeId?: number | undefined;\n /** True when the debit GL account was assigned via the safe-degrade fallback (the tenant's\nUncategorized account) rather than a confident binding. Mirrors the persisted\nExpenseTransaction.DebitGlFallbackApplied and is folded into NeedsReview; surfaced so the UI\ncan warn that the GL account needs correcting. */\n debitGlFallbackApplied: boolean;\n /** True when this expense transaction originated in ServiceTitan (as opposed to being sourced\nentirely from an external provider). Tri-state: null means unknown/not set. */\n isStExpense?: boolean | undefined;\n /** ServiceTitan-internal reference number for this expense, when it originated in ST. Null for\nprovider-sourced transactions. A blank value on an ST expense is folded into NeedsReview;\nsurfaced so the UI can explain the review reason. */\n stReferenceNumber?: string | undefined;\n /** Denormalized project label(s) for display/export. */\n projectLabels?: string | undefined;\n /** Provider-reported (external) values, captured verbatim before ServiceTitan resolution. Surfaced\nso a \"needs review\" expense whose merchant/cardholder did not resolve to a ServiceTitan\nvendor/employee can show what the provider sent. Null when no provider details are recorded. */\n externalDetails?: ExpenseTransactionExternalDetailsResponse;\n /** Line items with expense GL accounts. */\n lineItems: ExpenseTransactionLineItemResponse[];\n /** Receipt attachments. File content is in Azure Blob Storage; these are metadata records. */\n attachments: ExpenseAttachmentResponse[];\n}\n\n/** Provider-reported (external) values for an expense transaction, captured verbatim as the card provider sent them. Present so a \"needs review\" expense whose merchant/cardholder did not resolve to a ServiceTitan vendor/employee can surface what the provider sent (with a not-found-in-ServiceTitan indicator) instead of a blank. Null when no provider details are recorded. */\nexport interface ExpenseTransactionExternalDetailsResponse {\n /** Merchant name as reported by the provider. */\n merchantName?: string | undefined;\n /** Cardholder display name as reported by the provider. */\n cardholderName?: string | undefined;\n /** Cardholder email as reported by the provider. */\n cardholderEmail?: string | undefined;\n /** Provider's own identifier for the cardholder. */\n cardholderUserId?: string | undefined;\n /** Human-readable GL account name the provider coded on the transaction header. */\n glAccountName?: string | undefined;\n /** GL account identifier the provider coded on the transaction header. */\n glAccountId?: string | undefined;\n}\n\nexport interface ExpenseTransactionLineItemResponse extends BaseEntityApiModel {\n /** Description of the line item. */\n description: string;\n /** Total dollar amount for this line item (Quantity × UnitPrice). */\n amount: number;\n /** Number of units purchased. */\n quantity: number;\n /** Dollar amount per unit. */\n unitPrice: number;\n /** Optional debit GL account override at the line level (defaults to header DebitAccountId if null). */\n generalLedgerAccountId?: number | undefined;\n /** Optional job override at the line level (defaults to header job if null). */\n jobId?: number | undefined;\n /** Optional project override at the line level (defaults to header project if null). */\n projectId?: number | undefined;\n /** Optional business unit override at the line level (defaults to header BU if null). */\n businessUnitId?: number | undefined;\n /** Optional budget code override at the line level (defaults to header BudgetCodeId if null). */\n budgetCodeId?: number | undefined;\n /** Denormalized project label for this line item. */\n projectLabels?: string | undefined;\n}\n\n/** Metadata information for an expense attachment (receipt). Not the actual file. */\nexport interface ExpenseAttachmentResponse extends BaseEntityApiModel {\n /** Sanitized file name for display and download. */\n filename: string;\n /** Original file name as uploaded by the user. */\n originalFilename: string;\n /** MIME content type. */\n contentType: string;\n /** File size in bytes. */\n fileSize: number;\n}\n\nexport interface CreateExpenseTransactionRequest {\n /** Tenant-scoped expense transaction display number. */\n number: string;\n /** The date the transaction occurred (from card statement). */\n transactionDate?: Date | undefined;\n /** Tax portion of the total. */\n tax: number;\n /** Shipping portion of the total. */\n shipping: number;\n /** Vendor where the expense was incurred. */\n vendorId: number;\n /** Business unit this expense is charged to. */\n businessUnitId?: number | undefined;\n /** Job this expense is associated with, if any. */\n jobId?: number | undefined;\n /** Project this expense is associated with, if any. */\n projectId?: number | undefined;\n /** Purchase order linked to this expense for two-way matching. */\n purchaseOrderId?: number | undefined;\n /** Employee (cardholder) who made the purchase. */\n employeeId?: number | undefined;\n /** Credit card GL account (Liability:Credit Card) this expense was charged to. */\n creditCardAccountId?: number | undefined;\n /** Last 4 digits of the card number. */\n cardNumberLast4?: string | undefined;\n /** Human-readable merchant category. */\n merchantCategory?: string | undefined;\n /** Merchant processing status (e.g. \"Pending\", \"Complete\", \"Error\", \"Declined\"). Defaults to \"Complete\" for manual input. */\n transactionStatus?: string | undefined;\n /** Provider-supplied context for the transaction status — e.g. decline reason, error message, or status-specific note. */\n transactionStatusDetails?: string | undefined;\n /** Free-text summary or notes for the expense. */\n summary?: string | undefined;\n /** Default debit GL account for the expense. Line items may override with their own GeneralLedgerAccountId. */\n debitAccountId?: number | undefined;\n /** Default budget code for the expense. Line items may override with their own BudgetCodeId. */\n budgetCodeId?: number | undefined;\n /** Denormalized project label(s) for display/export. */\n projectLabels?: string | undefined;\n /** Line items with expense GL accounts. */\n lineItems: ExpenseTransactionLineItemRequest[];\n}\n\nexport interface ExpenseTransactionLineItemRequest {\n /** Description of the line item. */\n description: string;\n /** Number of units purchased. */\n quantity: number;\n /** Dollar amount per unit. */\n unitPrice: number;\n /** Optional debit GL account override at the line level (defaults to header DebitAccountId if null). */\n generalLedgerAccountId?: number | undefined;\n /** Optional job override at the line level (defaults to header job if null). */\n jobId?: number | undefined;\n /** Optional project override at the line level (defaults to header project if null). */\n projectId?: number | undefined;\n /** Optional business unit override at the line level (defaults to header BU if null). */\n businessUnitId?: number | undefined;\n /** Optional budget code override at the line level (defaults to header BudgetCodeId if null). */\n budgetCodeId?: number | undefined;\n /** Denormalized project label for this line item. */\n projectLabels?: string | undefined;\n}\n\nexport interface UpdateExpenseTransactionRequest {\n /** Tenant-scoped expense transaction display number. */\n number: string;\n /** The date the transaction occurred (from card statement). */\n transactionDate?: Date | undefined;\n /** Tax portion of the total. */\n tax: number;\n /** Shipping portion of the total. */\n shipping: number;\n /** Vendor where the expense was incurred. */\n vendorId: number;\n /** Business unit this expense is charged to. */\n businessUnitId?: number | undefined;\n /** Job this expense is associated with, if any. */\n jobId?: number | undefined;\n /** Project this expense is associated with, if any. */\n projectId?: number | undefined;\n /** Purchase order linked to this expense for two-way matching. */\n purchaseOrderId?: number | undefined;\n /** Employee (cardholder) who made the purchase. */\n employeeId?: number | undefined;\n /** Credit card GL account (Liability:Credit Card) this expense was charged to. */\n creditCardAccountId?: number | undefined;\n /** Last 4 digits of the card number. */\n cardNumberLast4?: string | undefined;\n /** Human-readable merchant category (e.g. \"Supermarkets and grocery stores\").\nProvider-supplied for card-sourced expenses (e.g. Ramp's `sk_category_name`); free-text for manual entries. */\n merchantCategory?: string | undefined;\n /** Merchant processing status (e.g. \"Pending\", \"Complete\", \"Error\", \"Declined\"). */\n transactionStatus?: string | undefined;\n /** Provider-supplied context for the transaction status — e.g. decline reason, error message, or status-specific note. */\n transactionStatusDetails?: string | undefined;\n /** Free-text summary or notes for the expense. */\n summary?: string | undefined;\n /** Default debit GL account for the expense. Line items may override with their own GeneralLedgerAccountId. */\n debitAccountId?: number | undefined;\n /** Default budget code for the expense. Line items may override with their own BudgetCodeId. */\n budgetCodeId?: number | undefined;\n /** Denormalized project label(s) for display/export. */\n projectLabels?: string | undefined;\n /** Line items with expense GL accounts. Include Id for existing items, omit for new. */\n lineItems: UpdateExpenseTransactionLineItemRequest[];\n}\n\nexport interface UpdateExpenseTransactionLineItemRequest {\n /** Unique GUID for the line item: reuse the existing id to update a line, or supply a fresh\nGUID (e.g. `Guid.NewGuid()`) for a new one. Must be non-empty and unique within the\nrequest — null or an empty GUID is rejected with a 400 (UpdateAsync diffs the collection by id). */\n id?: string | undefined;\n /** Description of the line item. */\n description: string;\n /** Number of units purchased. */\n quantity: number;\n /** Dollar amount per unit. */\n unitPrice: number;\n /** Optional debit GL account override at the line level (defaults to header DebitAccountId if null). */\n generalLedgerAccountId?: number | undefined;\n /** Optional job override at the line level (defaults to header job if null). */\n jobId?: number | undefined;\n /** Optional project override at the line level (defaults to header project if null). */\n projectId?: number | undefined;\n /** Optional business unit override at the line level (defaults to header BU if null). */\n businessUnitId?: number | undefined;\n /** Optional budget code override at the line level (defaults to header BudgetCodeId if null). */\n budgetCodeId?: number | undefined;\n /** Denormalized project label for this line item. */\n projectLabels?: string | undefined;\n}\n\nexport interface UpdateExpenseSyncStatusResponse {\n /** Whether any expenses were updated. */\n updated: boolean;\n /** Number of expense transactions that were updated. */\n updatedCount: number;\n}\n\nexport interface UpdateExpenseSyncStatusRequest {\n /** IDs of the expense transactions to update. Maximum 500. */\n expenseIds: string[];\n /** Target sync status (e.g. \"Pending\", \"Posted\", \"Exported\"). */\n targetStatus: string;\n /** Batch ID. Required when transitioning to Posted. */\n batchId?: number | undefined;\n}\n\n/** Response for a batched raw-name read. Splits the two outcomes the caller has to treat differently instead of leaving them to be told apart by absence. */\nexport interface ListExpenseRawNamesResponse {\n /** One row per requested ID that resolved. A row whose names are both null is a terminal\noutcome — the provider reported no names, so there is nothing to backfill and no reason to retry.\n\nOrdered by ID within a single response. Note this differs from notFoundIds, which follows\nrequest order — match on ID rather than by position, and do not assume the two are parallel. The C#\nSDK splits large reads into batches and concatenates them, so its merged rows are ordered by ID only\nwithin each batch, not across the whole result. */\n rows: ExpenseRawNameResponse[];\n /** Requested IDs that did not resolve in this tenant. Distinct from a row with null names: these were\nnot read at all, so a backfill should retry them rather than record \"no raw name\". Duplicates in the\nrequest are collapsed before this is computed, so each unresolved ID appears once, in the order of\nits first occurrence in the request. */\n notFoundIds: string[];\n}\n\n/** Raw provider-reported names for one expense transaction, as captured before ServiceTitan vendor/employee resolution. A row exists for every requested ID that resolved, so both names being null is a terminal outcome — the provider reported none, and there is nothing to backfill. IDs that did not resolve are reported separately under notFoundIds rather than being left to be inferred from their absence here. */\nexport interface ExpenseRawNameResponse {\n /** Expense transaction ID. */\n id: string;\n /** Merchant name as reported by the provider. Null when the provider reported none. */\n merchantName?: string | undefined;\n /** Cardholder display name as reported by the provider. Null when the provider reported none. */\n cardholderName?: string | undefined;\n}\n\nexport interface ListExpenseRawNamesRequest {\n /** IDs of the expense transactions to read raw provider names for. Maximum 500 distinct IDs —\nduplicates are collapsed before the cap is applied, so 900 IDs that dedupe to 500 is accepted while\n501 distinct IDs is a 400. Empty is accepted and returns no rows.\n\nSeparately, the request body is capped at 256 KB (~6,700 IDs) as an allocation guard, so a batch\npadded with enough duplicates to exceed that is rejected with a 413 before the 500-distinct rule is\nevaluated. No sensible batch comes close. */\n expenseIds: string[];\n}\n\n/** Body for the promote endpoint: tokens previously returned from the draft-upload endpoint, to be associated with this expense. Filename is whatever was captured at draft-upload time (no caller-supplied override). */\nexport interface AddExpenseAttachmentsRequest {\n tokens: string[];\n}\n\nexport interface WellKnownGlAccountsResponse {\n uncategorizedExpenseAccountId?: number | undefined;\n}\n"],"names":["axios","injectable","inject","optional","symbolToken","makeCodedException","BASE_URL_TOKEN_ExpenseManagement","ExpenseManagement","list","tenantId","ids","vendorIds","jobIds","projectIds","syncStatuses","transactionStatuses","receiptStatuses","dateFrom","dateTo","creditCardAccountIds","businessUnitIds","batchId","totalMin","totalMax","needsReview","includeUnqualifiedProviderTransactions","page","pageSize","sortBy","sortDirection","cancelToken","url_","undefined","Error","replace","encodeURIComponent","forEach","item","toJSON","options_","baseURL","baseUrl","url","method","headers","request","create","content_","data","get","id","update","delete","updateSyncStatus","listRawNames","retract","listAttachments","expenseId","downloadAttachment","attachmentId","deleteAttachment","promoteAttachments","getWellKnownGlAccounts","jsonParseReviver"],"mappings":"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"}
|
package/package.json
CHANGED