@servicetitan/moneyout-api-client 1.36.0 → 1.37.0-beta.180
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.
- package/dist/expense-management.api.d.ts +4 -0
- package/dist/expense-management.api.d.ts.map +1 -1
- package/dist/expense-management.api.js.map +1 -1
- package/dist/vendor-mappings.api.d.ts +100 -0
- package/dist/vendor-mappings.api.d.ts.map +1 -0
- package/dist/vendor-mappings.api.js +140 -0
- package/dist/vendor-mappings.api.js.map +1 -0
- package/package.json +1 -1
|
@@ -239,6 +239,10 @@ Populated on GET-by-id only; null on list responses. Empty list when no refunds
|
|
|
239
239
|
shipping: number;
|
|
240
240
|
/** Vendor where the expense was incurred. */
|
|
241
241
|
vendorId: number;
|
|
242
|
+
/** True when VendorId was bound via an explicit merchant→vendor mapping rather than an
|
|
243
|
+
exact-name match, a default vendor, or left unbound. Lets the UI show "Mapped to {vendor}" beneath
|
|
244
|
+
the raw merchant name. Reflects the source stamped at ingest, so it stays correct after a remap. */
|
|
245
|
+
vendorBoundByMapping: boolean;
|
|
242
246
|
/** Business unit this expense is charged to. */
|
|
243
247
|
businessUnitId?: number | undefined;
|
|
244
248
|
/** Job this expense is associated with, if any. */
|
|
@@ -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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"}
|
|
@@ -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 * @cardholderIds (optional) Filter by cardholder directory IDs (see the cardholders endpoint). Matches the expense's cardholder\n link by equality, so selecting a person who holds both a ServiceTitan and a provider identity\n returns their manual expenses and their card spend together. Multiple IDs OR within the set, and the\n whole filter is conjunctive with every other filter. Omitted or empty applies no filter at all.\n \n An unknown, foreign, or retired ID matches nothing and returns success — existence is deliberately\n not validated, because doing so would disclose that a row exists in another tenant and would turn a\n legitimately retired ID into an error. A malformed GUID is rejected by model binding.\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, cardholderIds: 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 * List the tenant's cardholder directory — one entry per person, carrying whichever of the\n ServiceTitan and provider identities are known. Each entry's id is the value the\n `cardholderIds` filter on the expense list takes.\n */\n listCardholders(tenantId: number, cancelToken?: CancelToken): AxiosPromise<ExpenseCardholderResponse[]>;\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 * @cardholderIds (optional) Filter by cardholder directory IDs (see the cardholders endpoint). Matches the expense's cardholder\n link by equality, so selecting a person who holds both a ServiceTitan and a provider identity\n returns their manual expenses and their card spend together. Multiple IDs OR within the set, and the\n whole filter is conjunctive with every other filter. Omitted or empty applies no filter at all.\n \n An unknown, foreign, or retired ID matches nothing and returns success — existence is deliberately\n not validated, because doing so would disclose that a row exists in another tenant and would turn a\n legitimately retired ID into an error. A malformed GUID is rejected by model binding.\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, cardholderIds: 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 (cardholderIds !== undefined && cardholderIds !== null)\n cardholderIds && cardholderIds.forEach(item => { url_ += \"cardholderIds=\" + 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 * List the tenant's cardholder directory — one entry per person, carrying whichever of the\n ServiceTitan and provider identities are known. Each entry's id is the value the\n `cardholderIds` filter on the expense list takes.\n */\n listCardholders(tenantId: number, cancelToken?: CancelToken): AxiosPromise<ExpenseCardholderResponse[]> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/cardholders\";\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<ExpenseCardholderResponse[]>(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 /** Discriminates whether EmployeeId refers to an employee or a technician.\nNon-nullable: a persisted null normalizes to Employee. */\n spenderType: ExpenseSpenderType;\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/** Discriminates who an expense's spender-identity columns (`EmployeeId`/`EmployeeName`) refer to — the same monolith employee/technician id space that ExpenseTransaction has always stored, now disambiguated so name resolution can route to the right Public API surface. Employee = 0 / Technician = 1 are wire values, pinned because three repos decode them positionally — MOS, the monolith, and any future consumer of the outbound event. Renumbering or reordering the members is a breaking change caught only by ExpenseSpenderTypeContractTests (UNIT-105). Declare new members with an explicit value, at the end, never renumbering an existing one. null on the entity's SpenderType column reads as — which is exactly why Employee = 0 must stay pinned at zero: every pre-existing row and every pre-upgrade event has no value here, and the absent-means-Employee default depends on zero being that value. Realigning to match the monolith's ordering would trade a mappable hazard for a silent data-wide default inversion. Never cast to or from a monolith EmployeeType. The monolith declares 15 same-named EmployeeType enums, and Model/Timesheets/EmployeeType is the mirror image of this one (Technician = 0, Employee = 1). An (int) bridge compiles cleanly and silently inverts the tag, mistagging a financial record with no error anywhere. Map member-by-member, by name, if a bridge is ever needed. */\nexport enum ExpenseSpenderType {\n Employee = 0,\n Technician = 1,\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\n/** One entry in the tenant's cardholder directory — a person who incurs expenses, carrying whichever identities are known. A person holding both a ServiceTitan and a provider identity is returned as a single entry exposing both, which is the point of the directory: selecting them returns their manual expenses and their card spend together. */\nexport interface ExpenseCardholderResponse {\n /** The directory row's surrogate id — the value the `cardholderIds` expense-list filter takes.\nStable across late-resolution convergence when the row is absorbed in place, but a row superseded by\nconvergence is deleted, so a previously-held id may retire. A retired id simply matches no expenses\nand returns success; it is never an error. */\n id: string;\n /** ServiceTitan employee id, when this person's ServiceTitan identity is known. May be an\n`Employee.Id` or a `Technician.Id` — never a `User.Id`. The corresponding\nexpense's `SpenderType` is the disambiguator where one exists; see\n`seam-spender-identity.md` for why this id space is polymorphic and the column is not split. */\n stEmployeeId?: number | undefined;\n /** Name of the external expense provider this entry's provider identity belongs to, when known.\nAlways the value carried on the expense, never a hardcoded provider name. */\n provider?: string | undefined;\n /** Provider-reported cardholder id, when this person's provider identity is known. */\n providerUserId?: string | undefined;\n /** Cached display label only — never an identity, and deliberately not unique: two people sharing one\nmailbox is common in the trades. Legitimately null, including alongside a null\nDisplayName; such an entry is still returned. */\n email?: string | undefined;\n /** Cached display label only — never an identity. When non-null it is authoritative: consumers\nshould use it as-is rather than re-deriving a label. When null, resolving a label instead requires\nchecking BOTH rosters against StEmployeeId (employees and technicians share one id\nspace and never collide), because the directory itself does not disambiguate which roster the id\nbelongs to. Legitimately null, including alongside a null Email; such an entry is\nstill returned rather than hidden. */\n displayName?: string | undefined;\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 /** Discriminates whether EmployeeId is an employee or a technician. Optional; null reads as Employee. */\n spenderType?: ExpenseSpenderType | undefined;\n /** Client-resolved display name of the spender identified by EmployeeId. Optional fallback used only if server-side name resolution misses. */\n employeeName?: string | 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 /** Discriminates whether EmployeeId is an employee or a technician. Optional; null reads as Employee. */\n spenderType?: ExpenseSpenderType | undefined;\n /** Client-resolved display name of the spender identified by EmployeeId. Optional fallback used only if server-side name resolution misses. */\n employeeName?: string | 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","cardholderIds","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","listCardholders","get","id","update","delete","updateSyncStatus","listRawNames","retract","listAttachments","expenseId","downloadAttachment","attachmentId","deleteAttachment","promoteAttachments","getWellKnownGlAccounts","jsonParseReviver","ExpenseSpenderType"],"mappings":"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"}
|
|
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 * @cardholderIds (optional) Filter by cardholder directory IDs (see the cardholders endpoint). Matches the expense's cardholder\n link by equality, so selecting a person who holds both a ServiceTitan and a provider identity\n returns their manual expenses and their card spend together. Multiple IDs OR within the set, and the\n whole filter is conjunctive with every other filter. Omitted or empty applies no filter at all.\n \n An unknown, foreign, or retired ID matches nothing and returns success — existence is deliberately\n not validated, because doing so would disclose that a row exists in another tenant and would turn a\n legitimately retired ID into an error. A malformed GUID is rejected by model binding.\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, cardholderIds: 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 * List the tenant's cardholder directory — one entry per person, carrying whichever of the\n ServiceTitan and provider identities are known. Each entry's id is the value the\n `cardholderIds` filter on the expense list takes.\n */\n listCardholders(tenantId: number, cancelToken?: CancelToken): AxiosPromise<ExpenseCardholderResponse[]>;\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 * @cardholderIds (optional) Filter by cardholder directory IDs (see the cardholders endpoint). Matches the expense's cardholder\n link by equality, so selecting a person who holds both a ServiceTitan and a provider identity\n returns their manual expenses and their card spend together. Multiple IDs OR within the set, and the\n whole filter is conjunctive with every other filter. Omitted or empty applies no filter at all.\n \n An unknown, foreign, or retired ID matches nothing and returns success — existence is deliberately\n not validated, because doing so would disclose that a row exists in another tenant and would turn a\n legitimately retired ID into an error. A malformed GUID is rejected by model binding.\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, cardholderIds: 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 (cardholderIds !== undefined && cardholderIds !== null)\n cardholderIds && cardholderIds.forEach(item => { url_ += \"cardholderIds=\" + 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 * List the tenant's cardholder directory — one entry per person, carrying whichever of the\n ServiceTitan and provider identities are known. Each entry's id is the value the\n `cardholderIds` filter on the expense list takes.\n */\n listCardholders(tenantId: number, cancelToken?: CancelToken): AxiosPromise<ExpenseCardholderResponse[]> {\n let url_ = \"/v1/tenant/{tenantId}/expense-transactions/cardholders\";\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<ExpenseCardholderResponse[]>(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 /** True when VendorId was bound via an explicit merchant→vendor mapping rather than an\nexact-name match, a default vendor, or left unbound. Lets the UI show \"Mapped to {vendor}\" beneath\nthe raw merchant name. Reflects the source stamped at ingest, so it stays correct after a remap. */\n vendorBoundByMapping: boolean;\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 /** Discriminates whether EmployeeId refers to an employee or a technician.\nNon-nullable: a persisted null normalizes to Employee. */\n spenderType: ExpenseSpenderType;\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/** Discriminates who an expense's spender-identity columns (`EmployeeId`/`EmployeeName`) refer to — the same monolith employee/technician id space that ExpenseTransaction has always stored, now disambiguated so name resolution can route to the right Public API surface. Employee = 0 / Technician = 1 are wire values, pinned because three repos decode them positionally — MOS, the monolith, and any future consumer of the outbound event. Renumbering or reordering the members is a breaking change caught only by ExpenseSpenderTypeContractTests (UNIT-105). Declare new members with an explicit value, at the end, never renumbering an existing one. null on the entity's SpenderType column reads as — which is exactly why Employee = 0 must stay pinned at zero: every pre-existing row and every pre-upgrade event has no value here, and the absent-means-Employee default depends on zero being that value. Realigning to match the monolith's ordering would trade a mappable hazard for a silent data-wide default inversion. Never cast to or from a monolith EmployeeType. The monolith declares 15 same-named EmployeeType enums, and Model/Timesheets/EmployeeType is the mirror image of this one (Technician = 0, Employee = 1). An (int) bridge compiles cleanly and silently inverts the tag, mistagging a financial record with no error anywhere. Map member-by-member, by name, if a bridge is ever needed. */\nexport enum ExpenseSpenderType {\n Employee = 0,\n Technician = 1,\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\n/** One entry in the tenant's cardholder directory — a person who incurs expenses, carrying whichever identities are known. A person holding both a ServiceTitan and a provider identity is returned as a single entry exposing both, which is the point of the directory: selecting them returns their manual expenses and their card spend together. */\nexport interface ExpenseCardholderResponse {\n /** The directory row's surrogate id — the value the `cardholderIds` expense-list filter takes.\nStable across late-resolution convergence when the row is absorbed in place, but a row superseded by\nconvergence is deleted, so a previously-held id may retire. A retired id simply matches no expenses\nand returns success; it is never an error. */\n id: string;\n /** ServiceTitan employee id, when this person's ServiceTitan identity is known. May be an\n`Employee.Id` or a `Technician.Id` — never a `User.Id`. The corresponding\nexpense's `SpenderType` is the disambiguator where one exists; see\n`seam-spender-identity.md` for why this id space is polymorphic and the column is not split. */\n stEmployeeId?: number | undefined;\n /** Name of the external expense provider this entry's provider identity belongs to, when known.\nAlways the value carried on the expense, never a hardcoded provider name. */\n provider?: string | undefined;\n /** Provider-reported cardholder id, when this person's provider identity is known. */\n providerUserId?: string | undefined;\n /** Cached display label only — never an identity, and deliberately not unique: two people sharing one\nmailbox is common in the trades. Legitimately null, including alongside a null\nDisplayName; such an entry is still returned. */\n email?: string | undefined;\n /** Cached display label only — never an identity. When non-null it is authoritative: consumers\nshould use it as-is rather than re-deriving a label. When null, resolving a label instead requires\nchecking BOTH rosters against StEmployeeId (employees and technicians share one id\nspace and never collide), because the directory itself does not disambiguate which roster the id\nbelongs to. Legitimately null, including alongside a null Email; such an entry is\nstill returned rather than hidden. */\n displayName?: string | undefined;\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 /** Discriminates whether EmployeeId is an employee or a technician. Optional; null reads as Employee. */\n spenderType?: ExpenseSpenderType | undefined;\n /** Client-resolved display name of the spender identified by EmployeeId. Optional fallback used only if server-side name resolution misses. */\n employeeName?: string | 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 /** Discriminates whether EmployeeId is an employee or a technician. Optional; null reads as Employee. */\n spenderType?: ExpenseSpenderType | undefined;\n /** Client-resolved display name of the spender identified by EmployeeId. Optional fallback used only if server-side name resolution misses. */\n employeeName?: string | 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","cardholderIds","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","listCardholders","get","id","update","delete","updateSyncStatus","listRawNames","retract","listAttachments","expenseId","downloadAttachment","attachmentId","deleteAttachment","promoteAttachments","getWellKnownGlAccounts","jsonParseReviver","ExpenseSpenderType"],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { AxiosPromise, CancelToken } from 'axios';
|
|
2
|
+
export interface IVendorMappings {
|
|
3
|
+
/**
|
|
4
|
+
* List one page of the tenant's distinct card-transaction merchants with mapped/unmapped status.
|
|
5
|
+
Server-side paginated — distinct-merchant cardinality is potentially thousands per tenant. Optional
|
|
6
|
+
search narrows by merchant-name substring; filter restricts to
|
|
7
|
+
mapped-only or unmapped-only; page/pageSize select the page
|
|
8
|
+
(1-based; pageSize defaults to 50 and is clamped to 200). The response carries the total count of
|
|
9
|
+
matching distinct merchants.
|
|
10
|
+
* @search (optional)
|
|
11
|
+
* @filter (optional)
|
|
12
|
+
* @page (optional)
|
|
13
|
+
* @pageSize (optional)
|
|
14
|
+
*/
|
|
15
|
+
list(tenantId: number, search: string | null | undefined, filter: VendorMappingFilter | undefined, page: number | undefined, pageSize: number | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfVendorMappingListItemResponse>;
|
|
16
|
+
/**
|
|
17
|
+
* Assign or update a merchant→vendor mapping. Unknown target vendor is a 400.
|
|
18
|
+
*/
|
|
19
|
+
assign(tenantId: number, request: AssignVendorMappingRequest, cancelToken?: CancelToken): AxiosPromise<VendorMappingResponse>;
|
|
20
|
+
/**
|
|
21
|
+
* Remove a merchant→vendor mapping. Idempotent — removing a non-existent mapping still succeeds.
|
|
22
|
+
*/
|
|
23
|
+
remove(tenantId: number, externalSource: string, merchantName: string, cancelToken?: CancelToken): AxiosPromise<void>;
|
|
24
|
+
}
|
|
25
|
+
export declare const BASE_URL_TOKEN_VendorMappings: import("@servicetitan/react-ioc").SymbolToken<string>;
|
|
26
|
+
export declare class VendorMappings implements IVendorMappings {
|
|
27
|
+
private readonly baseUrl;
|
|
28
|
+
protected jsonParseReviver: ((key: string, value: any) => any) | undefined;
|
|
29
|
+
constructor(baseUrl?: string);
|
|
30
|
+
/**
|
|
31
|
+
* List one page of the tenant's distinct card-transaction merchants with mapped/unmapped status.
|
|
32
|
+
Server-side paginated — distinct-merchant cardinality is potentially thousands per tenant. Optional
|
|
33
|
+
search narrows by merchant-name substring; filter restricts to
|
|
34
|
+
mapped-only or unmapped-only; page/pageSize select the page
|
|
35
|
+
(1-based; pageSize defaults to 50 and is clamped to 200). The response carries the total count of
|
|
36
|
+
matching distinct merchants.
|
|
37
|
+
* @search (optional)
|
|
38
|
+
* @filter (optional)
|
|
39
|
+
* @page (optional)
|
|
40
|
+
* @pageSize (optional)
|
|
41
|
+
*/
|
|
42
|
+
list(tenantId: number, search: string | null | undefined, filter: VendorMappingFilter | undefined, page: number | undefined, pageSize: number | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfVendorMappingListItemResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* Assign or update a merchant→vendor mapping. Unknown target vendor is a 400.
|
|
45
|
+
*/
|
|
46
|
+
assign(tenantId: number, request: AssignVendorMappingRequest, cancelToken?: CancelToken): AxiosPromise<VendorMappingResponse>;
|
|
47
|
+
/**
|
|
48
|
+
* Remove a merchant→vendor mapping. Idempotent — removing a non-existent mapping still succeeds.
|
|
49
|
+
*/
|
|
50
|
+
remove(tenantId: number, externalSource: string, merchantName: string, cancelToken?: CancelToken): AxiosPromise<void>;
|
|
51
|
+
}
|
|
52
|
+
/** Generic paged response wrapper with total count for pagination support. */
|
|
53
|
+
export interface PagedResponseOfVendorMappingListItemResponse {
|
|
54
|
+
/** Data collection */
|
|
55
|
+
data: VendorMappingListItemResponse[];
|
|
56
|
+
/** Current page number */
|
|
57
|
+
page: number;
|
|
58
|
+
/** Page size */
|
|
59
|
+
pageSize: number;
|
|
60
|
+
/** Total count of items (null if pagination not required) */
|
|
61
|
+
totalCount?: number | undefined;
|
|
62
|
+
/** Whether there are more pages */
|
|
63
|
+
hasMore: boolean;
|
|
64
|
+
}
|
|
65
|
+
/** One entry in the mapping-management drawer: a distinct card-transaction merchant the tenant has seen, flagged mapped or unmapped. When mapped, VendorId carries the target vendor. */
|
|
66
|
+
export interface VendorMappingListItemResponse {
|
|
67
|
+
/** Merchant name as reported by the provider (a representative raw form of the distinct merchant). */
|
|
68
|
+
merchantName: string;
|
|
69
|
+
/** External provider the merchant name was reported under. */
|
|
70
|
+
externalSource: string;
|
|
71
|
+
/** True when the tenant has mapped this merchant to a ServiceTitan vendor. */
|
|
72
|
+
mapped: boolean;
|
|
73
|
+
/** The mapped ServiceTitan vendor id when Mapped is true; null otherwise. */
|
|
74
|
+
vendorId?: number | undefined;
|
|
75
|
+
}
|
|
76
|
+
/** Drawer-list filter over a merchant's mapping status. */
|
|
77
|
+
export declare enum VendorMappingFilter {
|
|
78
|
+
All = 0,
|
|
79
|
+
Mapped = 1,
|
|
80
|
+
Unmapped = 2
|
|
81
|
+
}
|
|
82
|
+
/** A single merchant→vendor mapping as stored for the tenant. */
|
|
83
|
+
export interface VendorMappingResponse {
|
|
84
|
+
/** Normalized merchant name this mapping keys on. */
|
|
85
|
+
merchantName: string;
|
|
86
|
+
/** External provider the merchant name was reported under. */
|
|
87
|
+
externalSource: string;
|
|
88
|
+
/** ServiceTitan vendor the merchant is mapped to. */
|
|
89
|
+
vendorId: number;
|
|
90
|
+
}
|
|
91
|
+
/** Request to assign or update a merchant→vendor mapping for a tenant. Assigning a merchant that is already mapped replaces the target vendor in place (upsert on the normalized merchant key). */
|
|
92
|
+
export interface AssignVendorMappingRequest {
|
|
93
|
+
/** Raw provider-reported merchant name to map. Normalized (trimmed, case-folded) before storage. */
|
|
94
|
+
merchantName: string;
|
|
95
|
+
/** External provider the merchant name was reported under (e.g. the value on the transaction's external source). */
|
|
96
|
+
externalSource: string;
|
|
97
|
+
/** Target ServiceTitan vendor id. Must exist for the tenant or the request is rejected. */
|
|
98
|
+
vendorId: number;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=vendor-mappings.api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor-mappings.api.d.ts","sourceRoot":"","sources":["../src/vendor-mappings.api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
15
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
17
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
+
}
|
|
20
|
+
function _ts_metadata(k, v) {
|
|
21
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
22
|
+
}
|
|
23
|
+
function _ts_param(paramIndex, decorator) {
|
|
24
|
+
return function(target, key) {
|
|
25
|
+
decorator(target, key, paramIndex);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/* tslint:disable */ /* eslint-disable */ //----------------------
|
|
29
|
+
// <auto-generated>
|
|
30
|
+
// Generated with ApiClientGenerator, using the NSwag toolchain
|
|
31
|
+
// </auto-generated>
|
|
32
|
+
//----------------------
|
|
33
|
+
// ReSharper disable InconsistentNaming
|
|
34
|
+
import axios from 'axios';
|
|
35
|
+
import { injectable, inject, optional, symbolToken } from '@servicetitan/react-ioc';
|
|
36
|
+
import { makeCodedException } from './utils';
|
|
37
|
+
export const BASE_URL_TOKEN_VendorMappings = symbolToken('BASE_URL_TOKEN', false);
|
|
38
|
+
export class VendorMappings {
|
|
39
|
+
/**
|
|
40
|
+
* List one page of the tenant's distinct card-transaction merchants with mapped/unmapped status.
|
|
41
|
+
Server-side paginated — distinct-merchant cardinality is potentially thousands per tenant. Optional
|
|
42
|
+
search narrows by merchant-name substring; filter restricts to
|
|
43
|
+
mapped-only or unmapped-only; page/pageSize select the page
|
|
44
|
+
(1-based; pageSize defaults to 50 and is clamped to 200). The response carries the total count of
|
|
45
|
+
matching distinct merchants.
|
|
46
|
+
* @search (optional)
|
|
47
|
+
* @filter (optional)
|
|
48
|
+
* @page (optional)
|
|
49
|
+
* @pageSize (optional)
|
|
50
|
+
*/ list(tenantId, search, filter, page, pageSize, cancelToken) {
|
|
51
|
+
let url_ = "/v1/tenant/{tenantId}/vendor-mappings?";
|
|
52
|
+
if (tenantId === undefined || tenantId === null) throw new Error("The parameter 'tenantId' must be defined.");
|
|
53
|
+
url_ = url_.replace("{tenantId}", encodeURIComponent("" + tenantId));
|
|
54
|
+
if (search !== undefined && search !== null) url_ += "search=" + encodeURIComponent("" + search) + "&";
|
|
55
|
+
if (filter === null) throw new Error("The parameter 'filter' cannot be null.");
|
|
56
|
+
else if (filter !== undefined) url_ += "filter=" + encodeURIComponent("" + filter) + "&";
|
|
57
|
+
if (page === null) throw new Error("The parameter 'page' cannot be null.");
|
|
58
|
+
else if (page !== undefined) url_ += "page=" + encodeURIComponent("" + page) + "&";
|
|
59
|
+
if (pageSize === null) throw new Error("The parameter 'pageSize' cannot be null.");
|
|
60
|
+
else if (pageSize !== undefined) url_ += "pageSize=" + encodeURIComponent("" + pageSize) + "&";
|
|
61
|
+
url_ = url_.replace(/[?&]$/, "");
|
|
62
|
+
let options_ = {
|
|
63
|
+
baseURL: this.baseUrl,
|
|
64
|
+
cancelToken,
|
|
65
|
+
url: url_,
|
|
66
|
+
method: "GET",
|
|
67
|
+
headers: {
|
|
68
|
+
"Content-Type": "application/json",
|
|
69
|
+
"Accept": "application/json"
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return makeCodedException(axios.request(options_));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Assign or update a merchant→vendor mapping. Unknown target vendor is a 400.
|
|
76
|
+
*/ assign(tenantId, request, cancelToken) {
|
|
77
|
+
let url_ = "/v1/tenant/{tenantId}/vendor-mappings";
|
|
78
|
+
if (tenantId === undefined || tenantId === null) throw new Error("The parameter 'tenantId' must be defined.");
|
|
79
|
+
url_ = url_.replace("{tenantId}", encodeURIComponent("" + tenantId));
|
|
80
|
+
url_ = url_.replace(/[?&]$/, "");
|
|
81
|
+
const content_ = request;
|
|
82
|
+
let options_ = {
|
|
83
|
+
baseURL: this.baseUrl,
|
|
84
|
+
cancelToken,
|
|
85
|
+
data: content_,
|
|
86
|
+
url: url_,
|
|
87
|
+
method: "PUT",
|
|
88
|
+
headers: {
|
|
89
|
+
"Content-Type": "application/json",
|
|
90
|
+
"Accept": "application/json"
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
return makeCodedException(axios.request(options_));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Remove a merchant→vendor mapping. Idempotent — removing a non-existent mapping still succeeds.
|
|
97
|
+
*/ remove(tenantId, externalSource, merchantName, cancelToken) {
|
|
98
|
+
let url_ = "/v1/tenant/{tenantId}/vendor-mappings?";
|
|
99
|
+
if (tenantId === undefined || tenantId === null) throw new Error("The parameter 'tenantId' must be defined.");
|
|
100
|
+
url_ = url_.replace("{tenantId}", encodeURIComponent("" + tenantId));
|
|
101
|
+
if (externalSource === undefined || externalSource === null) throw new Error("The parameter 'externalSource' must be defined and cannot be null.");
|
|
102
|
+
else url_ += "externalSource=" + encodeURIComponent("" + externalSource) + "&";
|
|
103
|
+
if (merchantName === undefined || merchantName === null) throw new Error("The parameter 'merchantName' must be defined and cannot be null.");
|
|
104
|
+
else url_ += "merchantName=" + encodeURIComponent("" + merchantName) + "&";
|
|
105
|
+
url_ = url_.replace(/[?&]$/, "");
|
|
106
|
+
let options_ = {
|
|
107
|
+
baseURL: this.baseUrl,
|
|
108
|
+
cancelToken,
|
|
109
|
+
url: url_,
|
|
110
|
+
method: "DELETE",
|
|
111
|
+
headers: {
|
|
112
|
+
"Content-Type": "application/json"
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
return makeCodedException(axios.request(options_));
|
|
116
|
+
}
|
|
117
|
+
constructor(baseUrl = ""){
|
|
118
|
+
_define_property(this, "baseUrl", void 0);
|
|
119
|
+
_define_property(this, "jsonParseReviver", void 0);
|
|
120
|
+
this.baseUrl = baseUrl;
|
|
121
|
+
this.jsonParseReviver = undefined;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
VendorMappings = _ts_decorate([
|
|
125
|
+
injectable(),
|
|
126
|
+
_ts_param(0, inject(BASE_URL_TOKEN_VendorMappings)),
|
|
127
|
+
_ts_param(0, optional()),
|
|
128
|
+
_ts_metadata("design:type", Function),
|
|
129
|
+
_ts_metadata("design:paramtypes", [
|
|
130
|
+
void 0
|
|
131
|
+
])
|
|
132
|
+
], VendorMappings);
|
|
133
|
+
/** Drawer-list filter over a merchant's mapping status. */ export var VendorMappingFilter = /*#__PURE__*/ function(VendorMappingFilter) {
|
|
134
|
+
VendorMappingFilter[VendorMappingFilter["All"] = 0] = "All";
|
|
135
|
+
VendorMappingFilter[VendorMappingFilter["Mapped"] = 1] = "Mapped";
|
|
136
|
+
VendorMappingFilter[VendorMappingFilter["Unmapped"] = 2] = "Unmapped";
|
|
137
|
+
return VendorMappingFilter;
|
|
138
|
+
}({});
|
|
139
|
+
|
|
140
|
+
//# sourceMappingURL=vendor-mappings.api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/vendor-mappings.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 IVendorMappings {\n /**\n * List one page of the tenant's distinct card-transaction merchants with mapped/unmapped status.\n Server-side paginated — distinct-merchant cardinality is potentially thousands per tenant. Optional\n search narrows by merchant-name substring; filter restricts to\n mapped-only or unmapped-only; page/pageSize select the page\n (1-based; pageSize defaults to 50 and is clamped to 200). The response carries the total count of\n matching distinct merchants.\n * @search (optional) \n * @filter (optional) \n * @page (optional) \n * @pageSize (optional) \n */\n list(tenantId: number, search: string | null | undefined, filter: VendorMappingFilter | undefined, page: number | undefined, pageSize: number | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfVendorMappingListItemResponse>;\n /**\n * Assign or update a merchant→vendor mapping. Unknown target vendor is a 400.\n */\n assign(tenantId: number, request: AssignVendorMappingRequest, cancelToken?: CancelToken): AxiosPromise<VendorMappingResponse>;\n /**\n * Remove a merchant→vendor mapping. Idempotent — removing a non-existent mapping still succeeds.\n */\n remove(tenantId: number, externalSource: string, merchantName: string, cancelToken?: CancelToken): AxiosPromise<void>;\n}\n\nexport const BASE_URL_TOKEN_VendorMappings = symbolToken<string>('BASE_URL_TOKEN', false);\n\n@injectable()\nexport class VendorMappings implements IVendorMappings {\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(@inject(BASE_URL_TOKEN_VendorMappings) @optional() private readonly baseUrl = \"\") {\n }\n\n /**\n * List one page of the tenant's distinct card-transaction merchants with mapped/unmapped status.\n Server-side paginated — distinct-merchant cardinality is potentially thousands per tenant. Optional\n search narrows by merchant-name substring; filter restricts to\n mapped-only or unmapped-only; page/pageSize select the page\n (1-based; pageSize defaults to 50 and is clamped to 200). The response carries the total count of\n matching distinct merchants.\n * @search (optional) \n * @filter (optional) \n * @page (optional) \n * @pageSize (optional) \n */\n list(tenantId: number, search: string | null | undefined, filter: VendorMappingFilter | undefined, page: number | undefined, pageSize: number | undefined, cancelToken?: CancelToken): AxiosPromise<PagedResponseOfVendorMappingListItemResponse> {\n let url_ = \"/v1/tenant/{tenantId}/vendor-mappings?\";\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 (search !== undefined && search !== null)\n url_ += \"search=\" + encodeURIComponent(\"\" + search) + \"&\";\n if (filter === null)\n throw new Error(\"The parameter 'filter' cannot be null.\");\n else if (filter !== undefined)\n url_ += \"filter=\" + encodeURIComponent(\"\" + filter) + \"&\";\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 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<PagedResponseOfVendorMappingListItemResponse>(options_));\n }\n\n /**\n * Assign or update a merchant→vendor mapping. Unknown target vendor is a 400.\n */\n assign(tenantId: number, request: AssignVendorMappingRequest, cancelToken?: CancelToken): AxiosPromise<VendorMappingResponse> {\n let url_ = \"/v1/tenant/{tenantId}/vendor-mappings\";\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: \"PUT\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n }\n };\n\n return makeCodedException(axios.request<VendorMappingResponse>(options_));\n }\n\n /**\n * Remove a merchant→vendor mapping. Idempotent — removing a non-existent mapping still succeeds.\n */\n remove(tenantId: number, externalSource: string, merchantName: string, cancelToken?: CancelToken): AxiosPromise<void> {\n let url_ = \"/v1/tenant/{tenantId}/vendor-mappings?\";\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 (externalSource === undefined || externalSource === null)\n throw new Error(\"The parameter 'externalSource' must be defined and cannot be null.\");\n else\n url_ += \"externalSource=\" + encodeURIComponent(\"\" + externalSource) + \"&\";\n if (merchantName === undefined || merchantName === null)\n throw new Error(\"The parameter 'merchantName' must be defined and cannot be null.\");\n else\n url_ += \"merchantName=\" + encodeURIComponent(\"\" + merchantName) + \"&\";\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/** Generic paged response wrapper with total count for pagination support. */\nexport interface PagedResponseOfVendorMappingListItemResponse {\n /** Data collection */\n data: VendorMappingListItemResponse[];\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\n/** One entry in the mapping-management drawer: a distinct card-transaction merchant the tenant has seen, flagged mapped or unmapped. When mapped, VendorId carries the target vendor. */\nexport interface VendorMappingListItemResponse {\n /** Merchant name as reported by the provider (a representative raw form of the distinct merchant). */\n merchantName: string;\n /** External provider the merchant name was reported under. */\n externalSource: string;\n /** True when the tenant has mapped this merchant to a ServiceTitan vendor. */\n mapped: boolean;\n /** The mapped ServiceTitan vendor id when Mapped is true; null otherwise. */\n vendorId?: number | undefined;\n}\n\n/** Drawer-list filter over a merchant's mapping status. */\nexport enum VendorMappingFilter {\n All = 0,\n Mapped = 1,\n Unmapped = 2,\n}\n\n/** A single merchant→vendor mapping as stored for the tenant. */\nexport interface VendorMappingResponse {\n /** Normalized merchant name this mapping keys on. */\n merchantName: string;\n /** External provider the merchant name was reported under. */\n externalSource: string;\n /** ServiceTitan vendor the merchant is mapped to. */\n vendorId: number;\n}\n\n/** Request to assign or update a merchant→vendor mapping for a tenant. Assigning a merchant that is already mapped replaces the target vendor in place (upsert on the normalized merchant key). */\nexport interface AssignVendorMappingRequest {\n /** Raw provider-reported merchant name to map. Normalized (trimmed, case-folded) before storage. */\n merchantName: string;\n /** External provider the merchant name was reported under (e.g. the value on the transaction's external source). */\n externalSource: string;\n /** Target ServiceTitan vendor id. Must exist for the tenant or the request is rejected. */\n vendorId: number;\n}\n"],"names":["axios","injectable","inject","optional","symbolToken","makeCodedException","BASE_URL_TOKEN_VendorMappings","VendorMappings","list","tenantId","search","filter","page","pageSize","cancelToken","url_","undefined","Error","replace","encodeURIComponent","options_","baseURL","baseUrl","url","method","headers","request","assign","content_","data","remove","externalSource","merchantName","jsonParseReviver","VendorMappingFilter"],"mappings":"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"}
|
package/package.json
CHANGED