@wefunder/sdk 0.1.0-beta.6 → 0.1.0-beta.8

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/index.d.ts CHANGED
@@ -649,8 +649,16 @@ type IntentListEnvelope = {
649
649
  data?: Array<Intent>;
650
650
  meta?: PaginationMeta;
651
651
  };
652
- type InvestmentLinkEnvelope = {
653
- data?: InvestmentLink;
652
+ /**
653
+ * Lightweight handle to a pending intent a permitted human must approve for the action to take effect. The full intent is not readable through this API; the review_url is the approval link. Returned under `meta.<action>_intent` by the endpoints that server-mint an intent (partner SPV close/cancel, syndicate deal close/finalize).
654
+ */
655
+ type IntentReview = {
656
+ /**
657
+ * The intent's id (Intent has a UUID primary key).
658
+ */
659
+ id?: string;
660
+ status?: string;
661
+ review_url?: string;
654
662
  };
655
663
  type InvestmentListEnvelope = {
656
664
  data?: Array<Investment>;
@@ -658,6 +666,18 @@ type InvestmentListEnvelope = {
658
666
  };
659
667
  type InvestmentSessionEnvelope = {
660
668
  data?: InvestmentSession;
669
+ meta?: {
670
+ request_id?: string;
671
+ };
672
+ };
673
+ type InvestmentSessionListEnvelope = {
674
+ data?: Array<InvestmentSession>;
675
+ meta?: {
676
+ has_more?: boolean;
677
+ page_count?: number;
678
+ request_id?: string;
679
+ next_cursor?: number | null;
680
+ };
661
681
  };
662
682
  type InvestorEnvelope = {
663
683
  data?: Investor;
@@ -666,12 +686,20 @@ type InvestorListEnvelope = {
666
686
  data?: Array<Investor>;
667
687
  meta?: PaginationMeta;
668
688
  };
669
- type InviteEnvelope = {
670
- data?: Invite;
689
+ type InviteLinkEnvelope = {
690
+ data?: InviteLink;
691
+ meta?: {
692
+ request_id?: string;
693
+ };
671
694
  };
672
- type InviteListEnvelope = {
673
- data?: Array<Invite>;
674
- meta?: PaginationMeta;
695
+ type InviteLinkListEnvelope = {
696
+ data?: Array<InviteLink>;
697
+ meta?: {
698
+ has_more?: boolean;
699
+ page_count?: number;
700
+ request_id?: string;
701
+ next_cursor?: number | null;
702
+ };
675
703
  };
676
704
  type MarketingPartnerEnvelope = {
677
705
  data?: MarketingPartner;
@@ -686,6 +714,10 @@ type PartnerInvestmentListEnvelope = {
686
714
  data?: Array<PartnerInvestment>;
687
715
  meta?: PaginationMeta;
688
716
  };
717
+ type PartnerInvestorListEnvelope = {
718
+ data?: Array<PartnerInvestor>;
719
+ meta?: PaginationMeta;
720
+ };
689
721
  type PartnerInviteEnvelope = {
690
722
  data?: PartnerInvite;
691
723
  };
@@ -698,12 +730,33 @@ type PartnerWebhookSubscriptionEnvelope = {
698
730
  type PartnerWebhookSubscriptionWithSecretEnvelope = {
699
731
  data?: PartnerWebhookSubscriptionWithSecret;
700
732
  };
701
- type SpvCloseStatusEnvelope = {
702
- data?: SpvCloseStatus;
733
+ type SpvStatusEnvelope = {
734
+ data?: SpvStatus;
735
+ meta?: {
736
+ request_id?: string;
737
+ };
703
738
  };
704
739
  type SpvEnvelope = {
705
740
  data?: Spv;
706
741
  };
742
+ /**
743
+ * The SPV plus the pending disburse_funds intent an advisor approves to finalize the close.
744
+ */
745
+ type SpvCloseIntentEnvelope = {
746
+ data?: Spv;
747
+ meta?: {
748
+ disburse_intent?: IntentReview;
749
+ };
750
+ };
751
+ /**
752
+ * The SPV plus the pending cancel intent an advisor approves to abort the raise and refund investors.
753
+ */
754
+ type SpvCancelIntentEnvelope = {
755
+ data?: Spv;
756
+ meta?: {
757
+ cancel_intent?: IntentReview;
758
+ };
759
+ };
707
760
  type SpvListEnvelope = {
708
761
  data?: Array<Spv>;
709
762
  meta?: PaginationMeta;
@@ -714,6 +767,24 @@ type SyndicateDealDetailEnvelope = {
714
767
  type SyndicateDealEnvelope = {
715
768
  data?: SyndicateDeal;
716
769
  };
770
+ /**
771
+ * The deal plus the pending close_deal intent a permitted human approves to close it.
772
+ */
773
+ type SyndicateDealCloseIntentEnvelope = {
774
+ data?: SyndicateDeal;
775
+ meta?: {
776
+ close_deal_intent?: IntentReview;
777
+ };
778
+ };
779
+ /**
780
+ * The deal plus the pending finalize_deal intent a permitted human approves to finalize it.
781
+ */
782
+ type SyndicateDealFinalizeIntentEnvelope = {
783
+ data?: SyndicateDeal;
784
+ meta?: {
785
+ finalize_deal_intent?: IntentReview;
786
+ };
787
+ };
717
788
  type SyndicateDetailEnvelope = {
718
789
  data?: SyndicateDetail;
719
790
  };
@@ -738,14 +809,14 @@ type WebhookSubscriptionEnvelope = {
738
809
  data?: WebhookSubscription;
739
810
  };
740
811
  /**
741
- * A public offering (a fundraise), addressed by its `ofr_` external id. Returned by the
812
+ * A public offering (a fundraise), addressed by its id (`ofr_...`). Returned by the
742
813
  * Explore endpoints. Monetary fields are USD decimal strings — parse them as decimals, not
743
814
  * floats.
744
815
  *
745
816
  */
746
817
  type Offering = {
747
818
  /**
748
- * The offering's stable external id.
819
+ * The offering's stable id.
749
820
  */
750
821
  id?: string;
751
822
  type?: string;
@@ -800,7 +871,7 @@ type Offering = {
800
871
  */
801
872
  company?: {
802
873
  /**
803
- * The company's `co_` external id.
874
+ * The company's id (`co_...`).
804
875
  */
805
876
  id?: string;
806
877
  type?: string;
@@ -1161,7 +1232,10 @@ type FullAttribution = {
1161
1232
  * JSON:API resource representing a syndicate
1162
1233
  */
1163
1234
  type Syndicate = {
1164
- id?: number;
1235
+ /**
1236
+ * The syndicate's id (`syn_...`).
1237
+ */
1238
+ id?: string;
1165
1239
  type?: string;
1166
1240
  attributes?: {
1167
1241
  name?: string;
@@ -1376,35 +1450,217 @@ type SyndicateDeal = {
1376
1450
  * Same as SyndicateDeal (show and index use the same serializer)
1377
1451
  */
1378
1452
  type SyndicateDealDetail = SyndicateDeal;
1379
- type SyndicatePortfolio = {
1453
+ /**
1454
+ * The company behind a portfolio position or holding.
1455
+ */
1456
+ type PortfolioCompanyRef = {
1457
+ /**
1458
+ * The company's id (`co_...`)
1459
+ */
1460
+ id?: string;
1461
+ name?: string;
1462
+ slug?: string | null;
1463
+ };
1464
+ /**
1465
+ * One security offering within the position's fundraise, such as an early bird
1466
+ * tier or the regular terms. Most positions have a single entry. A position has
1467
+ * several when the round sold multiple tiers, or (investor endpoint) when the
1468
+ * investor holds the same offering through more than one legal owner. Entries
1469
+ * do not have ids; each is described by its `terms`, and occasionally a round
1470
+ * has more than one offering record with identical terms.
1471
+ *
1472
+ */
1473
+ type PortfolioSecurity = {
1474
+ /**
1475
+ * Security type (`safe`, `equity`, `convertible_note`, `revenue_share`,
1476
+ * `simple_loan`, `priced_round`, `fund`, `custom`). May be null on legacy
1477
+ * offerings — fall back to the position-level `structure`.
1478
+ *
1479
+ */
1480
+ structure?: string | null;
1481
+ early_bird?: boolean;
1482
+ /**
1483
+ * The offering's issue terms. Fields are null when the term does not apply to the security type.
1484
+ */
1485
+ terms?: {
1486
+ /**
1487
+ * Issue price per share as a decimal string
1488
+ */
1489
+ share_price?: string | null;
1490
+ note_cap_cents?: number | null;
1491
+ note_discount?: string | null;
1492
+ premoney_valuation_cents?: number | null;
1493
+ };
1494
+ cost_basis_cents?: number;
1495
+ current_value_cents?: number;
1496
+ unrealized_gain_cents?: number;
1497
+ realized_gain_cents?: number;
1498
+ /**
1499
+ * Decimal string. Null for non-share structures and multiple-of-basis valuations.
1500
+ */
1501
+ shares_held?: string | null;
1502
+ /**
1503
+ * Decimal string, split-adjusted.
1504
+ */
1505
+ current_share_price?: string | null;
1506
+ invested_at?: string | null;
1507
+ /**
1508
+ * The legal owner of this stake — `{"kind": "individual"}` for
1509
+ * personally-held stakes, `{"kind": "entity", "name": "..."}` for stakes
1510
+ * held through the investor's own entity (IRA, LLC). Present on the
1511
+ * investor endpoint only.
1512
+ *
1513
+ */
1514
+ owner?: {
1515
+ kind?: "individual" | "entity";
1516
+ name?: string;
1517
+ } | null;
1518
+ /**
1519
+ * The number of distinct investors aggregated into this entry. Present on the syndicate endpoint only.
1520
+ */
1521
+ investor_count?: number;
1522
+ };
1523
+ /**
1524
+ * A company a fund vehicle invested in — one entry per company, with the
1525
+ * status of the most recent investment when the fund invested in the same
1526
+ * company more than once.
1527
+ *
1528
+ */
1529
+ type PortfolioHolding = {
1530
+ company?: PortfolioCompanyRef;
1531
+ status?: "active" | "failed" | "exited";
1532
+ };
1533
+ /**
1534
+ * One position per offering (fundraise). On the investor endpoint the totals
1535
+ * sum the authenticated investor's stakes; on the syndicate endpoint they sum
1536
+ * every holder's stakes and `investor_count` is present.
1537
+ *
1538
+ */
1539
+ type PortfolioPosition = {
1540
+ /**
1541
+ * The offering's id (`ofr_...`) — a position's identity is its offering.
1542
+ */
1543
+ id?: string;
1544
+ type?: "portfolio_position" | "syndicate_portfolio_position";
1545
+ attributes?: {
1546
+ offering_id?: string;
1547
+ company?: PortfolioCompanyRef;
1548
+ /**
1549
+ * `fund` for SPV and fund vehicles; the underlying companies appear in `holdings` where recorded.
1550
+ */
1551
+ asset_type?: "company" | "fund";
1552
+ /**
1553
+ * The fundraise's security structure (`safe`, `equity`, `fund`, ...)
1554
+ */
1555
+ structure?: string;
1556
+ /**
1557
+ * `sold` means the stake was transferred away (secondary sale).
1558
+ */
1559
+ status?: "active" | "exited" | "sold" | "failed";
1560
+ /**
1561
+ * Why the position ended. Set only for `exited` and `failed`
1562
+ * positions — a `sold` position ended with the transfer itself, and
1563
+ * some older positions have no recorded ending. `ipo` means the
1564
+ * company went public; distributions, if any, appear in
1565
+ * `realized_gain_cents`.
1566
+ *
1567
+ */
1568
+ exit_reason?: "ipo" | "acquisition" | "buyback" | "failed" | "winding_down";
1569
+ invested_at?: string | null;
1570
+ currency?: string;
1571
+ cost_basis_cents?: number;
1572
+ /**
1573
+ * Estimated current value; based on cost basis when no newer valuation has been recorded.
1574
+ */
1575
+ current_value_cents?: number;
1576
+ /**
1577
+ * Can be negative.
1578
+ */
1579
+ unrealized_gain_cents?: number;
1580
+ realized_gain_cents?: number;
1581
+ /**
1582
+ * Decimal string. Null when cost basis is zero.
1583
+ */
1584
+ return_multiple?: string | null;
1585
+ shares_held?: string | null;
1586
+ /**
1587
+ * Null when the position's securities carry different prices — see the per-entry values.
1588
+ */
1589
+ current_share_price?: string | null;
1590
+ securities?: Array<PortfolioSecurity>;
1591
+ /**
1592
+ * Companies the vehicle invested in, for fund positions. Empty for non-fund positions and for vehicles without recorded holdings.
1593
+ */
1594
+ holdings?: Array<PortfolioHolding>;
1595
+ /**
1596
+ * The number of distinct investors in this deal. Present on the syndicate endpoint only.
1597
+ */
1598
+ investor_count?: number;
1599
+ /**
1600
+ * When the values in this position were last calculated (the oldest timestamp when several underlying records are combined).
1601
+ */
1602
+ as_of?: string;
1603
+ };
1604
+ };
1605
+ type PortfolioPositionListEnvelope = {
1606
+ data?: Array<PortfolioPosition>;
1607
+ meta?: {
1608
+ has_more?: boolean;
1609
+ page_count?: number;
1610
+ /**
1611
+ * Pass as `cursor` to fetch the next page. Absent on the last page.
1612
+ */
1613
+ next_cursor?: number | null;
1614
+ };
1615
+ };
1616
+ type PortfolioSummaryEnvelope = {
1380
1617
  data?: {
1381
- syndicate_id?: number;
1382
- syndicate_name?: string;
1383
- snapshot_at?: string;
1384
- totals?: {
1385
- total_invested_cents?: number;
1386
- total_positions?: number;
1387
- active_positions?: number;
1388
- exited_positions?: number;
1389
- };
1390
- positions?: Array<{
1391
- company?: {
1392
- id?: number;
1393
- name?: string;
1394
- slug?: string;
1395
- };
1396
- investment?: {
1397
- amount_cents?: number;
1398
- structure?: string;
1399
- invested_at?: string;
1400
- status?: "active" | "exited";
1618
+ type?: string;
1619
+ attributes?: {
1620
+ currency?: string;
1621
+ total_cost_basis_cents?: number;
1622
+ total_current_value_cents?: number;
1623
+ total_unrealized_gain_cents?: number;
1624
+ total_realized_gain_cents?: number;
1625
+ return_multiple?: string | null;
1626
+ /**
1627
+ * Distinct offerings per status.
1628
+ */
1629
+ position_counts?: {
1630
+ active?: number;
1631
+ exited?: number;
1632
+ sold?: number;
1633
+ failed?: number;
1401
1634
  };
1402
- valuation?: {
1403
- basis_cents?: number;
1404
- current_estimate_cents?: number | null;
1405
- multiple?: number | null;
1635
+ as_of?: string | null;
1636
+ };
1637
+ };
1638
+ };
1639
+ type SyndicatePortfolioSummaryEnvelope = {
1640
+ data?: {
1641
+ type?: string;
1642
+ attributes?: {
1643
+ currency?: string;
1644
+ total_cost_basis_cents?: number;
1645
+ total_current_value_cents?: number;
1646
+ total_unrealized_gain_cents?: number;
1647
+ total_realized_gain_cents?: number;
1648
+ return_multiple?: string | null;
1649
+ /**
1650
+ * Distinct deals per status.
1651
+ */
1652
+ deal_counts?: {
1653
+ active?: number;
1654
+ exited?: number;
1655
+ sold?: number;
1656
+ failed?: number;
1406
1657
  };
1407
- }>;
1658
+ /**
1659
+ * Distinct investors across the syndicate's funded deals.
1660
+ */
1661
+ investor_count?: number;
1662
+ as_of?: string | null;
1663
+ };
1408
1664
  };
1409
1665
  };
1410
1666
  /**
@@ -1532,7 +1788,10 @@ type Intent = {
1532
1788
  action?: string;
1533
1789
  status?: "pending" | "approved" | "executing" | "executed" | "expired" | "rejected" | "failed";
1534
1790
  resource_type?: string;
1535
- resource_id?: number;
1791
+ /**
1792
+ * For Club resources, the syndicate's id (`syn_...`).
1793
+ */
1794
+ resource_id?: string;
1536
1795
  impact_summary?: string;
1537
1796
  /**
1538
1797
  * URL where a human can review and approve/reject this intent
@@ -1571,7 +1830,10 @@ type AuditEvent = {
1571
1830
  actor_name?: string;
1572
1831
  action?: string;
1573
1832
  resource_type?: string;
1574
- resource_id?: number;
1833
+ /**
1834
+ * For Club resources, the syndicate's id (`syn_...`).
1835
+ */
1836
+ resource_id?: string;
1575
1837
  resource_label?: string | null;
1576
1838
  /**
1577
1839
  * Previous values of changed fields
@@ -1696,7 +1958,14 @@ type SpvCreateInput = {
1696
1958
  };
1697
1959
  type SpvMetrics = {
1698
1960
  total_raised_cents?: number;
1961
+ /**
1962
+ * Investors with an active investment in this SPV.
1963
+ */
1699
1964
  investor_count?: number;
1965
+ /**
1966
+ * The documented per-SPV investor soft cap (247). Advisory only — it is not enforced, and `investor_count` may exceed it.
1967
+ */
1968
+ documented_soft_cap?: number;
1700
1969
  confirmed_count?: number;
1701
1970
  pending_count?: number;
1702
1971
  average_investment_cents?: number;
@@ -1724,81 +1993,231 @@ type Spv = {
1724
1993
  closed_at?: string | null;
1725
1994
  };
1726
1995
  };
1727
- type SpvCloseStatus = {
1728
- spv_id?: string;
1729
- status?: "closing" | "closed";
1730
- steps?: Array<{
1731
- name?: "investment_cutoff" | "pending_resolution" | "final_tally" | "disbursement" | "cap_table";
1732
- status?: "pending" | "in_progress" | "complete";
1733
- completed_at?: string | null;
1734
- pending_count?: number | null;
1996
+ /**
1997
+ * An investor in an SPV, aggregated across all their investments in it.
1998
+ * `full_name` and `email` are null unless the token holds `read:investors:pii`.
1999
+ *
2000
+ */
2001
+ type PartnerInvestor = {
2002
+ id?: string;
2003
+ type?: string;
2004
+ attributes?: {
2005
+ full_name?: string | null;
2006
+ email?: string | null;
2007
+ accredited?: boolean;
2008
+ /**
2009
+ * Sum of the investor's active investments in this SPV.
2010
+ */
2011
+ total_invested_cents?: number;
2012
+ investment_count?: number;
2013
+ /**
2014
+ * When the investor first invested in this SPV.
2015
+ */
2016
+ created_at?: string | null;
2017
+ };
2018
+ };
2019
+ type SpvStatus = {
2020
+ id?: string;
2021
+ type?: string;
2022
+ attributes?: {
2023
+ status?: "draft" | "open" | "closing" | "closed" | "canceled";
2024
+ /**
2025
+ * The offering is awaiting Wefunder review before it can open.
2026
+ */
2027
+ requires_ops_review?: boolean;
2028
+ /**
2029
+ * A disbursement is queued for this SPV but funds have not moved yet.
2030
+ */
2031
+ disbursement_scheduled?: boolean;
2032
+ /**
2033
+ * Estimated date funds will be disbursed — 3 business days from when the close executed and the SPV entered the disbursement queue. Present only while `status` is `closing` (awaiting disbursement); null before close and once funds have moved.
2034
+ */
2035
+ expected_disbursement_at?: string | null;
2036
+ /**
2037
+ * The investor roster has been finalized.
2038
+ */
2039
+ finalized_investor_list?: boolean;
2040
+ };
2041
+ };
2042
+ type BulkInviteLinkCreateInput = {
2043
+ /**
2044
+ * Up to 100 per-person invites. Each item must include `email` or `wefunder_user_id`.
2045
+ */
2046
+ invite_links: Array<InviteLinkCreateInput>;
2047
+ };
2048
+ /**
2049
+ * 207 Multi-Status — created links in `data`, per-item failures in `errors`.
2050
+ */
2051
+ type BulkInviteLinkEnvelope = {
2052
+ data?: Array<InviteLink>;
2053
+ errors?: Array<{
2054
+ /**
2055
+ * Position of the failed item in the request array.
2056
+ */
2057
+ index?: number;
2058
+ type?: string;
2059
+ detail?: string;
1735
2060
  }>;
1736
- estimated_completion?: string | null;
2061
+ meta?: {
2062
+ created?: number;
2063
+ failed?: number;
2064
+ request_id?: string;
2065
+ };
1737
2066
  };
1738
- type InviteCreateInput = {
1739
- email: string;
1740
- first_name?: string;
1741
- last_name?: string;
2067
+ /**
2068
+ * All fields optional. With no `email`/`wefunder_user_id` the link is
2069
+ * **reusable**; with either it becomes a **per-person** invite. `email` and
2070
+ * `wefunder_user_id` are mutually exclusive. `max_uses` is rejected for
2071
+ * per-person invites; `send_email` is rejected without a recipient.
2072
+ *
2073
+ */
2074
+ type InviteLinkCreateInput = {
1742
2075
  /**
1743
- * Optional reserved allocation for this investor.
2076
+ * Budget cap, in cents. Reusable → total budget across all claims of the
2077
+ * link. Per-person → the single recipient's cap.
2078
+ *
1744
2079
  */
1745
2080
  allocation_cents?: number | null;
1746
2081
  /**
1747
- * Optional personal message included in the invite email.
2082
+ * Claim cap for a reusable link. Null = unlimited. Not allowed for per-person invites.
1748
2083
  */
1749
- message?: string;
1750
- send_email?: boolean;
1751
- };
1752
- type Invite = {
1753
- id?: string;
1754
- type?: string;
1755
- attributes?: {
1756
- email?: string;
1757
- status?: "pending" | "opened" | "invested" | "expired" | "revoked";
1758
- allocation_cents?: number | null;
1759
- invest_url?: string;
1760
- investment_id?: string | null;
1761
- created_at?: string;
1762
- opened_at?: string | null;
1763
- invested_at?: string | null;
1764
- expires_at?: string | null;
1765
- };
1766
- };
1767
- type InvestmentLinkCreateInput = {
2084
+ max_uses?: number | null;
1768
2085
  /**
1769
- * Optional per-investor allocation cap applied to anyone using the link.
2086
+ * Recipient email. Makes the link per-person. Mutually exclusive with `wefunder_user_id`.
1770
2087
  */
2088
+ email?: string | null;
2089
+ /**
2090
+ * Id (`usr_...`) of an existing Wefunder user to invite. Mutually exclusive with `email`; must resolve to a user (else 404).
2091
+ */
2092
+ wefunder_user_id?: string | null;
2093
+ /**
2094
+ * Recipient first name (per-person only).
2095
+ */
2096
+ first_name?: string | null;
2097
+ /**
2098
+ * Recipient last name (per-person only).
2099
+ */
2100
+ last_name?: string | null;
2101
+ /**
2102
+ * Personal message included in the invite email (per-person only).
2103
+ */
2104
+ message?: string | null;
2105
+ /**
2106
+ * Whether to email the invite (per-person only). Rejected on a reusable create.
2107
+ */
2108
+ send_email?: boolean;
2109
+ };
2110
+ /**
2111
+ * Only link terms are mutable; recipient identity, `reuse`, and the URL token cannot change. Other fields are ignored.
2112
+ */
2113
+ type InviteLinkUpdateInput = {
1771
2114
  allocation_cents?: number | null;
1772
2115
  /**
1773
- * Optional cap on how many investments the link can produce.
2116
+ * Rejected for per-person invites and when set below the current `uses_count`.
1774
2117
  */
1775
2118
  max_uses?: number | null;
1776
2119
  };
1777
- type InvestmentLink = {
2120
+ /**
2121
+ * A partner invite link. `id` is the link's `il_...` id (distinct from the URL
2122
+ * access `token`, which lives only in `url`). Per-person (`reuse: false`)
2123
+ * links carry the extra recipient + derived-status attributes below; reusable
2124
+ * links omit them.
2125
+ *
2126
+ */
2127
+ type InviteLink = {
1778
2128
  id?: string;
1779
2129
  type?: string;
1780
2130
  attributes?: {
2131
+ /**
2132
+ * Shareable invite URL. Carries the access token, not the id.
2133
+ */
1781
2134
  url?: string;
1782
2135
  allocation_cents?: number | null;
1783
2136
  max_uses?: number | null;
1784
2137
  uses_count?: number;
2138
+ /**
2139
+ * False once the link is canceled (soft-deleted).
2140
+ */
1785
2141
  active?: boolean;
1786
2142
  created_at?: string;
2143
+ /**
2144
+ * Per-person only — recipient email.
2145
+ */
2146
+ email?: string | null;
2147
+ /**
2148
+ * Per-person only — the recipient's id (`usr_...`), when they are an existing user.
2149
+ */
2150
+ wefunder_user_id?: string | null;
2151
+ /**
2152
+ * Per-person only — derived live, not stored. `pending` (sent, not yet
2153
+ * opened), `opened` (link clicked), `invested` (a matching active
2154
+ * investment exists), `revoked` (canceled).
2155
+ *
2156
+ */
2157
+ status?: "pending" | "opened" | "invested" | "revoked";
2158
+ /**
2159
+ * Per-person only.
2160
+ */
2161
+ opened_at?: string | null;
2162
+ /**
2163
+ * Per-person only.
2164
+ */
2165
+ invested_at?: string | null;
2166
+ /**
2167
+ * Per-person only — the id (`inv_...`) of the matching investment.
2168
+ */
2169
+ investment_id?: string | null;
2170
+ /**
2171
+ * Engagement timeline. Present on the show (get-one) endpoint only.
2172
+ */
2173
+ events?: Array<{
2174
+ event?: string;
2175
+ city?: string | null;
2176
+ country_code?: string | null;
2177
+ created_at?: string;
2178
+ }>;
1787
2179
  };
1788
2180
  };
1789
2181
  /**
1790
2182
  * Either `email` (invite an unknown recipient) or `wefunder_user_id` (target an
1791
- * existing Wefunder user) should be provided.
2183
+ * existing Wefunder user) should be provided. `spv_id` is required on
2184
+ * `POST /partner/investment_sessions`; on the deprecated SPV-nested path the
2185
+ * SPV comes from the URL instead.
1792
2186
  *
1793
2187
  */
1794
2188
  type InvestmentSessionCreateInput = {
2189
+ /**
2190
+ * The SPV to invest into (prefixed, e.g. `spv_abc123`).
2191
+ */
2192
+ spv_id?: string | null;
1795
2193
  email?: string | null;
1796
2194
  wefunder_user_id?: string | null;
2195
+ /**
2196
+ * Fixed investment amount, in cents (whole dollars only). Locks the
2197
+ * checkout to exactly this value, overriding the SPV's min/max
2198
+ * purchase range. Omit to let the recipient choose an amount within
2199
+ * that range.
2200
+ *
2201
+ */
1797
2202
  allocation_cents?: number | null;
1798
2203
  /**
1799
2204
  * Where to send the recipient after they complete the session.
1800
2205
  */
1801
2206
  success_url?: string | null;
2207
+ /**
2208
+ * Session lifetime in hours (default 720, i.e. 30 days).
2209
+ */
2210
+ expires_in_hours?: number | null;
2211
+ /**
2212
+ * Free-form key/value pairs stored with the session and echoed back on reads.
2213
+ */
2214
+ metadata?: {
2215
+ [key: string]: unknown;
2216
+ } | null;
2217
+ /**
2218
+ * The Intent that gated the SPV's creation, for audit; stored in `metadata`.
2219
+ */
2220
+ intent_id?: string | null;
1802
2221
  };
1803
2222
  type InvestmentSession = {
1804
2223
  id?: string;
@@ -1811,6 +2230,9 @@ type InvestmentSession = {
1811
2230
  url?: string;
1812
2231
  spv_id?: string;
1813
2232
  email?: string | null;
2233
+ /**
2234
+ * The fixed amount the session locks to, in cents; null when the recipient chooses their own amount.
2235
+ */
1814
2236
  allocation_cents?: number | null;
1815
2237
  kyc_status?: "pending" | "passed" | "failed";
1816
2238
  funding_status?: "pending" | "succeeded" | "card_declined" | "insufficient_funds";
@@ -1818,8 +2240,22 @@ type InvestmentSession = {
1818
2240
  * Populated once the session completes successfully.
1819
2241
  */
1820
2242
  investment_id?: string | null;
2243
+ /**
2244
+ * The key/value pairs supplied at creation.
2245
+ */
2246
+ metadata?: {
2247
+ [key: string]: unknown;
2248
+ };
1821
2249
  created_at?: string;
1822
2250
  expires_at?: string | null;
2251
+ /**
2252
+ * Durable platform events recorded about this session, oldest first. Only present on the single-session GET.
2253
+ */
2254
+ events?: Array<{
2255
+ id?: string;
2256
+ event?: string;
2257
+ occurred_at?: string;
2258
+ }>;
1823
2259
  };
1824
2260
  };
1825
2261
  type PartnerInvestment = {
@@ -1915,9 +2351,9 @@ type PartnerWebhookEvent = {
1915
2351
  */
1916
2352
  type CampaignId = number;
1917
2353
  /**
1918
- * The syndicate ID
2354
+ * The syndicate's id (`syn_...`).
1919
2355
  */
1920
- type SyndicateId = number;
2356
+ type SyndicateId = string;
1921
2357
  /**
1922
2358
  * The member ID
1923
2359
  */
@@ -1955,9 +2391,9 @@ type WebhookId = number;
1955
2391
  */
1956
2392
  type SpvId = string;
1957
2393
  /**
1958
- * The invite ID (prefixed, e.g. `inv_xyz789`)
2394
+ * The invite link ID (prefixed, e.g. `il_abc123`)
1959
2395
  */
1960
- type InviteId = string;
2396
+ type InviteLinkId = string;
1961
2397
  /**
1962
2398
  * The investment session ID (prefixed, e.g. `is_abc123`)
1963
2399
  */
@@ -2036,7 +2472,7 @@ type GetOfferingData = {
2036
2472
  body?: never;
2037
2473
  path: {
2038
2474
  /**
2039
- * The offering's `ofr_` external id.
2475
+ * The offering's id (`ofr_...`).
2040
2476
  */
2041
2477
  external_id: string;
2042
2478
  };
@@ -2058,7 +2494,89 @@ type GetOfferingErrors = {
2058
2494
  /**
2059
2495
  * The requested resource does not exist or is not visible to this token.
2060
2496
  */
2061
- 404: Error$1;
2497
+ 404: Error$1;
2498
+ /**
2499
+ * Too many requests in a short time period. The API enforces rate limits to ensure
2500
+ * fair usage and system stability. When you exceed the limit, you'll receive this
2501
+ * error along with headers indicating when you can retry.
2502
+ *
2503
+ * Check the `X-RateLimit-Reset` header to know when your limit will reset.
2504
+ * Consider implementing exponential backoff in your application.
2505
+ *
2506
+ */
2507
+ 429: Error$1;
2508
+ };
2509
+ type GetOfferingError = GetOfferingErrors[keyof GetOfferingErrors];
2510
+ type GetOfferingResponses = {
2511
+ /**
2512
+ * Successful response
2513
+ */
2514
+ 200: OfferingEnvelope;
2515
+ };
2516
+ type GetOfferingResponse = GetOfferingResponses[keyof GetOfferingResponses];
2517
+ type GetCurrentUserData = {
2518
+ body?: never;
2519
+ path?: never;
2520
+ query?: never;
2521
+ url: "/users/me";
2522
+ };
2523
+ type GetCurrentUserErrors = {
2524
+ /**
2525
+ * Authentication required or token is invalid/expired. This error occurs when:
2526
+ * - No Authorization header is provided
2527
+ * - The access token is invalid or malformed
2528
+ * - The access token has expired
2529
+ * - The access token has been revoked
2530
+ *
2531
+ * To resolve: Obtain a new access token using the OAuth 2.0 flow.
2532
+ *
2533
+ */
2534
+ 401: Error$1;
2535
+ /**
2536
+ * Too many requests in a short time period. The API enforces rate limits to ensure
2537
+ * fair usage and system stability. When you exceed the limit, you'll receive this
2538
+ * error along with headers indicating when you can retry.
2539
+ *
2540
+ * Check the `X-RateLimit-Reset` header to know when your limit will reset.
2541
+ * Consider implementing exponential backoff in your application.
2542
+ *
2543
+ */
2544
+ 429: Error$1;
2545
+ };
2546
+ type GetCurrentUserError = GetCurrentUserErrors[keyof GetCurrentUserErrors];
2547
+ type GetCurrentUserResponses = {
2548
+ /**
2549
+ * Successful response
2550
+ */
2551
+ 200: UserEnvelope;
2552
+ };
2553
+ type GetCurrentUserResponse = GetCurrentUserResponses[keyof GetCurrentUserResponses];
2554
+ type ListInvestmentsData = {
2555
+ body?: never;
2556
+ path?: never;
2557
+ query?: {
2558
+ /**
2559
+ * Cursor-based pagination token. Use the `next_cursor` value from the previous response's
2560
+ * `meta` object to retrieve the next page of results. Omit this parameter to retrieve the
2561
+ * first page.
2562
+ *
2563
+ */
2564
+ cursor?: number;
2565
+ };
2566
+ url: "/investments";
2567
+ };
2568
+ type ListInvestmentsErrors = {
2569
+ /**
2570
+ * Authentication required or token is invalid/expired. This error occurs when:
2571
+ * - No Authorization header is provided
2572
+ * - The access token is invalid or malformed
2573
+ * - The access token has expired
2574
+ * - The access token has been revoked
2575
+ *
2576
+ * To resolve: Obtain a new access token using the OAuth 2.0 flow.
2577
+ *
2578
+ */
2579
+ 401: Error$1;
2062
2580
  /**
2063
2581
  * Too many requests in a short time period. The API enforces rate limits to ensure
2064
2582
  * fair usage and system stability. When you exceed the limit, you'll receive this
@@ -2070,21 +2588,30 @@ type GetOfferingErrors = {
2070
2588
  */
2071
2589
  429: Error$1;
2072
2590
  };
2073
- type GetOfferingError = GetOfferingErrors[keyof GetOfferingErrors];
2074
- type GetOfferingResponses = {
2591
+ type ListInvestmentsError = ListInvestmentsErrors[keyof ListInvestmentsErrors];
2592
+ type ListInvestmentsResponses = {
2075
2593
  /**
2076
2594
  * Successful response
2077
2595
  */
2078
- 200: OfferingEnvelope;
2596
+ 200: InvestmentListEnvelope;
2079
2597
  };
2080
- type GetOfferingResponse = GetOfferingResponses[keyof GetOfferingResponses];
2081
- type GetCurrentUserData = {
2598
+ type ListInvestmentsResponse = ListInvestmentsResponses[keyof ListInvestmentsResponses];
2599
+ type GetPortfolioData = {
2082
2600
  body?: never;
2083
2601
  path?: never;
2084
- query?: never;
2085
- url: "/users/me";
2602
+ query?: {
2603
+ /**
2604
+ * Total only positions with this status.
2605
+ */
2606
+ status?: "active" | "exited" | "sold" | "failed";
2607
+ /**
2608
+ * Total only positions in this company, by its id (`co_...`). Unknown ids return 404.
2609
+ */
2610
+ company?: string;
2611
+ };
2612
+ url: "/portfolio";
2086
2613
  };
2087
- type GetCurrentUserErrors = {
2614
+ type GetPortfolioErrors = {
2088
2615
  /**
2089
2616
  * Authentication required or token is invalid/expired. This error occurs when:
2090
2617
  * - No Authorization header is provided
@@ -2096,6 +2623,17 @@ type GetCurrentUserErrors = {
2096
2623
  *
2097
2624
  */
2098
2625
  401: Error$1;
2626
+ /**
2627
+ * The authenticated user does not have permission to access this resource.
2628
+ * This typically means:
2629
+ * - The user is authenticated but lacks the required OAuth scope
2630
+ * - The resource belongs to a different user
2631
+ * - The user's role doesn't allow this operation
2632
+ *
2633
+ * Check that your OAuth token includes the necessary scopes for this endpoint.
2634
+ *
2635
+ */
2636
+ 403: Error$1;
2099
2637
  /**
2100
2638
  * Too many requests in a short time period. The API enforces rate limits to ensure
2101
2639
  * fair usage and system stability. When you exceed the limit, you'll receive this
@@ -2107,15 +2645,15 @@ type GetCurrentUserErrors = {
2107
2645
  */
2108
2646
  429: Error$1;
2109
2647
  };
2110
- type GetCurrentUserError = GetCurrentUserErrors[keyof GetCurrentUserErrors];
2111
- type GetCurrentUserResponses = {
2648
+ type GetPortfolioError = GetPortfolioErrors[keyof GetPortfolioErrors];
2649
+ type GetPortfolioResponses = {
2112
2650
  /**
2113
2651
  * Successful response
2114
2652
  */
2115
- 200: UserEnvelope;
2653
+ 200: PortfolioSummaryEnvelope;
2116
2654
  };
2117
- type GetCurrentUserResponse = GetCurrentUserResponses[keyof GetCurrentUserResponses];
2118
- type ListInvestmentsData = {
2655
+ type GetPortfolioResponse = GetPortfolioResponses[keyof GetPortfolioResponses];
2656
+ type ListPortfolioPositionsData = {
2119
2657
  body?: never;
2120
2658
  path?: never;
2121
2659
  query?: {
@@ -2126,10 +2664,26 @@ type ListInvestmentsData = {
2126
2664
  *
2127
2665
  */
2128
2666
  cursor?: number;
2667
+ /**
2668
+ * Page size, 1-100. Defaults to 25.
2669
+ */
2670
+ per_page?: number;
2671
+ /**
2672
+ * Filter positions by status.
2673
+ */
2674
+ status?: "active" | "exited" | "sold" | "failed";
2675
+ /**
2676
+ * Filter to a single company by its id (`co_...`). Unknown ids return 404.
2677
+ */
2678
+ company?: string;
2129
2679
  };
2130
- url: "/investments";
2680
+ url: "/portfolio/positions";
2131
2681
  };
2132
- type ListInvestmentsErrors = {
2682
+ type ListPortfolioPositionsErrors = {
2683
+ /**
2684
+ * Invalid filter value (unknown status or malformed cursor)
2685
+ */
2686
+ 400: Error$1;
2133
2687
  /**
2134
2688
  * Authentication required or token is invalid/expired. This error occurs when:
2135
2689
  * - No Authorization header is provided
@@ -2141,6 +2695,21 @@ type ListInvestmentsErrors = {
2141
2695
  *
2142
2696
  */
2143
2697
  401: Error$1;
2698
+ /**
2699
+ * The authenticated user does not have permission to access this resource.
2700
+ * This typically means:
2701
+ * - The user is authenticated but lacks the required OAuth scope
2702
+ * - The resource belongs to a different user
2703
+ * - The user's role doesn't allow this operation
2704
+ *
2705
+ * Check that your OAuth token includes the necessary scopes for this endpoint.
2706
+ *
2707
+ */
2708
+ 403: Error$1;
2709
+ /**
2710
+ * Filtered company not found
2711
+ */
2712
+ 404: Error$1;
2144
2713
  /**
2145
2714
  * Too many requests in a short time period. The API enforces rate limits to ensure
2146
2715
  * fair usage and system stability. When you exceed the limit, you'll receive this
@@ -2152,14 +2721,14 @@ type ListInvestmentsErrors = {
2152
2721
  */
2153
2722
  429: Error$1;
2154
2723
  };
2155
- type ListInvestmentsError = ListInvestmentsErrors[keyof ListInvestmentsErrors];
2156
- type ListInvestmentsResponses = {
2724
+ type ListPortfolioPositionsError = ListPortfolioPositionsErrors[keyof ListPortfolioPositionsErrors];
2725
+ type ListPortfolioPositionsResponses = {
2157
2726
  /**
2158
2727
  * Successful response
2159
2728
  */
2160
- 200: InvestmentListEnvelope;
2729
+ 200: PortfolioPositionListEnvelope;
2161
2730
  };
2162
- type ListInvestmentsResponse = ListInvestmentsResponses[keyof ListInvestmentsResponses];
2731
+ type ListPortfolioPositionsResponse = ListPortfolioPositionsResponses[keyof ListPortfolioPositionsResponses];
2163
2732
  type ListCampaignsData = {
2164
2733
  body?: never;
2165
2734
  path?: never;
@@ -2266,9 +2835,9 @@ type GetSyndicateData = {
2266
2835
  body?: never;
2267
2836
  path: {
2268
2837
  /**
2269
- * The syndicate ID
2838
+ * The syndicate's id (`syn_...`).
2270
2839
  */
2271
- syndicate_id: number;
2840
+ syndicate_id: string;
2272
2841
  };
2273
2842
  query?: never;
2274
2843
  url: "/syndicates/{syndicate_id}";
@@ -2319,9 +2888,9 @@ type UpdateSyndicateData = {
2319
2888
  };
2320
2889
  path: {
2321
2890
  /**
2322
- * The syndicate ID
2891
+ * The syndicate's id (`syn_...`).
2323
2892
  */
2324
- syndicate_id: number;
2893
+ syndicate_id: string;
2325
2894
  };
2326
2895
  query?: never;
2327
2896
  url: "/syndicates/{syndicate_id}";
@@ -2366,9 +2935,9 @@ type ListSyndicateMembersData = {
2366
2935
  body?: never;
2367
2936
  path: {
2368
2937
  /**
2369
- * The syndicate ID
2938
+ * The syndicate's id (`syn_...`).
2370
2939
  */
2371
- syndicate_id: number;
2940
+ syndicate_id: string;
2372
2941
  };
2373
2942
  query?: {
2374
2943
  /**
@@ -2448,9 +3017,9 @@ type InviteSyndicateMemberData = {
2448
3017
  };
2449
3018
  path: {
2450
3019
  /**
2451
- * The syndicate ID
3020
+ * The syndicate's id (`syn_...`).
2452
3021
  */
2453
- syndicate_id: number;
3022
+ syndicate_id: string;
2454
3023
  };
2455
3024
  query?: never;
2456
3025
  url: "/syndicates/{syndicate_id}/members/invite";
@@ -2495,9 +3064,9 @@ type RemoveSyndicateMemberData = {
2495
3064
  body?: never;
2496
3065
  path: {
2497
3066
  /**
2498
- * The syndicate ID
3067
+ * The syndicate's id (`syn_...`).
2499
3068
  */
2500
- syndicate_id: number;
3069
+ syndicate_id: string;
2501
3070
  /**
2502
3071
  * The member ID
2503
3072
  */
@@ -2522,9 +3091,9 @@ type UpdateSyndicateMemberData = {
2522
3091
  };
2523
3092
  path: {
2524
3093
  /**
2525
- * The syndicate ID
3094
+ * The syndicate's id (`syn_...`).
2526
3095
  */
2527
- syndicate_id: number;
3096
+ syndicate_id: string;
2528
3097
  /**
2529
3098
  * The member ID
2530
3099
  */
@@ -2569,9 +3138,9 @@ type ApproveSyndicateMemberData = {
2569
3138
  body?: never;
2570
3139
  path: {
2571
3140
  /**
2572
- * The syndicate ID
3141
+ * The syndicate's id (`syn_...`).
2573
3142
  */
2574
- syndicate_id: number;
3143
+ syndicate_id: string;
2575
3144
  /**
2576
3145
  * The member ID
2577
3146
  */
@@ -2616,9 +3185,9 @@ type HideSyndicateMemberData = {
2616
3185
  body?: never;
2617
3186
  path: {
2618
3187
  /**
2619
- * The syndicate ID
3188
+ * The syndicate's id (`syn_...`).
2620
3189
  */
2621
- syndicate_id: number;
3190
+ syndicate_id: string;
2622
3191
  /**
2623
3192
  * The member ID
2624
3193
  */
@@ -2663,9 +3232,9 @@ type PromoteSyndicateMemberData = {
2663
3232
  body?: never;
2664
3233
  path: {
2665
3234
  /**
2666
- * The syndicate ID
3235
+ * The syndicate's id (`syn_...`).
2667
3236
  */
2668
- syndicate_id: number;
3237
+ syndicate_id: string;
2669
3238
  /**
2670
3239
  * The member ID
2671
3240
  */
@@ -2710,9 +3279,9 @@ type DemoteSyndicateMemberData = {
2710
3279
  body?: never;
2711
3280
  path: {
2712
3281
  /**
2713
- * The syndicate ID
3282
+ * The syndicate's id (`syn_...`).
2714
3283
  */
2715
- syndicate_id: number;
3284
+ syndicate_id: string;
2716
3285
  /**
2717
3286
  * The member ID
2718
3287
  */
@@ -2757,9 +3326,9 @@ type RestoreSyndicateMemberData = {
2757
3326
  body?: never;
2758
3327
  path: {
2759
3328
  /**
2760
- * The syndicate ID
3329
+ * The syndicate's id (`syn_...`).
2761
3330
  */
2762
- syndicate_id: number;
3331
+ syndicate_id: string;
2763
3332
  /**
2764
3333
  * The member ID
2765
3334
  */
@@ -2804,9 +3373,9 @@ type ResendSyndicateInviteData = {
2804
3373
  body?: never;
2805
3374
  path: {
2806
3375
  /**
2807
- * The syndicate ID
3376
+ * The syndicate's id (`syn_...`).
2808
3377
  */
2809
- syndicate_id: number;
3378
+ syndicate_id: string;
2810
3379
  /**
2811
3380
  * The member ID
2812
3381
  */
@@ -2852,9 +3421,9 @@ type ReorderSyndicateMembersData = {
2852
3421
  };
2853
3422
  path: {
2854
3423
  /**
2855
- * The syndicate ID
3424
+ * The syndicate's id (`syn_...`).
2856
3425
  */
2857
- syndicate_id: number;
3426
+ syndicate_id: string;
2858
3427
  };
2859
3428
  query?: never;
2860
3429
  url: "/syndicates/{syndicate_id}/members/reorder";
@@ -2894,9 +3463,9 @@ type ExportSyndicateMembersCsvData = {
2894
3463
  body?: never;
2895
3464
  path: {
2896
3465
  /**
2897
- * The syndicate ID
3466
+ * The syndicate's id (`syn_...`).
2898
3467
  */
2899
- syndicate_id: number;
3468
+ syndicate_id: string;
2900
3469
  };
2901
3470
  query?: never;
2902
3471
  url: "/syndicates/{syndicate_id}/members/export_csv";
@@ -2937,9 +3506,9 @@ type ListSyndicateDealsData = {
2937
3506
  body?: never;
2938
3507
  path: {
2939
3508
  /**
2940
- * The syndicate ID
3509
+ * The syndicate's id (`syn_...`).
2941
3510
  */
2942
- syndicate_id: number;
3511
+ syndicate_id: string;
2943
3512
  };
2944
3513
  query?: never;
2945
3514
  url: "/syndicates/{syndicate_id}/deals";
@@ -2980,9 +3549,9 @@ type GetSyndicateDealData = {
2980
3549
  body?: never;
2981
3550
  path: {
2982
3551
  /**
2983
- * The syndicate ID
3552
+ * The syndicate's id (`syn_...`).
2984
3553
  */
2985
- syndicate_id: number;
3554
+ syndicate_id: string;
2986
3555
  /**
2987
3556
  * The deal (fundraise) ID
2988
3557
  */
@@ -3031,9 +3600,9 @@ type ListSyndicateDealInvestorsData = {
3031
3600
  body?: never;
3032
3601
  path: {
3033
3602
  /**
3034
- * The syndicate ID
3603
+ * The syndicate's id (`syn_...`).
3035
3604
  */
3036
- syndicate_id: number;
3605
+ syndicate_id: string;
3037
3606
  /**
3038
3607
  * The deal (fundraise) ID
3039
3608
  */
@@ -3091,9 +3660,9 @@ type ListSyndicateMemberInvestmentsData = {
3091
3660
  body?: never;
3092
3661
  path: {
3093
3662
  /**
3094
- * The syndicate ID
3663
+ * The syndicate's id (`syn_...`).
3095
3664
  */
3096
- syndicate_id: number;
3665
+ syndicate_id: string;
3097
3666
  /**
3098
3667
  * The member ID
3099
3668
  */
@@ -3142,9 +3711,9 @@ type GetSyndicateStatisticsData = {
3142
3711
  body?: never;
3143
3712
  path: {
3144
3713
  /**
3145
- * The syndicate ID
3714
+ * The syndicate's id (`syn_...`).
3146
3715
  */
3147
- syndicate_id: number;
3716
+ syndicate_id: string;
3148
3717
  };
3149
3718
  query?: never;
3150
3719
  url: "/syndicates/{syndicate_id}/statistics";
@@ -3185,13 +3754,140 @@ type GetSyndicateStatisticsResponses = {
3185
3754
  200: SyndicateStatisticsEnvelope;
3186
3755
  };
3187
3756
  type GetSyndicateStatisticsResponse = GetSyndicateStatisticsResponses[keyof GetSyndicateStatisticsResponses];
3757
+ type GetSyndicatePortfolioData = {
3758
+ body?: never;
3759
+ path: {
3760
+ /**
3761
+ * The syndicate's id (`syn_...`).
3762
+ */
3763
+ syndicate_id: string;
3764
+ };
3765
+ query?: {
3766
+ /**
3767
+ * Total only deals with this status.
3768
+ */
3769
+ status?: "active" | "exited" | "sold" | "failed";
3770
+ /**
3771
+ * Total only positions in this company, by its id (`co_...`). Unknown ids return 404.
3772
+ */
3773
+ company?: string;
3774
+ };
3775
+ url: "/syndicates/{syndicate_id}/portfolio";
3776
+ };
3777
+ type GetSyndicatePortfolioErrors = {
3778
+ /**
3779
+ * Authentication required or token is invalid/expired. This error occurs when:
3780
+ * - No Authorization header is provided
3781
+ * - The access token is invalid or malformed
3782
+ * - The access token has expired
3783
+ * - The access token has been revoked
3784
+ *
3785
+ * To resolve: Obtain a new access token using the OAuth 2.0 flow.
3786
+ *
3787
+ */
3788
+ 401: Error$1;
3789
+ /**
3790
+ * The authenticated user does not have permission to access this resource.
3791
+ * This typically means:
3792
+ * - The user is authenticated but lacks the required OAuth scope
3793
+ * - The resource belongs to a different user
3794
+ * - The user's role doesn't allow this operation
3795
+ *
3796
+ * Check that your OAuth token includes the necessary scopes for this endpoint.
3797
+ *
3798
+ */
3799
+ 403: Error$1;
3800
+ /**
3801
+ * Syndicate not found
3802
+ */
3803
+ 404: Error$1;
3804
+ };
3805
+ type GetSyndicatePortfolioError = GetSyndicatePortfolioErrors[keyof GetSyndicatePortfolioErrors];
3806
+ type GetSyndicatePortfolioResponses = {
3807
+ /**
3808
+ * Successful response
3809
+ */
3810
+ 200: SyndicatePortfolioSummaryEnvelope;
3811
+ };
3812
+ type GetSyndicatePortfolioResponse = GetSyndicatePortfolioResponses[keyof GetSyndicatePortfolioResponses];
3813
+ type ListSyndicatePortfolioPositionsData = {
3814
+ body?: never;
3815
+ path: {
3816
+ /**
3817
+ * The syndicate's id (`syn_...`).
3818
+ */
3819
+ syndicate_id: string;
3820
+ };
3821
+ query?: {
3822
+ /**
3823
+ * Cursor-based pagination token. Use the `next_cursor` value from the previous response's
3824
+ * `meta` object to retrieve the next page of results. Omit this parameter to retrieve the
3825
+ * first page.
3826
+ *
3827
+ */
3828
+ cursor?: number;
3829
+ /**
3830
+ * Page size, 1-100. Defaults to 25.
3831
+ */
3832
+ per_page?: number;
3833
+ /**
3834
+ * Filter positions by status.
3835
+ */
3836
+ status?: "active" | "exited" | "sold" | "failed";
3837
+ /**
3838
+ * Filter to a single company by its id (`co_...`). Unknown ids return 404.
3839
+ */
3840
+ company?: string;
3841
+ };
3842
+ url: "/syndicates/{syndicate_id}/portfolio/positions";
3843
+ };
3844
+ type ListSyndicatePortfolioPositionsErrors = {
3845
+ /**
3846
+ * Invalid filter value (unknown status or malformed cursor)
3847
+ */
3848
+ 400: Error$1;
3849
+ /**
3850
+ * Authentication required or token is invalid/expired. This error occurs when:
3851
+ * - No Authorization header is provided
3852
+ * - The access token is invalid or malformed
3853
+ * - The access token has expired
3854
+ * - The access token has been revoked
3855
+ *
3856
+ * To resolve: Obtain a new access token using the OAuth 2.0 flow.
3857
+ *
3858
+ */
3859
+ 401: Error$1;
3860
+ /**
3861
+ * The authenticated user does not have permission to access this resource.
3862
+ * This typically means:
3863
+ * - The user is authenticated but lacks the required OAuth scope
3864
+ * - The resource belongs to a different user
3865
+ * - The user's role doesn't allow this operation
3866
+ *
3867
+ * Check that your OAuth token includes the necessary scopes for this endpoint.
3868
+ *
3869
+ */
3870
+ 403: Error$1;
3871
+ /**
3872
+ * Syndicate or filtered company not found
3873
+ */
3874
+ 404: Error$1;
3875
+ };
3876
+ type ListSyndicatePortfolioPositionsError = ListSyndicatePortfolioPositionsErrors[keyof ListSyndicatePortfolioPositionsErrors];
3877
+ type ListSyndicatePortfolioPositionsResponses = {
3878
+ /**
3879
+ * Successful response
3880
+ */
3881
+ 200: PortfolioPositionListEnvelope;
3882
+ };
3883
+ type ListSyndicatePortfolioPositionsResponse = ListSyndicatePortfolioPositionsResponses[keyof ListSyndicatePortfolioPositionsResponses];
3188
3884
  type CloseSyndicateDealData = {
3189
3885
  body?: never;
3190
3886
  path: {
3191
3887
  /**
3192
- * The syndicate ID
3888
+ * The syndicate's id (`syn_...`).
3193
3889
  */
3194
- syndicate_id: number;
3890
+ syndicate_id: string;
3195
3891
  /**
3196
3892
  * The deal (fundraise) ID
3197
3893
  */
@@ -3202,18 +3898,51 @@ type CloseSyndicateDealData = {
3202
3898
  };
3203
3899
  type CloseSyndicateDealErrors = {
3204
3900
  /**
3205
- * Use intents for this action
3901
+ * Authentication required or token is invalid/expired. This error occurs when:
3902
+ * - No Authorization header is provided
3903
+ * - The access token is invalid or malformed
3904
+ * - The access token has expired
3905
+ * - The access token has been revoked
3906
+ *
3907
+ * To resolve: Obtain a new access token using the OAuth 2.0 flow.
3908
+ *
3909
+ */
3910
+ 401: Error$1;
3911
+ /**
3912
+ * The authenticated user does not have permission to access this resource.
3913
+ * This typically means:
3914
+ * - The user is authenticated but lacks the required OAuth scope
3915
+ * - The resource belongs to a different user
3916
+ * - The user's role doesn't allow this operation
3917
+ *
3918
+ * Check that your OAuth token includes the necessary scopes for this endpoint.
3919
+ *
3920
+ */
3921
+ 403: Error$1;
3922
+ /**
3923
+ * The deal does not belong to this syndicate, or fundraise_id is missing
3206
3924
  */
3207
3925
  422: Error$1;
3926
+ /**
3927
+ * Too many pending intents for this token (rate limited)
3928
+ */
3929
+ 429: Error$1;
3208
3930
  };
3209
3931
  type CloseSyndicateDealError = CloseSyndicateDealErrors[keyof CloseSyndicateDealErrors];
3932
+ type CloseSyndicateDealResponses = {
3933
+ /**
3934
+ * Close intent proposed
3935
+ */
3936
+ 200: SyndicateDealCloseIntentEnvelope;
3937
+ };
3938
+ type CloseSyndicateDealResponse = CloseSyndicateDealResponses[keyof CloseSyndicateDealResponses];
3210
3939
  type FinalizeSyndicateDealData = {
3211
3940
  body?: never;
3212
3941
  path: {
3213
3942
  /**
3214
- * The syndicate ID
3943
+ * The syndicate's id (`syn_...`).
3215
3944
  */
3216
- syndicate_id: number;
3945
+ syndicate_id: string;
3217
3946
  /**
3218
3947
  * The deal (fundraise) ID
3219
3948
  */
@@ -3224,18 +3953,54 @@ type FinalizeSyndicateDealData = {
3224
3953
  };
3225
3954
  type FinalizeSyndicateDealErrors = {
3226
3955
  /**
3227
- * Use intents for this action
3956
+ * Authentication required or token is invalid/expired. This error occurs when:
3957
+ * - No Authorization header is provided
3958
+ * - The access token is invalid or malformed
3959
+ * - The access token has expired
3960
+ * - The access token has been revoked
3961
+ *
3962
+ * To resolve: Obtain a new access token using the OAuth 2.0 flow.
3963
+ *
3964
+ */
3965
+ 401: Error$1;
3966
+ /**
3967
+ * The authenticated user does not have permission to access this resource.
3968
+ * This typically means:
3969
+ * - The user is authenticated but lacks the required OAuth scope
3970
+ * - The resource belongs to a different user
3971
+ * - The user's role doesn't allow this operation
3972
+ *
3973
+ * Check that your OAuth token includes the necessary scopes for this endpoint.
3974
+ *
3975
+ */
3976
+ 403: Error$1;
3977
+ /**
3978
+ * The deal does not belong to this syndicate, or fundraise_id is missing
3228
3979
  */
3229
3980
  422: Error$1;
3981
+ /**
3982
+ * Too many pending intents for this token (rate limited)
3983
+ */
3984
+ 429: Error$1;
3230
3985
  };
3231
3986
  type FinalizeSyndicateDealError = FinalizeSyndicateDealErrors[keyof FinalizeSyndicateDealErrors];
3987
+ type FinalizeSyndicateDealResponses = {
3988
+ /**
3989
+ * Finalize intent proposed
3990
+ */
3991
+ 200: SyndicateDealFinalizeIntentEnvelope;
3992
+ };
3993
+ type FinalizeSyndicateDealResponse = FinalizeSyndicateDealResponses[keyof FinalizeSyndicateDealResponses];
3232
3994
  type ListIntentsData = {
3233
3995
  body?: never;
3234
3996
  path?: never;
3235
3997
  query?: {
3236
3998
  status?: "pending" | "approved" | "executed" | "expired" | "rejected" | "failed";
3237
3999
  resource_type?: string;
3238
- resource_id?: number;
4000
+ /**
4001
+ * For Club resources, the syndicate's id (`syn_...`).
4002
+ */
4003
+ resource_id?: string;
3239
4004
  cursor?: string;
3240
4005
  limit?: number;
3241
4006
  };
@@ -3272,7 +4037,10 @@ type CreateIntentData = {
3272
4037
  * The model class name of the resource
3273
4038
  */
3274
4039
  resource_type: string;
3275
- resource_id: number;
4040
+ /**
4041
+ * The syndicate's id (`syn_...`).
4042
+ */
4043
+ resource_id: string;
3276
4044
  /**
3277
4045
  * Action-specific parameters
3278
4046
  */
@@ -3385,9 +4153,11 @@ type ListActivityData = {
3385
4153
  */
3386
4154
  resource_type?: string;
3387
4155
  /**
3388
- * Filter by specific resource ID. Must be used with resource_type.
4156
+ * Filter by specific resource ID. Must be used with resource_type. For
4157
+ * Club resources, pass the syndicate's id (`syn_...`).
4158
+ *
3389
4159
  */
3390
- resource_id?: number;
4160
+ resource_id?: string;
3391
4161
  status?: "success" | "failure" | "denied";
3392
4162
  since?: string;
3393
4163
  until?: string;
@@ -4230,8 +5000,8 @@ type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean
4230
5000
  *
4231
5001
  * Returns the offerings shown on wefunder.com/explore — the curated set of companies that
4232
5002
  * meet Wefunder's discoverability bar (a soft-confirmed traction threshold plus approval),
4233
- * **one offering per company**. An "offering" is a fundraise, addressed by its `ofr_`
4234
- * external id.
5003
+ * **one offering per company**. An "offering" is a fundraise, addressed by its id
5004
+ * (`ofr_...`).
4235
5005
  *
4236
5006
  * This is a public, read-only endpoint backed by the `read:public` scope. It is reachable
4237
5007
  * with either a server-side (client_credentials) token or a user access token carrying
@@ -4250,7 +5020,7 @@ declare const listOfferings: <ThrowOnError extends boolean = false>(options?: Op
4250
5020
  /**
4251
5021
  * Get a public offering
4252
5022
  *
4253
- * Retrieves a single public offering by its `ofr_` external id.
5023
+ * Retrieves a single public offering by its id (`ofr_...`).
4254
5024
  *
4255
5025
  * A valid id for a non-public offering (e.g. a private Reg D 506(b) round) returns `404` —
4256
5026
  * having an id does not make an offering publicly resolvable.
@@ -4289,6 +5059,43 @@ declare const getCurrentUser: <ThrowOnError extends boolean = false>(options?: O
4289
5059
  *
4290
5060
  */
4291
5061
  declare const listInvestments: <ThrowOnError extends boolean = false>(options?: Options<ListInvestmentsData, ThrowOnError>) => RequestResult<ListInvestmentsResponses, ListInvestmentsErrors, ThrowOnError>;
5062
+ /**
5063
+ * Get portfolio summary
5064
+ *
5065
+ * Returns totals across the authenticated investor's portfolio: cost basis,
5066
+ * current value, realized and unrealized gains, and per-status position counts.
5067
+ * Accepts the same `status` and `company` filters as `GET /portfolio/positions`
5068
+ * to total a slice of the portfolio, such as only exited positions.
5069
+ *
5070
+ * Requires a user-authorized token. App-only (client credentials) tokens
5071
+ * receive 403.
5072
+ *
5073
+ * Portfolio values are recalculated periodically rather than on each request,
5074
+ * so recent investments and valuation changes can take a few minutes to appear.
5075
+ * `as_of` is the timestamp of the oldest calculation included in the response.
5076
+ *
5077
+ * Monetary values are **integer cents**; per-share prices and return multiples
5078
+ * are **decimal strings**.
5079
+ *
5080
+ */
5081
+ declare const getPortfolio: <ThrowOnError extends boolean = false>(options?: Options<GetPortfolioData, ThrowOnError>) => RequestResult<GetPortfolioResponses, GetPortfolioErrors, ThrowOnError>;
5082
+ /**
5083
+ * List portfolio positions
5084
+ *
5085
+ * Returns the authenticated investor's positions, one per offering
5086
+ * (fundraise), newest first. Position totals cover everything the investor
5087
+ * holds in that offering; `securities` breaks the total down by security
5088
+ * offering and legal owner, so early bird tiers and personally-held vs
5089
+ * entity-held stakes each appear separately. Fund and SPV positions identify
5090
+ * the companies the vehicle invested in under `holdings`.
5091
+ *
5092
+ * To compute an average cost per share, divide `cost_basis_cents` by
5093
+ * `shares_held`.
5094
+ *
5095
+ * Requires a user-authorized token, like `GET /portfolio`.
5096
+ *
5097
+ */
5098
+ declare const listPortfolioPositions: <ThrowOnError extends boolean = false>(options?: Options<ListPortfolioPositionsData, ThrowOnError>) => RequestResult<ListPortfolioPositionsResponses, ListPortfolioPositionsErrors, ThrowOnError>;
4292
5099
  /**
4293
5100
  * List founder campaigns
4294
5101
  *
@@ -4455,23 +5262,64 @@ declare const listSyndicateMemberInvestments: <ThrowOnError extends boolean = fa
4455
5262
  */
4456
5263
  declare const getSyndicateStatistics: <ThrowOnError extends boolean = false>(options: Options<GetSyndicateStatisticsData, ThrowOnError>) => RequestResult<GetSyndicateStatisticsResponses, GetSyndicateStatisticsErrors, ThrowOnError>;
4457
5264
  /**
4458
- * Close deal (requires intent)
5265
+ * Get syndicate portfolio summary
5266
+ *
5267
+ * Returns totals across the syndicate's portfolio: cost basis, current value,
5268
+ * gains, per-status deal counts, and the number of distinct investors.
5269
+ * Accepts the same `status` and `company` filters as the positions endpoint
5270
+ * to total a slice of the portfolio, such as only exited deals.
5271
+ *
5272
+ * The summary covers the syndicate's funded deals, summed across everyone
5273
+ * holding their securities (not just current members), as aggregate figures
5274
+ * only. Member-level data is available on the members endpoints.
5275
+ *
5276
+ * Portfolio values are recalculated periodically rather than on each request,
5277
+ * so recent investments and valuation changes can take a few minutes to appear.
5278
+ * `as_of` is the timestamp of the oldest calculation included in the response.
5279
+ *
5280
+ * Monetary values are **integer cents**; per-share prices and return multiples
5281
+ * are **decimal strings**.
5282
+ *
5283
+ */
5284
+ declare const getSyndicatePortfolio: <ThrowOnError extends boolean = false>(options: Options<GetSyndicatePortfolioData, ThrowOnError>) => RequestResult<GetSyndicatePortfolioResponses, GetSyndicatePortfolioErrors, ThrowOnError>;
5285
+ /**
5286
+ * List syndicate portfolio positions
5287
+ *
5288
+ * Returns the syndicate's portfolio one deal at a time, newest first. Each
5289
+ * position is one fundraise ("offering"), aggregated across everyone holding
5290
+ * its securities, with `investor_count` at both the position and security
5291
+ * level.
5292
+ *
5293
+ * `securities` breaks each position down by security offering (for example,
5294
+ * an early bird tier vs the regular terms) — most deals have a single entry.
5295
+ * Fund and SPV deals identify the companies the vehicle invested in under
5296
+ * `holdings`; some older vehicles have no recorded holdings and return an
5297
+ * empty array.
5298
+ *
5299
+ */
5300
+ declare const listSyndicatePortfolioPositions: <ThrowOnError extends boolean = false>(options: Options<ListSyndicatePortfolioPositionsData, ThrowOnError>) => RequestResult<ListSyndicatePortfolioPositionsResponses, ListSyndicatePortfolioPositionsErrors, ThrowOnError>;
5301
+ /**
5302
+ * Close deal
4459
5303
  *
4460
5304
  * Closing a deal is irreversible and requires human approval through the Intent system.
4461
- * This endpoint always returns 422 with a `use_intents` error directing you to
4462
- * `POST /v2/intents` with action `syndicates.close_deal`.
5305
+ * This endpoint server-mints a pending `syndicates.close_deal` intent and returns the deal
5306
+ * under `data` plus the intent's `review_url` under `meta.close_deal_intent`. The deal is
5307
+ * not transitioned until a permitted human approves the intent in the Wefunder UI.
5308
+ * Idempotent: a repeated call returns the same pending intent rather than minting a duplicate.
4463
5309
  *
4464
5310
  */
4465
- declare const closeSyndicateDeal: <ThrowOnError extends boolean = false>(options: Options<CloseSyndicateDealData, ThrowOnError>) => RequestResult<unknown, CloseSyndicateDealErrors, ThrowOnError>;
5311
+ declare const closeSyndicateDeal: <ThrowOnError extends boolean = false>(options: Options<CloseSyndicateDealData, ThrowOnError>) => RequestResult<CloseSyndicateDealResponses, CloseSyndicateDealErrors, ThrowOnError>;
4466
5312
  /**
4467
- * Finalize deal (requires intent)
5313
+ * Finalize deal
4468
5314
  *
4469
- * Finalizing a deal triggers disbursement and is irreversible. It requires human approval
4470
- * through the Intent system. This endpoint always returns 422 with a `use_intents` error
4471
- * directing you to `POST /v2/intents` with action `syndicates.finalize_deal`.
5315
+ * Finalizing a deal is irreversible and requires human approval through the Intent system.
5316
+ * This endpoint server-mints a pending `syndicates.finalize_deal` intent and returns the
5317
+ * deal under `data` plus the intent's `review_url` under `meta.finalize_deal_intent`. The
5318
+ * finalize runs only when a permitted human approves the intent in the Wefunder UI.
5319
+ * Idempotent: a repeated call returns the same pending intent rather than minting a duplicate.
4472
5320
  *
4473
5321
  */
4474
- declare const finalizeSyndicateDeal: <ThrowOnError extends boolean = false>(options: Options<FinalizeSyndicateDealData, ThrowOnError>) => RequestResult<unknown, FinalizeSyndicateDealErrors, ThrowOnError>;
5322
+ declare const finalizeSyndicateDeal: <ThrowOnError extends boolean = false>(options: Options<FinalizeSyndicateDealData, ThrowOnError>) => RequestResult<FinalizeSyndicateDealResponses, FinalizeSyndicateDealErrors, ThrowOnError>;
4475
5323
  /**
4476
5324
  * List intents
4477
5325
  *
@@ -4721,8 +5569,10 @@ declare const ops_getAttributionStats: typeof getAttributionStats;
4721
5569
  declare const ops_getCurrentUser: typeof getCurrentUser;
4722
5570
  declare const ops_getIntent: typeof getIntent;
4723
5571
  declare const ops_getOffering: typeof getOffering;
5572
+ declare const ops_getPortfolio: typeof getPortfolio;
4724
5573
  declare const ops_getSyndicate: typeof getSyndicate;
4725
5574
  declare const ops_getSyndicateDeal: typeof getSyndicateDeal;
5575
+ declare const ops_getSyndicatePortfolio: typeof getSyndicatePortfolio;
4726
5576
  declare const ops_getSyndicateStatistics: typeof getSyndicateStatistics;
4727
5577
  declare const ops_getWebhookSubscription: typeof getWebhookSubscription;
4728
5578
  declare const ops_hideSyndicateMember: typeof hideSyndicateMember;
@@ -4736,10 +5586,12 @@ declare const ops_listIntents: typeof listIntents;
4736
5586
  declare const ops_listInvestments: typeof listInvestments;
4737
5587
  declare const ops_listOfferings: typeof listOfferings;
4738
5588
  declare const ops_listPartnerInvites: typeof listPartnerInvites;
5589
+ declare const ops_listPortfolioPositions: typeof listPortfolioPositions;
4739
5590
  declare const ops_listSyndicateDealInvestors: typeof listSyndicateDealInvestors;
4740
5591
  declare const ops_listSyndicateDeals: typeof listSyndicateDeals;
4741
5592
  declare const ops_listSyndicateMemberInvestments: typeof listSyndicateMemberInvestments;
4742
5593
  declare const ops_listSyndicateMembers: typeof listSyndicateMembers;
5594
+ declare const ops_listSyndicatePortfolioPositions: typeof listSyndicatePortfolioPositions;
4743
5595
  declare const ops_listSyndicates: typeof listSyndicates;
4744
5596
  declare const ops_listWebhookSubscriptions: typeof listWebhookSubscriptions;
4745
5597
  declare const ops_promoteSyndicateMember: typeof promoteSyndicateMember;
@@ -4756,11 +5608,23 @@ declare const ops_testWebhookSubscription: typeof testWebhookSubscription;
4756
5608
  declare const ops_updateSyndicate: typeof updateSyndicate;
4757
5609
  declare const ops_updateSyndicateMember: typeof updateSyndicateMember;
4758
5610
  declare namespace ops {
4759
- export { type ops_Options as Options, ops_approveSyndicateMember as approveSyndicateMember, ops_closeSyndicateDeal as closeSyndicateDeal, ops_createIntent as createIntent, ops_createPartnerInvite as createPartnerInvite, ops_createWebhookSubscription as createWebhookSubscription, ops_deleteWebhookSubscription as deleteWebhookSubscription, ops_demoteSyndicateMember as demoteSyndicateMember, ops_exportSyndicateMembersCsv as exportSyndicateMembersCsv, ops_finalizeSyndicateDeal as finalizeSyndicateDeal, ops_getAttributionMe as getAttributionMe, ops_getAttributionStats as getAttributionStats, ops_getCurrentUser as getCurrentUser, ops_getIntent as getIntent, ops_getOffering as getOffering, ops_getSyndicate as getSyndicate, ops_getSyndicateDeal as getSyndicateDeal, ops_getSyndicateStatistics as getSyndicateStatistics, ops_getWebhookSubscription as getWebhookSubscription, ops_hideSyndicateMember as hideSyndicateMember, ops_inviteSyndicateMember as inviteSyndicateMember, ops_listActivity as listActivity, ops_listAttributedInvestments as listAttributedInvestments, ops_listAttributionCampaigns as listAttributionCampaigns, ops_listCampaigns as listCampaigns, ops_listConnectedApps as listConnectedApps, ops_listIntents as listIntents, ops_listInvestments as listInvestments, ops_listOfferings as listOfferings, ops_listPartnerInvites as listPartnerInvites, ops_listSyndicateDealInvestors as listSyndicateDealInvestors, ops_listSyndicateDeals as listSyndicateDeals, ops_listSyndicateMemberInvestments as listSyndicateMemberInvestments, ops_listSyndicateMembers as listSyndicateMembers, ops_listSyndicates as listSyndicates, ops_listWebhookSubscriptions as listWebhookSubscriptions, ops_promoteSyndicateMember as promoteSyndicateMember, ops_reactivateWebhookSubscription as reactivateWebhookSubscription, ops_regenerateWebhookSecret as regenerateWebhookSecret, ops_registerAsPartner as registerAsPartner, ops_removeSyndicateMember as removeSyndicateMember, ops_reorderSyndicateMembers as reorderSyndicateMembers, ops_resendSyndicateInvite as resendSyndicateInvite, ops_restoreSyndicateMember as restoreSyndicateMember, ops_revokeConnectedApp as revokeConnectedApp, ops_revokePartnerInvite as revokePartnerInvite, ops_testWebhookSubscription as testWebhookSubscription, ops_updateSyndicate as updateSyndicate, ops_updateSyndicateMember as updateSyndicateMember };
5611
+ export { type ops_Options as Options, ops_approveSyndicateMember as approveSyndicateMember, ops_closeSyndicateDeal as closeSyndicateDeal, ops_createIntent as createIntent, ops_createPartnerInvite as createPartnerInvite, ops_createWebhookSubscription as createWebhookSubscription, ops_deleteWebhookSubscription as deleteWebhookSubscription, ops_demoteSyndicateMember as demoteSyndicateMember, ops_exportSyndicateMembersCsv as exportSyndicateMembersCsv, ops_finalizeSyndicateDeal as finalizeSyndicateDeal, ops_getAttributionMe as getAttributionMe, ops_getAttributionStats as getAttributionStats, ops_getCurrentUser as getCurrentUser, ops_getIntent as getIntent, ops_getOffering as getOffering, ops_getPortfolio as getPortfolio, ops_getSyndicate as getSyndicate, ops_getSyndicateDeal as getSyndicateDeal, ops_getSyndicatePortfolio as getSyndicatePortfolio, ops_getSyndicateStatistics as getSyndicateStatistics, ops_getWebhookSubscription as getWebhookSubscription, ops_hideSyndicateMember as hideSyndicateMember, ops_inviteSyndicateMember as inviteSyndicateMember, ops_listActivity as listActivity, ops_listAttributedInvestments as listAttributedInvestments, ops_listAttributionCampaigns as listAttributionCampaigns, ops_listCampaigns as listCampaigns, ops_listConnectedApps as listConnectedApps, ops_listIntents as listIntents, ops_listInvestments as listInvestments, ops_listOfferings as listOfferings, ops_listPartnerInvites as listPartnerInvites, ops_listPortfolioPositions as listPortfolioPositions, ops_listSyndicateDealInvestors as listSyndicateDealInvestors, ops_listSyndicateDeals as listSyndicateDeals, ops_listSyndicateMemberInvestments as listSyndicateMemberInvestments, ops_listSyndicateMembers as listSyndicateMembers, ops_listSyndicatePortfolioPositions as listSyndicatePortfolioPositions, ops_listSyndicates as listSyndicates, ops_listWebhookSubscriptions as listWebhookSubscriptions, ops_promoteSyndicateMember as promoteSyndicateMember, ops_reactivateWebhookSubscription as reactivateWebhookSubscription, ops_regenerateWebhookSecret as regenerateWebhookSecret, ops_registerAsPartner as registerAsPartner, ops_removeSyndicateMember as removeSyndicateMember, ops_reorderSyndicateMembers as reorderSyndicateMembers, ops_resendSyndicateInvite as resendSyndicateInvite, ops_restoreSyndicateMember as restoreSyndicateMember, ops_revokeConnectedApp as revokeConnectedApp, ops_revokePartnerInvite as revokePartnerInvite, ops_testWebhookSubscription as testWebhookSubscription, ops_updateSyndicate as updateSyndicate, ops_updateSyndicateMember as updateSyndicateMember };
4760
5612
  }
4761
5613
 
4762
5614
  /** Documented `sort` values for the offerings list, from the generated op. */
4763
5615
  type OfferingSort = NonNullable<ListOfferingsData["query"]>["sort"];
5616
+ /** Documented `status` filter values for the intents list, from the generated op. */
5617
+ type IntentStatus = NonNullable<ListIntentsData["query"]>["status"];
5618
+ /** Portfolio summary filters shared with the positions endpoint. */
5619
+ type PortfolioFilters = NonNullable<GetPortfolioData["query"]>;
5620
+ /** Portfolio status values documented by the API. */
5621
+ type PortfolioStatus = NonNullable<PortfolioFilters["status"]>;
5622
+ /** Filters and pagination controls for portfolio positions. */
5623
+ type PortfolioPositionsQuery = NonNullable<ListPortfolioPositionsData["query"]>;
5624
+ /** Portfolio position filters, excluding the cursor managed by auto-pagination. */
5625
+ type PortfolioPositionsFilters = Omit<PortfolioPositionsQuery, "cursor">;
5626
+ /** The summary resource inside the API's data envelope. */
5627
+ type PortfolioSummary = NonNullable<PortfolioSummaryEnvelope["data"]>;
4764
5628
  declare const DEFAULT_API_BASE_URL = "https://api.wefunder.com";
4765
5629
  declare const DEFAULT_API_VERSION = "2025-01-15";
4766
5630
  type Mode = "live" | "test" | "unknown";
@@ -4847,6 +5711,36 @@ declare class Wefunder {
4847
5711
  all: () => AsyncGenerator<Investment>;
4848
5712
  collect: () => Promise<Investment[]>;
4849
5713
  };
5714
+ portfolio: {
5715
+ get: (query?: PortfolioFilters) => Promise<{
5716
+ type?: string;
5717
+ attributes?: {
5718
+ currency?: string;
5719
+ total_cost_basis_cents?: number;
5720
+ total_current_value_cents?: number;
5721
+ total_unrealized_gain_cents?: number;
5722
+ total_realized_gain_cents?: number;
5723
+ return_multiple?: string | null;
5724
+ position_counts?: {
5725
+ active?: number;
5726
+ exited?: number;
5727
+ sold?: number;
5728
+ failed?: number;
5729
+ };
5730
+ as_of?: string | null;
5731
+ };
5732
+ }>;
5733
+ positions: {
5734
+ list: (query?: {
5735
+ cursor?: number;
5736
+ per_page?: number;
5737
+ status?: "active" | "exited" | "sold" | "failed";
5738
+ company?: string;
5739
+ } | undefined) => Promise<Page<PortfolioPosition>>;
5740
+ all: (query?: PortfolioPositionsFilters) => AsyncGenerator<PortfolioPosition>;
5741
+ collect: (query?: PortfolioPositionsFilters) => Promise<PortfolioPosition[]>;
5742
+ };
5743
+ };
4850
5744
  campaigns: {
4851
5745
  list: (query?: {
4852
5746
  cursor?: Cursor;
@@ -4857,15 +5751,27 @@ declare class Wefunder {
4857
5751
  syndicates: {
4858
5752
  list: (query?: {
4859
5753
  cursor?: Cursor;
5754
+ limit?: number;
4860
5755
  } | undefined) => Promise<Page<Syndicate>>;
4861
- all: () => AsyncGenerator<Syndicate>;
5756
+ all: (query?: {
5757
+ limit?: number;
5758
+ }) => AsyncGenerator<Syndicate>;
4862
5759
  get: (id: number | string) => Promise<Syndicate>;
4863
5760
  };
4864
5761
  intents: {
4865
5762
  list: (query?: {
4866
5763
  cursor?: Cursor;
5764
+ status?: IntentStatus;
5765
+ resource_type?: string;
5766
+ resource_id?: number;
5767
+ limit?: number;
4867
5768
  } | undefined) => Promise<Page<Intent>>;
4868
- all: () => AsyncGenerator<Intent>;
5769
+ all: (query?: {
5770
+ status?: IntentStatus;
5771
+ resource_type?: string;
5772
+ resource_id?: number;
5773
+ limit?: number;
5774
+ }) => AsyncGenerator<Intent>;
4869
5775
  get: (id: number | string) => Promise<Intent>;
4870
5776
  };
4871
5777
  attribution: {
@@ -4936,4 +5842,4 @@ declare function constructEvent<T = unknown>(payload: string, headers: Headers |
4936
5842
  now?: () => number;
4937
5843
  }): ParsedWebhook<T>;
4938
5844
 
4939
- export { type AnonymizedAttribution, type ApproveSyndicateMemberData, type ApproveSyndicateMemberError, type ApproveSyndicateMemberErrors, type ApproveSyndicateMemberResponse, type ApproveSyndicateMemberResponses, type AttributedInvestmentListEnvelope, type AttributionCampaignAccess, type AttributionCampaignSummary, type AttributionCampaignSummaryListEnvelope, type AttributionMe, type AttributionMeEnvelope, type AttributionPartner, type AttributionStats, type AttributionStatsEnvelope, type AttributionUser, type AuditEvent, type AuditEventListEnvelope, type AuthorizationUrlOptions, type Campaign, type CampaignId, type CampaignListEnvelope, type ClientCredentialsOptions, type ClientOptions, type CloseSyndicateDealData, type CloseSyndicateDealError, type CloseSyndicateDealErrors, type ConnectedApp, type ConnectedAppListEnvelope, type ConnectedAppRevocation, type ConnectedAppRevocationEnvelope, type CreateIntentData, type CreateIntentError, type CreateIntentErrors, type CreateIntentResponse, type CreateIntentResponses, type CreatePartnerInviteData, type CreatePartnerInviteError, type CreatePartnerInviteErrors, type CreatePartnerInviteResponse, type CreatePartnerInviteResponses, type CreateWebhookSubscriptionData, type CreateWebhookSubscriptionError, type CreateWebhookSubscriptionErrors, type CreateWebhookSubscriptionResponse, type CreateWebhookSubscriptionResponses, type Cursor, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_AUTHORIZE_BASE_URL, DEFAULT_OAUTH_BASE_URL, DEFAULT_TOKEN_BASE_URL, DELIVERY_ID_HEADER, type DealInvestor, type DealInvestorListEnvelope, type DeleteWebhookSubscriptionData, type DeleteWebhookSubscriptionError, type DeleteWebhookSubscriptionErrors, type DeleteWebhookSubscriptionResponse, type DeleteWebhookSubscriptionResponses, type DemoteSyndicateMemberData, type DemoteSyndicateMemberError, type DemoteSyndicateMemberErrors, type DemoteSyndicateMemberResponse, type DemoteSyndicateMemberResponses, EVENT_HEADER, type EndDate, type Error$1 as Error, type ExchangeCodeOptions, type Exemption, type ExportSyndicateMembersCsvData, type ExportSyndicateMembersCsvError, type ExportSyndicateMembersCsvErrors, type ExportSyndicateMembersCsvResponse, type ExportSyndicateMembersCsvResponses, type FinalizeSyndicateDealData, type FinalizeSyndicateDealError, type FinalizeSyndicateDealErrors, type FullAttribution, type FundraiseId, type GetAttributionMeData, type GetAttributionMeError, type GetAttributionMeErrors, type GetAttributionMeResponse, type GetAttributionMeResponses, type GetAttributionStatsData, type GetAttributionStatsError, type GetAttributionStatsErrors, type GetAttributionStatsResponse, type GetAttributionStatsResponses, type GetCurrentUserData, type GetCurrentUserError, type GetCurrentUserErrors, type GetCurrentUserResponse, type GetCurrentUserResponses, type GetIntentData, type GetIntentError, type GetIntentErrors, type GetIntentResponse, type GetIntentResponses, type GetOfferingData, type GetOfferingError, type GetOfferingErrors, type GetOfferingResponse, type GetOfferingResponses, type GetSyndicateData, type GetSyndicateDealData, type GetSyndicateDealError, type GetSyndicateDealErrors, type GetSyndicateDealResponse, type GetSyndicateDealResponses, type GetSyndicateError, type GetSyndicateErrors, type GetSyndicateResponse, type GetSyndicateResponses, type GetSyndicateStatisticsData, type GetSyndicateStatisticsError, type GetSyndicateStatisticsErrors, type GetSyndicateStatisticsResponse, type GetSyndicateStatisticsResponses, type GetWebhookSubscriptionData, type GetWebhookSubscriptionError, type GetWebhookSubscriptionErrors, type GetWebhookSubscriptionResponse, type GetWebhookSubscriptionResponses, type HideSyndicateMemberData, type HideSyndicateMemberError, type HideSyndicateMemberErrors, type HideSyndicateMemberResponse, type HideSyndicateMemberResponses, type IdempotencyKey, type Intent, type IntentEnvelope, type IntentListEnvelope, type Investment, type InvestmentLink, type InvestmentLinkCreateInput, type InvestmentLinkEnvelope, type InvestmentListEnvelope, type InvestmentSession, type InvestmentSessionCreateInput, type InvestmentSessionEnvelope, type InvestmentSessionId, type Investor, type InvestorEnvelope, type InvestorListEnvelope, type Invite, type InviteCreateInput, type InviteEnvelope, type InviteId, type InviteListEnvelope, type InviteSyndicateMemberData, type InviteSyndicateMemberError, type InviteSyndicateMemberErrors, type InviteSyndicateMemberResponse, type InviteSyndicateMemberResponses, type ListActivityData, type ListActivityError, type ListActivityErrors, type ListActivityResponse, type ListActivityResponses, type ListAttributedInvestmentsData, type ListAttributedInvestmentsError, type ListAttributedInvestmentsErrors, type ListAttributedInvestmentsResponse, type ListAttributedInvestmentsResponses, type ListAttributionCampaignsData, type ListAttributionCampaignsError, type ListAttributionCampaignsErrors, type ListAttributionCampaignsResponse, type ListAttributionCampaignsResponses, type ListCampaignsData, type ListCampaignsError, type ListCampaignsErrors, type ListCampaignsResponse, type ListCampaignsResponses, type ListConnectedAppsData, type ListConnectedAppsError, type ListConnectedAppsErrors, type ListConnectedAppsResponse, type ListConnectedAppsResponses, type ListIntentsData, type ListIntentsError, type ListIntentsErrors, type ListIntentsResponse, type ListIntentsResponses, type ListInvestmentsData, type ListInvestmentsError, type ListInvestmentsErrors, type ListInvestmentsResponse, type ListInvestmentsResponses, type ListOfferingsData, type ListOfferingsError, type ListOfferingsErrors, type ListOfferingsResponse, type ListOfferingsResponses, type ListPartnerInvitesData, type ListPartnerInvitesError, type ListPartnerInvitesErrors, type ListPartnerInvitesResponse, type ListPartnerInvitesResponses, type ListSyndicateDealInvestorsData, type ListSyndicateDealInvestorsError, type ListSyndicateDealInvestorsErrors, type ListSyndicateDealInvestorsResponse, type ListSyndicateDealInvestorsResponses, type ListSyndicateDealsData, type ListSyndicateDealsError, type ListSyndicateDealsErrors, type ListSyndicateDealsResponse, type ListSyndicateDealsResponses, type ListSyndicateMemberInvestmentsData, type ListSyndicateMemberInvestmentsError, type ListSyndicateMemberInvestmentsErrors, type ListSyndicateMemberInvestmentsResponse, type ListSyndicateMemberInvestmentsResponses, type ListSyndicateMembersData, type ListSyndicateMembersError, type ListSyndicateMembersErrors, type ListSyndicateMembersResponse, type ListSyndicateMembersResponses, type ListSyndicatesData, type ListSyndicatesError, type ListSyndicatesErrors, type ListSyndicatesResponse, type ListSyndicatesResponses, type ListWebhookSubscriptionsData, type ListWebhookSubscriptionsError, type ListWebhookSubscriptionsErrors, type ListWebhookSubscriptionsResponse, type ListWebhookSubscriptionsResponses, type MarketingPartner, type MarketingPartnerEnvelope, type MemberId, type MemberInvestment, type MemberInvestmentListEnvelope, type Mode, type OAuthHostOptions, type Offering, type OfferingEnvelope, type OfferingListEnvelope, type OfferingSort, type Page, type PageFetcher, type PaginationMeta, type ParsedWebhook, type PartnerInvestment, type PartnerInvestmentEnvelope, type PartnerInvestmentId, type PartnerInvestmentListEnvelope, type PartnerInvite, type PartnerInviteEnvelope, type PartnerInviteListEnvelope, type PartnerWebhookEvent, type PartnerWebhookEventEnvelope, type PartnerWebhookSubscription, type PartnerWebhookSubscriptionCreateInput, type PartnerWebhookSubscriptionEnvelope, type PartnerWebhookSubscriptionListEnvelope, type PartnerWebhookSubscriptionWithSecret, type PartnerWebhookSubscriptionWithSecretEnvelope, type Pkce, type PromoteSyndicateMemberData, type PromoteSyndicateMemberError, type PromoteSyndicateMemberErrors, type PromoteSyndicateMemberResponse, type PromoteSyndicateMemberResponses, REQUEST_ID_HEADER, type ReactivateWebhookSubscriptionData, type ReactivateWebhookSubscriptionError, type ReactivateWebhookSubscriptionErrors, type ReactivateWebhookSubscriptionResponse, type ReactivateWebhookSubscriptionResponses, type RefreshOptions, type RegenerateWebhookSecretData, type RegenerateWebhookSecretError, type RegenerateWebhookSecretErrors, type RegenerateWebhookSecretResponse, type RegenerateWebhookSecretResponses, type RegisterAsPartnerData, type RegisterAsPartnerError, type RegisterAsPartnerErrors, type RegisterAsPartnerResponse, type RegisterAsPartnerResponses, type RemoveSyndicateMemberData, type RemoveSyndicateMemberError, type RemoveSyndicateMemberErrors, type ReorderSyndicateMembersData, type ReorderSyndicateMembersError, type ReorderSyndicateMembersErrors, type ReorderSyndicateMembersResponses, type ResendSyndicateInviteData, type ResendSyndicateInviteError, type ResendSyndicateInviteErrors, type ResendSyndicateInviteResponses, type RestoreSyndicateMemberData, type RestoreSyndicateMemberError, type RestoreSyndicateMemberErrors, type RestoreSyndicateMemberResponse, type RestoreSyndicateMemberResponses, type RevokeConnectedAppData, type RevokeConnectedAppError, type RevokeConnectedAppErrors, type RevokeConnectedAppResponse, type RevokeConnectedAppResponses, type RevokePartnerInviteData, type RevokePartnerInviteError, type RevokePartnerInviteErrors, type RevokePartnerInviteResponse, type RevokePartnerInviteResponses, SANDBOX_AUTHORIZE_BASE_URL, SIGNATURE_HEADER, type Spv, type SpvCloseStatus, type SpvCloseStatusEnvelope, type SpvCreateInput, type SpvEnvelope, type SpvId, type SpvListEnvelope, type SpvMetrics, type SpvSettings, type SpvTerms, type SpvWithMetaEnvelope, type StartDate, type Syndicate, type SyndicateDeal, type SyndicateDealDetail, type SyndicateDealDetailEnvelope, type SyndicateDealEnvelope, type SyndicateDealListEnvelope, type SyndicateDetail, type SyndicateDetailEnvelope, type SyndicateId, type SyndicateListEnvelope, type SyndicateMember, type SyndicateMemberEnvelope, type SyndicateMemberListEnvelope, type SyndicatePortfolio, type SyndicateStatistics, type SyndicateStatisticsEnvelope, TIMESTAMP_HEADER, type TargetCompanyInput, type TestWebhookSubscriptionData, type TestWebhookSubscriptionError, type TestWebhookSubscriptionErrors, type TestWebhookSubscriptionResponse, type TestWebhookSubscriptionResponses, type TokenManagerOptions, type TokenSet, type TokenStore, type UpdateSyndicateData, type UpdateSyndicateError, type UpdateSyndicateErrors, type UpdateSyndicateMemberData, type UpdateSyndicateMemberError, type UpdateSyndicateMemberErrors, type UpdateSyndicateMemberResponse, type UpdateSyndicateMemberResponses, type UpdateSyndicateResponse, type UpdateSyndicateResponses, type User, type UserEnvelope, type UtmCampaign, type UtmSource, type ValidationError, type VerifyWebhookOptions, type WebhookDelivery, type WebhookId, type WebhookSubscription, type WebhookSubscriptionEnvelope, type WebhookSubscriptionId, type WebhookSubscriptionListEnvelope, type WebhookSubscriptionWithRecentDeliveriesEnvelope, type WebhookSubscriptionWithSecret2Envelope, type WebhookSubscriptionWithSecretEnvelope, type WebhookTestResult, type WebhookTestResultEnvelope, Wefunder, WefunderAuthError, WefunderError, type WefunderOptions, clientCredentialsGrant, collect, constructEvent, createAuthorizationUrl, exchangeCode, generatePkce, modeForToken, paginate, refreshToken, verifyWebhook };
5845
+ export { type AnonymizedAttribution, type ApproveSyndicateMemberData, type ApproveSyndicateMemberError, type ApproveSyndicateMemberErrors, type ApproveSyndicateMemberResponse, type ApproveSyndicateMemberResponses, type AttributedInvestmentListEnvelope, type AttributionCampaignAccess, type AttributionCampaignSummary, type AttributionCampaignSummaryListEnvelope, type AttributionMe, type AttributionMeEnvelope, type AttributionPartner, type AttributionStats, type AttributionStatsEnvelope, type AttributionUser, type AuditEvent, type AuditEventListEnvelope, type AuthorizationUrlOptions, type BulkInviteLinkCreateInput, type BulkInviteLinkEnvelope, type Campaign, type CampaignId, type CampaignListEnvelope, type ClientCredentialsOptions, type ClientOptions, type CloseSyndicateDealData, type CloseSyndicateDealError, type CloseSyndicateDealErrors, type CloseSyndicateDealResponse, type CloseSyndicateDealResponses, type ConnectedApp, type ConnectedAppListEnvelope, type ConnectedAppRevocation, type ConnectedAppRevocationEnvelope, type CreateIntentData, type CreateIntentError, type CreateIntentErrors, type CreateIntentResponse, type CreateIntentResponses, type CreatePartnerInviteData, type CreatePartnerInviteError, type CreatePartnerInviteErrors, type CreatePartnerInviteResponse, type CreatePartnerInviteResponses, type CreateWebhookSubscriptionData, type CreateWebhookSubscriptionError, type CreateWebhookSubscriptionErrors, type CreateWebhookSubscriptionResponse, type CreateWebhookSubscriptionResponses, type Cursor, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_AUTHORIZE_BASE_URL, DEFAULT_OAUTH_BASE_URL, DEFAULT_TOKEN_BASE_URL, DELIVERY_ID_HEADER, type DealInvestor, type DealInvestorListEnvelope, type DeleteWebhookSubscriptionData, type DeleteWebhookSubscriptionError, type DeleteWebhookSubscriptionErrors, type DeleteWebhookSubscriptionResponse, type DeleteWebhookSubscriptionResponses, type DemoteSyndicateMemberData, type DemoteSyndicateMemberError, type DemoteSyndicateMemberErrors, type DemoteSyndicateMemberResponse, type DemoteSyndicateMemberResponses, EVENT_HEADER, type EndDate, type Error$1 as Error, type ExchangeCodeOptions, type Exemption, type ExportSyndicateMembersCsvData, type ExportSyndicateMembersCsvError, type ExportSyndicateMembersCsvErrors, type ExportSyndicateMembersCsvResponse, type ExportSyndicateMembersCsvResponses, type FinalizeSyndicateDealData, type FinalizeSyndicateDealError, type FinalizeSyndicateDealErrors, type FinalizeSyndicateDealResponse, type FinalizeSyndicateDealResponses, type FullAttribution, type FundraiseId, type GetAttributionMeData, type GetAttributionMeError, type GetAttributionMeErrors, type GetAttributionMeResponse, type GetAttributionMeResponses, type GetAttributionStatsData, type GetAttributionStatsError, type GetAttributionStatsErrors, type GetAttributionStatsResponse, type GetAttributionStatsResponses, type GetCurrentUserData, type GetCurrentUserError, type GetCurrentUserErrors, type GetCurrentUserResponse, type GetCurrentUserResponses, type GetIntentData, type GetIntentError, type GetIntentErrors, type GetIntentResponse, type GetIntentResponses, type GetOfferingData, type GetOfferingError, type GetOfferingErrors, type GetOfferingResponse, type GetOfferingResponses, type GetPortfolioData, type GetPortfolioError, type GetPortfolioErrors, type GetPortfolioResponse, type GetPortfolioResponses, type GetSyndicateData, type GetSyndicateDealData, type GetSyndicateDealError, type GetSyndicateDealErrors, type GetSyndicateDealResponse, type GetSyndicateDealResponses, type GetSyndicateError, type GetSyndicateErrors, type GetSyndicatePortfolioData, type GetSyndicatePortfolioError, type GetSyndicatePortfolioErrors, type GetSyndicatePortfolioResponse, type GetSyndicatePortfolioResponses, type GetSyndicateResponse, type GetSyndicateResponses, type GetSyndicateStatisticsData, type GetSyndicateStatisticsError, type GetSyndicateStatisticsErrors, type GetSyndicateStatisticsResponse, type GetSyndicateStatisticsResponses, type GetWebhookSubscriptionData, type GetWebhookSubscriptionError, type GetWebhookSubscriptionErrors, type GetWebhookSubscriptionResponse, type GetWebhookSubscriptionResponses, type HideSyndicateMemberData, type HideSyndicateMemberError, type HideSyndicateMemberErrors, type HideSyndicateMemberResponse, type HideSyndicateMemberResponses, type IdempotencyKey, type Intent, type IntentEnvelope, type IntentListEnvelope, type IntentReview, type IntentStatus, type Investment, type InvestmentListEnvelope, type InvestmentSession, type InvestmentSessionCreateInput, type InvestmentSessionEnvelope, type InvestmentSessionId, type InvestmentSessionListEnvelope, type Investor, type InvestorEnvelope, type InvestorListEnvelope, type InviteLink, type InviteLinkCreateInput, type InviteLinkEnvelope, type InviteLinkId, type InviteLinkListEnvelope, type InviteLinkUpdateInput, type InviteSyndicateMemberData, type InviteSyndicateMemberError, type InviteSyndicateMemberErrors, type InviteSyndicateMemberResponse, type InviteSyndicateMemberResponses, type ListActivityData, type ListActivityError, type ListActivityErrors, type ListActivityResponse, type ListActivityResponses, type ListAttributedInvestmentsData, type ListAttributedInvestmentsError, type ListAttributedInvestmentsErrors, type ListAttributedInvestmentsResponse, type ListAttributedInvestmentsResponses, type ListAttributionCampaignsData, type ListAttributionCampaignsError, type ListAttributionCampaignsErrors, type ListAttributionCampaignsResponse, type ListAttributionCampaignsResponses, type ListCampaignsData, type ListCampaignsError, type ListCampaignsErrors, type ListCampaignsResponse, type ListCampaignsResponses, type ListConnectedAppsData, type ListConnectedAppsError, type ListConnectedAppsErrors, type ListConnectedAppsResponse, type ListConnectedAppsResponses, type ListIntentsData, type ListIntentsError, type ListIntentsErrors, type ListIntentsResponse, type ListIntentsResponses, type ListInvestmentsData, type ListInvestmentsError, type ListInvestmentsErrors, type ListInvestmentsResponse, type ListInvestmentsResponses, type ListOfferingsData, type ListOfferingsError, type ListOfferingsErrors, type ListOfferingsResponse, type ListOfferingsResponses, type ListPartnerInvitesData, type ListPartnerInvitesError, type ListPartnerInvitesErrors, type ListPartnerInvitesResponse, type ListPartnerInvitesResponses, type ListPortfolioPositionsData, type ListPortfolioPositionsError, type ListPortfolioPositionsErrors, type ListPortfolioPositionsResponse, type ListPortfolioPositionsResponses, type ListSyndicateDealInvestorsData, type ListSyndicateDealInvestorsError, type ListSyndicateDealInvestorsErrors, type ListSyndicateDealInvestorsResponse, type ListSyndicateDealInvestorsResponses, type ListSyndicateDealsData, type ListSyndicateDealsError, type ListSyndicateDealsErrors, type ListSyndicateDealsResponse, type ListSyndicateDealsResponses, type ListSyndicateMemberInvestmentsData, type ListSyndicateMemberInvestmentsError, type ListSyndicateMemberInvestmentsErrors, type ListSyndicateMemberInvestmentsResponse, type ListSyndicateMemberInvestmentsResponses, type ListSyndicateMembersData, type ListSyndicateMembersError, type ListSyndicateMembersErrors, type ListSyndicateMembersResponse, type ListSyndicateMembersResponses, type ListSyndicatePortfolioPositionsData, type ListSyndicatePortfolioPositionsError, type ListSyndicatePortfolioPositionsErrors, type ListSyndicatePortfolioPositionsResponse, type ListSyndicatePortfolioPositionsResponses, type ListSyndicatesData, type ListSyndicatesError, type ListSyndicatesErrors, type ListSyndicatesResponse, type ListSyndicatesResponses, type ListWebhookSubscriptionsData, type ListWebhookSubscriptionsError, type ListWebhookSubscriptionsErrors, type ListWebhookSubscriptionsResponse, type ListWebhookSubscriptionsResponses, type MarketingPartner, type MarketingPartnerEnvelope, type MemberId, type MemberInvestment, type MemberInvestmentListEnvelope, type Mode, type OAuthHostOptions, type Offering, type OfferingEnvelope, type OfferingListEnvelope, type OfferingSort, type Page, type PageFetcher, type PaginationMeta, type ParsedWebhook, type PartnerInvestment, type PartnerInvestmentEnvelope, type PartnerInvestmentId, type PartnerInvestmentListEnvelope, type PartnerInvestor, type PartnerInvestorListEnvelope, type PartnerInvite, type PartnerInviteEnvelope, type PartnerInviteListEnvelope, type PartnerWebhookEvent, type PartnerWebhookEventEnvelope, type PartnerWebhookSubscription, type PartnerWebhookSubscriptionCreateInput, type PartnerWebhookSubscriptionEnvelope, type PartnerWebhookSubscriptionListEnvelope, type PartnerWebhookSubscriptionWithSecret, type PartnerWebhookSubscriptionWithSecretEnvelope, type Pkce, type PortfolioCompanyRef, type PortfolioFilters, type PortfolioHolding, type PortfolioPosition, type PortfolioPositionListEnvelope, type PortfolioPositionsFilters, type PortfolioPositionsQuery, type PortfolioSecurity, type PortfolioStatus, type PortfolioSummary, type PortfolioSummaryEnvelope, type PromoteSyndicateMemberData, type PromoteSyndicateMemberError, type PromoteSyndicateMemberErrors, type PromoteSyndicateMemberResponse, type PromoteSyndicateMemberResponses, REQUEST_ID_HEADER, type ReactivateWebhookSubscriptionData, type ReactivateWebhookSubscriptionError, type ReactivateWebhookSubscriptionErrors, type ReactivateWebhookSubscriptionResponse, type ReactivateWebhookSubscriptionResponses, type RefreshOptions, type RegenerateWebhookSecretData, type RegenerateWebhookSecretError, type RegenerateWebhookSecretErrors, type RegenerateWebhookSecretResponse, type RegenerateWebhookSecretResponses, type RegisterAsPartnerData, type RegisterAsPartnerError, type RegisterAsPartnerErrors, type RegisterAsPartnerResponse, type RegisterAsPartnerResponses, type RemoveSyndicateMemberData, type RemoveSyndicateMemberError, type RemoveSyndicateMemberErrors, type ReorderSyndicateMembersData, type ReorderSyndicateMembersError, type ReorderSyndicateMembersErrors, type ReorderSyndicateMembersResponses, type ResendSyndicateInviteData, type ResendSyndicateInviteError, type ResendSyndicateInviteErrors, type ResendSyndicateInviteResponses, type RestoreSyndicateMemberData, type RestoreSyndicateMemberError, type RestoreSyndicateMemberErrors, type RestoreSyndicateMemberResponse, type RestoreSyndicateMemberResponses, type RevokeConnectedAppData, type RevokeConnectedAppError, type RevokeConnectedAppErrors, type RevokeConnectedAppResponse, type RevokeConnectedAppResponses, type RevokePartnerInviteData, type RevokePartnerInviteError, type RevokePartnerInviteErrors, type RevokePartnerInviteResponse, type RevokePartnerInviteResponses, SANDBOX_AUTHORIZE_BASE_URL, SIGNATURE_HEADER, type Spv, type SpvCancelIntentEnvelope, type SpvCloseIntentEnvelope, type SpvCreateInput, type SpvEnvelope, type SpvId, type SpvListEnvelope, type SpvMetrics, type SpvSettings, type SpvStatus, type SpvStatusEnvelope, type SpvTerms, type SpvWithMetaEnvelope, type StartDate, type Syndicate, type SyndicateDeal, type SyndicateDealCloseIntentEnvelope, type SyndicateDealDetail, type SyndicateDealDetailEnvelope, type SyndicateDealEnvelope, type SyndicateDealFinalizeIntentEnvelope, type SyndicateDealListEnvelope, type SyndicateDetail, type SyndicateDetailEnvelope, type SyndicateId, type SyndicateListEnvelope, type SyndicateMember, type SyndicateMemberEnvelope, type SyndicateMemberListEnvelope, type SyndicatePortfolioSummaryEnvelope, type SyndicateStatistics, type SyndicateStatisticsEnvelope, TIMESTAMP_HEADER, type TargetCompanyInput, type TestWebhookSubscriptionData, type TestWebhookSubscriptionError, type TestWebhookSubscriptionErrors, type TestWebhookSubscriptionResponse, type TestWebhookSubscriptionResponses, type TokenManagerOptions, type TokenSet, type TokenStore, type UpdateSyndicateData, type UpdateSyndicateError, type UpdateSyndicateErrors, type UpdateSyndicateMemberData, type UpdateSyndicateMemberError, type UpdateSyndicateMemberErrors, type UpdateSyndicateMemberResponse, type UpdateSyndicateMemberResponses, type UpdateSyndicateResponse, type UpdateSyndicateResponses, type User, type UserEnvelope, type UtmCampaign, type UtmSource, type ValidationError, type VerifyWebhookOptions, type WebhookDelivery, type WebhookId, type WebhookSubscription, type WebhookSubscriptionEnvelope, type WebhookSubscriptionId, type WebhookSubscriptionListEnvelope, type WebhookSubscriptionWithRecentDeliveriesEnvelope, type WebhookSubscriptionWithSecret2Envelope, type WebhookSubscriptionWithSecretEnvelope, type WebhookTestResult, type WebhookTestResultEnvelope, Wefunder, WefunderAuthError, WefunderError, type WefunderOptions, clientCredentialsGrant, collect, constructEvent, createAuthorizationUrl, exchangeCode, generatePkce, modeForToken, paginate, refreshToken, verifyWebhook };