@stable_sea/sdk 0.2.25 → 0.2.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -0
- package/dist/gen/schema.d.ts +494 -1
- package/dist/gen/session-schema.d.ts +219 -112
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -99,6 +99,26 @@ do not place another subscription to resolve it. Instructions can lag the native
|
|
|
99
99
|
state: retry a 503 read. Sandbox instructions are synthetic and must never be used
|
|
100
100
|
to send real funds. Existing native eligibility, agreements and controls apply.
|
|
101
101
|
|
|
102
|
+
## Cancel an unbooked order
|
|
103
|
+
|
|
104
|
+
Use the original key with `investments:write` to request cancellation. Save the
|
|
105
|
+
mutation object and reuse it after a lost response. A replacement key cannot
|
|
106
|
+
cancel the original key's order.
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
const cancellation = client.mutation();
|
|
110
|
+
const result = await cancellation.POST("/v1/orders/{id}/cancel", {
|
|
111
|
+
params: { path: { id: orderId } },
|
|
112
|
+
});
|
|
113
|
+
if (result.error) throw new Error(result.error.error.message);
|
|
114
|
+
console.log(result.data.state);
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Cancellation is asynchronous. Poll `GET /v1/orders/{id}` for the outcome: a
|
|
118
|
+
stopped order has `state: "failed"` and `failure_code: "order_cancelled"`.
|
|
119
|
+
A concurrent booking or final approval can win; its transaction remains visible
|
|
120
|
+
and is never reversed. An already-booked order returns `order_not_cancellable`.
|
|
121
|
+
|
|
102
122
|
## Member administration and personal actions
|
|
103
123
|
|
|
104
124
|
Use `createStableSeaSessionClient` for onboarding, legal documents, your profile
|
|
@@ -340,6 +360,23 @@ const valid = verifyWebhookSignature(
|
|
|
340
360
|
);
|
|
341
361
|
```
|
|
342
362
|
|
|
363
|
+
Subscribe to the lifecycle events you need when creating or updating a webhook
|
|
364
|
+
endpoint:
|
|
365
|
+
|
|
366
|
+
| Event | Meaning |
|
|
367
|
+
| --- | --- |
|
|
368
|
+
| `transfer_approval.created` | A request is pending human approval. |
|
|
369
|
+
| `transfer_approval.updated` | The request reached a terminal approval state. Partial votes do not emit this event. |
|
|
370
|
+
| `withdrawal.created` | A withdrawal request was accepted. |
|
|
371
|
+
| `withdrawal.updated` | The withdrawal completed, failed or was canceled. A later bank return can produce another update. |
|
|
372
|
+
|
|
373
|
+
Events contain resource pointers. Retrieve a withdrawal with
|
|
374
|
+
`GET /v1/withdrawals/{id}`; its current state is authoritative. To read an approval,
|
|
375
|
+
use an authenticated member session and query `/money/transfer_approvals` with
|
|
376
|
+
`request_id`, or `/money/test_transfer_approvals` for Test events. Existing member
|
|
377
|
+
visibility applies. API keys cannot cast human votes. Delivery is asynchronous;
|
|
378
|
+
handle duplicate event IDs and changes that arrive out of order.
|
|
379
|
+
|
|
343
380
|
API request, response, pagination, and error types are generated from
|
|
344
381
|
`services/backend/api/openapi.public.json` and exported as `paths`, `operations`,
|
|
345
382
|
and `components`.
|
|
@@ -575,3 +612,43 @@ adopt new/reclassified assets, review `fund_catalog_changes`, then use the curre
|
|
|
575
612
|
Preview checks saved settings and does not authorize execution. API keys do not
|
|
576
613
|
act as the key owner's member; machine `/v1/policies` remains business controls
|
|
577
614
|
and tiers, without member-policy administration.
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
## Withdraw funds
|
|
618
|
+
|
|
619
|
+
Create a key with **Withdraw funds** (`money:withdrawals_write`) and **Read money**
|
|
620
|
+
(`money:read`) in Terminal's existing API keys pane. Test keys use the same
|
|
621
|
+
workflow with simulated funds and do not require a two-factor code.
|
|
622
|
+
|
|
623
|
+
For on-chain withdrawals, list `/v1/external_wallets` and select an enabled saved
|
|
624
|
+
destination. Its `symbol` identifies the withdrawal asset and `payment_rail` the
|
|
625
|
+
network; holdings can contain other assets. Submit `/v1/withdrawals` with
|
|
626
|
+
`method: "onchain"`, `external_wallet` and an amount in that asset's units.
|
|
627
|
+
|
|
628
|
+
For US ACH or domestic wire, create `/v1/withdrawal_quotes` with `method: "ach"`
|
|
629
|
+
or `"wire"`, the saved `bank_account` ID and a USD decimal amount with at most two fractional digits.
|
|
630
|
+
Retrieve the quote until `status` is `ready`, review `pricing`, then submit
|
|
631
|
+
`/v1/withdrawals` with the same method, bank and amount plus `quote_id`. Quotes
|
|
632
|
+
expire after five minutes and serve one withdrawal. Acceptance queues work without
|
|
633
|
+
booking funds. Processing must begin before `expires_ts`; queue delay or retries
|
|
634
|
+
can produce `quote_invalid`. Pending human approval preserves those fee terms
|
|
635
|
+
after quote expiry.
|
|
636
|
+
|
|
637
|
+
Use a stable `Idempotency-Key` for each write. Retrieve the withdrawal to follow
|
|
638
|
+
its status. `pending_approval` requires a human decision through the existing
|
|
639
|
+
approval workflow; it reserves no funds. Once booked, `transaction_id` links to
|
|
640
|
+
the native transaction and its settlement details. Request cancellation with
|
|
641
|
+
`POST /v1/withdrawals/{id}/cancel` while pending; `canceling` is not confirmation.
|
|
642
|
+
Wait for `canceled`, or follow the transaction if booking already won the race.
|
|
643
|
+
Cancellation requires the credential that created the withdrawal. A replacement
|
|
644
|
+
key can read the business's withdrawals but cannot cancel its predecessor's requests.
|
|
645
|
+
|
|
646
|
+
A failed bank payout can require recovery after conversion. `failed` does not
|
|
647
|
+
mean the principal has been refunded or is available to spend. A confirmed ACH
|
|
648
|
+
return also makes the original operation `failed` while preserving its settled
|
|
649
|
+
ledger entries. Read the transaction's `financial_details` for fee recovery;
|
|
650
|
+
a queued fee refund is separate from both principal recovery and a settled refund.
|
|
651
|
+
|
|
652
|
+
The [Sandbox test project](consumer-test/README.md#test-a-withdrawal) includes
|
|
653
|
+
`npm run test:withdrawal` for a saved Test destination. It preserves request keys
|
|
654
|
+
and receipts so an interrupted run can resume without creating a new withdrawal.
|
package/dist/gen/schema.d.ts
CHANGED
|
@@ -570,6 +570,28 @@ export interface paths {
|
|
|
570
570
|
patch?: never;
|
|
571
571
|
trace?: never;
|
|
572
572
|
};
|
|
573
|
+
"/v1/orders/{id}/cancel": {
|
|
574
|
+
parameters: {
|
|
575
|
+
query?: never;
|
|
576
|
+
header?: never;
|
|
577
|
+
path?: never;
|
|
578
|
+
cookie?: never;
|
|
579
|
+
};
|
|
580
|
+
get?: never;
|
|
581
|
+
put?: never;
|
|
582
|
+
/**
|
|
583
|
+
* Cancel an order
|
|
584
|
+
* @description Requests cancellation of an unbooked order created by this credential. Requires `investments:write` and an `Idempotency-Key`. Poll the order for its final outcome.
|
|
585
|
+
*
|
|
586
|
+
* Cancellation is asynchronous. A concurrent booking or final approval can win; its transaction remains visible and is never reversed. An order stopped by this request fails with `order_cancelled`. Orders that have already booked cannot be canceled.
|
|
587
|
+
*/
|
|
588
|
+
post: operations["orders.cancel"];
|
|
589
|
+
delete?: never;
|
|
590
|
+
options?: never;
|
|
591
|
+
head?: never;
|
|
592
|
+
patch?: never;
|
|
593
|
+
trace?: never;
|
|
594
|
+
};
|
|
573
595
|
"/v1/policies": {
|
|
574
596
|
parameters: {
|
|
575
597
|
query?: never;
|
|
@@ -1105,6 +1127,114 @@ export interface paths {
|
|
|
1105
1127
|
patch?: never;
|
|
1106
1128
|
trace?: never;
|
|
1107
1129
|
};
|
|
1130
|
+
"/v1/withdrawal_quotes": {
|
|
1131
|
+
parameters: {
|
|
1132
|
+
query?: never;
|
|
1133
|
+
header?: never;
|
|
1134
|
+
path?: never;
|
|
1135
|
+
cookie?: never;
|
|
1136
|
+
};
|
|
1137
|
+
get?: never;
|
|
1138
|
+
put?: never;
|
|
1139
|
+
/**
|
|
1140
|
+
* Create a withdrawal quote
|
|
1141
|
+
* @description Quotes an ACH or US domestic wire withdrawal to a saved US bank account. No money moves. Poll until ready, then submit the exact method, bank and amount with its quote_id before expiry. One quote serves one withdrawal; retries do not extend expiry. On-chain withdrawals use their saved wallet directly and do not require a bank quote.
|
|
1142
|
+
*/
|
|
1143
|
+
post: operations["withdrawal_quotes.create"];
|
|
1144
|
+
delete?: never;
|
|
1145
|
+
options?: never;
|
|
1146
|
+
head?: never;
|
|
1147
|
+
patch?: never;
|
|
1148
|
+
trace?: never;
|
|
1149
|
+
};
|
|
1150
|
+
"/v1/withdrawal_quotes/{id}": {
|
|
1151
|
+
parameters: {
|
|
1152
|
+
query?: never;
|
|
1153
|
+
header?: never;
|
|
1154
|
+
path?: never;
|
|
1155
|
+
cookie?: never;
|
|
1156
|
+
};
|
|
1157
|
+
/**
|
|
1158
|
+
* Retrieve a withdrawal quote
|
|
1159
|
+
* @description Returns a bank withdrawal quote belonging to this business and API mode. Expiry remains fixed even when a ready quote is retrieved again.
|
|
1160
|
+
*/
|
|
1161
|
+
get: operations["withdrawal_quotes.get"];
|
|
1162
|
+
put?: never;
|
|
1163
|
+
post?: never;
|
|
1164
|
+
delete?: never;
|
|
1165
|
+
options?: never;
|
|
1166
|
+
head?: never;
|
|
1167
|
+
patch?: never;
|
|
1168
|
+
trace?: never;
|
|
1169
|
+
};
|
|
1170
|
+
"/v1/withdrawals": {
|
|
1171
|
+
parameters: {
|
|
1172
|
+
query?: never;
|
|
1173
|
+
header?: never;
|
|
1174
|
+
path?: never;
|
|
1175
|
+
cookie?: never;
|
|
1176
|
+
};
|
|
1177
|
+
/**
|
|
1178
|
+
* List withdrawals
|
|
1179
|
+
* @description Lists this business's API withdrawals, newest first. Filter by method or paginate with one withdrawal ID cursor at a time. Native transaction history remains available separately.
|
|
1180
|
+
*/
|
|
1181
|
+
get: operations["withdrawals.list"];
|
|
1182
|
+
put?: never;
|
|
1183
|
+
/**
|
|
1184
|
+
* Create a withdrawal
|
|
1185
|
+
* @description Queues a withdrawal to a saved external wallet or US bank account. Requires money:withdrawals_write and an Idempotency-Key. Reuse the same key and body after a lost response to recover the original request.
|
|
1186
|
+
*
|
|
1187
|
+
* Eligibility, funds, fees, limits and approval rules are enforced before booking. Pending human approval does not reserve funds; use the member client or Terminal to decide it. Follow status and transaction_id through settlement.
|
|
1188
|
+
*
|
|
1189
|
+
* For ACH and wire, processing must start before the quote's expires_ts. Queue delay or retries can produce quote_invalid after acceptance. Once human approval is pending, its agreed fees remain valid after quote expiry.
|
|
1190
|
+
*/
|
|
1191
|
+
post: operations["withdrawals.create"];
|
|
1192
|
+
delete?: never;
|
|
1193
|
+
options?: never;
|
|
1194
|
+
head?: never;
|
|
1195
|
+
patch?: never;
|
|
1196
|
+
trace?: never;
|
|
1197
|
+
};
|
|
1198
|
+
"/v1/withdrawals/{id}": {
|
|
1199
|
+
parameters: {
|
|
1200
|
+
query?: never;
|
|
1201
|
+
header?: never;
|
|
1202
|
+
path?: never;
|
|
1203
|
+
cookie?: never;
|
|
1204
|
+
};
|
|
1205
|
+
/**
|
|
1206
|
+
* Retrieve a withdrawal
|
|
1207
|
+
* @description Returns one withdrawal, its retained approval reference and its native transaction outcome. A withdrawal belonging to another business or API mode is not found.
|
|
1208
|
+
*/
|
|
1209
|
+
get: operations["withdrawals.get"];
|
|
1210
|
+
put?: never;
|
|
1211
|
+
post?: never;
|
|
1212
|
+
delete?: never;
|
|
1213
|
+
options?: never;
|
|
1214
|
+
head?: never;
|
|
1215
|
+
patch?: never;
|
|
1216
|
+
trace?: never;
|
|
1217
|
+
};
|
|
1218
|
+
"/v1/withdrawals/{id}/cancel": {
|
|
1219
|
+
parameters: {
|
|
1220
|
+
query?: never;
|
|
1221
|
+
header?: never;
|
|
1222
|
+
path?: never;
|
|
1223
|
+
cookie?: never;
|
|
1224
|
+
};
|
|
1225
|
+
get?: never;
|
|
1226
|
+
put?: never;
|
|
1227
|
+
/**
|
|
1228
|
+
* Cancel a withdrawal
|
|
1229
|
+
* @description Requests cancellation of an unbooked withdrawal created by this credential. Poll until canceled or another final outcome. Cancellation is asynchronous: a concurrent final approval or booking can win, in which case the withdrawal continues and its transaction remains visible. A booked withdrawal cannot be canceled.
|
|
1230
|
+
*/
|
|
1231
|
+
post: operations["withdrawals.cancel"];
|
|
1232
|
+
delete?: never;
|
|
1233
|
+
options?: never;
|
|
1234
|
+
head?: never;
|
|
1235
|
+
patch?: never;
|
|
1236
|
+
trace?: never;
|
|
1237
|
+
};
|
|
1108
1238
|
}
|
|
1109
1239
|
export type webhooks = Record<string, never>;
|
|
1110
1240
|
export interface components {
|
|
@@ -1463,7 +1593,7 @@ export interface components {
|
|
|
1463
1593
|
object: "list";
|
|
1464
1594
|
};
|
|
1465
1595
|
/** @enum {string} */
|
|
1466
|
-
EventTypeName: "bank_account.created" | "bank_account.removed" | "bank_account_operation.updated" | "deposit.updated" | "deposit_quote.updated" | "external_wallet.created" | "external_wallet.updated" | "external_wallet_operation.updated" | "notification.created" | "order.updated" | "source_wallet_declaration.updated" | "statement_generation.updated" | "transaction.created" | "transaction.updated";
|
|
1596
|
+
EventTypeName: "bank_account.created" | "bank_account.removed" | "bank_account_operation.updated" | "deposit.updated" | "deposit_quote.updated" | "external_wallet.created" | "external_wallet.updated" | "external_wallet_operation.updated" | "notification.created" | "order.updated" | "source_wallet_declaration.updated" | "statement_generation.updated" | "transaction.created" | "transaction.updated" | "transfer_approval.created" | "transfer_approval.updated" | "withdrawal.created" | "withdrawal.updated";
|
|
1467
1597
|
ExternalWallet: {
|
|
1468
1598
|
/** @description True when a Stable Sea operator registered this wallet for the business; false when the business added it itself. */
|
|
1469
1599
|
added_by_stable_sea: boolean;
|
|
@@ -1508,6 +1638,8 @@ export interface components {
|
|
|
1508
1638
|
* @enum {string}
|
|
1509
1639
|
*/
|
|
1510
1640
|
status: "enabled" | "disabled";
|
|
1641
|
+
/** @description The asset this saved destination accepts for withdrawals. Address-level holdings can contain other assets. */
|
|
1642
|
+
symbol: string;
|
|
1511
1643
|
};
|
|
1512
1644
|
ExternalWalletCreateInput: {
|
|
1513
1645
|
address: string;
|
|
@@ -2793,6 +2925,82 @@ export interface components {
|
|
|
2793
2925
|
enabled_events?: components["schemas"]["EventTypeName"][];
|
|
2794
2926
|
url?: string | null;
|
|
2795
2927
|
};
|
|
2928
|
+
Withdrawal: {
|
|
2929
|
+
amount: string;
|
|
2930
|
+
approval_request_id: string | null;
|
|
2931
|
+
bank_account: string | null;
|
|
2932
|
+
/** Format: date-time */
|
|
2933
|
+
created_ts: string;
|
|
2934
|
+
external_wallet: string | null;
|
|
2935
|
+
failure_code?: string;
|
|
2936
|
+
id: string;
|
|
2937
|
+
livemode: boolean;
|
|
2938
|
+
/** @enum {string} */
|
|
2939
|
+
method: "onchain" | "ach" | "wire";
|
|
2940
|
+
/** @enum {string} */
|
|
2941
|
+
object: "withdrawal";
|
|
2942
|
+
quote_id: string | null;
|
|
2943
|
+
/** @enum {string} */
|
|
2944
|
+
status: "pending" | "pending_approval" | "canceling" | "processing" | "completed" | "failed" | "canceled";
|
|
2945
|
+
transaction_id: string | null;
|
|
2946
|
+
};
|
|
2947
|
+
WithdrawalFeeTerms: {
|
|
2948
|
+
bank_fee_usd: string;
|
|
2949
|
+
/** Format: int64 */
|
|
2950
|
+
bps: number;
|
|
2951
|
+
caps_at_par: boolean;
|
|
2952
|
+
conversion_input: string;
|
|
2953
|
+
estimated_conversion_rate?: string | null;
|
|
2954
|
+
estimated_proceeds?: string | null;
|
|
2955
|
+
platform_fee_usdc: string;
|
|
2956
|
+
/** @enum {string} */
|
|
2957
|
+
settlement_asset: "USD";
|
|
2958
|
+
settles_at_par: boolean;
|
|
2959
|
+
/** @enum {string} */
|
|
2960
|
+
source_symbol: "USDC";
|
|
2961
|
+
total_source_debit: string;
|
|
2962
|
+
};
|
|
2963
|
+
WithdrawalInput: {
|
|
2964
|
+
/** @description Principal excluding fees: USD for ACH/wire, or units of the saved wallet's asset for on-chain withdrawals. */
|
|
2965
|
+
amount: string;
|
|
2966
|
+
bank_account?: string;
|
|
2967
|
+
external_wallet?: string;
|
|
2968
|
+
/** @enum {string} */
|
|
2969
|
+
method: "onchain" | "ach" | "wire";
|
|
2970
|
+
/** @description A ready, unexpired quote for this exact bank, method and amount. Required for ACH/wire; omit for on-chain withdrawals. */
|
|
2971
|
+
quote_id?: string | null;
|
|
2972
|
+
};
|
|
2973
|
+
WithdrawalList: {
|
|
2974
|
+
data: components["schemas"]["Withdrawal"][];
|
|
2975
|
+
has_more: boolean;
|
|
2976
|
+
/** @enum {string} */
|
|
2977
|
+
object: "list";
|
|
2978
|
+
};
|
|
2979
|
+
WithdrawalQuote: {
|
|
2980
|
+
amount: string;
|
|
2981
|
+
bank_account: string;
|
|
2982
|
+
/** Format: date-time */
|
|
2983
|
+
created_ts: string;
|
|
2984
|
+
/** Format: date-time */
|
|
2985
|
+
expires_ts: string;
|
|
2986
|
+
failure_code?: string;
|
|
2987
|
+
id: string;
|
|
2988
|
+
livemode: boolean;
|
|
2989
|
+
/** @enum {string} */
|
|
2990
|
+
method: "ach" | "wire";
|
|
2991
|
+
/** @enum {string} */
|
|
2992
|
+
object: "withdrawal_quote";
|
|
2993
|
+
pricing: components["schemas"]["WithdrawalFeeTerms"] | null;
|
|
2994
|
+
/** @enum {string} */
|
|
2995
|
+
status: "pending" | "ready" | "failed";
|
|
2996
|
+
};
|
|
2997
|
+
WithdrawalQuoteInput: {
|
|
2998
|
+
/** @description USD principal in whole cents, excluding fees. */
|
|
2999
|
+
amount: string;
|
|
3000
|
+
bank_account: string;
|
|
3001
|
+
/** @enum {string} */
|
|
3002
|
+
method: "ach" | "wire";
|
|
3003
|
+
};
|
|
2796
3004
|
};
|
|
2797
3005
|
responses: {
|
|
2798
3006
|
/** @description Invalid input, version, account directive, or idempotency header. Correct the request before retrying. */
|
|
@@ -4054,6 +4262,47 @@ export interface operations {
|
|
|
4054
4262
|
};
|
|
4055
4263
|
};
|
|
4056
4264
|
};
|
|
4265
|
+
"orders.cancel": {
|
|
4266
|
+
parameters: {
|
|
4267
|
+
query?: never;
|
|
4268
|
+
header: {
|
|
4269
|
+
"Idempotency-Key": components["parameters"]["Idempotency-Key"];
|
|
4270
|
+
};
|
|
4271
|
+
path: {
|
|
4272
|
+
id: string;
|
|
4273
|
+
};
|
|
4274
|
+
cookie?: never;
|
|
4275
|
+
};
|
|
4276
|
+
requestBody?: never;
|
|
4277
|
+
responses: {
|
|
4278
|
+
/** @description OK */
|
|
4279
|
+
200: {
|
|
4280
|
+
headers: {
|
|
4281
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
4282
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
4283
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
4284
|
+
[name: string]: unknown;
|
|
4285
|
+
};
|
|
4286
|
+
content: {
|
|
4287
|
+
"application/json": components["schemas"]["Order"];
|
|
4288
|
+
};
|
|
4289
|
+
};
|
|
4290
|
+
400: components["responses"]["Error400"];
|
|
4291
|
+
401: components["responses"]["Error401"];
|
|
4292
|
+
403: components["responses"]["Error403"];
|
|
4293
|
+
409: components["responses"]["Error409"];
|
|
4294
|
+
429: components["responses"]["Error429"];
|
|
4295
|
+
/** @description Error response. */
|
|
4296
|
+
default: {
|
|
4297
|
+
headers: {
|
|
4298
|
+
[name: string]: unknown;
|
|
4299
|
+
};
|
|
4300
|
+
content: {
|
|
4301
|
+
"application/json": components["schemas"]["Error"];
|
|
4302
|
+
};
|
|
4303
|
+
};
|
|
4304
|
+
};
|
|
4305
|
+
};
|
|
4057
4306
|
"policies.snapshot": {
|
|
4058
4307
|
parameters: {
|
|
4059
4308
|
query?: never;
|
|
@@ -5070,4 +5319,248 @@ export interface operations {
|
|
|
5070
5319
|
};
|
|
5071
5320
|
};
|
|
5072
5321
|
};
|
|
5322
|
+
"withdrawal_quotes.create": {
|
|
5323
|
+
parameters: {
|
|
5324
|
+
query?: never;
|
|
5325
|
+
header: {
|
|
5326
|
+
"Idempotency-Key": components["parameters"]["Idempotency-Key"];
|
|
5327
|
+
};
|
|
5328
|
+
path?: never;
|
|
5329
|
+
cookie?: never;
|
|
5330
|
+
};
|
|
5331
|
+
requestBody?: {
|
|
5332
|
+
content: {
|
|
5333
|
+
"application/json": components["schemas"]["WithdrawalQuoteInput"];
|
|
5334
|
+
};
|
|
5335
|
+
};
|
|
5336
|
+
responses: {
|
|
5337
|
+
/** @description OK */
|
|
5338
|
+
200: {
|
|
5339
|
+
headers: {
|
|
5340
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5341
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5342
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5343
|
+
[name: string]: unknown;
|
|
5344
|
+
};
|
|
5345
|
+
content: {
|
|
5346
|
+
"application/json": components["schemas"]["WithdrawalQuote"];
|
|
5347
|
+
};
|
|
5348
|
+
};
|
|
5349
|
+
400: components["responses"]["Error400"];
|
|
5350
|
+
401: components["responses"]["Error401"];
|
|
5351
|
+
403: components["responses"]["Error403"];
|
|
5352
|
+
409: components["responses"]["Error409"];
|
|
5353
|
+
429: components["responses"]["Error429"];
|
|
5354
|
+
/** @description Error response. */
|
|
5355
|
+
default: {
|
|
5356
|
+
headers: {
|
|
5357
|
+
[name: string]: unknown;
|
|
5358
|
+
};
|
|
5359
|
+
content: {
|
|
5360
|
+
"application/json": components["schemas"]["Error"];
|
|
5361
|
+
};
|
|
5362
|
+
};
|
|
5363
|
+
};
|
|
5364
|
+
};
|
|
5365
|
+
"withdrawal_quotes.get": {
|
|
5366
|
+
parameters: {
|
|
5367
|
+
query?: never;
|
|
5368
|
+
header?: never;
|
|
5369
|
+
path: {
|
|
5370
|
+
id: string;
|
|
5371
|
+
};
|
|
5372
|
+
cookie?: never;
|
|
5373
|
+
};
|
|
5374
|
+
requestBody?: never;
|
|
5375
|
+
responses: {
|
|
5376
|
+
/** @description OK */
|
|
5377
|
+
200: {
|
|
5378
|
+
headers: {
|
|
5379
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5380
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5381
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5382
|
+
[name: string]: unknown;
|
|
5383
|
+
};
|
|
5384
|
+
content: {
|
|
5385
|
+
"application/json": components["schemas"]["WithdrawalQuote"];
|
|
5386
|
+
};
|
|
5387
|
+
};
|
|
5388
|
+
400: components["responses"]["Error400"];
|
|
5389
|
+
401: components["responses"]["Error401"];
|
|
5390
|
+
403: components["responses"]["Error403"];
|
|
5391
|
+
429: components["responses"]["Error429"];
|
|
5392
|
+
/** @description Error response. */
|
|
5393
|
+
default: {
|
|
5394
|
+
headers: {
|
|
5395
|
+
[name: string]: unknown;
|
|
5396
|
+
};
|
|
5397
|
+
content: {
|
|
5398
|
+
"application/json": components["schemas"]["Error"];
|
|
5399
|
+
};
|
|
5400
|
+
};
|
|
5401
|
+
};
|
|
5402
|
+
};
|
|
5403
|
+
"withdrawals.list": {
|
|
5404
|
+
parameters: {
|
|
5405
|
+
query?: {
|
|
5406
|
+
limit?: number;
|
|
5407
|
+
starting_after?: string;
|
|
5408
|
+
ending_before?: string;
|
|
5409
|
+
method?: "onchain" | "ach" | "wire";
|
|
5410
|
+
};
|
|
5411
|
+
header?: never;
|
|
5412
|
+
path?: never;
|
|
5413
|
+
cookie?: never;
|
|
5414
|
+
};
|
|
5415
|
+
requestBody?: never;
|
|
5416
|
+
responses: {
|
|
5417
|
+
/** @description OK */
|
|
5418
|
+
200: {
|
|
5419
|
+
headers: {
|
|
5420
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5421
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5422
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5423
|
+
[name: string]: unknown;
|
|
5424
|
+
};
|
|
5425
|
+
content: {
|
|
5426
|
+
"application/json": components["schemas"]["WithdrawalList"];
|
|
5427
|
+
};
|
|
5428
|
+
};
|
|
5429
|
+
400: components["responses"]["Error400"];
|
|
5430
|
+
401: components["responses"]["Error401"];
|
|
5431
|
+
403: components["responses"]["Error403"];
|
|
5432
|
+
429: components["responses"]["Error429"];
|
|
5433
|
+
/** @description Error response. */
|
|
5434
|
+
default: {
|
|
5435
|
+
headers: {
|
|
5436
|
+
[name: string]: unknown;
|
|
5437
|
+
};
|
|
5438
|
+
content: {
|
|
5439
|
+
"application/json": components["schemas"]["Error"];
|
|
5440
|
+
};
|
|
5441
|
+
};
|
|
5442
|
+
};
|
|
5443
|
+
};
|
|
5444
|
+
"withdrawals.create": {
|
|
5445
|
+
parameters: {
|
|
5446
|
+
query?: never;
|
|
5447
|
+
header: {
|
|
5448
|
+
"Idempotency-Key": components["parameters"]["Idempotency-Key"];
|
|
5449
|
+
};
|
|
5450
|
+
path?: never;
|
|
5451
|
+
cookie?: never;
|
|
5452
|
+
};
|
|
5453
|
+
requestBody?: {
|
|
5454
|
+
content: {
|
|
5455
|
+
"application/json": components["schemas"]["WithdrawalInput"];
|
|
5456
|
+
};
|
|
5457
|
+
};
|
|
5458
|
+
responses: {
|
|
5459
|
+
/** @description OK */
|
|
5460
|
+
200: {
|
|
5461
|
+
headers: {
|
|
5462
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5463
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5464
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5465
|
+
[name: string]: unknown;
|
|
5466
|
+
};
|
|
5467
|
+
content: {
|
|
5468
|
+
"application/json": components["schemas"]["Withdrawal"];
|
|
5469
|
+
};
|
|
5470
|
+
};
|
|
5471
|
+
400: components["responses"]["Error400"];
|
|
5472
|
+
401: components["responses"]["Error401"];
|
|
5473
|
+
403: components["responses"]["Error403"];
|
|
5474
|
+
409: components["responses"]["Error409"];
|
|
5475
|
+
429: components["responses"]["Error429"];
|
|
5476
|
+
/** @description Error response. */
|
|
5477
|
+
default: {
|
|
5478
|
+
headers: {
|
|
5479
|
+
[name: string]: unknown;
|
|
5480
|
+
};
|
|
5481
|
+
content: {
|
|
5482
|
+
"application/json": components["schemas"]["Error"];
|
|
5483
|
+
};
|
|
5484
|
+
};
|
|
5485
|
+
};
|
|
5486
|
+
};
|
|
5487
|
+
"withdrawals.get": {
|
|
5488
|
+
parameters: {
|
|
5489
|
+
query?: never;
|
|
5490
|
+
header?: never;
|
|
5491
|
+
path: {
|
|
5492
|
+
id: string;
|
|
5493
|
+
};
|
|
5494
|
+
cookie?: never;
|
|
5495
|
+
};
|
|
5496
|
+
requestBody?: never;
|
|
5497
|
+
responses: {
|
|
5498
|
+
/** @description OK */
|
|
5499
|
+
200: {
|
|
5500
|
+
headers: {
|
|
5501
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5502
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5503
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5504
|
+
[name: string]: unknown;
|
|
5505
|
+
};
|
|
5506
|
+
content: {
|
|
5507
|
+
"application/json": components["schemas"]["Withdrawal"];
|
|
5508
|
+
};
|
|
5509
|
+
};
|
|
5510
|
+
400: components["responses"]["Error400"];
|
|
5511
|
+
401: components["responses"]["Error401"];
|
|
5512
|
+
403: components["responses"]["Error403"];
|
|
5513
|
+
429: components["responses"]["Error429"];
|
|
5514
|
+
/** @description Error response. */
|
|
5515
|
+
default: {
|
|
5516
|
+
headers: {
|
|
5517
|
+
[name: string]: unknown;
|
|
5518
|
+
};
|
|
5519
|
+
content: {
|
|
5520
|
+
"application/json": components["schemas"]["Error"];
|
|
5521
|
+
};
|
|
5522
|
+
};
|
|
5523
|
+
};
|
|
5524
|
+
};
|
|
5525
|
+
"withdrawals.cancel": {
|
|
5526
|
+
parameters: {
|
|
5527
|
+
query?: never;
|
|
5528
|
+
header: {
|
|
5529
|
+
"Idempotency-Key": components["parameters"]["Idempotency-Key"];
|
|
5530
|
+
};
|
|
5531
|
+
path: {
|
|
5532
|
+
id: string;
|
|
5533
|
+
};
|
|
5534
|
+
cookie?: never;
|
|
5535
|
+
};
|
|
5536
|
+
requestBody?: never;
|
|
5537
|
+
responses: {
|
|
5538
|
+
/** @description OK */
|
|
5539
|
+
200: {
|
|
5540
|
+
headers: {
|
|
5541
|
+
"X-RateLimit-Limit": components["headers"]["X-RateLimit-Limit"];
|
|
5542
|
+
"X-RateLimit-Remaining": components["headers"]["X-RateLimit-Remaining"];
|
|
5543
|
+
"X-RateLimit-Reset": components["headers"]["X-RateLimit-Reset"];
|
|
5544
|
+
[name: string]: unknown;
|
|
5545
|
+
};
|
|
5546
|
+
content: {
|
|
5547
|
+
"application/json": components["schemas"]["Withdrawal"];
|
|
5548
|
+
};
|
|
5549
|
+
};
|
|
5550
|
+
400: components["responses"]["Error400"];
|
|
5551
|
+
401: components["responses"]["Error401"];
|
|
5552
|
+
403: components["responses"]["Error403"];
|
|
5553
|
+
409: components["responses"]["Error409"];
|
|
5554
|
+
429: components["responses"]["Error429"];
|
|
5555
|
+
/** @description Error response. */
|
|
5556
|
+
default: {
|
|
5557
|
+
headers: {
|
|
5558
|
+
[name: string]: unknown;
|
|
5559
|
+
};
|
|
5560
|
+
content: {
|
|
5561
|
+
"application/json": components["schemas"]["Error"];
|
|
5562
|
+
};
|
|
5563
|
+
};
|
|
5564
|
+
};
|
|
5565
|
+
};
|
|
5073
5566
|
}
|
|
@@ -1644,8 +1644,8 @@ export interface paths {
|
|
|
1644
1644
|
cookie?: never;
|
|
1645
1645
|
};
|
|
1646
1646
|
/**
|
|
1647
|
-
* List
|
|
1648
|
-
* @description
|
|
1647
|
+
* List saved on-chain destinations
|
|
1648
|
+
* @description Lists the business's saved on-chain destinations. Set `customer_visible_only=true` to exclude platform-provisioned rails. Use a destination's `id` as `account_id` when submitting an on-chain withdrawal; its asset, network, address and memo are resolved from that saved account. Listing a destination does not guarantee withdrawal eligibility. Submission rechecks its current status, screening, network and financial controls. Use `next_cursor` as `cursor` to read the next page.
|
|
1649
1649
|
*/
|
|
1650
1650
|
get: operations["money.accounts.whitelist.list"];
|
|
1651
1651
|
put?: never;
|
|
@@ -1784,6 +1784,28 @@ export interface paths {
|
|
|
1784
1784
|
patch?: never;
|
|
1785
1785
|
trace?: never;
|
|
1786
1786
|
};
|
|
1787
|
+
"/money/onchain/withdrawals": {
|
|
1788
|
+
parameters: {
|
|
1789
|
+
query?: never;
|
|
1790
|
+
header?: never;
|
|
1791
|
+
path?: never;
|
|
1792
|
+
cookie?: never;
|
|
1793
|
+
};
|
|
1794
|
+
get?: never;
|
|
1795
|
+
put?: never;
|
|
1796
|
+
/**
|
|
1797
|
+
* Create an on-chain withdrawal
|
|
1798
|
+
* @description Creates a withdrawal to an existing allowlisted external-wallet account. The account supplies the asset, network, address and any memo; raw destination addresses are not accepted. Requires business verification and `funds_withdraw`, plus the current network, compliance, balance and approval checks.
|
|
1799
|
+
*
|
|
1800
|
+
* An `approval_pending` outcome contains the approval request and moves no money. A `created` outcome identifies the booked movement; it does not mean settlement has completed. Keep the same `Idempotency-Key` and body after an uncertain submission; a duplicate returns 409.
|
|
1801
|
+
*/
|
|
1802
|
+
post: operations["money.onchain.withdrawals.create"];
|
|
1803
|
+
delete?: never;
|
|
1804
|
+
options?: never;
|
|
1805
|
+
head?: never;
|
|
1806
|
+
patch?: never;
|
|
1807
|
+
trace?: never;
|
|
1808
|
+
};
|
|
1787
1809
|
"/money/test_approval_rules": {
|
|
1788
1810
|
parameters: {
|
|
1789
1811
|
query?: never;
|
|
@@ -3790,14 +3812,113 @@ export interface components {
|
|
|
3790
3812
|
contents?: string;
|
|
3791
3813
|
found?: boolean;
|
|
3792
3814
|
};
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3815
|
+
MoneyMovementsCreateOnchainWithdrawalInput: {
|
|
3816
|
+
account_id: string;
|
|
3817
|
+
amount: string;
|
|
3818
|
+
};
|
|
3819
|
+
MoneyMovementsCreateMoneyMovementOutput: {
|
|
3820
|
+
money_movement_id?: string;
|
|
3821
|
+
/** @enum {string} */
|
|
3822
|
+
outcome?: "created" | "approval_pending";
|
|
3823
|
+
transaction?: components["schemas"]["MoneyMovementsMoneyMovementView"];
|
|
3824
|
+
transfer_approval?: components["schemas"]["MoneyMovementsTransferApprovalView"];
|
|
3825
|
+
};
|
|
3826
|
+
MoneyMovementsMoneyMovementView: {
|
|
3827
|
+
automation_id?: string | null;
|
|
3828
|
+
complete: boolean;
|
|
3829
|
+
/** Format: date-time */
|
|
3830
|
+
completed_ts?: string;
|
|
3831
|
+
created_by: string;
|
|
3832
|
+
/** Format: date-time */
|
|
3833
|
+
created_ts: string;
|
|
3834
|
+
/** Format: date-time */
|
|
3835
|
+
failed_ts?: string;
|
|
3836
|
+
fee?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3837
|
+
fund_symbol?: string;
|
|
3838
|
+
group_id: string;
|
|
3839
|
+
id: string;
|
|
3840
|
+
input: components["schemas"]["MoneyMovementsTransactionSideView"];
|
|
3841
|
+
metadata: components["schemas"]["MoneyMovementsMovementMetadataView"];
|
|
3842
|
+
/** @description Whether net_amount_view can still move. True while the cash leg it is computed from is neither final nor the figure the customer named at order entry, in which case the settled net is for now the quoted one. Always false on a fund buy, whose cash figure the customer fixed when placing the order; a BTC trade order gets no such exemption in either direction. False when there is no net amount at all, so read it only alongside net_amount_view. */
|
|
3843
|
+
net_amount_estimated?: boolean;
|
|
3844
|
+
net_amount_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3845
|
+
/** Format: date-time */
|
|
3846
|
+
occurred_ts: string;
|
|
3847
|
+
offramp_amounts?: components["schemas"]["MoneyMovementsOfframpAmountsView"];
|
|
3848
|
+
onchain_transactions?: components["schemas"]["MoneyMovementsOnchainTransactionView"][];
|
|
3849
|
+
onramp_amounts?: components["schemas"]["MoneyMovementsOnrampAmountsView"];
|
|
3850
|
+
output: components["schemas"]["MoneyMovementsTransactionSideView"];
|
|
3851
|
+
/** @description Whether price_per_unit_view was derived from a leg whose figure is not final, so the price can still move. True until both the cash leg and the share leg are final, because a fund trade prices at the net asset value struck at settlement; either leg alone is enough. False when there is no price at all, so read it only alongside price_per_unit_view. */
|
|
3852
|
+
price_per_unit_estimated?: boolean;
|
|
3853
|
+
price_per_unit_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3854
|
+
quoted_net_amount_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3855
|
+
quoted_price_per_unit_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3856
|
+
ramp_fee_returns?: components["schemas"]["MoneyMovementsRampFeeReturnsView"];
|
|
3857
|
+
settlement_commission_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3858
|
+
settlement_pathway?: string;
|
|
3859
|
+
/** Format: date-time */
|
|
3860
|
+
settlement_ts?: string;
|
|
3861
|
+
status: components["schemas"]["MoneyenumLifecycleStatus"];
|
|
3862
|
+
transaction_count: number;
|
|
3863
|
+
type: string;
|
|
3800
3864
|
};
|
|
3865
|
+
MoneyMovementsTransactionSideView: {
|
|
3866
|
+
amount: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3867
|
+
/** @description Whether amount is still an estimate — the leg's quoted subtotal, carried because the leg's figure is not final. True means the figure can still move and must be presented as an estimate rather than as a settled one. False means it can no longer change, either because the leg reached a terminal state or because it carries the figure the customer named at order entry (a fund buy's dollars, a fund sell's shares); it does not promise the figure was observed. */
|
|
3868
|
+
amount_estimated: boolean;
|
|
3869
|
+
money_account_id: string;
|
|
3870
|
+
money_symbol: string;
|
|
3871
|
+
payment_rail?: string;
|
|
3872
|
+
quoted_amount?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3873
|
+
};
|
|
3874
|
+
MoneyMovementsMovementMetadataView: {
|
|
3875
|
+
created_by: string;
|
|
3876
|
+
/** Format: date-time */
|
|
3877
|
+
created_ts: string;
|
|
3878
|
+
/** Format: date-time */
|
|
3879
|
+
updated_ts: string;
|
|
3880
|
+
};
|
|
3881
|
+
MoneyMovementsOfframpAmountsView: {
|
|
3882
|
+
bank_fee_usd: string;
|
|
3883
|
+
collected_platform_fee_usdc: string;
|
|
3884
|
+
/** @enum {string} */
|
|
3885
|
+
collection_status: "not_needed" | "pending" | "collected" | "failed";
|
|
3886
|
+
payout_delivered: boolean;
|
|
3887
|
+
payout_estimated: boolean;
|
|
3888
|
+
payout_usd: string;
|
|
3889
|
+
platform_fee_usdc: string;
|
|
3890
|
+
total_debit_usdc: string;
|
|
3891
|
+
};
|
|
3892
|
+
MoneyMovementsOnchainTransactionView: {
|
|
3893
|
+
chain?: string;
|
|
3894
|
+
explorer_url?: string;
|
|
3895
|
+
tx_hash: string;
|
|
3896
|
+
};
|
|
3897
|
+
MoneyMovementsOnrampAmountsView: {
|
|
3898
|
+
collected_platform_fee_usdc: string;
|
|
3899
|
+
/** @enum {string} */
|
|
3900
|
+
collection_status: "not_needed" | "pending" | "collected" | "failed" | "insufficient_proceeds";
|
|
3901
|
+
/** Format: date-time */
|
|
3902
|
+
first_observed_ts?: string | null;
|
|
3903
|
+
gross_deposit_usd: string;
|
|
3904
|
+
gross_proceeds_usdc: string;
|
|
3905
|
+
net_usdc: string;
|
|
3906
|
+
platform_fee_usdc: string;
|
|
3907
|
+
pricing_basis?: string | null;
|
|
3908
|
+
/** Format: date-time */
|
|
3909
|
+
pricing_ts?: string | null;
|
|
3910
|
+
proceeds_available: boolean;
|
|
3911
|
+
proceeds_estimated: boolean;
|
|
3912
|
+
};
|
|
3913
|
+
MoneyMovementsRampFeeReturnsView: {
|
|
3914
|
+
original_movement_id?: string | null;
|
|
3915
|
+
refund_movement_ids: string[] | null;
|
|
3916
|
+
refunded: boolean;
|
|
3917
|
+
refunded_usdc: string;
|
|
3918
|
+
waived: boolean;
|
|
3919
|
+
};
|
|
3920
|
+
/** @enum {string} */
|
|
3921
|
+
MoneyenumLifecycleStatus: "pending" | "completed" | "failed";
|
|
3801
3922
|
MoneyMovementsTransferApprovalView: {
|
|
3802
3923
|
also_required_ind_id?: string | null;
|
|
3803
3924
|
also_required_name?: string;
|
|
@@ -3903,6 +4024,8 @@ export interface components {
|
|
|
3903
4024
|
/** @enum {string} */
|
|
3904
4025
|
source_network?: "ethereum" | "stellar";
|
|
3905
4026
|
};
|
|
4027
|
+
/** @enum {string} */
|
|
4028
|
+
MoneyMovementsTransferApprovalStatus: "pending" | "approved" | "denied" | "cancelled" | "expired" | "policy_changed" | "failed";
|
|
3906
4029
|
MoneyMovementsTransferApprovalVoteView: {
|
|
3907
4030
|
approver?: string;
|
|
3908
4031
|
/** @description Approver full name from historical business membership; a team member when identity is unavailable. Display only, independent of current voting eligibility. */
|
|
@@ -3915,6 +4038,12 @@ export interface components {
|
|
|
3915
4038
|
};
|
|
3916
4039
|
/** @enum {string} */
|
|
3917
4040
|
MoneyenumTransferApprovalVoteDecision: "approved" | "denied";
|
|
4041
|
+
Page_MoneyMovementsTransferApprovalView: {
|
|
4042
|
+
data: components["schemas"]["MoneyMovementsTransferApprovalView"][] | null;
|
|
4043
|
+
has_more: boolean;
|
|
4044
|
+
next_cursor: string | null;
|
|
4045
|
+
total_count?: number | null;
|
|
4046
|
+
};
|
|
3918
4047
|
MoneyMovementsApproveTransferApprovalInput: {
|
|
3919
4048
|
/** @description Optional plain-text comment, at most 500 characters; recorded with the successful decision. */
|
|
3920
4049
|
note?: string;
|
|
@@ -3962,102 +4091,6 @@ export interface components {
|
|
|
3962
4091
|
transaction?: components["schemas"]["MoneyMovementsMoneyMovementView"];
|
|
3963
4092
|
transfer_approval?: components["schemas"]["MoneyMovementsTransferApprovalView"];
|
|
3964
4093
|
};
|
|
3965
|
-
MoneyMovementsMoneyMovementView: {
|
|
3966
|
-
automation_id?: string | null;
|
|
3967
|
-
complete: boolean;
|
|
3968
|
-
/** Format: date-time */
|
|
3969
|
-
completed_ts?: string;
|
|
3970
|
-
created_by: string;
|
|
3971
|
-
/** Format: date-time */
|
|
3972
|
-
created_ts: string;
|
|
3973
|
-
/** Format: date-time */
|
|
3974
|
-
failed_ts?: string;
|
|
3975
|
-
fee?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3976
|
-
fund_symbol?: string;
|
|
3977
|
-
group_id: string;
|
|
3978
|
-
id: string;
|
|
3979
|
-
input: components["schemas"]["MoneyMovementsTransactionSideView"];
|
|
3980
|
-
metadata: components["schemas"]["MoneyMovementsMovementMetadataView"];
|
|
3981
|
-
/** @description Whether net_amount_view can still move. True while the cash leg it is computed from is neither final nor the figure the customer named at order entry, in which case the settled net is for now the quoted one. Always false on a fund buy, whose cash figure the customer fixed when placing the order; a BTC trade order gets no such exemption in either direction. False when there is no net amount at all, so read it only alongside net_amount_view. */
|
|
3982
|
-
net_amount_estimated?: boolean;
|
|
3983
|
-
net_amount_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3984
|
-
/** Format: date-time */
|
|
3985
|
-
occurred_ts: string;
|
|
3986
|
-
offramp_amounts?: components["schemas"]["MoneyMovementsOfframpAmountsView"];
|
|
3987
|
-
onchain_transactions?: components["schemas"]["MoneyMovementsOnchainTransactionView"][];
|
|
3988
|
-
onramp_amounts?: components["schemas"]["MoneyMovementsOnrampAmountsView"];
|
|
3989
|
-
output: components["schemas"]["MoneyMovementsTransactionSideView"];
|
|
3990
|
-
/** @description Whether price_per_unit_view was derived from a leg whose figure is not final, so the price can still move. True until both the cash leg and the share leg are final, because a fund trade prices at the net asset value struck at settlement; either leg alone is enough. False when there is no price at all, so read it only alongside price_per_unit_view. */
|
|
3991
|
-
price_per_unit_estimated?: boolean;
|
|
3992
|
-
price_per_unit_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3993
|
-
quoted_net_amount_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3994
|
-
quoted_price_per_unit_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3995
|
-
ramp_fee_returns?: components["schemas"]["MoneyMovementsRampFeeReturnsView"];
|
|
3996
|
-
settlement_commission_view?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
3997
|
-
settlement_pathway?: string;
|
|
3998
|
-
/** Format: date-time */
|
|
3999
|
-
settlement_ts?: string;
|
|
4000
|
-
status: components["schemas"]["MoneyenumLifecycleStatus"];
|
|
4001
|
-
transaction_count: number;
|
|
4002
|
-
type: string;
|
|
4003
|
-
};
|
|
4004
|
-
MoneyMovementsTransactionSideView: {
|
|
4005
|
-
amount: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
4006
|
-
/** @description Whether amount is still an estimate — the leg's quoted subtotal, carried because the leg's figure is not final. True means the figure can still move and must be presented as an estimate rather than as a settled one. False means it can no longer change, either because the leg reached a terminal state or because it carries the figure the customer named at order entry (a fund buy's dollars, a fund sell's shares); it does not promise the figure was observed. */
|
|
4007
|
-
amount_estimated: boolean;
|
|
4008
|
-
money_account_id: string;
|
|
4009
|
-
money_symbol: string;
|
|
4010
|
-
payment_rail?: string;
|
|
4011
|
-
quoted_amount?: components["schemas"]["MoneyfmtMoneyAmountView"];
|
|
4012
|
-
};
|
|
4013
|
-
MoneyMovementsMovementMetadataView: {
|
|
4014
|
-
created_by: string;
|
|
4015
|
-
/** Format: date-time */
|
|
4016
|
-
created_ts: string;
|
|
4017
|
-
/** Format: date-time */
|
|
4018
|
-
updated_ts: string;
|
|
4019
|
-
};
|
|
4020
|
-
MoneyMovementsOfframpAmountsView: {
|
|
4021
|
-
bank_fee_usd: string;
|
|
4022
|
-
collected_platform_fee_usdc: string;
|
|
4023
|
-
/** @enum {string} */
|
|
4024
|
-
collection_status: "not_needed" | "pending" | "collected" | "failed";
|
|
4025
|
-
payout_delivered: boolean;
|
|
4026
|
-
payout_estimated: boolean;
|
|
4027
|
-
payout_usd: string;
|
|
4028
|
-
platform_fee_usdc: string;
|
|
4029
|
-
total_debit_usdc: string;
|
|
4030
|
-
};
|
|
4031
|
-
MoneyMovementsOnchainTransactionView: {
|
|
4032
|
-
chain?: string;
|
|
4033
|
-
explorer_url?: string;
|
|
4034
|
-
tx_hash: string;
|
|
4035
|
-
};
|
|
4036
|
-
MoneyMovementsOnrampAmountsView: {
|
|
4037
|
-
collected_platform_fee_usdc: string;
|
|
4038
|
-
/** @enum {string} */
|
|
4039
|
-
collection_status: "not_needed" | "pending" | "collected" | "failed" | "insufficient_proceeds";
|
|
4040
|
-
/** Format: date-time */
|
|
4041
|
-
first_observed_ts?: string | null;
|
|
4042
|
-
gross_deposit_usd: string;
|
|
4043
|
-
gross_proceeds_usdc: string;
|
|
4044
|
-
net_usdc: string;
|
|
4045
|
-
platform_fee_usdc: string;
|
|
4046
|
-
pricing_basis?: string | null;
|
|
4047
|
-
/** Format: date-time */
|
|
4048
|
-
pricing_ts?: string | null;
|
|
4049
|
-
proceeds_available: boolean;
|
|
4050
|
-
proceeds_estimated: boolean;
|
|
4051
|
-
};
|
|
4052
|
-
MoneyMovementsRampFeeReturnsView: {
|
|
4053
|
-
original_movement_id?: string | null;
|
|
4054
|
-
refund_movement_ids: string[] | null;
|
|
4055
|
-
refunded: boolean;
|
|
4056
|
-
refunded_usdc: string;
|
|
4057
|
-
waived: boolean;
|
|
4058
|
-
};
|
|
4059
|
-
/** @enum {string} */
|
|
4060
|
-
MoneyenumLifecycleStatus: "pending" | "completed" | "failed";
|
|
4061
4094
|
TradesPreviewBtcTradeFeeOutput: {
|
|
4062
4095
|
below_minimum?: boolean;
|
|
4063
4096
|
estimated_quantity?: string;
|
|
@@ -4083,13 +4116,6 @@ export interface components {
|
|
|
4083
4116
|
TradesSettlementSource: "platform" | "stellar";
|
|
4084
4117
|
/** @enum {string} */
|
|
4085
4118
|
TradesSettlementPreference: "standard" | "instant";
|
|
4086
|
-
MoneyMovementsCreateMoneyMovementOutput: {
|
|
4087
|
-
money_movement_id?: string;
|
|
4088
|
-
/** @enum {string} */
|
|
4089
|
-
outcome?: "created" | "approval_pending";
|
|
4090
|
-
transaction?: components["schemas"]["MoneyMovementsMoneyMovementView"];
|
|
4091
|
-
transfer_approval?: components["schemas"]["MoneyMovementsTransferApprovalView"];
|
|
4092
|
-
};
|
|
4093
4119
|
/** @enum {string} */
|
|
4094
4120
|
TradesTradeSymbol: "BTC" | "WTGXX" | "FLTTX" | "WTSIX";
|
|
4095
4121
|
TradesGetPathwayAvailabilityOutput: {
|
|
@@ -10140,6 +10166,87 @@ export interface operations {
|
|
|
10140
10166
|
};
|
|
10141
10167
|
};
|
|
10142
10168
|
};
|
|
10169
|
+
"money.onchain.withdrawals.create": {
|
|
10170
|
+
parameters: {
|
|
10171
|
+
query?: never;
|
|
10172
|
+
header: {
|
|
10173
|
+
/** @description Required client idempotency key; a duplicate submission with the same key is rejected with 409. */
|
|
10174
|
+
"Idempotency-Key": string;
|
|
10175
|
+
};
|
|
10176
|
+
path?: never;
|
|
10177
|
+
cookie?: never;
|
|
10178
|
+
};
|
|
10179
|
+
requestBody?: {
|
|
10180
|
+
content: {
|
|
10181
|
+
"application/json": components["schemas"]["MoneyMovementsCreateOnchainWithdrawalInput"];
|
|
10182
|
+
};
|
|
10183
|
+
};
|
|
10184
|
+
responses: {
|
|
10185
|
+
/** @description OK */
|
|
10186
|
+
200: {
|
|
10187
|
+
headers: {
|
|
10188
|
+
[name: string]: unknown;
|
|
10189
|
+
};
|
|
10190
|
+
content: {
|
|
10191
|
+
"application/json": components["schemas"]["MoneyMovementsCreateMoneyMovementOutput"];
|
|
10192
|
+
};
|
|
10193
|
+
};
|
|
10194
|
+
/** @description Bad Request */
|
|
10195
|
+
400: {
|
|
10196
|
+
headers: {
|
|
10197
|
+
[name: string]: unknown;
|
|
10198
|
+
};
|
|
10199
|
+
content: {
|
|
10200
|
+
"application/json": components["schemas"]["HttputilAPIError"];
|
|
10201
|
+
};
|
|
10202
|
+
};
|
|
10203
|
+
/** @description Unauthorized */
|
|
10204
|
+
401: {
|
|
10205
|
+
headers: {
|
|
10206
|
+
[name: string]: unknown;
|
|
10207
|
+
};
|
|
10208
|
+
content: {
|
|
10209
|
+
"application/json": components["schemas"]["HttputilAPIError"];
|
|
10210
|
+
};
|
|
10211
|
+
};
|
|
10212
|
+
/** @description Forbidden */
|
|
10213
|
+
403: {
|
|
10214
|
+
headers: {
|
|
10215
|
+
[name: string]: unknown;
|
|
10216
|
+
};
|
|
10217
|
+
content: {
|
|
10218
|
+
"application/json": components["schemas"]["HttputilAPIError"];
|
|
10219
|
+
};
|
|
10220
|
+
};
|
|
10221
|
+
/** @description Conflict */
|
|
10222
|
+
409: {
|
|
10223
|
+
headers: {
|
|
10224
|
+
[name: string]: unknown;
|
|
10225
|
+
};
|
|
10226
|
+
content: {
|
|
10227
|
+
"application/json": components["schemas"]["HttputilAPIError"];
|
|
10228
|
+
};
|
|
10229
|
+
};
|
|
10230
|
+
/** @description Service Unavailable */
|
|
10231
|
+
503: {
|
|
10232
|
+
headers: {
|
|
10233
|
+
[name: string]: unknown;
|
|
10234
|
+
};
|
|
10235
|
+
content: {
|
|
10236
|
+
"application/json": components["schemas"]["HttputilAPIError"];
|
|
10237
|
+
};
|
|
10238
|
+
};
|
|
10239
|
+
/** @description Error response. */
|
|
10240
|
+
default: {
|
|
10241
|
+
headers: {
|
|
10242
|
+
[name: string]: unknown;
|
|
10243
|
+
};
|
|
10244
|
+
content: {
|
|
10245
|
+
"application/json": components["schemas"]["HttputilAPIError"];
|
|
10246
|
+
};
|
|
10247
|
+
};
|
|
10248
|
+
};
|
|
10249
|
+
};
|
|
10143
10250
|
"money.test_approvals.rules_get": {
|
|
10144
10251
|
parameters: {
|
|
10145
10252
|
query?: never;
|