@venlyfinance/react 0.2.0 → 0.3.0

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/AGENTS.md CHANGED
@@ -17,6 +17,17 @@ You are building a financial product UI on `@venlyfinance/react`. These rules ex
17
17
  - Amounts: tabular figures, currency code after the amount, and never render a debit in red as the only signal. Empty numeric cells are an em dash, not 0.
18
18
  - Terminal failure states show the reason from the record; the status field is the explanation field.
19
19
 
20
+ ## Bring your own auth
21
+
22
+ The Venly APIs authenticate machines (OAuth2 client credentials), not people: there is no end-user login, sign-up, session, password, or MFA endpoint in either API, by design. **The Venly APIs never see end-user credentials.** End-user auth is your identity layer's job; the sanctioned browser shape is a backend proxy that inherits YOUR app's session (`proxyClientOptions()`), never Venly's.
23
+
24
+ The UI kit's auth and team blocks therefore render against two adapter interfaces, `AuthAdapter` and `TeamAdapter`, instead of an SDK client:
25
+
26
+ - **Real implementations** wrap what you already run: OAuth/OIDC, Better Auth, Auth0, Clerk, Keycloak, or a plain session cookie. Implement `signIn`/`verifyTotp`/`signUp`/`session`/`signOut` (and the team CRUD) over your provider's SDK.
27
+ - **Session-expiry contract:** `session()` returns `null` once the session has expired for any reason. The shell treats null as signed-out and redirects to sign-in; no other expiry signal exists in the interface.
28
+ - **Mock adapters ship with the blocks** (`createMockAuthAdapter`, `createMockTeamAdapter`): zero credentials, deterministic 2FA code `000000`, an `expireSession()` driver, and invites that mint a display-only link – the mock never claims an email was sent.
29
+ - Password reset, SSO buttons, and passkeys are provider features: point users at your provider's flow rather than rebuilding it behind the adapter.
30
+
20
31
  ## Demo choreography (mock mode)
21
32
 
22
33
  `useVenlyMock()` exposes the store controls. A credible end-to-end demo:
package/README.md CHANGED
@@ -42,7 +42,7 @@ Mock mode needs zero credentials and makes zero network calls: every hook answer
42
42
  | `useFourEyesApproval` | Approve/reject/cancel with the optimistic-locking `version` carried through; 409 surfaces as `"stale-version"` (refetch and re-decide, never auto-retry) |
43
43
  | `useRampLifecycle` | One ramp request, polled until terminal, with a status descriptor answering: must I act, who is it waiting on, what still works |
44
44
  | `venlyKeys` / `venlyQueries` | Query-key factory and pure `{queryKey, queryFn}` factories for prefetching, route loaders, and tests |
45
- | `useVenlyMock` | The mock controls (call log, `failNext`, `advanceVerification`, `advanceTransfer`) – defined only in mock mode |
45
+ | `useVenlyMock` | The mock controls (call log, `failNext`, `respondNext`, `delayNext`, `advanceVerification`, `advanceTransfer`) – defined only in mock mode |
46
46
  | `proxyClientOptions` | Browser-safe production wiring (below) |
47
47
 
48
48
  ## The flow machines
package/dist/index.d.ts CHANGED
@@ -8,4 +8,4 @@ export { approvalCapabilities, interpretApprovalError, useFourEyesApproval, type
8
8
  export { describeRampStatus, useRampLifecycle, type RampLifecycleOptions, type RampStatus, type RampStatusDescriptor, } from "./flows/ramp-lifecycle.js";
9
9
  export { proxyClientOptions, VENLY_PROXY_SECRET_SENTINEL, type ProxyClientOptions, } from "./proxy.js";
10
10
  export { FundflowClient, VenlyApiError, VenlyAuthError, VenlyFinanceClient, } from "@venlyfinance/sdk";
11
- export type { Account, Party, RampRequest, Transfer, VirtualBankAccount, Wallet, } from "@venlyfinance/sdk";
11
+ export type { Account, Party, RampRequest, Transfer, VirtualBankAccount, WalletBalance, Payout, PayoutRoute, PayoutBankAccount, } from "@venlyfinance/sdk";
@@ -5,40 +5,42 @@ type CreatePaymentSessionBody = Parameters<VenlyFinanceClient["paymentSessions"]
5
5
  export declare function useCreateParty(): import("@tanstack/react-query").UseMutationResult<{
6
6
  id?: string;
7
7
  externalId?: string;
8
- partyType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyType"];
9
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyStatus"];
8
+ partyType?: "INDIVIDUAL" | "ORGANISATION";
9
+ status?: "ACTIVE" | "SUSPENDED" | "BLOCKED";
10
+ address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AddressDto"];
10
11
  firstName?: string;
11
12
  lastName?: string;
12
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
13
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "REJECTED";
13
14
  name?: string;
14
15
  vatNumber?: string;
15
- kybStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KybStatus"];
16
- address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Address"];
16
+ kybStatus?: "PENDING" | "VERIFIED" | "DENIED";
17
17
  createdAt?: string;
18
18
  updatedAt?: string;
19
19
  version?: number;
20
20
  }, Error, {
21
- partyType: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyType"];
21
+ partyType: "INDIVIDUAL" | "ORGANISATION";
22
22
  externalId?: string;
23
23
  firstName?: string;
24
24
  lastName?: string;
25
25
  name?: string;
26
26
  vatNumber?: string;
27
- address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Address"];
27
+ address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AddressDto"];
28
+ sumsubToken?: string;
28
29
  }, unknown>;
29
30
  export declare function useCreateAccount(): import("@tanstack/react-query").UseMutationResult<{
30
31
  id?: string;
31
32
  externalId?: string;
32
33
  name?: string;
33
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
34
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AccountStatus"];
34
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "NOT_REQUIRED" | "REJECTED";
35
+ status?: "ACTIVE" | "SUSPENDED" | "CLOSED";
35
36
  createdAt?: string;
36
37
  version?: number;
37
38
  }, Error, {
38
39
  externalId: string;
39
40
  name?: string;
40
- chain: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BlockchainNetwork"];
41
+ chain: "AVALANCHE" | "BASE" | "ETHEREUM" | "POLYGON" | "SOLANA";
41
42
  address?: string;
43
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "NOT_REQUIRED" | "REJECTED";
42
44
  partyId?: string;
43
45
  party?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["CreatePartyRequest"];
44
46
  cardProviderReference?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["CardProviderReference"];
@@ -46,16 +48,19 @@ export declare function useCreateAccount(): import("@tanstack/react-query").UseM
46
48
  export declare function useCreateVirtualBankAccount(): import("@tanstack/react-query").UseMutationResult<{
47
49
  id?: string;
48
50
  accountId?: string;
49
- bankAccountType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BankAccountType"];
51
+ bankAccountType?: "EUR_SEPA" | "USD_ACH";
50
52
  name?: string;
51
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["VirtualBankAccountStatus"];
52
- currency?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatCurrency"];
53
- targetCryptocurrency?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Cryptocurrency"];
53
+ status?: "PENDING" | "ACTIVE" | "CLOSED";
54
+ currency?: string;
55
+ targetCryptocurrency?: string;
54
56
  iban?: string;
55
57
  bic?: string;
58
+ accountNumber?: string;
59
+ routingNumber?: string;
56
60
  bankName?: string;
57
61
  beneficiaryName?: string;
58
62
  referenceCode?: string;
63
+ depositRails?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["ProviderDepositRail"][];
59
64
  createdAt?: string;
60
65
  updatedAt?: string;
61
66
  }, Error, {
@@ -65,14 +70,14 @@ export declare function useCreateVirtualBankAccount(): import("@tanstack/react-q
65
70
  export declare function useCreatePaymentSession(): import("@tanstack/react-query").UseMutationResult<{
66
71
  id?: string;
67
72
  accountId?: string;
68
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PaymentSessionStatus"];
73
+ status?: "CREATED" | "PENDING_PAYMENT" | "PAYMENT_RECEIVED" | "CONVERTING" | "MINTING" | "COMPLETED" | "FAILED" | "EXPIRED" | "CANCELLED" | "REFUNDING" | "REFUNDED";
69
74
  inAmount?: number;
70
75
  inCurrency?: string;
71
76
  outCryptocurrency?: string;
72
77
  paymentUrl?: string;
73
78
  externalRef?: string;
74
79
  walletId?: string;
75
- blockchainTxId?: string | null;
80
+ blockchainTxId?: string;
76
81
  cancellable?: boolean;
77
82
  expiresAt?: string;
78
83
  metadata?: {
package/dist/queries.d.ts CHANGED
@@ -4,15 +4,15 @@ type Tune<T> = Omit<UseQueryOptions<T, Error>, "queryKey" | "queryFn">;
4
4
  export declare function useParties(query?: PartiesQuery, options?: Tune<PartiesPage>): import("@tanstack/react-query").UseQueryResult<NoInfer<import("@venlyfinance/sdk").Page<{
5
5
  id?: string;
6
6
  externalId?: string;
7
- partyType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyType"];
8
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyStatus"];
7
+ partyType?: "INDIVIDUAL" | "ORGANISATION";
8
+ status?: "ACTIVE" | "SUSPENDED" | "BLOCKED";
9
+ address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AddressDto"];
9
10
  firstName?: string;
10
11
  lastName?: string;
11
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
12
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "REJECTED";
12
13
  name?: string;
13
14
  vatNumber?: string;
14
- kybStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KybStatus"];
15
- address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Address"];
15
+ kybStatus?: "PENDING" | "VERIFIED" | "DENIED";
16
16
  createdAt?: string;
17
17
  updatedAt?: string;
18
18
  version?: number;
@@ -21,15 +21,15 @@ type PartiesPage = Awaited<ReturnType<ReturnType<typeof venlyQueries.parties>["q
21
21
  export declare function useParty(partyId: string | undefined, options?: Tune<Party>): import("@tanstack/react-query").UseQueryResult<NoInfer<{
22
22
  id?: string;
23
23
  externalId?: string;
24
- partyType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyType"];
25
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyStatus"];
24
+ partyType?: "INDIVIDUAL" | "ORGANISATION";
25
+ status?: "ACTIVE" | "SUSPENDED" | "BLOCKED";
26
+ address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AddressDto"];
26
27
  firstName?: string;
27
28
  lastName?: string;
28
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
29
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "REJECTED";
29
30
  name?: string;
30
31
  vatNumber?: string;
31
- kybStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KybStatus"];
32
- address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Address"];
32
+ kybStatus?: "PENDING" | "VERIFIED" | "DENIED";
33
33
  createdAt?: string;
34
34
  updatedAt?: string;
35
35
  version?: number;
@@ -39,8 +39,8 @@ export declare function useAccounts(query?: AccountsQuery, options?: Tune<Accoun
39
39
  id?: string;
40
40
  externalId?: string;
41
41
  name?: string;
42
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
43
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AccountStatus"];
42
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "NOT_REQUIRED" | "REJECTED";
43
+ status?: "ACTIVE" | "SUSPENDED" | "CLOSED";
44
44
  createdAt?: string;
45
45
  version?: number;
46
46
  }>>, Error>;
@@ -49,34 +49,34 @@ export declare function useAccount(accountId: string | undefined, options?: Tune
49
49
  id?: string;
50
50
  externalId?: string;
51
51
  name?: string;
52
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
53
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AccountStatus"];
52
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "NOT_REQUIRED" | "REJECTED";
53
+ status?: "ACTIVE" | "SUSPENDED" | "CLOSED";
54
54
  createdAt?: string;
55
55
  version?: number;
56
56
  }>, Error>;
57
57
  type Account = Awaited<ReturnType<ReturnType<typeof venlyQueries.account>["queryFn"]>>;
58
58
  export declare function useWallets(accountId: string | undefined, query?: WalletsQuery, options?: Tune<WalletsPage>): import("@tanstack/react-query").UseQueryResult<NoInfer<import("@venlyfinance/sdk").Page<{
59
- id?: string;
60
- chain?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BlockchainNetwork"];
61
- type?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["WalletType"];
62
- address?: string;
63
- balances?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["TokenBalance"][];
64
- amlStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AmlStatus"];
59
+ asset?: string;
60
+ contractAddress?: string;
61
+ amount?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["CryptoBalanceSummaryDto"];
65
62
  }>>, Error>;
66
63
  type WalletsPage = Awaited<ReturnType<ReturnType<typeof venlyQueries.wallets>["queryFn"]>>;
67
64
  export declare function useVirtualBankAccounts(accountId: string | undefined, query?: VirtualBankAccountsQuery, options?: Tune<VibaPage>): import("@tanstack/react-query").UseQueryResult<NoInfer<import("@venlyfinance/sdk").Page<{
68
65
  id?: string;
69
66
  accountId?: string;
70
- bankAccountType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BankAccountType"];
67
+ bankAccountType?: "EUR_SEPA" | "USD_ACH";
71
68
  name?: string;
72
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["VirtualBankAccountStatus"];
73
- currency?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatCurrency"];
74
- targetCryptocurrency?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Cryptocurrency"];
69
+ status?: "PENDING" | "ACTIVE" | "CLOSED";
70
+ currency?: string;
71
+ targetCryptocurrency?: string;
75
72
  iban?: string;
76
73
  bic?: string;
74
+ accountNumber?: string;
75
+ routingNumber?: string;
77
76
  bankName?: string;
78
77
  beneficiaryName?: string;
79
78
  referenceCode?: string;
79
+ depositRails?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["ProviderDepositRail"][];
80
80
  createdAt?: string;
81
81
  updatedAt?: string;
82
82
  }>>, Error>;
@@ -85,14 +85,14 @@ export declare function useTransfers(accountId: string | undefined, query?: Tran
85
85
  id?: string;
86
86
  senderAccountId?: string;
87
87
  receiverAccountId?: string;
88
- chain?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BlockchainNetwork"];
88
+ chain?: "AVALANCHE" | "BASE" | "ETHEREUM" | "POLYGON" | "SOLANA";
89
89
  asset?: string;
90
90
  amount?: number;
91
- fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOrigin"];
91
+ fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOriginDto"];
92
92
  description?: string;
93
93
  merchantReference?: string;
94
94
  idempotencyKey?: string;
95
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["TransferStatus"];
95
+ status?: "PENDING" | "COMPLETED" | "FAILED";
96
96
  transactionHash?: string;
97
97
  errorMessage?: string;
98
98
  createdAt?: string;
@@ -103,14 +103,14 @@ export declare function useTransfer(accountId: string | undefined, transferId: s
103
103
  id?: string;
104
104
  senderAccountId?: string;
105
105
  receiverAccountId?: string;
106
- chain?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BlockchainNetwork"];
106
+ chain?: "AVALANCHE" | "BASE" | "ETHEREUM" | "POLYGON" | "SOLANA";
107
107
  asset?: string;
108
108
  amount?: number;
109
- fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOrigin"];
109
+ fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOriginDto"];
110
110
  description?: string;
111
111
  merchantReference?: string;
112
112
  idempotencyKey?: string;
113
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["TransferStatus"];
113
+ status?: "PENDING" | "COMPLETED" | "FAILED";
114
114
  transactionHash?: string;
115
115
  errorMessage?: string;
116
116
  createdAt?: string;
@@ -21,15 +21,15 @@ export declare const venlyQueries: {
21
21
  queryFn: () => Promise<import("@venlyfinance/sdk").Page<{
22
22
  id?: string;
23
23
  externalId?: string;
24
- partyType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyType"];
25
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyStatus"];
24
+ partyType?: "INDIVIDUAL" | "ORGANISATION";
25
+ status?: "ACTIVE" | "SUSPENDED" | "BLOCKED";
26
+ address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AddressDto"];
26
27
  firstName?: string;
27
28
  lastName?: string;
28
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
29
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "REJECTED";
29
30
  name?: string;
30
31
  vatNumber?: string;
31
- kybStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KybStatus"];
32
- address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Address"];
32
+ kybStatus?: "PENDING" | "VERIFIED" | "DENIED";
33
33
  createdAt?: string;
34
34
  updatedAt?: string;
35
35
  version?: number;
@@ -40,15 +40,15 @@ export declare const venlyQueries: {
40
40
  queryFn: () => Promise<{
41
41
  id?: string;
42
42
  externalId?: string;
43
- partyType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyType"];
44
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["PartyStatus"];
43
+ partyType?: "INDIVIDUAL" | "ORGANISATION";
44
+ status?: "ACTIVE" | "SUSPENDED" | "BLOCKED";
45
+ address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AddressDto"];
45
46
  firstName?: string;
46
47
  lastName?: string;
47
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
48
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "REJECTED";
48
49
  name?: string;
49
50
  vatNumber?: string;
50
- kybStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KybStatus"];
51
- address?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Address"];
51
+ kybStatus?: "PENDING" | "VERIFIED" | "DENIED";
52
52
  createdAt?: string;
53
53
  updatedAt?: string;
54
54
  version?: number;
@@ -60,8 +60,8 @@ export declare const venlyQueries: {
60
60
  id?: string;
61
61
  externalId?: string;
62
62
  name?: string;
63
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
64
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AccountStatus"];
63
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "NOT_REQUIRED" | "REJECTED";
64
+ status?: "ACTIVE" | "SUSPENDED" | "CLOSED";
65
65
  createdAt?: string;
66
66
  version?: number;
67
67
  }>>;
@@ -72,8 +72,8 @@ export declare const venlyQueries: {
72
72
  id?: string;
73
73
  externalId?: string;
74
74
  name?: string;
75
- kycStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["KycStatus"];
76
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AccountStatus"];
75
+ kycStatus?: "VERIFICATION_PENDING" | "VERIFIED" | "NOT_REQUIRED" | "REJECTED";
76
+ status?: "ACTIVE" | "SUSPENDED" | "CLOSED";
77
77
  createdAt?: string;
78
78
  version?: number;
79
79
  }>;
@@ -81,12 +81,9 @@ export declare const venlyQueries: {
81
81
  readonly wallets: (clients: VenlyClients, accountId: string, query?: WalletsQuery) => {
82
82
  queryKey: readonly ["venly", "account", string, "wallets", {} | null];
83
83
  queryFn: () => Promise<import("@venlyfinance/sdk").Page<{
84
- id?: string;
85
- chain?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BlockchainNetwork"];
86
- type?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["WalletType"];
87
- address?: string;
88
- balances?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["TokenBalance"][];
89
- amlStatus?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["AmlStatus"];
84
+ asset?: string;
85
+ contractAddress?: string;
86
+ amount?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["CryptoBalanceSummaryDto"];
90
87
  }>>;
91
88
  };
92
89
  readonly virtualBankAccounts: (clients: VenlyClients, accountId: string, query?: VirtualBankAccountsQuery) => {
@@ -94,16 +91,19 @@ export declare const venlyQueries: {
94
91
  queryFn: () => Promise<import("@venlyfinance/sdk").Page<{
95
92
  id?: string;
96
93
  accountId?: string;
97
- bankAccountType?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BankAccountType"];
94
+ bankAccountType?: "EUR_SEPA" | "USD_ACH";
98
95
  name?: string;
99
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["VirtualBankAccountStatus"];
100
- currency?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatCurrency"];
101
- targetCryptocurrency?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["Cryptocurrency"];
96
+ status?: "PENDING" | "ACTIVE" | "CLOSED";
97
+ currency?: string;
98
+ targetCryptocurrency?: string;
102
99
  iban?: string;
103
100
  bic?: string;
101
+ accountNumber?: string;
102
+ routingNumber?: string;
104
103
  bankName?: string;
105
104
  beneficiaryName?: string;
106
105
  referenceCode?: string;
106
+ depositRails?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["ProviderDepositRail"][];
107
107
  createdAt?: string;
108
108
  updatedAt?: string;
109
109
  }>>;
@@ -114,14 +114,14 @@ export declare const venlyQueries: {
114
114
  id?: string;
115
115
  senderAccountId?: string;
116
116
  receiverAccountId?: string;
117
- chain?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BlockchainNetwork"];
117
+ chain?: "AVALANCHE" | "BASE" | "ETHEREUM" | "POLYGON" | "SOLANA";
118
118
  asset?: string;
119
119
  amount?: number;
120
- fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOrigin"];
120
+ fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOriginDto"];
121
121
  description?: string;
122
122
  merchantReference?: string;
123
123
  idempotencyKey?: string;
124
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["TransferStatus"];
124
+ status?: "PENDING" | "COMPLETED" | "FAILED";
125
125
  transactionHash?: string;
126
126
  errorMessage?: string;
127
127
  createdAt?: string;
@@ -134,14 +134,14 @@ export declare const venlyQueries: {
134
134
  id?: string;
135
135
  senderAccountId?: string;
136
136
  receiverAccountId?: string;
137
- chain?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["BlockchainNetwork"];
137
+ chain?: "AVALANCHE" | "BASE" | "ETHEREUM" | "POLYGON" | "SOLANA";
138
138
  asset?: string;
139
139
  amount?: number;
140
- fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOrigin"];
140
+ fiatOrigin?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["FiatOriginDto"];
141
141
  description?: string;
142
142
  merchantReference?: string;
143
143
  idempotencyKey?: string;
144
- status?: import("@venlyfinance/sdk").FinanceComponents["schemas"]["TransferStatus"];
144
+ status?: "PENDING" | "COMPLETED" | "FAILED";
145
145
  transactionHash?: string;
146
146
  errorMessage?: string;
147
147
  createdAt?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venlyfinance/react",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Headless React layer for the Venly Finance and Fundflow APIs: provider, TanStack Query hooks, and flow state machines for regulated money movement. Runs with zero credentials in mock mode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -30,7 +30,7 @@
30
30
  "node": ">=20"
31
31
  },
32
32
  "dependencies": {
33
- "@venlyfinance/sdk": "^0.3.0"
33
+ "@venlyfinance/sdk": "^0.4.0"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@tanstack/react-query": "^5.0.0",
@@ -62,4 +62,4 @@
62
62
  "directory": "react"
63
63
  },
64
64
  "homepage": "https://github.com/Venly/venly-settlement-sdk/tree/main/react#readme"
65
- }
65
+ }