@stable_sea/sdk 0.1.3 → 0.1.5

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.
@@ -73,19 +73,21 @@ export interface paths {
73
73
  };
74
74
  /**
75
75
  * List balances
76
- * @description Lists what the business holds, one row per (chain, source, asset, segregated rail).
76
+ * @description Lists the business's balances, with one row per chain, source, asset and segregated rail. To calculate an asset total, sum its rows. A present `segregated_rail` restricts a balance to that rail; an omitted value identifies a spendable balance.
77
77
  *
78
- * ROWS ARE NOT AGGREGATED PER ASSET. A business holding USDC on two chains, or holding both a spendable and a rail-locked USDC balance, sees a row for each. segregated_rail is what tells them apart: absent means spendable, and a present value means the balance can be held and withdrawn over that rail only. Summing the rows for one asset gives the total holding; only the rows themselves say which part of it is spendable.
78
+ * **Amounts**
79
79
  *
80
- * PENDING IS GROSS AND DIRECTIONAL. pending_incoming_native and pending_outgoing_native are two independent non-negative figures and are never netted against one another. A bucket with 3000 leaving and 500 arriving reports both; there is no single net number, because it would hide the withdrawal that is reducing what the business can spend. What IS netted, inside each figure, is a single movement's pass-through legs: a purchase that credits and debits the same account within one movement counts once, not twice in both directions.
80
+ * `balance_native` is settled. `pending_incoming_native` and `pending_outgoing_native` are separate, non-negative amounts; they are not netted against each other. Within each amount, credits and debits passing through the same account in a single movement are netted.
81
81
  *
82
- * UNPRICED ASSETS CARRY NO DOLLAR FIGURE. When we hold no USD rate for an asset at created_ts, balance_usd, pending_incoming_usd and pending_outgoing_usd are omitted rather than reported as 0. Treat an absent field as "not valued", never as zero value.
82
+ * USD fields are omitted when no rate is available at `created_ts`. An omitted value means unpriced, not zero.
83
83
  *
84
- * IDS ARE STABLE. A balance id is derived from (business, chain, source, asset, segregated rail), so the same bucket keeps the same id across reads even as its figures move. Two sweeps can be diffed row by row, and any row can be re-read with the retrieve.
84
+ * **Pagination**
85
85
  *
86
- * PAGING. limit defaults to 10 and may not exceed 100; a larger value is rejected rather than reduced, so has_more always answers the question you asked. starting_after and ending_before each take a balance id and cannot be combined. Rows are ordered by chain, then source, then asset, then rail — a stable order, not a chronological one. has_more reports whether more rows exist in the direction this page was taken. A cursor that names no current row is rejected rather than ignored: a bucket that has emptied since you saw it is gone from the list, and paging from it would silently restart at the beginning.
86
+ * `limit` defaults to 10 and cannot exceed 100. Use a balance ID as either `starting_after` or `ending_before`, not both. Rows are ordered by chain, source, asset and rail. `has_more` refers to the requested paging direction. A cursor that no longer identifies a current balance, including an emptied bucket, returns an error.
87
87
  *
88
- * FRESHNESS. Every figure is as of created_ts, which is the instant the ledger was cut and the assets were priced. It is a live read: there is no cache and no lag.
88
+ * **Snapshot**
89
+ *
90
+ * Balances are read live. All amounts and USD valuations reflect the snapshot time in `created_ts`. A balance ID is stable for the same business, chain, source, asset and rail.
89
91
  */
90
92
  get: operations["balances.list"];
91
93
  put?: never;
@@ -105,13 +107,11 @@ export interface paths {
105
107
  };
106
108
  /**
107
109
  * Retrieve a balance
108
- * @description Retrieves one balance by id.
109
- *
110
- * A balance is ONE (chain, source, asset, segregated rail) bucket, not an asset total. Its id is derived from that key, so it is stable across reads and can be stored and re-read.
110
+ * @description Retrieves one balance by its stable ID. Each balance represents a chain, source, asset and segregated rail, rather than an asset total.
111
111
  *
112
- * FIGURES. balance_native is settled; pending_incoming_native and pending_outgoing_native are the in-flight legs, reported separately and never netted against one another. What IS netted, inside each figure, is a single movement's pass-through legs: a purchase that credits and debits the same account within one movement counts once, not twice in both directions. The _usd fields are omitted entirely when we hold no rate for the asset at created_ts — absent means "not valued", never zero.
112
+ * `balance_native` is settled. Pending incoming and outgoing amounts are reported separately. Within each pending amount, credits and debits passing through the same account in a single movement are netted. USD fields are omitted when no rate is available at `created_ts`; omission means unpriced, not zero.
113
113
  *
114
- * SCOPING. Any balance this credential's business holds may be retrieved, and nothing else. An id that names no bucket, one belonging to another business, and one whose bucket has emptied since you saw it are answered identically.
114
+ * Unknown, emptied, and cross-business balance IDs return the same not-found response.
115
115
  */
116
116
  get: operations["balances.get"];
117
117
  put?: never;
@@ -151,15 +151,17 @@ export interface paths {
151
151
  };
152
152
  /**
153
153
  * List events
154
- * @description Lists the events recorded for the platform, newest first.
154
+ * @description Lists all eligible events for the credential's business and environment, newest first. One credential addresses one business; there is no additional account scope. Events about pay-ins, payouts and held deposits are excluded.
155
+ *
156
+ * **Availability**
155
157
  *
156
- * SCOPING. The response covers every event this credential recorded, so one cursor sweep reconciles everything. There is no narrower scope to ask for: one credential addresses one business.
158
+ * Events enter the list 60 seconds after `created_ts`. Retrieve by ID to read an event during that window. The delay keeps cursor pages stable: older events do not appear behind a cursor that has already passed them. Events remain available for at least 90 days after recording.
157
159
  *
158
- * FRESHNESS. An event becomes listable 60 seconds after its created_ts. Inside that window it can be retrieved by id but is not returned here. Once a page has been served, the range it covers is complete and final: no older event can appear behind a cursor that has already passed it. Retrieval by id is not lagged.
160
+ * **Pagination**
159
161
  *
160
- * PAGING. limit defaults to 10 and may not exceed 100; a larger value is rejected rather than reduced, so has_more always answers the question you asked. starting_after and ending_before each take an event id and cannot be combined. Pages are newest-first in both directions — ending_before returns the events immediately newer than the cursor, still ordered newest first. has_more reports whether more LISTABLE events exist in the direction this page was taken (older ones under starting_after, newer ones under ending_before); it is not a statement about the stream as a whole. Paging with ending_before from an event recorded moments ago can therefore return an empty page with has_more false while newer events exist but have not yet cleared the freshness window above.
162
+ * `limit` defaults to 10 and cannot exceed 100. Larger values are rejected. Use an event ID as either `starting_after` for older events or `ending_before` for immediately newer events, not both. Both directions return newest-first pages.
161
163
  *
162
- * RETENTION. An event remains listable for at least 90 days after it is recorded.
164
+ * `has_more` refers to currently listable events in the requested direction. It may be false while newer events are still within the availability window. Unknown, excluded, cross-business and cross-environment cursors return the same invalid-cursor response. Restart from the newest page by omitting the cursor.
163
165
  */
164
166
  get: operations["events.list"];
165
167
  put?: never;
@@ -179,13 +181,9 @@ export interface paths {
179
181
  };
180
182
  /**
181
183
  * Retrieve an event
182
- * @description Retrieves one recorded event by id.
184
+ * @description Retrieves an eligible event for the credential's business and environment. Events are readable immediately after recording, including the 60 seconds before they appear in list results, and remain retrievable for at least 90 days.
183
185
  *
184
- * FRESHNESS. Retrieval is not lagged: an event is readable as soon as it is recorded, including during the 60 seconds before it becomes listable.
185
- *
186
- * SCOPING. Any event this credential recorded may be retrieved, and nothing else. An id that names no event, one belonging to another business, and one recorded in the other environment are answered identically.
187
- *
188
- * RETENTION. An event remains retrievable for at least 90 days after it is recorded.
186
+ * One credential addresses one business; there is no additional account scope. Events about pay-ins, payouts and held deposits are excluded. Unknown, excluded, cross-business and cross-environment IDs return the same not-found response.
189
187
  */
190
188
  get: operations["events.get"];
191
189
  put?: never;
@@ -196,6 +194,90 @@ export interface paths {
196
194
  patch?: never;
197
195
  trace?: never;
198
196
  };
197
+ "/v1/external_wallet_operations/{id}": {
198
+ parameters: {
199
+ query?: never;
200
+ header?: never;
201
+ path?: never;
202
+ cookie?: never;
203
+ };
204
+ /**
205
+ * Retrieve an external wallet operation
206
+ * @description Returns processing status and the resulting wallet id. A succeeded registration records the wallet; it does not promise screening clearance, custodian approval or withdrawal eligibility.
207
+ */
208
+ get: operations["external_wallet_operations.get"];
209
+ put?: never;
210
+ post?: never;
211
+ delete?: never;
212
+ options?: never;
213
+ head?: never;
214
+ patch?: never;
215
+ trace?: never;
216
+ };
217
+ "/v1/external_wallets": {
218
+ parameters: {
219
+ query?: never;
220
+ header?: never;
221
+ path?: never;
222
+ cookie?: never;
223
+ };
224
+ /**
225
+ * List external wallets
226
+ * @description Lists withdrawal addresses connected to the business, with the latest available on-chain holdings of tokens Stable Sea tracks. These holdings describe the external address and are excluded from `/v1/balances`.
227
+ *
228
+ * **Holdings**
229
+ *
230
+ * Holdings are available for wallets that are enabled, cleared for withdrawals, and on Ethereum or Stellar. Reads run in the background every few minutes. Readings are returned for up to 15 minutes; `holdings_read_ts` identifies the reading time.
231
+ *
232
+ * - `ok`: the latest read succeeded.
233
+ * - `stale`: the latest read failed; the last successful reading is shown.
234
+ * - `unavailable`: no reading is available. This does not mean the wallet is empty.
235
+ * - `shared_address`: a Stellar address with a memo; address-level holdings cannot be attributed to this destination.
236
+ * - `not_monitored`: the wallet does not meet the monitoring conditions. It is still listed, without holdings.
237
+ *
238
+ * **Pagination**
239
+ *
240
+ * `limit` defaults to 10 and cannot exceed 100. Use an external wallet ID as either `starting_after` or `ending_before`, not both. Wallets are ordered newest first by `created_ts`, then ID. An unknown or removed cursor returns an error.
241
+ */
242
+ get: operations["external_wallets.list"];
243
+ put?: never;
244
+ /**
245
+ * Register an external wallet
246
+ * @description Submits a business-owned wallet for registration using the same validation, screening and network rules as Terminal. Poll the returned operation until processing succeeds or fails, then retrieve its external_wallet. Registration does not enable withdrawals or clear a pending review. Requires money:external_wallets_write and an Idempotency-Key.
247
+ */
248
+ post: operations["external_wallets.create"];
249
+ delete?: never;
250
+ options?: never;
251
+ head?: never;
252
+ patch?: never;
253
+ trace?: never;
254
+ };
255
+ "/v1/external_wallets/{id}": {
256
+ parameters: {
257
+ query?: never;
258
+ header?: never;
259
+ path?: never;
260
+ cookie?: never;
261
+ };
262
+ /**
263
+ * Retrieve an external wallet
264
+ * @description Retrieves one withdrawal address connected to the business, with its latest available on-chain holdings when monitored. Holdings describe the external address and are excluded from `/v1/balances`. See the list endpoint for monitoring conditions and `holdings_status` values.
265
+ *
266
+ * Unknown, removed, and cross-business wallet IDs return the same not-found response.
267
+ */
268
+ get: operations["external_wallets.get"];
269
+ put?: never;
270
+ /**
271
+ * Rename an external wallet
272
+ * @description Submits a rename for a wallet your business connected. The new name is screened using Terminal's existing rules. Poll the returned operation for the outcome. The address, network and other wallet properties remain unchanged.
273
+ */
274
+ post: operations["external_wallets.rename"];
275
+ delete?: never;
276
+ options?: never;
277
+ head?: never;
278
+ patch?: never;
279
+ trace?: never;
280
+ };
199
281
  "/v1/notifications": {
200
282
  parameters: {
201
283
  query?: never;
@@ -225,7 +307,7 @@ export interface paths {
225
307
  };
226
308
  /**
227
309
  * Retrieve a notification
228
- * @description Returns one eligible business-wide notice by id. Other businesses' and excluded notices are indistinguishable from unknown ids. A test credential cannot read live notices.
310
+ * @description Returns one eligible business-wide notice by id. Other businesses' and excluded notices are indistinguishable from unknown ids. A test credential cannot read live notices. Notifications already announced in the credential environment remain retrievable after a ledger-mode cutover.
229
311
  */
230
312
  get: operations["notifications.retrieve"];
231
313
  put?: never;
@@ -251,11 +333,11 @@ export interface paths {
251
333
  put?: never;
252
334
  /**
253
335
  * Place a fund order
254
- * @description Records a fund order for the authenticated business and returns it as pending. Placement is not execution: the order is executed asynchronously against the same authorization checks and the same trading engine the product uses, and the quoted price is verified against the NAV the trade runs at. Poll the order to follow it through executing to filled or failed.
336
+ * @description Creates a fund order for the authenticated business and returns it as `pending`. Execution is asynchronous and uses the same authorization checks and trading engine as Terminal. Retrieve the order to follow it through `executing` to `filled` or `failed`.
255
337
  *
256
- * An order can fail at execution for reasons a placement cannot foresee. An express order in particular draws on a shared reserve whose liquidity is not promised by the quote, and a quoted price that has drifted from the NAV the trade executes at is refused rather than filled. A failed order names the reason; an express refusal can be re-placed as standard against the same unexpired quote.
338
+ * The quoted price is checked against the NAV at execution. Price changes and insufficient express liquidity can cause execution to fail. The failed order includes a reason. While the quote remains valid, an express refusal can be submitted as a new standard order.
257
339
  *
258
- * Orders execute on the production API. Use a production credential created in Stable Sea Terminal with an account from the same business. A credential that this host does not serve is refused with environment_not_served. The refusal is returned before the order exists, so no idempotency key is consumed and nothing is left pending.
340
+ * Use a Live key with the production URL or a Test key with the sandbox URL. A credential environment this host does not serve returns `environment_not_served` before an order or idempotency record is created.
259
341
  */
260
342
  post: operations["orders.create"];
261
343
  delete?: never;
@@ -284,6 +366,34 @@ export interface paths {
284
366
  patch?: never;
285
367
  trace?: never;
286
368
  };
369
+ "/v1/policies": {
370
+ parameters: {
371
+ query?: never;
372
+ header?: never;
373
+ path?: never;
374
+ cookie?: never;
375
+ };
376
+ /**
377
+ * Read effective money controls
378
+ * @description Returns the authenticated business's movement switches, effective limits, usage and outgoing approval tiers. This read-only snapshot does not authorize a transfer or enable withdrawal creation through the API. Controls are checked again when a request executes.
379
+ *
380
+ * **Limits**
381
+ *
382
+ * A null limit means no flow-wide USD cap; other asset and settlement checks still apply. Limit windows include calendar and rolling periods. Release delay and destination cooloff report `supported: false`.
383
+ *
384
+ * **Approvals**
385
+ *
386
+ * The highest matching approval threshold applies when USD valuation is available. If valuation is unavailable for an on-chain withdrawal or fund trade, the highest configured rule for that flow applies regardless of amount. A pending request must be resubmitted if its policy changes.
387
+ */
388
+ get: operations["policies.snapshot"];
389
+ put?: never;
390
+ post?: never;
391
+ delete?: never;
392
+ options?: never;
393
+ head?: never;
394
+ patch?: never;
395
+ trace?: never;
396
+ };
287
397
  "/v1/quotes": {
288
398
  parameters: {
289
399
  query?: never;
@@ -293,11 +403,9 @@ export interface paths {
293
403
  };
294
404
  /**
295
405
  * Price a fund trade
296
- * @description Prices one fund trade so it can be echoed into an order. A fund order is bound to the price the caller was quoted, so this is the only way to obtain one. The quote is computed, not stored: it has no id and cannot be retrieved afterwards.
406
+ * @description Returns a price to include when placing a fund order. Quotes are calculated on request, have no ID and cannot be retrieved later.
297
407
  *
298
- * The express block states the TERMS of the express pathway — its commission, its per-order ceiling and what it would deliver — and is not a statement that express is available. Express settlement draws on a shared reserve, so an express order can be refused at execution even when a quote carried these terms. There is deliberately no availability flag: a reserve reading taken now would warrant nothing about the reserve when the order executes.
299
- *
300
- * A refused express order can be re-placed with settlement "standard" against this same quote while it is unexpired. The price is the same either way; express changes only the commission and the delivered quantity.
408
+ * `express` describes the commission, order limit, estimated quantity and settlement estimate for express settlement. These terms do not guarantee available liquidity. An express order may fail at execution; while the quote remains valid, you can submit a new standard order using the same quoted price. Standard settlement changes the commission and delivered quantity, not the quoted price.
301
409
  */
302
410
  get: operations["quotes.quote"];
303
411
  put?: never;
@@ -377,7 +485,7 @@ export interface paths {
377
485
  };
378
486
  /**
379
487
  * Retrieve statement content
380
- * @description Returns the immutable issued statement values as display-ready JSON. Corrected statements remain retrievable and name their replacement.
488
+ * @description Returns the immutable issued statement values as display-ready JSON. Corrected statements remain retrievable and name their replacement. Pay-ins and payouts are not served on this API, so they are not listed in transactions; the balances and totals are the printed ones and still include their effect, which means a statement for a period in which the business made a payment does not reconcile from its transactions alone.
381
489
  */
382
490
  get: operations["statements.content.retrieve"];
383
491
  put?: never;
@@ -397,21 +505,30 @@ export interface paths {
397
505
  };
398
506
  /**
399
507
  * List transactions
400
- * @description Lists the business's money movements, newest first.
508
+ * @description Lists the business's money movements, newest first. Each transaction represents one movement.
509
+ *
510
+ * **Settled amounts**
511
+ *
512
+ * `asset_changes` reports the signed net effect on the business's settled holdings, after fees and taxes: negative amounts decrease holdings and positive amounts increase them. Transfers through accounts outside `/v1/balances`, such as bank accounts and external addresses, are excluded from these amounts. Failed, unsettled parts of a movement contribute no change.
401
513
  *
402
- * SCOPING. The response covers every movement booked for this credential's business, so one cursor sweep reconciles everything. There is no narrower scope to ask for: one credential addresses one business.
514
+ * Reconcile using `asset_changes` from all transactions, including failed transactions, rather than filtering by status. A partially settled movement reports the changes that settled. Pay-ins and payouts are excluded from transaction, statement-transaction and event lists, but still affect balances and statement totals. Businesses with those movements need additional payment records to reconcile.
403
515
  *
404
- * WHAT A ROW IS. One row is one MOVEMENT — the whole operation, not its ledger legs. asset_changes carries its signed net effect on the business's own holdings, one entry per asset: negative left, positive arrived. Amounts are net of the ledger's fees and taxes, on the same basis /v1/balances reports. Legs that touch accounts /v1/balances does not report are left out — a payout's beneficiary side, a bank account, a whitelisted withdrawal address — and so are legs that failed, which never reached a balance.
516
+ * **Status**
405
517
  *
406
- * RECONCILING AGAINST /v1/balances. Sum an asset's amounts across EVERY transaction, with no filter on status, and the total is the movement in that asset's settled balance. Do not restrict the sum to completed transactions: asset_changes reports what has SETTLED, which is not the same fact as the movement's status. A movement whose legs are still in flight reports no change at all, even one already marked processing; a movement that FAILED after part of it settled reports the part that settled, because that money really moved.
518
+ * - `pending`: execution has not started.
519
+ * - `processing`: at least one part is in flight.
520
+ * - `completed`: all parts settled; `completed_ts` records the final settlement.
521
+ * - `failed`: the movement ended unsuccessfully; `failed_ts` records the failure. Some parts may already have settled and are included in `asset_changes`.
407
522
  *
408
- * STATUS. pending means no leg has been picked up yet. processing means at least one leg is in flight. completed means every leg settled, and completed_ts is the instant the last one did. failed means the movement terminated without settling, and failed_ts is when. The two non-terminal states are reported separately because they call for opposite responses: a movement nothing has touched may be worth chasing, one already in flight must be left alone.
523
+ * **Pagination**
409
524
  *
410
- * PAGING. limit defaults to 10 and may not exceed 100; a larger value is rejected rather than reduced, so has_more always answers the question you asked. starting_after and ending_before each take a transaction id and cannot be combined. Pages are newest-first in both directions — ending_before returns the transactions immediately newer than the cursor, still ordered newest first. has_more reports whether more transactions exist in the direction this page was taken (older ones under starting_after, newer ones under ending_before); it is not a statement about the history as a whole. A cursor that names no readable transaction is rejected rather than ignored, because paging from it would silently restart at the beginning.
525
+ * `limit` defaults to 10 and cannot exceed 100. Use a transaction ID as either `starting_after` for older transactions or `ending_before` for immediately newer transactions, not both. Both directions return newest-first pages. `has_more` refers to the requested direction. An unreadable cursor returns an error.
411
526
  *
412
- * PAGING IS STABLE UNDER NEW ACTIVITY. The order is (created_ts, id), both of which are fixed when a movement is opened and never change afterwards — not when it settles, not when it fails. A movement booked while you are paging therefore lands at a position the order already defines: sweeping older with starting_after can neither skip a row nor repeat one, because new movements land NEWER than every cursor you hold. Paging the other way with ending_before deliberately can surface a movement you have not seen — that is what asking for newer rows means — so a sweep that walks forward and back across the same boundary may see one row twice. Reconcile on the transaction id.
527
+ * The order is fixed by `created_ts` and ID. New activity does not shift an older-page sweep; changing direction can return a previously seen transaction. Deduplicate by ID.
413
528
  *
414
- * FRESHNESS. There is no lag and no cache: a movement is listable as soon as it is booked, and its status is read live on every request. A row you fetched earlier can therefore come back with a later status; its id, created_ts and type will not have moved.
529
+ * **Updates**
530
+ *
531
+ * Transactions are available as soon as they are booked. Reads return the current status and settled changes. ID, `created_ts` and type remain unchanged.
415
532
  */
416
533
  get: operations["transactions.list"];
417
534
  put?: never;
@@ -431,17 +548,15 @@ export interface paths {
431
548
  };
432
549
  /**
433
550
  * Retrieve a transaction
434
- * @description Retrieves one transaction by id.
435
- *
436
- * A transaction is one MOVEMENT — the whole operation, not its ledger legs. Its id is stable for the life of the movement, so it can be stored and re-read as the movement progresses.
551
+ * @description Retrieves one money movement by its stable transaction ID.
437
552
  *
438
- * FIGURES. asset_changes is the signed net effect on the business's OWN SETTLED holdings, one entry per asset: negative left, positive arrived. Amounts are net of the ledger's fees and taxes, on the same basis /v1/balances reports. Legs touching accounts /v1/balances does not report are left out, and so are legs that failed — a failed leg never reached a balance.
553
+ * `asset_changes` reports its signed net effect on the business's settled holdings, after fees and taxes. Negative amounts decrease holdings; positive amounts increase them. Parts that have not settled, or that touch accounts outside `/v1/balances`, contribute no change.
439
554
  *
440
- * IT REPORTS WHAT SETTLED, NOT WHAT THE STATUS SAYS. A movement still in flight reports no change at all, because none of its legs has reached a balance yet. A movement that failed after part of it settled reports the part that settled. One whose every leg failed reports no change. Sum an asset's amounts across every transaction — with no filter on status — to reconcile against /v1/balances.
555
+ * A movement can fail after partial settlement. Reconcile using the settled changes from every transaction, including failed ones. Pay-ins and payouts are excluded from this API but still affect balances and statement totals, so businesses with those movements need additional payment records to reconcile.
441
556
  *
442
- * STATUS. The four states are pending, processing, completed and failed. completed_ts and failed_ts are mutually exclusive, and neither is present while the movement is in flight.
557
+ * The status is `pending`, `processing`, `completed` or `failed`. `completed_ts` and `failed_ts` are mutually exclusive and absent while execution is pending or processing.
443
558
  *
444
- * SCOPING. Any transaction booked for this credential's business may be retrieved, and nothing else. An id that names no movement and one belonging to another business are answered identically.
559
+ * Unknown and cross-business IDs return the same not-found response.
445
560
  */
446
561
  get: operations["transactions.get"];
447
562
  put?: never;
@@ -467,7 +582,7 @@ export interface paths {
467
582
  put?: never;
468
583
  /**
469
584
  * Create a webhook endpoint
470
- * @description Registers one HTTPS webhook endpoint for the authenticated business. The signing secret is returned only by this response and its encrypted idempotent replay.
585
+ * @description Registers one HTTPS webhook endpoint for the authenticated business. The signing secret is returned only by this response and a replay of the same request with its idempotency key.
471
586
  */
472
587
  post: operations["webhook_endpoints.create"];
473
588
  delete?: never;
@@ -509,7 +624,7 @@ export interface paths {
509
624
  };
510
625
  /**
511
626
  * List webhook deliveries
512
- * @description Lists secret-free delivery health for an endpoint, newest first. limit defaults to 10 and may not exceed 100. starting_after and ending_before are mutually exclusive.
627
+ * @description Lists delivery status for an endpoint, newest first, without signing secrets. limit defaults to 10 and may not exceed 100. starting_after and ending_before are mutually exclusive. Deliveries of events about pay-ins and payouts (and held deposits, which have no /v1 transaction) are not served, and none is sent. A cursor that names a withheld delivery is refused like a cursor that names no delivery, so restart from the newest page by sending no cursor.
513
628
  */
514
629
  get: operations["webhook_deliveries.list"];
515
630
  put?: never;
@@ -529,7 +644,7 @@ export interface paths {
529
644
  };
530
645
  /**
531
646
  * Retrieve a webhook delivery
532
- * @description Retrieves delivery health for one endpoint and event.
647
+ * @description Retrieves delivery health for one endpoint and event. Deliveries of events about pay-ins and payouts (and held deposits, which have no /v1 transaction) are not served, and none is sent. Asking for one is answered like an id that names no delivery.
533
648
  */
534
649
  get: operations["webhook_deliveries.get"];
535
650
  put?: never;
@@ -551,7 +666,7 @@ export interface paths {
551
666
  put?: never;
552
667
  /**
553
668
  * Replay a webhook delivery
554
- * @description Requeues one dead webhook delivery using its original event and endpoint revision, with a new three-day retry window.
669
+ * @description Requeues one dead webhook delivery using its original event and endpoint revision, with a new three-day retry window. Deliveries of events about pay-ins and payouts (and held deposits, which have no /v1 transaction) are not served, and none is sent. Asking to replay one is answered like an id that names no delivery, and nothing is requeued.
555
670
  */
556
671
  post: operations["webhook_deliveries.replay"];
557
672
  delete?: never;
@@ -571,7 +686,7 @@ export interface paths {
571
686
  put?: never;
572
687
  /**
573
688
  * Disable a webhook endpoint
574
- * @description Disables a webhook endpoint so future events are not materialized for delivery. Repeating the operation is safe.
689
+ * @description Disables a webhook endpoint so future events are no longer scheduled for delivery. Repeating the operation is safe.
575
690
  */
576
691
  post: operations["webhook_endpoints.disable"];
577
692
  delete?: never;
@@ -591,7 +706,7 @@ export interface paths {
591
706
  put?: never;
592
707
  /**
593
708
  * Rotate a webhook endpoint signing secret
594
- * @description Issues a replacement signing secret for this endpoint. The secret is returned only by this response and its encrypted idempotent replay.
709
+ * @description Issues a replacement signing secret for this endpoint. The secret is returned only by this response and a replay of the same request with its idempotency key.
595
710
  */
596
711
  post: operations["webhook_endpoints.rotate_secret"];
597
712
  delete?: never;
@@ -621,7 +736,7 @@ export interface components {
621
736
  capabilities: string[];
622
737
  /**
623
738
  * Format: date-time
624
- * @description When this business's first API credential was issued in this environment -- the moment its API account came into existence. It is NOT the date the business signed up on the web app. Until the first key is rotated this equals the credential's own created_ts on /v1/api_clients/current; after a rotation that one moves and this one does not.
739
+ * @description When the business's first API credential was issued in this environment. Unchanged by key rotation; separate from the business's signup date.
625
740
  */
626
741
  created_ts: string;
627
742
  /** @description The account id. Constant for the life of a credential. */
@@ -642,13 +757,13 @@ export interface components {
642
757
  asset: string;
643
758
  /** @description The settled balance, in the asset's own units. */
644
759
  balance_native: string;
645
- /** @description The settled balance valued in USD. ABSENT when we hold no rate for this asset at created_ts — the field is omitted rather than reported as 0, which would be an invented number. */
760
+ /** @description Settled balance in USD. Omitted when no rate is available at created_ts; omission means unpriced, not zero. */
646
761
  balance_usd?: string;
647
762
  /**
648
763
  * @description The network this holding sits on. off_chain is the chain-agnostic omnibus balance; unknown means the chain could not be attributed, and the holding is reported anyway rather than dropped.
649
764
  * @enum {string}
650
765
  */
651
- chain: "off_chain" | "ethereum" | "arbitrum" | "base" | "stellar" | "unknown";
766
+ chain: "off_chain" | "ethereum" | "arbitrum" | "base" | "stellar" | "solana" | "unknown";
652
767
  /**
653
768
  * Format: date-time
654
769
  * @description The instant the ledger was cut and the assets were priced. Every figure below is as of this instant.
@@ -656,19 +771,19 @@ export interface components {
656
771
  created_ts: string;
657
772
  /** @description The balance id. Derived from (business, chain, source, asset, segregated rail), so it is stable across reads and safe to diff against. */
658
773
  id: string;
659
- /** @description Always true. A balance is a fact about real custodied money; there is no test ledger. */
774
+ /** @description Whether the resource represents live financial data. False for an isolated simulated ledger; independent of the reading credential. */
660
775
  livemode: boolean;
661
776
  /** @enum {string} */
662
777
  object: "balance";
663
- /** @description Value on its way IN to this bucket and not yet settled, in the asset's own units. Never netted against pending_outgoing_native. A single movement's pass-through legs ARE netted inside this figure: an account credited and debited within one movement counts once, not twice in both directions. */
778
+ /** @description Value incoming to this balance and not yet settled, in the asset's own units. Never netted against pending_outgoing_native. A single movement's pass-through legs are netted inside this figure: an account credited and debited within one movement counts once, not twice in both directions. */
664
779
  pending_incoming_native: string;
665
- /** @description pending_incoming_native valued in USD. ABSENT when we hold no rate for this asset at created_ts. */
780
+ /** @description pending_incoming_native valued in USD. Omitted when no rate is available at created_ts. */
666
781
  pending_incoming_usd?: string;
667
- /** @description Value on its way OUT of this bucket and not yet settled, in the asset's own units. Never netted against pending_incoming_native. A single movement's pass-through legs ARE netted inside this figure: an account credited and debited within one movement counts once, not twice in both directions. */
782
+ /** @description Value outgoing from this balance and not yet settled, in the asset's own units. Never netted against pending_incoming_native. A single movement's pass-through legs are netted inside this figure: an account credited and debited within one movement counts once, not twice in both directions. */
668
783
  pending_outgoing_native: string;
669
- /** @description pending_outgoing_native valued in USD. ABSENT when we hold no rate for this asset at created_ts. */
784
+ /** @description pending_outgoing_native valued in USD. Omitted when no rate is available at created_ts. */
670
785
  pending_outgoing_usd?: string;
671
- /** @description The rail this balance is locked to, when it is locked to one. ABSENT MEANS SPENDABLE. A present value (onchain_stellar today) means the value can be held and withdrawn over that rail only, and is not fungible with the spendable balance in the same asset. */
786
+ /** @description The rail to which this balance is restricted. Omitted for spendable balances. A present value means the balance can be held and withdrawn only over that rail. */
672
787
  segregated_rail?: string;
673
788
  /**
674
789
  * @description The custodian holding this balance.
@@ -700,7 +815,7 @@ export interface components {
700
815
  /** @description RFC 6901 JSON Pointer to the offending field. */
701
816
  pointer?: string;
702
817
  }[];
703
- /** @description Human-readable message. Not a contract; branch on code/type. */
818
+ /** @description Human-readable explanation. Use code or type for programmatic handling. */
704
819
  message?: string;
705
820
  /** @description RFC 6901 JSON Pointer to the first offending field (validation errors). */
706
821
  param?: string;
@@ -746,7 +861,101 @@ export interface components {
746
861
  object: "list";
747
862
  };
748
863
  /** @enum {string} */
749
- EventTypeName: "notification.created" | "order.updated" | "transaction.created" | "transaction.updated";
864
+ EventTypeName: "external_wallet.created" | "external_wallet.updated" | "external_wallet_operation.updated" | "notification.created" | "order.updated" | "transaction.created" | "transaction.updated";
865
+ ExternalWallet: {
866
+ /** @description The wallet's on-chain address, exactly as the business connected it. */
867
+ address: string;
868
+ /**
869
+ * Format: date-time
870
+ * @description When the wallet was connected. The list is ordered and paged on this instant.
871
+ */
872
+ created_ts: string;
873
+ /**
874
+ * Format: uri
875
+ * @description The address's page on a public block explorer. Absent when the network has none.
876
+ */
877
+ explorer_url?: string;
878
+ /** @description The wallet's non-zero holdings of the tokens Stable Sea tracks, read from the chain. Only populated when holdings_status is ok or stale; an ok reading with no entries means the wallet holds none of those tokens. These are not funds Stable Sea holds, and they are never part of /v1/balances. */
879
+ holdings: components["schemas"]["ExternalWalletHolding"][];
880
+ /**
881
+ * Format: date-time
882
+ * @description When holdings was read from the chain. Present only when holdings_status is ok or stale.
883
+ */
884
+ holdings_read_ts?: string;
885
+ /**
886
+ * @description Availability of holdings. ok: latest read succeeded. stale: latest read failed and the last successful reading is shown. unavailable: no successful reading within 15 minutes; empty holdings do not imply an empty wallet. shared_address: Stellar memo destination whose holdings cannot be attributed at address level. not_monitored: disabled, not cleared for withdrawals, or on an unsupported network. Available readings are at most 15 minutes old; holdings_read_ts identifies their time.
887
+ * @enum {string}
888
+ */
889
+ holdings_status: "ok" | "stale" | "unavailable" | "shared_address" | "not_monitored";
890
+ /** @description The external wallet id. Stable for the life of the wallet and safe to store. */
891
+ id: string;
892
+ /** @description Whether holdings represent live on-chain data. False for isolated simulated holdings; independent of the reading credential. */
893
+ livemode: boolean;
894
+ /** @description Optional Stellar memo identifying this withdrawal destination. Address-level holdings are not reported when a memo is present. */
895
+ memo?: string;
896
+ /** @description The name your business assigned to this wallet. */
897
+ name?: string;
898
+ /** @enum {string} */
899
+ object: "external_wallet";
900
+ /** @description The network the wallet is on, as a withdrawal rail (onchain_ethereum, onchain_stellar). */
901
+ payment_rail: string;
902
+ /**
903
+ * @description enabled: the business has the wallet switched on as a withdrawal destination (a withdrawal to it can still be held for review). disabled: the business switched it off, and withdrawals to it are refused until it is enabled again.
904
+ * @enum {string}
905
+ */
906
+ status: "enabled" | "disabled";
907
+ };
908
+ ExternalWalletCreateInput: {
909
+ address: string;
910
+ memo?: string;
911
+ memo_not_required?: boolean;
912
+ name: string;
913
+ /** @description Confirm that this business owns and controls the wallet. */
914
+ owner_attestation: boolean;
915
+ /** @enum {string} */
916
+ payment_rail: "onchain_ethereum" | "onchain_stellar" | "onchain_solana";
917
+ /** @enum {string} */
918
+ symbol?: "USDC" | "XLM";
919
+ };
920
+ ExternalWalletHolding: {
921
+ /** @description The quantity held, in the token's own units. Exact, never rounded, and always above zero. */
922
+ amount: string;
923
+ /** @description The token's on-chain identity: the ERC-20 contract address on Ethereum, CODE:ISSUER on Stellar. Two tokens can share a symbol; this cannot. */
924
+ asset_ref: string;
925
+ /** @description The token's symbol (USDC, WTGXX). */
926
+ symbol: string;
927
+ /** @description The holding valued in USD, to the cent. null when valuation_basis is none: a token we do not value carries no dollar figure rather than a zero. */
928
+ usd_value: string | null;
929
+ /**
930
+ * @description How usd_value was reached. pegged: valued at 1.00 USD per unit, the fixed value Stable Sea's own ledger gives this asset. assumed_par: a USD stablecoin Stable Sea does not price, valued at 1.00 USD per unit by assumption. none: no price source, so not valued. usd_value is for display and is never part of a Stable Sea balance.
931
+ * @enum {string}
932
+ */
933
+ valuation_basis: "pegged" | "assumed_par" | "none";
934
+ };
935
+ ExternalWalletList: {
936
+ data: components["schemas"]["ExternalWallet"][];
937
+ has_more: boolean;
938
+ /** @enum {string} */
939
+ object: "list";
940
+ };
941
+ ExternalWalletOperation: {
942
+ /** Format: date-time */
943
+ created_ts: string;
944
+ /** @description The resulting wallet, once recorded. Registration does not enable withdrawals or clear review. */
945
+ external_wallet?: string;
946
+ failure_code?: string;
947
+ id: string;
948
+ livemode: boolean;
949
+ /** @enum {string} */
950
+ object: "external_wallet_operation";
951
+ /** @enum {string} */
952
+ operation: "create" | "rename";
953
+ /** @enum {string} */
954
+ state: "pending" | "succeeded" | "failed";
955
+ };
956
+ ExternalWalletRenameInput: {
957
+ name: string;
958
+ };
750
959
  List: {
751
960
  data: components["schemas"]["Resource"][];
752
961
  has_more: boolean;
@@ -826,6 +1035,112 @@ export interface components {
826
1035
  /** @enum {string} */
827
1036
  object: "list";
828
1037
  };
1038
+ Policy: {
1039
+ /** @description If USD valuation is unavailable for an on-chain withdrawal or fund trade, the highest configured approval rule for that flow applies regardless of amount. */
1040
+ approval_tiers: components["schemas"]["PolicyApprovalTier"][];
1041
+ /** @description The business's movement switch; not a guarantee that identity, compliance, asset or partner checks will permit execution. */
1042
+ enabled: boolean;
1043
+ limits: components["schemas"]["PolicyLimits"];
1044
+ new_destination_cooloff: {
1045
+ /** @description False: this control has not been implemented. */
1046
+ supported: boolean;
1047
+ };
1048
+ /** @enum {string} */
1049
+ object: "policy";
1050
+ rail: string;
1051
+ release_delay: {
1052
+ /** @description False: this control has not been implemented. */
1053
+ supported: boolean;
1054
+ };
1055
+ };
1056
+ /** @enum {string} */
1057
+ PolicyApprovalFlow: "ach_withdrawal" | "wire_withdrawal" | "onchain_withdrawal" | "fund_buy" | "fund_sell";
1058
+ PolicyApprovalTier: {
1059
+ /** Format: int32 */
1060
+ approvals_required: number;
1061
+ /** @enum {string} */
1062
+ flow: "ach_withdrawal" | "wire_withdrawal" | "onchain_withdrawal" | "fund_buy" | "fund_sell";
1063
+ /** @description When true, this tier applies at min_usd and above. When false, the amount must exceed min_usd. */
1064
+ min_inclusive: boolean;
1065
+ min_usd: string;
1066
+ /** @description Whether an additional named approver is required. approvals_required excludes the requester and the named approver. */
1067
+ named_approval_required: boolean;
1068
+ };
1069
+ PolicyDelay: {
1070
+ /** @description False: this control has not been implemented. */
1071
+ supported: boolean;
1072
+ };
1073
+ /** @enum {string} */
1074
+ PolicyLimitScope: "all_assets" | "par_usd_assets";
1075
+ PolicyLimits: {
1076
+ daily: {
1077
+ /** @enum {string} */
1078
+ applies_to: "all_assets" | "par_usd_assets";
1079
+ limit_usd: string;
1080
+ remaining_usd: string;
1081
+ /**
1082
+ * Format: int64
1083
+ * @description Movements omitted from the USD-valued used figure because no rate was available.
1084
+ */
1085
+ unpriced_movements: number;
1086
+ used_usd: string;
1087
+ /** @enum {string} */
1088
+ window: "calendar_day" | "calendar_week" | "rolling_24h" | "rolling_72h";
1089
+ } | null;
1090
+ /** @description Null means there is no flow-wide per-transaction USD cap. Asset and settlement-pathway gates still apply. */
1091
+ per_transaction: {
1092
+ /** @enum {string} */
1093
+ applies_to: "all_assets" | "par_usd_assets";
1094
+ limit_usd: string;
1095
+ remaining_usd: string;
1096
+ /**
1097
+ * Format: int64
1098
+ * @description Movements omitted from the USD-valued used figure because no rate was available.
1099
+ */
1100
+ unpriced_movements: number;
1101
+ used_usd: string;
1102
+ /** @enum {string} */
1103
+ window: "calendar_day" | "calendar_week" | "rolling_24h" | "rolling_72h";
1104
+ } | null;
1105
+ rolling: {
1106
+ /** @enum {string} */
1107
+ applies_to: "all_assets" | "par_usd_assets";
1108
+ limit_usd: string;
1109
+ remaining_usd: string;
1110
+ /**
1111
+ * Format: int64
1112
+ * @description Movements omitted from the USD-valued used figure because no rate was available.
1113
+ */
1114
+ unpriced_movements: number;
1115
+ used_usd: string;
1116
+ /** @enum {string} */
1117
+ window: "calendar_day" | "calendar_week" | "rolling_24h" | "rolling_72h";
1118
+ } | null;
1119
+ weekly: {
1120
+ /** @enum {string} */
1121
+ applies_to: "all_assets" | "par_usd_assets";
1122
+ limit_usd: string;
1123
+ remaining_usd: string;
1124
+ /**
1125
+ * Format: int64
1126
+ * @description Movements omitted from the USD-valued used figure because no rate was available.
1127
+ */
1128
+ unpriced_movements: number;
1129
+ used_usd: string;
1130
+ /** @enum {string} */
1131
+ window: "calendar_day" | "calendar_week" | "rolling_24h" | "rolling_72h";
1132
+ } | null;
1133
+ };
1134
+ PolicySnapshot: {
1135
+ data: components["schemas"]["Policy"][];
1136
+ livemode: boolean;
1137
+ /** @enum {string} */
1138
+ object: "policy_snapshot";
1139
+ /** Format: date-time */
1140
+ observed_ts: string;
1141
+ };
1142
+ /** @enum {string} */
1143
+ PolicyWindowKind: "calendar_day" | "calendar_week" | "rolling_24h" | "rolling_72h";
829
1144
  Quote: {
830
1145
  amount_usd: string;
831
1146
  /** @enum {string} */
@@ -843,16 +1158,16 @@ export interface components {
843
1158
  QuoteExpress: {
844
1159
  /**
845
1160
  * Format: int64
846
- * @description The express commission rate, in basis points, this quote was struck at.
1161
+ * @description Express commission rate for this quote, in basis points.
847
1162
  */
848
1163
  fee_bps: number;
849
- /** @description What WisdomTree keeps out of the USDC sent, for this amount. */
1164
+ /** @description Express commission for this trade, in USD. */
850
1165
  fee_usd: string;
851
1166
  /** @description The per-order ceiling on the express pathway. A policy constant, identical for every business. */
852
1167
  max_order_usd: string;
853
1168
  /** @description What an express buy delivers: estimated_quantity less the commission. A standard buy delivers the gross figure instead. */
854
1169
  net_estimated_quantity: string;
855
- /** @description The end-to-end estimate an express order is dated at. A policy constant, never a function of live liquidity. */
1170
+ /** @description Estimated express settlement time in seconds. This estimate does not reflect current reserve liquidity. */
856
1171
  settlement_estimate_seconds: number;
857
1172
  };
858
1173
  Resource: {
@@ -918,6 +1233,7 @@ export interface components {
918
1233
  ramp_fees?: components["schemas"]["StatementRampFee"][];
919
1234
  superseded_by?: string;
920
1235
  totals: components["schemas"]["StatementTotals"];
1236
+ /** @description The period's movements. Pay-ins and payouts are never served on this API, so they are not listed here although balances and totals include their effect: for a period in which the business made a payment the entries do not sum to the totals. */
921
1237
  transactions: components["schemas"]["StatementEntry"][];
922
1238
  };
923
1239
  StatementEffect: {
@@ -937,7 +1253,7 @@ export interface components {
937
1253
  /** @enum {string} */
938
1254
  status: "completed" | "pending" | "failed";
939
1255
  /** @enum {string} */
940
- type: "ach_offramp" | "ach_onramp" | "adjustment" | "bank_payin" | "bank_payout" | "buy_fund_token" | "buy_fund_token_return" | "buy_fund_token_return_sweep" | "deposit_hold" | "deposit_return" | "fund_cash_subscription" | "fund_dividend_payout" | "fund_distribution_payout" | "fund_gas_tank" | "fund_xlm_reserve" | "gas_wallet_funding" | "go_account_conversion" | "go_account_custodial_transfer" | "go_account_external_send" | "onchain_deposit" | "onchain_withdrawal" | "ramp_fee_refund" | "reclassification" | "sell_fund_token" | "sell_fund_token_return" | "trade_order" | "treasury_booking" | "treasury_wire_credit" | "wire_offramp" | "wire_onramp";
1256
+ type: "ach_offramp" | "ach_onramp" | "adjustment" | "buy_fund_token" | "buy_fund_token_return" | "buy_fund_token_return_sweep" | "deposit_hold" | "deposit_return" | "deposit_reversal" | "fund_cash_subscription" | "fund_dividend_payout" | "fund_distribution_payout" | "fund_gas_tank" | "fund_xlm_reserve" | "gas_tank_refill" | "gas_wallet_funding" | "go_account_conversion" | "go_account_custodial_transfer" | "go_account_external_send" | "held_deposit_release" | "onchain_deposit" | "onchain_withdrawal" | "ramp_fee_refund" | "reclassification" | "sell_fund_token" | "sell_fund_token_return" | "trade_order" | "treasury_booking" | "treasury_wire_credit" | "wire_offramp" | "wire_onramp";
941
1257
  withdrawal?: components["schemas"]["StatementWithdrawal"];
942
1258
  };
943
1259
  StatementLine: {
@@ -1000,7 +1316,7 @@ export interface components {
1000
1316
  paid_to_bank: string;
1001
1317
  };
1002
1318
  Transaction: {
1003
- /** @description The signed net change to the business's own SETTLED holdings, one entry per asset, ordered by asset. Empty when nothing of the business's own has settled yet: a movement still pending or processing reports no change, and neither does one whose every leg failed. A failed movement DOES report the legs that settled before it failed. */
1319
+ /** @description Signed net changes to settled holdings, one entry per asset, ordered by asset. Empty when no part has settled. A failed movement includes any changes that settled before failure; pending or processing status alone does not determine whether this array is empty. */
1004
1320
  asset_changes: components["schemas"]["TransactionAssetChange"][];
1005
1321
  /**
1006
1322
  * Format: date-time
@@ -1019,23 +1335,23 @@ export interface components {
1019
1335
  failed_ts?: string;
1020
1336
  /** @description The transaction id. Stable for the life of the movement and safe to store. */
1021
1337
  id: string;
1022
- /** @description Always true. A transaction records real custodied money moving; there is no test ledger. */
1338
+ /** @description Whether the resource represents live financial data. False for an isolated simulated ledger; independent of the reading credential. */
1023
1339
  livemode: boolean;
1024
1340
  /** @enum {string} */
1025
1341
  object: "transaction";
1026
1342
  /**
1027
- * @description The movement's lifecycle. pending means no leg has been picked up yet; processing means at least one leg is in flight and none has failed the movement; completed means every leg settled; failed means the movement terminated without settling. pending and processing are reported separately rather than folded together, because only one of them is a reason to keep waiting.
1343
+ * @description The movement lifecycle: pending before execution starts; processing while at least one part is in flight; completed when all parts settle; failed when execution ends unsuccessfully. A failed movement can have settled changes, reported in asset_changes.
1028
1344
  * @enum {string}
1029
1345
  */
1030
1346
  status: "pending" | "processing" | "completed" | "failed";
1031
1347
  /**
1032
- * @description What the movement is. The full vocabulary is published; a business only ever sees the members its own activity produces.
1348
+ * @description What the movement is. The whole vocabulary a transaction can carry is published; a business only ever sees the members its own activity produces. Pay-ins and payouts are never served on this API.
1033
1349
  * @enum {string}
1034
1350
  */
1035
- type: "ach_offramp" | "ach_onramp" | "adjustment" | "bank_payin" | "bank_payout" | "buy_fund_token" | "buy_fund_token_return" | "buy_fund_token_return_sweep" | "deposit_hold" | "deposit_return" | "fund_cash_subscription" | "fund_dividend_payout" | "fund_distribution_payout" | "fund_gas_tank" | "fund_xlm_reserve" | "gas_wallet_funding" | "go_account_conversion" | "go_account_custodial_transfer" | "go_account_external_send" | "onchain_deposit" | "onchain_withdrawal" | "ramp_fee_refund" | "reclassification" | "sell_fund_token" | "sell_fund_token_return" | "trade_order" | "treasury_booking" | "treasury_wire_credit" | "wire_offramp" | "wire_onramp";
1351
+ type: "ach_offramp" | "ach_onramp" | "adjustment" | "buy_fund_token" | "buy_fund_token_return" | "buy_fund_token_return_sweep" | "deposit_hold" | "deposit_return" | "deposit_reversal" | "fund_cash_subscription" | "fund_dividend_payout" | "fund_distribution_payout" | "fund_gas_tank" | "fund_xlm_reserve" | "gas_tank_refill" | "gas_wallet_funding" | "go_account_conversion" | "go_account_custodial_transfer" | "go_account_external_send" | "held_deposit_release" | "onchain_deposit" | "onchain_withdrawal" | "ramp_fee_refund" | "reclassification" | "sell_fund_token" | "sell_fund_token_return" | "trade_order" | "treasury_booking" | "treasury_wire_credit" | "wire_offramp" | "wire_onramp";
1036
1352
  };
1037
1353
  TransactionAssetChange: {
1038
- /** @description The signed net change to the business's settled holdings of this asset, in the asset's own units. NEGATIVE LEFT the business, positive arrived. Net of the ledger's fees and taxes, on the same basis /v1/balances reports. Summing an asset's amounts across every transaction — not only the completed ones — gives the movement in its settled balance. */
1354
+ /** @description The signed net change to the business's settled holdings of this asset, in the asset's own units. Negative amounts decrease holdings; positive amounts increase them. Net of the ledger's fees and taxes, on the same basis /v1/balances reports. For a business with no pay-ins or payouts, summing an asset's amounts across every transaction — not only the completed ones — gives the movement in its settled balance. Pay-ins and payouts are not served on this API but still move /v1/balances, so a business with payments cannot reconcile its balance from transactions alone. */
1039
1355
  amount: string;
1040
1356
  /** @description The asset symbol, in the ledger's own casing (USDC, WTGXX, SOL:USDC). */
1041
1357
  asset: string;
@@ -1141,13 +1457,82 @@ export interface components {
1141
1457
  url?: string | null;
1142
1458
  };
1143
1459
  };
1144
- responses: never;
1460
+ responses: {
1461
+ /** @description Invalid input, version, account directive, or idempotency header. Correct the request before retrying. */
1462
+ Error400: {
1463
+ headers: {
1464
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1465
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1466
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1467
+ [name: string]: unknown;
1468
+ };
1469
+ content: {
1470
+ "application/json": components["schemas"]["Error"];
1471
+ };
1472
+ };
1473
+ /** @description Missing, invalid, revoked, or wrong-environment bearer credential. */
1474
+ Error401: {
1475
+ headers: {
1476
+ [name: string]: unknown;
1477
+ };
1478
+ content: {
1479
+ "application/json": components["schemas"]["Error"];
1480
+ };
1481
+ };
1482
+ /** @description The credential lacks the required permission or the operation is unavailable to this business. */
1483
+ Error403: {
1484
+ headers: {
1485
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1486
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1487
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1488
+ [name: string]: unknown;
1489
+ };
1490
+ content: {
1491
+ "application/json": components["schemas"]["Error"];
1492
+ };
1493
+ };
1494
+ /** @description A request with this idempotency key is still running, or the operation conflicts with current state. For request_in_progress, honor Retry-After and retry with the same key and body. */
1495
+ Error409: {
1496
+ headers: {
1497
+ "Retry-After": components["headers"]["Retry-After"];
1498
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1499
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1500
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1501
+ [name: string]: unknown;
1502
+ };
1503
+ content: {
1504
+ "application/json": components["schemas"]["Error"];
1505
+ };
1506
+ };
1507
+ /** @description Rate limit exceeded. Honor Retry-After. Credential budget headers are absent on IP refusals; edge refusals may have a different body. */
1508
+ Error429: {
1509
+ headers: {
1510
+ "Retry-After": components["headers"]["Retry-After"];
1511
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1512
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1513
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1514
+ [name: string]: unknown;
1515
+ };
1516
+ content: {
1517
+ "application/json": components["schemas"]["Error"];
1518
+ };
1519
+ };
1520
+ };
1145
1521
  parameters: {
1146
1522
  "Idempotency-Key": string;
1147
1523
  "Stable-Sea-Version": components["schemas"]["APIVersion"];
1148
1524
  };
1149
1525
  requestBodies: never;
1150
- headers: never;
1526
+ headers: {
1527
+ /** @description Wait at least this many seconds before retrying. */
1528
+ "Retry-After": number;
1529
+ /** @description Credential requests allowed per window on this server instance; not a fleet-wide quota. */
1530
+ "X-RateLimit-Limit": number;
1531
+ /** @description Credential requests left after this request on this server instance; a pacing hint, not reserved capacity. */
1532
+ "X-RateLimit-Remaining": number;
1533
+ /** @description Credential window end as Unix seconds, rounded up. */
1534
+ "X-RateLimit-Reset": number;
1535
+ };
1151
1536
  pathItems: never;
1152
1537
  }
1153
1538
  export type $defs = Record<string, never>;
@@ -1171,12 +1556,19 @@ export interface operations {
1171
1556
  /** @description OK */
1172
1557
  200: {
1173
1558
  headers: {
1559
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1560
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1561
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1174
1562
  [name: string]: unknown;
1175
1563
  };
1176
1564
  content: {
1177
1565
  "application/json": components["schemas"]["AccountList"];
1178
1566
  };
1179
1567
  };
1568
+ 400: components["responses"]["Error400"];
1569
+ 401: components["responses"]["Error401"];
1570
+ 403: components["responses"]["Error403"];
1571
+ 429: components["responses"]["Error429"];
1180
1572
  /** @description Error response. */
1181
1573
  default: {
1182
1574
  headers: {
@@ -1203,12 +1595,19 @@ export interface operations {
1203
1595
  /** @description OK */
1204
1596
  200: {
1205
1597
  headers: {
1598
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1599
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1600
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1206
1601
  [name: string]: unknown;
1207
1602
  };
1208
1603
  content: {
1209
1604
  "application/json": components["schemas"]["Account"];
1210
1605
  };
1211
1606
  };
1607
+ 400: components["responses"]["Error400"];
1608
+ 401: components["responses"]["Error401"];
1609
+ 403: components["responses"]["Error403"];
1610
+ 429: components["responses"]["Error429"];
1212
1611
  /** @description Error response. */
1213
1612
  default: {
1214
1613
  headers: {
@@ -1232,12 +1631,19 @@ export interface operations {
1232
1631
  /** @description OK */
1233
1632
  200: {
1234
1633
  headers: {
1634
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1635
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1636
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1235
1637
  [name: string]: unknown;
1236
1638
  };
1237
1639
  content: {
1238
1640
  "application/json": components["schemas"]["APIClient"];
1239
1641
  };
1240
1642
  };
1643
+ 400: components["responses"]["Error400"];
1644
+ 401: components["responses"]["Error401"];
1645
+ 403: components["responses"]["Error403"];
1646
+ 429: components["responses"]["Error429"];
1241
1647
  /** @description Error response. */
1242
1648
  default: {
1243
1649
  headers: {
@@ -1268,12 +1674,19 @@ export interface operations {
1268
1674
  /** @description OK */
1269
1675
  200: {
1270
1676
  headers: {
1677
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1678
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1679
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1271
1680
  [name: string]: unknown;
1272
1681
  };
1273
1682
  content: {
1274
1683
  "application/json": components["schemas"]["BalanceList"];
1275
1684
  };
1276
1685
  };
1686
+ 400: components["responses"]["Error400"];
1687
+ 401: components["responses"]["Error401"];
1688
+ 403: components["responses"]["Error403"];
1689
+ 429: components["responses"]["Error429"];
1277
1690
  /** @description Error response. */
1278
1691
  default: {
1279
1692
  headers: {
@@ -1300,12 +1713,19 @@ export interface operations {
1300
1713
  /** @description OK */
1301
1714
  200: {
1302
1715
  headers: {
1716
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1717
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1718
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1303
1719
  [name: string]: unknown;
1304
1720
  };
1305
1721
  content: {
1306
1722
  "application/json": components["schemas"]["Balance"];
1307
1723
  };
1308
1724
  };
1725
+ 400: components["responses"]["Error400"];
1726
+ 401: components["responses"]["Error401"];
1727
+ 403: components["responses"]["Error403"];
1728
+ 429: components["responses"]["Error429"];
1309
1729
  /** @description Error response. */
1310
1730
  default: {
1311
1731
  headers: {
@@ -1329,12 +1749,19 @@ export interface operations {
1329
1749
  /** @description OK */
1330
1750
  200: {
1331
1751
  headers: {
1752
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1753
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1754
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1332
1755
  [name: string]: unknown;
1333
1756
  };
1334
1757
  content: {
1335
1758
  "application/json": components["schemas"]["EventTypeCatalog"];
1336
1759
  };
1337
1760
  };
1761
+ 400: components["responses"]["Error400"];
1762
+ 401: components["responses"]["Error401"];
1763
+ 403: components["responses"]["Error403"];
1764
+ 429: components["responses"]["Error429"];
1338
1765
  /** @description Error response. */
1339
1766
  default: {
1340
1767
  headers: {
@@ -1365,12 +1792,19 @@ export interface operations {
1365
1792
  /** @description OK */
1366
1793
  200: {
1367
1794
  headers: {
1795
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1796
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1797
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1368
1798
  [name: string]: unknown;
1369
1799
  };
1370
1800
  content: {
1371
1801
  "application/json": components["schemas"]["EventList"];
1372
1802
  };
1373
1803
  };
1804
+ 400: components["responses"]["Error400"];
1805
+ 401: components["responses"]["Error401"];
1806
+ 403: components["responses"]["Error403"];
1807
+ 429: components["responses"]["Error429"];
1374
1808
  /** @description Error response. */
1375
1809
  default: {
1376
1810
  headers: {
@@ -1397,12 +1831,227 @@ export interface operations {
1397
1831
  /** @description OK */
1398
1832
  200: {
1399
1833
  headers: {
1834
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1835
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1836
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1400
1837
  [name: string]: unknown;
1401
1838
  };
1402
1839
  content: {
1403
1840
  "application/json": components["schemas"]["Event"];
1404
1841
  };
1405
1842
  };
1843
+ 400: components["responses"]["Error400"];
1844
+ 401: components["responses"]["Error401"];
1845
+ 403: components["responses"]["Error403"];
1846
+ 429: components["responses"]["Error429"];
1847
+ /** @description Error response. */
1848
+ default: {
1849
+ headers: {
1850
+ [name: string]: unknown;
1851
+ };
1852
+ content: {
1853
+ "application/json": components["schemas"]["Error"];
1854
+ };
1855
+ };
1856
+ };
1857
+ };
1858
+ "external_wallet_operations.get": {
1859
+ parameters: {
1860
+ query?: never;
1861
+ header?: never;
1862
+ path: {
1863
+ id: string;
1864
+ };
1865
+ cookie?: never;
1866
+ };
1867
+ requestBody?: never;
1868
+ responses: {
1869
+ /** @description OK */
1870
+ 200: {
1871
+ headers: {
1872
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1873
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1874
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1875
+ [name: string]: unknown;
1876
+ };
1877
+ content: {
1878
+ "application/json": components["schemas"]["ExternalWalletOperation"];
1879
+ };
1880
+ };
1881
+ 400: components["responses"]["Error400"];
1882
+ 401: components["responses"]["Error401"];
1883
+ 403: components["responses"]["Error403"];
1884
+ 429: components["responses"]["Error429"];
1885
+ /** @description Error response. */
1886
+ default: {
1887
+ headers: {
1888
+ [name: string]: unknown;
1889
+ };
1890
+ content: {
1891
+ "application/json": components["schemas"]["Error"];
1892
+ };
1893
+ };
1894
+ };
1895
+ };
1896
+ "external_wallets.list": {
1897
+ parameters: {
1898
+ query?: {
1899
+ /** @description How many external wallets to return. Defaults to 10. A value above 100 is rejected, not reduced. */
1900
+ limit?: number;
1901
+ /** @description Return the external wallets immediately after this external wallet id in the list order. Cannot be combined with ending_before. */
1902
+ starting_after?: string;
1903
+ /** @description Return the external wallets immediately before this external wallet id in the list order. Cannot be combined with starting_after. */
1904
+ ending_before?: string;
1905
+ };
1906
+ header?: never;
1907
+ path?: never;
1908
+ cookie?: never;
1909
+ };
1910
+ requestBody?: never;
1911
+ responses: {
1912
+ /** @description OK */
1913
+ 200: {
1914
+ headers: {
1915
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1916
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1917
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1918
+ [name: string]: unknown;
1919
+ };
1920
+ content: {
1921
+ "application/json": components["schemas"]["ExternalWalletList"];
1922
+ };
1923
+ };
1924
+ 400: components["responses"]["Error400"];
1925
+ 401: components["responses"]["Error401"];
1926
+ 403: components["responses"]["Error403"];
1927
+ 429: components["responses"]["Error429"];
1928
+ /** @description Error response. */
1929
+ default: {
1930
+ headers: {
1931
+ [name: string]: unknown;
1932
+ };
1933
+ content: {
1934
+ "application/json": components["schemas"]["Error"];
1935
+ };
1936
+ };
1937
+ };
1938
+ };
1939
+ "external_wallets.create": {
1940
+ parameters: {
1941
+ query?: never;
1942
+ header: {
1943
+ "Idempotency-Key": components["parameters"]["Idempotency-Key"];
1944
+ };
1945
+ path?: never;
1946
+ cookie?: never;
1947
+ };
1948
+ requestBody?: {
1949
+ content: {
1950
+ "application/json": components["schemas"]["ExternalWalletCreateInput"];
1951
+ };
1952
+ };
1953
+ responses: {
1954
+ /** @description OK */
1955
+ 200: {
1956
+ headers: {
1957
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1958
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1959
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1960
+ [name: string]: unknown;
1961
+ };
1962
+ content: {
1963
+ "application/json": components["schemas"]["ExternalWalletOperation"];
1964
+ };
1965
+ };
1966
+ 400: components["responses"]["Error400"];
1967
+ 401: components["responses"]["Error401"];
1968
+ 403: components["responses"]["Error403"];
1969
+ 409: components["responses"]["Error409"];
1970
+ 429: components["responses"]["Error429"];
1971
+ /** @description Error response. */
1972
+ default: {
1973
+ headers: {
1974
+ [name: string]: unknown;
1975
+ };
1976
+ content: {
1977
+ "application/json": components["schemas"]["Error"];
1978
+ };
1979
+ };
1980
+ };
1981
+ };
1982
+ "external_wallets.get": {
1983
+ parameters: {
1984
+ query?: never;
1985
+ header?: never;
1986
+ path: {
1987
+ /** @description The external wallet id. */
1988
+ id: string;
1989
+ };
1990
+ cookie?: never;
1991
+ };
1992
+ requestBody?: never;
1993
+ responses: {
1994
+ /** @description OK */
1995
+ 200: {
1996
+ headers: {
1997
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
1998
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
1999
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
2000
+ [name: string]: unknown;
2001
+ };
2002
+ content: {
2003
+ "application/json": components["schemas"]["ExternalWallet"];
2004
+ };
2005
+ };
2006
+ 400: components["responses"]["Error400"];
2007
+ 401: components["responses"]["Error401"];
2008
+ 403: components["responses"]["Error403"];
2009
+ 429: components["responses"]["Error429"];
2010
+ /** @description Error response. */
2011
+ default: {
2012
+ headers: {
2013
+ [name: string]: unknown;
2014
+ };
2015
+ content: {
2016
+ "application/json": components["schemas"]["Error"];
2017
+ };
2018
+ };
2019
+ };
2020
+ };
2021
+ "external_wallets.rename": {
2022
+ parameters: {
2023
+ query?: never;
2024
+ header: {
2025
+ "Idempotency-Key": components["parameters"]["Idempotency-Key"];
2026
+ };
2027
+ path: {
2028
+ id: string;
2029
+ };
2030
+ cookie?: never;
2031
+ };
2032
+ requestBody?: {
2033
+ content: {
2034
+ "application/json": components["schemas"]["ExternalWalletRenameInput"];
2035
+ };
2036
+ };
2037
+ responses: {
2038
+ /** @description OK */
2039
+ 200: {
2040
+ headers: {
2041
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2042
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2043
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
2044
+ [name: string]: unknown;
2045
+ };
2046
+ content: {
2047
+ "application/json": components["schemas"]["ExternalWalletOperation"];
2048
+ };
2049
+ };
2050
+ 400: components["responses"]["Error400"];
2051
+ 401: components["responses"]["Error401"];
2052
+ 403: components["responses"]["Error403"];
2053
+ 409: components["responses"]["Error409"];
2054
+ 429: components["responses"]["Error429"];
1406
2055
  /** @description Error response. */
1407
2056
  default: {
1408
2057
  headers: {
@@ -1433,12 +2082,19 @@ export interface operations {
1433
2082
  /** @description OK */
1434
2083
  200: {
1435
2084
  headers: {
2085
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2086
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2087
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1436
2088
  [name: string]: unknown;
1437
2089
  };
1438
2090
  content: {
1439
2091
  "application/json": components["schemas"]["NotificationList"];
1440
2092
  };
1441
2093
  };
2094
+ 400: components["responses"]["Error400"];
2095
+ 401: components["responses"]["Error401"];
2096
+ 403: components["responses"]["Error403"];
2097
+ 429: components["responses"]["Error429"];
1442
2098
  /** @description Error response. */
1443
2099
  default: {
1444
2100
  headers: {
@@ -1465,12 +2121,19 @@ export interface operations {
1465
2121
  /** @description OK */
1466
2122
  200: {
1467
2123
  headers: {
2124
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2125
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2126
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1468
2127
  [name: string]: unknown;
1469
2128
  };
1470
2129
  content: {
1471
2130
  "application/json": components["schemas"]["Notification"];
1472
2131
  };
1473
2132
  };
2133
+ 400: components["responses"]["Error400"];
2134
+ 401: components["responses"]["Error401"];
2135
+ 403: components["responses"]["Error403"];
2136
+ 429: components["responses"]["Error429"];
1474
2137
  /** @description Error response. */
1475
2138
  default: {
1476
2139
  headers: {
@@ -1501,12 +2164,19 @@ export interface operations {
1501
2164
  /** @description OK */
1502
2165
  200: {
1503
2166
  headers: {
2167
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2168
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2169
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1504
2170
  [name: string]: unknown;
1505
2171
  };
1506
2172
  content: {
1507
2173
  "application/json": components["schemas"]["OrderList"];
1508
2174
  };
1509
2175
  };
2176
+ 400: components["responses"]["Error400"];
2177
+ 401: components["responses"]["Error401"];
2178
+ 403: components["responses"]["Error403"];
2179
+ 429: components["responses"]["Error429"];
1510
2180
  /** @description Error response. */
1511
2181
  default: {
1512
2182
  headers: {
@@ -1536,12 +2206,20 @@ export interface operations {
1536
2206
  /** @description OK */
1537
2207
  200: {
1538
2208
  headers: {
2209
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2210
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2211
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1539
2212
  [name: string]: unknown;
1540
2213
  };
1541
2214
  content: {
1542
2215
  "application/json": components["schemas"]["Order"];
1543
2216
  };
1544
2217
  };
2218
+ 400: components["responses"]["Error400"];
2219
+ 401: components["responses"]["Error401"];
2220
+ 403: components["responses"]["Error403"];
2221
+ 409: components["responses"]["Error409"];
2222
+ 429: components["responses"]["Error429"];
1545
2223
  /** @description Error response. */
1546
2224
  default: {
1547
2225
  headers: {
@@ -1568,12 +2246,55 @@ export interface operations {
1568
2246
  /** @description OK */
1569
2247
  200: {
1570
2248
  headers: {
2249
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2250
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2251
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1571
2252
  [name: string]: unknown;
1572
2253
  };
1573
2254
  content: {
1574
2255
  "application/json": components["schemas"]["Order"];
1575
2256
  };
1576
2257
  };
2258
+ 400: components["responses"]["Error400"];
2259
+ 401: components["responses"]["Error401"];
2260
+ 403: components["responses"]["Error403"];
2261
+ 429: components["responses"]["Error429"];
2262
+ /** @description Error response. */
2263
+ default: {
2264
+ headers: {
2265
+ [name: string]: unknown;
2266
+ };
2267
+ content: {
2268
+ "application/json": components["schemas"]["Error"];
2269
+ };
2270
+ };
2271
+ };
2272
+ };
2273
+ "policies.snapshot": {
2274
+ parameters: {
2275
+ query?: never;
2276
+ header?: never;
2277
+ path?: never;
2278
+ cookie?: never;
2279
+ };
2280
+ requestBody?: never;
2281
+ responses: {
2282
+ /** @description OK */
2283
+ 200: {
2284
+ headers: {
2285
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2286
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2287
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
2288
+ [name: string]: unknown;
2289
+ };
2290
+ content: {
2291
+ "application/json": components["schemas"]["PolicySnapshot"];
2292
+ };
2293
+ };
2294
+ 400: components["responses"]["Error400"];
2295
+ 401: components["responses"]["Error401"];
2296
+ 403: components["responses"]["Error403"];
2297
+ 429: components["responses"]["Error429"];
1577
2298
  /** @description Error response. */
1578
2299
  default: {
1579
2300
  headers: {
@@ -1604,12 +2325,19 @@ export interface operations {
1604
2325
  /** @description OK */
1605
2326
  200: {
1606
2327
  headers: {
2328
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2329
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2330
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1607
2331
  [name: string]: unknown;
1608
2332
  };
1609
2333
  content: {
1610
2334
  "application/json": components["schemas"]["Quote"];
1611
2335
  };
1612
2336
  };
2337
+ 400: components["responses"]["Error400"];
2338
+ 401: components["responses"]["Error401"];
2339
+ 403: components["responses"]["Error403"];
2340
+ 429: components["responses"]["Error429"];
1613
2341
  /** @description Error response. */
1614
2342
  default: {
1615
2343
  headers: {
@@ -1633,12 +2361,19 @@ export interface operations {
1633
2361
  /** @description OK */
1634
2362
  200: {
1635
2363
  headers: {
2364
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2365
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2366
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1636
2367
  [name: string]: unknown;
1637
2368
  };
1638
2369
  content: {
1639
2370
  "application/json": components["schemas"]["SecurityCatalog"];
1640
2371
  };
1641
2372
  };
2373
+ 400: components["responses"]["Error400"];
2374
+ 401: components["responses"]["Error401"];
2375
+ 403: components["responses"]["Error403"];
2376
+ 429: components["responses"]["Error429"];
1642
2377
  /** @description Error response. */
1643
2378
  default: {
1644
2379
  headers: {
@@ -1669,12 +2404,19 @@ export interface operations {
1669
2404
  /** @description OK */
1670
2405
  200: {
1671
2406
  headers: {
2407
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2408
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2409
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1672
2410
  [name: string]: unknown;
1673
2411
  };
1674
2412
  content: {
1675
2413
  "application/json": components["schemas"]["StatementList"];
1676
2414
  };
1677
2415
  };
2416
+ 400: components["responses"]["Error400"];
2417
+ 401: components["responses"]["Error401"];
2418
+ 403: components["responses"]["Error403"];
2419
+ 429: components["responses"]["Error429"];
1678
2420
  /** @description Error response. */
1679
2421
  default: {
1680
2422
  headers: {
@@ -1701,12 +2443,19 @@ export interface operations {
1701
2443
  /** @description OK */
1702
2444
  200: {
1703
2445
  headers: {
2446
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2447
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2448
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1704
2449
  [name: string]: unknown;
1705
2450
  };
1706
2451
  content: {
1707
2452
  "application/json": components["schemas"]["Statement"];
1708
2453
  };
1709
2454
  };
2455
+ 400: components["responses"]["Error400"];
2456
+ 401: components["responses"]["Error401"];
2457
+ 403: components["responses"]["Error403"];
2458
+ 429: components["responses"]["Error429"];
1710
2459
  /** @description Error response. */
1711
2460
  default: {
1712
2461
  headers: {
@@ -1733,12 +2482,19 @@ export interface operations {
1733
2482
  /** @description OK */
1734
2483
  200: {
1735
2484
  headers: {
2485
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2486
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2487
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1736
2488
  [name: string]: unknown;
1737
2489
  };
1738
2490
  content: {
1739
2491
  "application/json": components["schemas"]["StatementContent"];
1740
2492
  };
1741
2493
  };
2494
+ 400: components["responses"]["Error400"];
2495
+ 401: components["responses"]["Error401"];
2496
+ 403: components["responses"]["Error403"];
2497
+ 429: components["responses"]["Error429"];
1742
2498
  /** @description Error response. */
1743
2499
  default: {
1744
2500
  headers: {
@@ -1769,12 +2525,19 @@ export interface operations {
1769
2525
  /** @description OK */
1770
2526
  200: {
1771
2527
  headers: {
2528
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2529
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2530
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1772
2531
  [name: string]: unknown;
1773
2532
  };
1774
2533
  content: {
1775
2534
  "application/json": components["schemas"]["TransactionList"];
1776
2535
  };
1777
2536
  };
2537
+ 400: components["responses"]["Error400"];
2538
+ 401: components["responses"]["Error401"];
2539
+ 403: components["responses"]["Error403"];
2540
+ 429: components["responses"]["Error429"];
1778
2541
  /** @description Error response. */
1779
2542
  default: {
1780
2543
  headers: {
@@ -1801,12 +2564,19 @@ export interface operations {
1801
2564
  /** @description OK */
1802
2565
  200: {
1803
2566
  headers: {
2567
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2568
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2569
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1804
2570
  [name: string]: unknown;
1805
2571
  };
1806
2572
  content: {
1807
2573
  "application/json": components["schemas"]["Transaction"];
1808
2574
  };
1809
2575
  };
2576
+ 400: components["responses"]["Error400"];
2577
+ 401: components["responses"]["Error401"];
2578
+ 403: components["responses"]["Error403"];
2579
+ 429: components["responses"]["Error429"];
1810
2580
  /** @description Error response. */
1811
2581
  default: {
1812
2582
  headers: {
@@ -1837,12 +2607,19 @@ export interface operations {
1837
2607
  /** @description OK */
1838
2608
  200: {
1839
2609
  headers: {
2610
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2611
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2612
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1840
2613
  [name: string]: unknown;
1841
2614
  };
1842
2615
  content: {
1843
2616
  "application/json": components["schemas"]["WebhookEndpointList"];
1844
2617
  };
1845
2618
  };
2619
+ 400: components["responses"]["Error400"];
2620
+ 401: components["responses"]["Error401"];
2621
+ 403: components["responses"]["Error403"];
2622
+ 429: components["responses"]["Error429"];
1846
2623
  /** @description Error response. */
1847
2624
  default: {
1848
2625
  headers: {
@@ -1872,12 +2649,20 @@ export interface operations {
1872
2649
  /** @description OK */
1873
2650
  200: {
1874
2651
  headers: {
2652
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2653
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2654
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1875
2655
  [name: string]: unknown;
1876
2656
  };
1877
2657
  content: {
1878
2658
  "application/json": components["schemas"]["WebhookEndpointCreateResponse"];
1879
2659
  };
1880
2660
  };
2661
+ 400: components["responses"]["Error400"];
2662
+ 401: components["responses"]["Error401"];
2663
+ 403: components["responses"]["Error403"];
2664
+ 409: components["responses"]["Error409"];
2665
+ 429: components["responses"]["Error429"];
1881
2666
  /** @description Error response. */
1882
2667
  default: {
1883
2668
  headers: {
@@ -1904,12 +2689,19 @@ export interface operations {
1904
2689
  /** @description OK */
1905
2690
  200: {
1906
2691
  headers: {
2692
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2693
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2694
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1907
2695
  [name: string]: unknown;
1908
2696
  };
1909
2697
  content: {
1910
2698
  "application/json": components["schemas"]["WebhookEndpoint"];
1911
2699
  };
1912
2700
  };
2701
+ 400: components["responses"]["Error400"];
2702
+ 401: components["responses"]["Error401"];
2703
+ 403: components["responses"]["Error403"];
2704
+ 429: components["responses"]["Error429"];
1913
2705
  /** @description Error response. */
1914
2706
  default: {
1915
2707
  headers: {
@@ -1942,12 +2734,20 @@ export interface operations {
1942
2734
  /** @description OK */
1943
2735
  200: {
1944
2736
  headers: {
2737
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2738
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2739
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1945
2740
  [name: string]: unknown;
1946
2741
  };
1947
2742
  content: {
1948
2743
  "application/json": components["schemas"]["WebhookEndpoint"];
1949
2744
  };
1950
2745
  };
2746
+ 400: components["responses"]["Error400"];
2747
+ 401: components["responses"]["Error401"];
2748
+ 403: components["responses"]["Error403"];
2749
+ 409: components["responses"]["Error409"];
2750
+ 429: components["responses"]["Error429"];
1951
2751
  /** @description Error response. */
1952
2752
  default: {
1953
2753
  headers: {
@@ -1981,12 +2781,19 @@ export interface operations {
1981
2781
  /** @description OK */
1982
2782
  200: {
1983
2783
  headers: {
2784
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2785
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2786
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
1984
2787
  [name: string]: unknown;
1985
2788
  };
1986
2789
  content: {
1987
2790
  "application/json": components["schemas"]["WebhookDeliveryList"];
1988
2791
  };
1989
2792
  };
2793
+ 400: components["responses"]["Error400"];
2794
+ 401: components["responses"]["Error401"];
2795
+ 403: components["responses"]["Error403"];
2796
+ 429: components["responses"]["Error429"];
1990
2797
  /** @description Error response. */
1991
2798
  default: {
1992
2799
  headers: {
@@ -2015,12 +2822,19 @@ export interface operations {
2015
2822
  /** @description OK */
2016
2823
  200: {
2017
2824
  headers: {
2825
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2826
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2827
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
2018
2828
  [name: string]: unknown;
2019
2829
  };
2020
2830
  content: {
2021
2831
  "application/json": components["schemas"]["WebhookDelivery"];
2022
2832
  };
2023
2833
  };
2834
+ 400: components["responses"]["Error400"];
2835
+ 401: components["responses"]["Error401"];
2836
+ 403: components["responses"]["Error403"];
2837
+ 429: components["responses"]["Error429"];
2024
2838
  /** @description Error response. */
2025
2839
  default: {
2026
2840
  headers: {
@@ -2051,12 +2865,20 @@ export interface operations {
2051
2865
  /** @description OK */
2052
2866
  200: {
2053
2867
  headers: {
2868
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2869
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2870
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
2054
2871
  [name: string]: unknown;
2055
2872
  };
2056
2873
  content: {
2057
2874
  "application/json": components["schemas"]["WebhookDelivery"];
2058
2875
  };
2059
2876
  };
2877
+ 400: components["responses"]["Error400"];
2878
+ 401: components["responses"]["Error401"];
2879
+ 403: components["responses"]["Error403"];
2880
+ 409: components["responses"]["Error409"];
2881
+ 429: components["responses"]["Error429"];
2060
2882
  /** @description Error response. */
2061
2883
  default: {
2062
2884
  headers: {
@@ -2085,12 +2907,20 @@ export interface operations {
2085
2907
  /** @description OK */
2086
2908
  200: {
2087
2909
  headers: {
2910
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2911
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2912
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
2088
2913
  [name: string]: unknown;
2089
2914
  };
2090
2915
  content: {
2091
2916
  "application/json": components["schemas"]["WebhookEndpoint"];
2092
2917
  };
2093
2918
  };
2919
+ 400: components["responses"]["Error400"];
2920
+ 401: components["responses"]["Error401"];
2921
+ 403: components["responses"]["Error403"];
2922
+ 409: components["responses"]["Error409"];
2923
+ 429: components["responses"]["Error429"];
2094
2924
  /** @description Error response. */
2095
2925
  default: {
2096
2926
  headers: {
@@ -2119,12 +2949,20 @@ export interface operations {
2119
2949
  /** @description OK */
2120
2950
  200: {
2121
2951
  headers: {
2952
+ "X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
2953
+ "X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
2954
+ "X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
2122
2955
  [name: string]: unknown;
2123
2956
  };
2124
2957
  content: {
2125
2958
  "application/json": components["schemas"]["WebhookEndpointCreateResponse"];
2126
2959
  };
2127
2960
  };
2961
+ 400: components["responses"]["Error400"];
2962
+ 401: components["responses"]["Error401"];
2963
+ 403: components["responses"]["Error403"];
2964
+ 409: components["responses"]["Error409"];
2965
+ 429: components["responses"]["Error429"];
2128
2966
  /** @description Error response. */
2129
2967
  default: {
2130
2968
  headers: {