@conflict-hq/ezacto-client 0.1.1 → 0.1.2

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.
@@ -257,6 +257,80 @@ export type QuickBooksAuthorizeEnvelope = {
257
257
  "authorize_url": string;
258
258
  };
259
259
  };
260
+ export type WiseConnection = {
261
+ "profile_id": string;
262
+ "profile_name": string | null;
263
+ "payable_recipients": number;
264
+ "webhooks_verifiable": boolean;
265
+ };
266
+ export type WiseRecipient = {
267
+ "id": string;
268
+ "holder_name": string | null;
269
+ "currency": string;
270
+ "type": string;
271
+ "masked_summary": string | null;
272
+ "email": string | null;
273
+ };
274
+ export type WiseStatusEnvelope = {
275
+ "data": {
276
+ "configured": boolean;
277
+ "connection": WiseConnection | null;
278
+ };
279
+ };
280
+ export type WiseRecipientListEnvelope = {
281
+ "data": Array<WiseRecipient>;
282
+ };
283
+ export type WiseOnboardInput = {
284
+ "user_id": number;
285
+ "email": string;
286
+ "legal_name": string;
287
+ "currency": string;
288
+ };
289
+ export type WiseDestinationEnvelope = {
290
+ "data": {
291
+ "configured": boolean;
292
+ "destination": {
293
+ "id": number;
294
+ "kind": "account" | "contact";
295
+ "linked_at": string;
296
+ "linked_by_user_id": number;
297
+ "verified_at": string | null;
298
+ } | null;
299
+ };
300
+ };
301
+ export type WiseProposal = {
302
+ "user_id": number;
303
+ "name": string;
304
+ "payroll_email": string | null;
305
+ "matches": Array<WiseRecipient>;
306
+ };
307
+ export type WiseProposalListEnvelope = {
308
+ "data": Array<WiseProposal>;
309
+ };
310
+ export type WiseContactInput = {
311
+ "user_id": number;
312
+ "identifier": string;
313
+ "currency": string;
314
+ };
315
+ export type WiseContactEnvelope = {
316
+ "data": {
317
+ "user_id": number;
318
+ "contact": {
319
+ "id": string;
320
+ "name": string | null;
321
+ };
322
+ };
323
+ };
324
+ export type WiseLinkInput = {
325
+ "user_id": number;
326
+ "recipient_id": string;
327
+ };
328
+ export type WiseLinkEnvelope = {
329
+ "data": {
330
+ "user_id": number;
331
+ "recipient": WiseRecipient;
332
+ };
333
+ };
260
334
  export type QuickBooksConnectionEnvelope = {
261
335
  "data": QuickBooksConnection | null;
262
336
  };
@@ -589,6 +663,10 @@ export type TeamRateInput = {
589
663
  "amount_cents": number;
590
664
  "start_date": string | null;
591
665
  };
666
+ export type TeamRateRemovalInput = {
667
+ "expected_version": number;
668
+ "kind": "billable" | "cost";
669
+ };
592
670
  export type TeamCommandReceipt = {
593
671
  "target_user_id": number;
594
672
  "version": number;
@@ -729,6 +807,17 @@ export type TimeEntryNoteSettingsEnvelope = {
729
807
  "data": TimeEntryNoteSettings;
730
808
  "links": Links;
731
809
  };
810
+ export type Profile = {
811
+ "user_id": number;
812
+ "timezone": string;
813
+ };
814
+ export type ProfilePatch = {
815
+ "timezone"?: string;
816
+ };
817
+ export type ProfileEnvelope = {
818
+ "data": Profile;
819
+ "links": Links;
820
+ };
732
821
  export type TimeEntryOption = {
733
822
  "project_id": number;
734
823
  "task_id": number;
@@ -1514,6 +1603,12 @@ export type RecurringInvoice = {
1514
1603
  "next_issue_on": string;
1515
1604
  "amount_config": RecurringAmountConfig;
1516
1605
  "can_draw_from_retainer_id": number | null;
1606
+ "claims_project_ids": Array<number> | null;
1607
+ "claim_mode": "all" | "ceiling";
1608
+ "claim_ceiling_seconds": number | null;
1609
+ "claim_ceiling_cents": number | null;
1610
+ "claim_scope": "billable" | "tracked";
1611
+ "cost_alert_basis_points": number | null;
1517
1612
  "created_at": string;
1518
1613
  "updated_at": string;
1519
1614
  };
@@ -1539,6 +1634,33 @@ export type RecurringInvoicePage = {
1539
1634
  "links": PageLinks;
1540
1635
  "page": PageMetadata;
1541
1636
  };
1637
+ export type BandClaimBackfillInput = {
1638
+ "invoice_ids": Array<number>;
1639
+ "project_ids"?: Array<number>;
1640
+ "apply"?: boolean;
1641
+ };
1642
+ export type BandClaimBackfillLine = {
1643
+ "invoice_id": number;
1644
+ "number": string;
1645
+ "issue_date": string;
1646
+ "state": string;
1647
+ "amount_cents": number;
1648
+ "entry_count": number;
1649
+ "seconds": number;
1650
+ "billable_value_cents": number;
1651
+ "entries_without_billable_rate": number;
1652
+ "foregone_billable_cents": number;
1653
+ };
1654
+ export type BandClaimBackfill = {
1655
+ "run_id": string;
1656
+ "applied": boolean;
1657
+ "invoices": Array<BandClaimBackfillLine>;
1658
+ "remaining_entry_count": number;
1659
+ "remaining_seconds": number;
1660
+ };
1661
+ export type BandClaimBackfillEnvelope = {
1662
+ "data": BandClaimBackfill;
1663
+ };
1542
1664
  export type RecurringInvoiceInput = {
1543
1665
  "client_id": number;
1544
1666
  "subject_template": string;
@@ -1548,6 +1670,12 @@ export type RecurringInvoiceInput = {
1548
1670
  "next_issue_on": string;
1549
1671
  "amount_config": RecurringAmountConfig;
1550
1672
  "can_draw_from_retainer_id"?: number | null;
1673
+ "claims_project_ids"?: Array<number> | null;
1674
+ "claim_mode"?: "all" | "ceiling";
1675
+ "claim_ceiling_seconds"?: number | null;
1676
+ "claim_ceiling_cents"?: number | null;
1677
+ "claim_scope"?: "billable" | "tracked";
1678
+ "cost_alert_basis_points"?: number | null;
1551
1679
  };
1552
1680
  export type MyHoursProject = {
1553
1681
  "project_id": number;
@@ -1595,8 +1723,11 @@ export type DetailedTimeRow = {
1595
1723
  "time_entry_count": number;
1596
1724
  "billable_amount_cents"?: number | null;
1597
1725
  "entries_without_billable_rate": number;
1726
+ "claimed": boolean;
1598
1727
  "time_entry_id"?: number;
1728
+ "invoice_id"?: number | null;
1599
1729
  "notes"?: string | null;
1730
+ "project_active"?: boolean;
1600
1731
  };
1601
1732
  export type DetailedTimeCurrencyTotal = {
1602
1733
  "currency": string;
@@ -1608,13 +1739,20 @@ export type DetailedTimeReport = {
1608
1739
  "to": string;
1609
1740
  "client_id": number | null;
1610
1741
  "project_id": number | null;
1611
- "hours": "all" | "billable" | "non_billable" | "uninvoiced";
1742
+ "task_id": number | null;
1743
+ "user_id": number | null;
1744
+ "role_id": number | null;
1745
+ "tag_id": number | null;
1746
+ "invoice_state": "all" | "invoiced" | "uninvoiced";
1747
+ "hours": "all" | "billable" | "non_billable" | "uninvoiced" | "claimed" | "unclaimed";
1612
1748
  "grain": "day" | "entry";
1613
1749
  "active_projects_only": boolean;
1614
1750
  "seconds": number;
1615
1751
  "rounded_seconds": number;
1616
1752
  "billable_seconds": number;
1617
1753
  "uninvoiced_billable_seconds": number;
1754
+ "claimed_seconds": number;
1755
+ "unclaimed_seconds": number;
1618
1756
  "time_entry_count": number;
1619
1757
  "currencies": Array<DetailedTimeCurrencyTotal>;
1620
1758
  "rows": Array<DetailedTimeRow>;
@@ -1623,6 +1761,27 @@ export type DetailedTimeReportEnvelope = {
1623
1761
  "data": DetailedTimeReport;
1624
1762
  "links": Links;
1625
1763
  };
1764
+ export type ReportTimeActionInput = {
1765
+ "command_id": string;
1766
+ "action": "mark_invoiced" | "mark_uninvoiced" | "move";
1767
+ "entry_ids": Array<number>;
1768
+ "confirmed": true;
1769
+ "invoice_id"?: number;
1770
+ "project_id"?: number;
1771
+ "task_id"?: number;
1772
+ };
1773
+ export type ReportTimeAction = {
1774
+ "command_id": string;
1775
+ "action": "mark_invoiced" | "mark_uninvoiced" | "move";
1776
+ "requested": number;
1777
+ "changed_entry_ids": Array<number>;
1778
+ "ineligible_entry_ids": Array<number>;
1779
+ "replayed": boolean;
1780
+ };
1781
+ export type ReportTimeActionEnvelope = {
1782
+ "data": ReportTimeAction;
1783
+ "links": Links;
1784
+ };
1626
1785
  export type TimeReportAmount = {
1627
1786
  "currency": string;
1628
1787
  "billable_cents": number;
@@ -1685,6 +1844,7 @@ export type TimeReportTeammateRow = {
1685
1844
  export type TimeReport = {
1686
1845
  "from": string;
1687
1846
  "to": string;
1847
+ "fixed_fee_included": boolean;
1688
1848
  "totals": TimeReportTotals;
1689
1849
  "clients": Array<TimeReportClientRow>;
1690
1850
  "projects": Array<TimeReportProjectRow>;
@@ -1732,7 +1892,11 @@ export type ContractorCostRow = {
1732
1892
  "is_contractor": boolean;
1733
1893
  "currency": string;
1734
1894
  "rounded_seconds": number;
1895
+ "utilization_ppm": number | null;
1735
1896
  "cost_cents": number | null;
1897
+ "cost_rate_cents": number | null;
1898
+ "cost_rate_is_mixed": boolean;
1899
+ "entry_count": number;
1736
1900
  "entries_without_rate": number;
1737
1901
  };
1738
1902
  export type ContractorCostReport = {
@@ -1744,6 +1908,191 @@ export type ContractorCostReportEnvelope = {
1744
1908
  "data": ContractorCostReport;
1745
1909
  "links": Links;
1746
1910
  };
1911
+ export type InvoicedReportTotal = {
1912
+ "currency": string;
1913
+ "invoice_count": number;
1914
+ "invoiced_cents"?: number;
1915
+ "paid_cents"?: number;
1916
+ "balance_cents"?: number;
1917
+ };
1918
+ export type InvoicedReportRow = {
1919
+ "invoice_id": number;
1920
+ "number": string;
1921
+ "state": "draft" | "open" | "paid" | "closed";
1922
+ "close_reason": "cancelled" | "written_off" | "source_closed" | null;
1923
+ "issue_date": string;
1924
+ "due_date": string;
1925
+ "client_id": number;
1926
+ "client_name": string;
1927
+ "subject": string | null;
1928
+ "currency": string;
1929
+ "invoiced_cents"?: number;
1930
+ "paid_cents"?: number;
1931
+ "balance_cents"?: number;
1932
+ };
1933
+ export type InvoicedReport = {
1934
+ "from": string;
1935
+ "to": string;
1936
+ "client_id": number | null;
1937
+ "status": "draft" | "open" | "paid" | "closed" | null;
1938
+ "totals": Array<InvoicedReportTotal>;
1939
+ "rows": Array<InvoicedReportRow>;
1940
+ };
1941
+ export type InvoicedReportEnvelope = {
1942
+ "data": InvoicedReport;
1943
+ "links": Links;
1944
+ };
1945
+ export type PaymentsReceivedReportTotal = {
1946
+ "currency": string;
1947
+ "payment_count": number;
1948
+ "payment_cents"?: number;
1949
+ };
1950
+ export type PaymentReceivedReportRow = {
1951
+ "payment_id": number;
1952
+ "payment_date": string;
1953
+ "invoice_id": number;
1954
+ "invoice_number": string;
1955
+ "client_id": number;
1956
+ "client_name": string;
1957
+ "currency": string;
1958
+ "provider": string;
1959
+ "invoice_total_cents"?: number;
1960
+ "payment_cents"?: number;
1961
+ };
1962
+ export type PaymentsReceivedReport = {
1963
+ "from": string;
1964
+ "to": string;
1965
+ "client_id": number | null;
1966
+ "totals": Array<PaymentsReceivedReportTotal>;
1967
+ "rows": Array<PaymentReceivedReportRow>;
1968
+ };
1969
+ export type PaymentsReceivedReportEnvelope = {
1970
+ "data": PaymentsReceivedReport;
1971
+ "links": Links;
1972
+ };
1973
+ export type ReceivablesReportTotal = {
1974
+ "currency": string;
1975
+ "invoice_count": number;
1976
+ "invoiced_cents"?: number;
1977
+ "outstanding_cents"?: number;
1978
+ "not_due_cents"?: number;
1979
+ "days_1_to_30_cents"?: number;
1980
+ "days_31_to_60_cents"?: number;
1981
+ "days_61_to_90_cents"?: number;
1982
+ "days_90_plus_cents"?: number;
1983
+ };
1984
+ export type ReceivablesReportRow = {
1985
+ "client_id": number;
1986
+ "client_name": string;
1987
+ "currency": string;
1988
+ "invoice_count": number;
1989
+ "invoiced_cents"?: number;
1990
+ "outstanding_cents"?: number;
1991
+ "not_due_cents"?: number;
1992
+ "days_1_to_30_cents"?: number;
1993
+ "days_31_to_60_cents"?: number;
1994
+ "days_61_to_90_cents"?: number;
1995
+ "days_90_plus_cents"?: number;
1996
+ };
1997
+ export type ReceivablesReport = {
1998
+ "as_of": string;
1999
+ "client_id": number | null;
2000
+ "totals": Array<ReceivablesReportTotal>;
2001
+ "rows": Array<ReceivablesReportRow>;
2002
+ };
2003
+ export type ReceivablesReportEnvelope = {
2004
+ "data": ReceivablesReport;
2005
+ "links": Links;
2006
+ };
2007
+ export type ReportDefinitionPresentation = {
2008
+ "result": "summary" | "detailed";
2009
+ "grouped": boolean;
2010
+ "include_zero_values": boolean;
2011
+ };
2012
+ export type SavedReportInput = {
2013
+ "name": string;
2014
+ "fields": Array<{
2015
+ [key: string]: unknown;
2016
+ }>;
2017
+ "metrics": Array<string>;
2018
+ "filters": Array<{
2019
+ [key: string]: unknown;
2020
+ }>;
2021
+ "group_by": {
2022
+ [key: string]: unknown;
2023
+ } | null;
2024
+ "presentation": ReportDefinitionPresentation;
2025
+ };
2026
+ export type SavedReportUpdate = {
2027
+ "version": number;
2028
+ "name"?: string;
2029
+ "fields"?: Array<{
2030
+ [key: string]: unknown;
2031
+ }>;
2032
+ "metrics"?: Array<string>;
2033
+ "filters"?: Array<{
2034
+ [key: string]: unknown;
2035
+ }>;
2036
+ "group_by"?: {
2037
+ [key: string]: unknown;
2038
+ } | null;
2039
+ "presentation"?: ReportDefinitionPresentation;
2040
+ };
2041
+ export type SavedReport = {
2042
+ "id": string;
2043
+ "name": string;
2044
+ "version": number;
2045
+ "fields": Array<{
2046
+ [key: string]: unknown;
2047
+ }>;
2048
+ "metrics": Array<string>;
2049
+ "filters": Array<{
2050
+ [key: string]: unknown;
2051
+ }>;
2052
+ "group_by": {
2053
+ [key: string]: unknown;
2054
+ } | null;
2055
+ "presentation": ReportDefinitionPresentation;
2056
+ "owner": {
2057
+ [key: string]: unknown;
2058
+ };
2059
+ "is_custom": boolean;
2060
+ "pinned": boolean;
2061
+ "shared": boolean;
2062
+ "created_at": string;
2063
+ "updated_at": string;
2064
+ };
2065
+ export type SavedReportEnvelope = {
2066
+ "data": SavedReport;
2067
+ "links": Links;
2068
+ };
2069
+ export type SavedReportListEnvelope = {
2070
+ "data": Array<SavedReport>;
2071
+ };
2072
+ export type ReportRunnerResult = {
2073
+ "definitionId": string;
2074
+ "definitionVersion": number;
2075
+ "state": "ready" | "empty" | "too_many_rows";
2076
+ "rows": Array<{
2077
+ [key: string]: unknown;
2078
+ }>;
2079
+ };
2080
+ export type ReportRunnerEnvelope = {
2081
+ "data": ReportRunnerResult;
2082
+ "links": Links;
2083
+ };
2084
+ export type ReportDefinitionRegistry = {
2085
+ "fields": Array<{
2086
+ [key: string]: unknown;
2087
+ }>;
2088
+ "metrics": Array<{
2089
+ [key: string]: unknown;
2090
+ }>;
2091
+ };
2092
+ export type ReportDefinitionRegistryEnvelope = {
2093
+ "data": ReportDefinitionRegistry;
2094
+ "links": Links;
2095
+ };
1747
2096
  export type DetailedExpenseRow = {
1748
2097
  "expense_id": number;
1749
2098
  "spent_date": string;
@@ -1774,7 +2123,12 @@ export type DetailedExpenseReport = {
1774
2123
  "to": string;
1775
2124
  "client_id": number | null;
1776
2125
  "project_id": number | null;
1777
- "billable_only": boolean;
2126
+ "category_id": number | null;
2127
+ "user_id": number | null;
2128
+ "billable": boolean | null;
2129
+ "reimbursable": boolean | null;
2130
+ "invoice_state": "all" | "invoiced" | "uninvoiced";
2131
+ "active_projects_only": boolean;
1778
2132
  "totals": Array<DetailedExpenseTotal>;
1779
2133
  "rows": Array<DetailedExpenseRow>;
1780
2134
  };
@@ -1782,6 +2136,70 @@ export type DetailedExpenseReportEnvelope = {
1782
2136
  "data": DetailedExpenseReport;
1783
2137
  "links": Links;
1784
2138
  };
2139
+ export type MonthEndItem = {
2140
+ "subject_type": string;
2141
+ "subject_id": number;
2142
+ "description": string;
2143
+ "amount_cents": number | null;
2144
+ "currency": string | null;
2145
+ "target": string | null;
2146
+ "brand_name": string | null;
2147
+ "cost_cents": number | null;
2148
+ "margin_cents": number | null;
2149
+ };
2150
+ export type MonthEndExclusion = {
2151
+ "invoice_id": number;
2152
+ "number": string;
2153
+ "reason": string;
2154
+ };
2155
+ export type MonthEndManifest = {
2156
+ "period_start": string;
2157
+ "period_end": string;
2158
+ "items": Array<MonthEndItem>;
2159
+ "excluded": Array<MonthEndExclusion>;
2160
+ };
2161
+ export type MonthEndManifestEnvelope = {
2162
+ "data": MonthEndManifest;
2163
+ "links": Links;
2164
+ };
2165
+ export type BandedMonthRow = {
2166
+ "period_start": string;
2167
+ "period_end": string;
2168
+ "project_id": number;
2169
+ "project_name": string;
2170
+ "client_id": number;
2171
+ "client_name": string;
2172
+ "currency": string;
2173
+ "rounded_seconds": number;
2174
+ "billable_value_cents": number | null;
2175
+ "cost_value_cents": number | null;
2176
+ "entries_without_billable_rate": number;
2177
+ "entries_without_cost_rate": number;
2178
+ "claimed_in_other_currency": number;
2179
+ "billed_cents": number | null;
2180
+ "foregone_cents": number | null;
2181
+ "cost_ratio_basis_points": number | null;
2182
+ "cost_alert_basis_points": number;
2183
+ "cost_ratio_state": "within" | "over" | "unpriced" | "unbilled";
2184
+ };
2185
+ export type BandedMonthReport = {
2186
+ "from": string;
2187
+ "to": string;
2188
+ "rows": Array<BandedMonthRow>;
2189
+ };
2190
+ export type BandedMonthReportEnvelope = {
2191
+ "data": BandedMonthReport;
2192
+ "links": Links;
2193
+ };
2194
+ export type BandCostAlert = {
2195
+ "basis_points": number;
2196
+ };
2197
+ export type BandCostAlertEnvelope = {
2198
+ "data": BandCostAlert;
2199
+ };
2200
+ export type BandCostAlertInput = {
2201
+ "basis_points": number;
2202
+ };
1785
2203
  export type ProfitabilityRow = {
1786
2204
  "project_id": number;
1787
2205
  "project_name": string;
@@ -1793,6 +2211,9 @@ export type ProfitabilityRow = {
1793
2211
  "revenue_cents": number | null;
1794
2212
  "cost_cents": number | null;
1795
2213
  "profit_cents": number | null;
2214
+ "return_on_cost_ppm": number | null;
2215
+ "revenue_fee_cents": number;
2216
+ "fees_included_in_delivery_cost_cents": number;
1796
2217
  "entries_without_billable_rate": number;
1797
2218
  "entries_without_cost_rate": number;
1798
2219
  };
@@ -1801,16 +2222,50 @@ export type ProfitabilityTotals = {
1801
2222
  "revenue_cents": number | null;
1802
2223
  "cost_cents": number | null;
1803
2224
  "profit_cents": number | null;
2225
+ "return_on_cost_ppm": number | null;
2226
+ "revenue_fee_cents": number;
2227
+ "fees_included_in_delivery_cost_cents": number;
1804
2228
  "entries_without_billable_rate": number;
1805
2229
  "entries_without_cost_rate": number;
1806
2230
  "projects_not_converted": number;
1807
2231
  };
2232
+ export type ProfitabilityDimensionRow = {
2233
+ "dimension_id": number;
2234
+ "dimension_name": string;
2235
+ "currency": string;
2236
+ "rounded_seconds": number;
2237
+ "revenue_cents": number | null;
2238
+ "cost_cents": number | null;
2239
+ "profit_cents": number | null;
2240
+ "return_on_cost_ppm": number | null;
2241
+ "revenue_fee_cents": number;
2242
+ "fees_included_in_delivery_cost_cents": number;
2243
+ "entries_without_billable_rate": number;
2244
+ "entries_without_cost_rate": number;
2245
+ "included_in_headline": boolean;
2246
+ };
2247
+ export type ProfitabilityTrendRow = (ProfitabilityDimensionRow) & ({
2248
+ "period_start": string;
2249
+ "period_end": string;
2250
+ "current": boolean;
2251
+ });
2252
+ export type ProfitabilityFilters = {
2253
+ "project_status": "all" | "active" | "archived";
2254
+ "billing_method": "non_billable" | "time_materials" | "fixed_fee" | null;
2255
+ "manager_id": number | null;
2256
+ "tag_id": number | null;
2257
+ };
1808
2258
  export type ProfitabilityReport = {
1809
2259
  "from": string;
1810
2260
  "to": string;
1811
2261
  "organization_currency": string;
1812
2262
  "rows": Array<ProfitabilityRow>;
2263
+ "clients": Array<ProfitabilityDimensionRow>;
2264
+ "teammates": Array<ProfitabilityDimensionRow>;
2265
+ "tasks": Array<ProfitabilityDimensionRow>;
2266
+ "trend": Array<ProfitabilityTrendRow>;
1813
2267
  "totals": ProfitabilityTotals;
2268
+ "filters": ProfitabilityFilters;
1814
2269
  "previous_from": string;
1815
2270
  "previous_to": string;
1816
2271
  "previous_totals": ProfitabilityTotals;
@@ -1917,6 +2372,15 @@ export type ModuleListEnvelope = {
1917
2372
  "data": Array<ModuleState>;
1918
2373
  "links": Links;
1919
2374
  };
2375
+ export type SignInMethodState = {
2376
+ "method": "password" | "magic_link" | "google" | "github" | "apple";
2377
+ "configured": boolean;
2378
+ "enabled": boolean;
2379
+ };
2380
+ export type SignInMethodListEnvelope = {
2381
+ "data": Array<SignInMethodState>;
2382
+ "links": Links;
2383
+ };
1920
2384
  export type SsoDomain = {
1921
2385
  "id": number;
1922
2386
  "domain": string;
@@ -2010,6 +2474,63 @@ export type InvoicePaymentLinkEnvelope = {
2010
2474
  "url": string;
2011
2475
  };
2012
2476
  };
2477
+ export type IncompleteRecurringInvoiceListEnvelope = {
2478
+ "data": Array<{
2479
+ "id": number;
2480
+ "harvest_id": number;
2481
+ "client_id": number;
2482
+ "client_name": string;
2483
+ "invoice_count": number;
2484
+ "created_at": string;
2485
+ "updated_at": string;
2486
+ }>;
2487
+ };
2488
+ export type RecurringInvoiceCompletionEnvelope = {
2489
+ "data": {
2490
+ "id": number;
2491
+ "completed": boolean;
2492
+ };
2493
+ };
2494
+ export type InvoiceThankYouPreferenceEnvelope = {
2495
+ "data": {
2496
+ "invoice_id": number;
2497
+ "auto_thank_you": boolean;
2498
+ "organization_auto_thank_you": boolean;
2499
+ "effective": boolean;
2500
+ };
2501
+ };
2502
+ export type OrganizationInvoiceThankYouEnvelope = {
2503
+ "data": {
2504
+ "auto_thank_you": boolean;
2505
+ };
2506
+ };
2507
+ export type InvoiceDocumentPreferenceEnvelope = {
2508
+ "data": {
2509
+ "invoice_id": number;
2510
+ "attach_pdf": boolean;
2511
+ "organization_attach_pdf": boolean;
2512
+ "effective": boolean;
2513
+ "attach_files": boolean;
2514
+ "organization_attach_files": boolean;
2515
+ "effective_files": boolean;
2516
+ "attach_journal": "detailed" | "summary" | boolean;
2517
+ "organization_attach_journal": "detailed" | "summary" | boolean;
2518
+ "effective_journal": "detailed" | "summary" | boolean;
2519
+ };
2520
+ };
2521
+ export type OrganizationInvoiceDocumentsEnvelope = {
2522
+ "data": {
2523
+ "attach_pdf": boolean;
2524
+ "attach_files": boolean;
2525
+ "attach_journal": "detailed" | "summary" | boolean;
2526
+ };
2527
+ };
2528
+ export type ReleasedTimeEnvelope = {
2529
+ "data": {
2530
+ "invoice_id": number;
2531
+ "released": number;
2532
+ };
2533
+ };
2013
2534
  export type PayoutAccount = {
2014
2535
  "id": number;
2015
2536
  "user_id": number;
@@ -2056,6 +2577,25 @@ export type TwoFactorEnrolmentEnvelope = {
2056
2577
  export type TwoFactorCodeInput = {
2057
2578
  "code": string;
2058
2579
  };
2580
+ export type TwoFactorChallengeIssued = {
2581
+ "status": "two_factor_required";
2582
+ "challenge": string;
2583
+ "expires_at": string;
2584
+ };
2585
+ export type TwoFactorChallengeInput = {
2586
+ "code": string;
2587
+ "challenge"?: string;
2588
+ };
2589
+ export type TwoFactorChallengeAccepted = {
2590
+ "status": "authenticated";
2591
+ };
2592
+ export type TwoFactorChallengeAcceptedEnvelope = {
2593
+ "data": TwoFactorChallengeAccepted;
2594
+ };
2595
+ export type SignInResult = AuthPrincipal | TwoFactorChallengeIssued;
2596
+ export type SignInResultEnvelope = {
2597
+ "data": SignInResult;
2598
+ };
2059
2599
  export type UserEmailInput = {
2060
2600
  "email": string;
2061
2601
  };
@@ -2101,7 +2641,12 @@ export declare class EzactoClient {
2101
2641
  body: PasswordSignInInput;
2102
2642
  signal?: AbortSignal;
2103
2643
  headers?: HeadersInit;
2104
- }): Promise<AuthPrincipalEnvelope>;
2644
+ }): Promise<SignInResultEnvelope>;
2645
+ completeTwoFactorChallenge(args: {
2646
+ body: TwoFactorChallengeInput;
2647
+ signal?: AbortSignal;
2648
+ headers?: HeadersInit;
2649
+ }): Promise<TwoFactorChallengeAcceptedEnvelope>;
2105
2650
  requestPasswordReset(args: {
2106
2651
  body: EmailInput;
2107
2652
  signal?: AbortSignal;
@@ -2245,6 +2790,15 @@ export declare class EzactoClient {
2245
2790
  signal?: AbortSignal;
2246
2791
  headers?: HeadersInit;
2247
2792
  }): Promise<ApiTokenEnvelope>;
2793
+ getProfile(args?: {
2794
+ signal?: AbortSignal;
2795
+ headers?: HeadersInit;
2796
+ }): Promise<ProfileEnvelope>;
2797
+ updateProfile(args: {
2798
+ body: ProfilePatch;
2799
+ signal?: AbortSignal;
2800
+ headers?: HeadersInit;
2801
+ }): Promise<ProfileEnvelope>;
2248
2802
  listClients(args?: {
2249
2803
  query?: {
2250
2804
  "cursor"?: string;
@@ -2807,6 +3361,7 @@ export declare class EzactoClient {
2807
3361
  "cursor"?: string;
2808
3362
  "per_page"?: number;
2809
3363
  "state"?: string;
3364
+ "client_id"?: string;
2810
3365
  };
2811
3366
  signal?: AbortSignal;
2812
3367
  headers?: HeadersInit;
@@ -2942,6 +3497,7 @@ export declare class EzactoClient {
2942
3497
  query?: {
2943
3498
  "cursor"?: string;
2944
3499
  "per_page"?: number;
3500
+ "client_id"?: string;
2945
3501
  };
2946
3502
  signal?: AbortSignal;
2947
3503
  headers?: HeadersInit;
@@ -3012,6 +3568,13 @@ export declare class EzactoClient {
3012
3568
  signal?: AbortSignal;
3013
3569
  headers?: HeadersInit;
3014
3570
  }): Promise<void>;
3571
+ backfillRecurringInvoiceClaims(args: {
3572
+ "id": number;
3573
+ "Idempotency-Key": string;
3574
+ body: BandClaimBackfillInput;
3575
+ signal?: AbortSignal;
3576
+ headers?: HeadersInit;
3577
+ }): Promise<BandClaimBackfillEnvelope>;
3015
3578
  generateRecurringInvoice(args: {
3016
3579
  "id": number;
3017
3580
  "Idempotency-Key": string;
@@ -3138,6 +3701,77 @@ export declare class EzactoClient {
3138
3701
  signal?: AbortSignal;
3139
3702
  headers?: HeadersInit;
3140
3703
  }): Promise<ArrayBuffer>;
3704
+ getReportDefinitionRegistry(args?: {
3705
+ signal?: AbortSignal;
3706
+ headers?: HeadersInit;
3707
+ }): Promise<ReportDefinitionRegistryEnvelope>;
3708
+ listSavedReports(args?: {
3709
+ query?: {
3710
+ "view"?: "all" | "yours" | "shared";
3711
+ "q"?: string;
3712
+ "custom_only"?: boolean;
3713
+ };
3714
+ signal?: AbortSignal;
3715
+ headers?: HeadersInit;
3716
+ }): Promise<SavedReportListEnvelope>;
3717
+ createSavedReport(args: {
3718
+ body: SavedReportInput;
3719
+ signal?: AbortSignal;
3720
+ headers?: HeadersInit;
3721
+ }): Promise<SavedReportEnvelope>;
3722
+ previewReportDefinition(args: {
3723
+ body: SavedReportInput;
3724
+ signal?: AbortSignal;
3725
+ headers?: HeadersInit;
3726
+ }): Promise<ReportRunnerEnvelope>;
3727
+ getSavedReport(args: {
3728
+ "reportId": string;
3729
+ signal?: AbortSignal;
3730
+ headers?: HeadersInit;
3731
+ }): Promise<SavedReportEnvelope>;
3732
+ updateSavedReport(args: {
3733
+ "reportId": string;
3734
+ body: SavedReportUpdate;
3735
+ signal?: AbortSignal;
3736
+ headers?: HeadersInit;
3737
+ }): Promise<SavedReportEnvelope>;
3738
+ deleteSavedReport(args: {
3739
+ "reportId": string;
3740
+ signal?: AbortSignal;
3741
+ headers?: HeadersInit;
3742
+ }): Promise<void>;
3743
+ duplicateSavedReport(args: {
3744
+ "reportId": string;
3745
+ signal?: AbortSignal;
3746
+ headers?: HeadersInit;
3747
+ }): Promise<SavedReportEnvelope>;
3748
+ pinSavedReport(args: {
3749
+ "reportId": string;
3750
+ signal?: AbortSignal;
3751
+ headers?: HeadersInit;
3752
+ }): Promise<void>;
3753
+ unpinSavedReport(args: {
3754
+ "reportId": string;
3755
+ signal?: AbortSignal;
3756
+ headers?: HeadersInit;
3757
+ }): Promise<void>;
3758
+ shareSavedReport(args: {
3759
+ "reportId": string;
3760
+ "userId": number;
3761
+ signal?: AbortSignal;
3762
+ headers?: HeadersInit;
3763
+ }): Promise<void>;
3764
+ unshareSavedReport(args: {
3765
+ "reportId": string;
3766
+ "userId": number;
3767
+ signal?: AbortSignal;
3768
+ headers?: HeadersInit;
3769
+ }): Promise<void>;
3770
+ runSavedReport(args: {
3771
+ "reportId": string;
3772
+ signal?: AbortSignal;
3773
+ headers?: HeadersInit;
3774
+ }): Promise<ReportRunnerEnvelope>;
3141
3775
  getMyHoursReport(args: {
3142
3776
  query: {
3143
3777
  "from": string;
@@ -3151,10 +3785,38 @@ export declare class EzactoClient {
3151
3785
  query: {
3152
3786
  "from": string;
3153
3787
  "to": string;
3788
+ "include_fixed_fee"?: boolean;
3154
3789
  };
3155
3790
  signal?: AbortSignal;
3156
3791
  headers?: HeadersInit;
3157
3792
  }): Promise<TimeReportEnvelope>;
3793
+ getInvoicedReport(args: {
3794
+ query: {
3795
+ "from": string;
3796
+ "to": string;
3797
+ "client_id"?: number;
3798
+ "status"?: "draft" | "open" | "paid" | "closed";
3799
+ };
3800
+ signal?: AbortSignal;
3801
+ headers?: HeadersInit;
3802
+ }): Promise<InvoicedReportEnvelope>;
3803
+ getPaymentsReceivedReport(args: {
3804
+ query: {
3805
+ "from": string;
3806
+ "to": string;
3807
+ "client_id"?: number;
3808
+ };
3809
+ signal?: AbortSignal;
3810
+ headers?: HeadersInit;
3811
+ }): Promise<PaymentsReceivedReportEnvelope>;
3812
+ getReceivablesReport(args: {
3813
+ query: {
3814
+ "as_of": string;
3815
+ "client_id"?: number;
3816
+ };
3817
+ signal?: AbortSignal;
3818
+ headers?: HeadersInit;
3819
+ }): Promise<ReceivablesReportEnvelope>;
3158
3820
  getContractorCostReport(args: {
3159
3821
  query: {
3160
3822
  "from": string;
@@ -3163,10 +3825,39 @@ export declare class EzactoClient {
3163
3825
  signal?: AbortSignal;
3164
3826
  headers?: HeadersInit;
3165
3827
  }): Promise<ContractorCostReportEnvelope>;
3828
+ getMonthEndManifest(args: {
3829
+ query: {
3830
+ "from": string;
3831
+ "to": string;
3832
+ };
3833
+ signal?: AbortSignal;
3834
+ headers?: HeadersInit;
3835
+ }): Promise<MonthEndManifestEnvelope>;
3836
+ getBandedMonthReport(args: {
3837
+ query: {
3838
+ "from": string;
3839
+ "to": string;
3840
+ };
3841
+ signal?: AbortSignal;
3842
+ headers?: HeadersInit;
3843
+ }): Promise<BandedMonthReportEnvelope>;
3844
+ getBandCostAlert(args?: {
3845
+ signal?: AbortSignal;
3846
+ headers?: HeadersInit;
3847
+ }): Promise<BandCostAlertEnvelope>;
3848
+ setBandCostAlert(args: {
3849
+ body: BandCostAlertInput;
3850
+ signal?: AbortSignal;
3851
+ headers?: HeadersInit;
3852
+ }): Promise<BandCostAlertEnvelope>;
3166
3853
  getProfitabilityReport(args: {
3167
3854
  query: {
3168
3855
  "from": string;
3169
3856
  "to": string;
3857
+ "project_status"?: "all" | "active" | "archived";
3858
+ "billing_method"?: "non_billable" | "time_materials" | "fixed_fee";
3859
+ "manager_id"?: number;
3860
+ "tag_id"?: number;
3170
3861
  };
3171
3862
  signal?: AbortSignal;
3172
3863
  headers?: HeadersInit;
@@ -3177,7 +3868,12 @@ export declare class EzactoClient {
3177
3868
  "to": string;
3178
3869
  "client_id"?: number;
3179
3870
  "project_id"?: number;
3180
- "billable_only"?: boolean;
3871
+ "category_id"?: number;
3872
+ "user_id"?: number;
3873
+ "billable"?: boolean;
3874
+ "reimbursable"?: boolean;
3875
+ "invoice_state"?: "all" | "invoiced" | "uninvoiced";
3876
+ "active_projects_only"?: boolean;
3181
3877
  };
3182
3878
  signal?: AbortSignal;
3183
3879
  headers?: HeadersInit;
@@ -3198,13 +3894,23 @@ export declare class EzactoClient {
3198
3894
  "to": string;
3199
3895
  "client_id"?: number;
3200
3896
  "project_id"?: number;
3201
- "hours"?: "all" | "billable" | "non_billable" | "uninvoiced";
3897
+ "task_id"?: number;
3898
+ "user_id"?: number;
3899
+ "role_id"?: number;
3900
+ "tag_id"?: number;
3901
+ "hours"?: "all" | "billable" | "non_billable" | "uninvoiced" | "claimed" | "unclaimed";
3202
3902
  "grain"?: "day" | "entry";
3903
+ "invoice_state"?: "all" | "invoiced" | "uninvoiced";
3203
3904
  "active_projects_only"?: boolean;
3204
3905
  };
3205
3906
  signal?: AbortSignal;
3206
3907
  headers?: HeadersInit;
3207
3908
  }): Promise<DetailedTimeReportEnvelope>;
3909
+ executeDetailedTimeAction(args: {
3910
+ body: ReportTimeActionInput;
3911
+ signal?: AbortSignal;
3912
+ headers?: HeadersInit;
3913
+ }): Promise<ReportTimeActionEnvelope>;
3208
3914
  getClientRollupReport(args: {
3209
3915
  "clientId": number;
3210
3916
  query: {
@@ -3241,6 +3947,16 @@ export declare class EzactoClient {
3241
3947
  signal?: AbortSignal;
3242
3948
  headers?: HeadersInit;
3243
3949
  }): Promise<ModuleListEnvelope>;
3950
+ listSignInMethods(args?: {
3951
+ signal?: AbortSignal;
3952
+ headers?: HeadersInit;
3953
+ }): Promise<SignInMethodListEnvelope>;
3954
+ updateSignInMethod(args: {
3955
+ "method": string;
3956
+ body: ModulePatch;
3957
+ signal?: AbortSignal;
3958
+ headers?: HeadersInit;
3959
+ }): Promise<SignInMethodListEnvelope>;
3244
3960
  getBackupStatus(args?: {
3245
3961
  signal?: AbortSignal;
3246
3962
  headers?: HeadersInit;
@@ -3262,6 +3978,48 @@ export declare class EzactoClient {
3262
3978
  signal?: AbortSignal;
3263
3979
  headers?: HeadersInit;
3264
3980
  }): Promise<void>;
3981
+ getWiseConnection(args?: {
3982
+ signal?: AbortSignal;
3983
+ headers?: HeadersInit;
3984
+ }): Promise<WiseStatusEnvelope>;
3985
+ listWiseRecipients(args?: {
3986
+ signal?: AbortSignal;
3987
+ headers?: HeadersInit;
3988
+ }): Promise<WiseRecipientListEnvelope>;
3989
+ onboardWiseRecipient(args: {
3990
+ body: WiseOnboardInput;
3991
+ signal?: AbortSignal;
3992
+ headers?: HeadersInit;
3993
+ }): Promise<WiseLinkEnvelope>;
3994
+ listWisePayoutProposals(args?: {
3995
+ signal?: AbortSignal;
3996
+ headers?: HeadersInit;
3997
+ }): Promise<WiseProposalListEnvelope>;
3998
+ getWisePayoutDestination(args: {
3999
+ "userId": number;
4000
+ signal?: AbortSignal;
4001
+ headers?: HeadersInit;
4002
+ }): Promise<WiseDestinationEnvelope>;
4003
+ removeWisePayoutDestination(args: {
4004
+ "userId": number;
4005
+ signal?: AbortSignal;
4006
+ headers?: HeadersInit;
4007
+ }): Promise<void>;
4008
+ shareWiseProfile(args: {
4009
+ body: WiseContactInput;
4010
+ signal?: AbortSignal;
4011
+ headers?: HeadersInit;
4012
+ }): Promise<WiseContactEnvelope>;
4013
+ linkWiseRecipient(args: {
4014
+ body: WiseLinkInput;
4015
+ signal?: AbortSignal;
4016
+ headers?: HeadersInit;
4017
+ }): Promise<WiseLinkEnvelope>;
4018
+ unlinkWiseRecipient(args: {
4019
+ "accountId": number;
4020
+ signal?: AbortSignal;
4021
+ headers?: HeadersInit;
4022
+ }): Promise<void>;
3265
4023
  listSsoProvisioningDomains(args?: {
3266
4024
  signal?: AbortSignal;
3267
4025
  headers?: HeadersInit;
@@ -3312,6 +4070,56 @@ export declare class EzactoClient {
3312
4070
  signal?: AbortSignal;
3313
4071
  headers?: HeadersInit;
3314
4072
  }): Promise<InvoicePaymentLinkEnvelope>;
4073
+ releaseInvoicedTime(args: {
4074
+ "id": number;
4075
+ signal?: AbortSignal;
4076
+ headers?: HeadersInit;
4077
+ }): Promise<ReleasedTimeEnvelope>;
4078
+ getInvoiceDocumentPreference(args: {
4079
+ "id": number;
4080
+ signal?: AbortSignal;
4081
+ headers?: HeadersInit;
4082
+ }): Promise<InvoiceDocumentPreferenceEnvelope>;
4083
+ setInvoiceDocumentPreference(args: {
4084
+ "id": number;
4085
+ signal?: AbortSignal;
4086
+ headers?: HeadersInit;
4087
+ }): Promise<InvoiceDocumentPreferenceEnvelope>;
4088
+ getOrganizationInvoiceDocuments(args?: {
4089
+ signal?: AbortSignal;
4090
+ headers?: HeadersInit;
4091
+ }): Promise<OrganizationInvoiceDocumentsEnvelope>;
4092
+ setOrganizationInvoiceDocuments(args?: {
4093
+ signal?: AbortSignal;
4094
+ headers?: HeadersInit;
4095
+ }): Promise<OrganizationInvoiceDocumentsEnvelope>;
4096
+ getInvoiceThankYouPreference(args: {
4097
+ "id": number;
4098
+ signal?: AbortSignal;
4099
+ headers?: HeadersInit;
4100
+ }): Promise<InvoiceThankYouPreferenceEnvelope>;
4101
+ setInvoiceThankYouPreference(args: {
4102
+ "id": number;
4103
+ signal?: AbortSignal;
4104
+ headers?: HeadersInit;
4105
+ }): Promise<InvoiceThankYouPreferenceEnvelope>;
4106
+ getOrganizationInvoiceThankYou(args?: {
4107
+ signal?: AbortSignal;
4108
+ headers?: HeadersInit;
4109
+ }): Promise<OrganizationInvoiceThankYouEnvelope>;
4110
+ setOrganizationInvoiceThankYou(args?: {
4111
+ signal?: AbortSignal;
4112
+ headers?: HeadersInit;
4113
+ }): Promise<OrganizationInvoiceThankYouEnvelope>;
4114
+ listIncompleteRecurringInvoices(args?: {
4115
+ signal?: AbortSignal;
4116
+ headers?: HeadersInit;
4117
+ }): Promise<IncompleteRecurringInvoiceListEnvelope>;
4118
+ completeRecurringInvoiceDefinition(args: {
4119
+ "id": number;
4120
+ signal?: AbortSignal;
4121
+ headers?: HeadersInit;
4122
+ }): Promise<RecurringInvoiceCompletionEnvelope>;
3315
4123
  listPayoutAccounts(args: {
3316
4124
  "id": number;
3317
4125
  signal?: AbortSignal;
@@ -3419,6 +4227,14 @@ export declare class EzactoClient {
3419
4227
  signal?: AbortSignal;
3420
4228
  headers?: HeadersInit;
3421
4229
  }): Promise<TeamCommandReceiptEnvelope>;
4230
+ removeTeamPersonRate(args: {
4231
+ "id": number;
4232
+ "rateId": number;
4233
+ "Idempotency-Key": string;
4234
+ body: TeamRateRemovalInput;
4235
+ signal?: AbortSignal;
4236
+ headers?: HeadersInit;
4237
+ }): Promise<TeamCommandReceiptEnvelope>;
3422
4238
  listClientAncestors(args: {
3423
4239
  "id": number;
3424
4240
  signal?: AbortSignal;