squarefi-bff-api-module 1.36.60 → 1.36.62

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 CHANGED
@@ -210,7 +210,7 @@ const publicUrl = getPublicUrl(path);
210
210
  | **developer** | Vendor & API key management |
211
211
  | **exchange** | Exchange rates per order type / currency |
212
212
  | **issuing** | Virtual & physical cards, limits, controls, transactions |
213
- | **kyc** | Data collection init/resume, Sumsub flows, rails & form submission |
213
+ | **kyc** | KYC entities & data collection, Sumsub flows, rails & forms |
214
214
  | **list** | Static system lists – currencies, chains, countries |
215
215
  | **orders** | Create / calculate orders (including internal transfer) |
216
216
  | **tenants** | Tenant configuration |
package/dist/api/kyc.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { API } from './types/types';
2
2
  export declare const kyc: {
3
3
  dataCollection: {
4
- init: ({ wallet_id, type, }: API.KYC.DataCollection.Init.Request) => Promise<API.KYC.DataCollection.Init.Response>;
4
+ /** @deprecated KYC is keyed by the KYC entity now, not the wallet (SFI-1924). Use `kyc.entity.init`. */
5
+ init: ({ wallet_id, type }: API.KYC.DataCollection.Init.Request) => Promise<API.KYC.DataCollection.Init.Response>;
6
+ /** @deprecated KYC is keyed by the KYC entity now, not the wallet (SFI-1924). Use `kyc.entity.resume`. */
5
7
  resume: ({ wallet_id, verification_ref, }: API.KYC.DataCollection.Resume.Request) => Promise<API.KYC.DataCollection.Resume.Response>;
6
8
  };
7
9
  sumsub: {
@@ -9,6 +11,11 @@ export declare const kyc: {
9
11
  };
10
12
  entity: {
11
13
  get: ({ wallet_id }: API.KYC.Entity.Get.Request) => Promise<API.KYC.Entity.Get.Response>;
14
+ create: (data: API.KYC.Entity.Create.Request) => Promise<API.KYC.Entity.Create.Response>;
15
+ getAll: () => Promise<API.KYC.Entity.List.Response>;
16
+ getById: ({ kyc_entity_id }: API.KYC.Entity.GetById.Request) => Promise<API.KYC.Entity.GetById.Response>;
17
+ init: ({ kyc_entity_id, ...params }: API.KYC.Entity.Init.Request) => Promise<API.KYC.Entity.Init.Response>;
18
+ resume: ({ kyc_entity_id, verification_ref, }: API.KYC.Entity.Resume.Request) => Promise<API.KYC.Entity.Resume.Response>;
12
19
  };
13
20
  rails: {
14
21
  info: {
package/dist/api/kyc.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { apiClientV1, apiClientV2 } from '../utils/apiClientFactory';
2
2
  export const kyc = {
3
3
  dataCollection: {
4
- init: ({ wallet_id, type, }) => apiClientV2.postRequest(`/kyc/init/${wallet_id}/${type}`),
4
+ /** @deprecated KYC is keyed by the KYC entity now, not the wallet (SFI-1924). Use `kyc.entity.init`. */
5
+ init: ({ wallet_id, type }) => apiClientV2.postRequest(`/kyc/init/${wallet_id}/${type}`),
6
+ /** @deprecated KYC is keyed by the KYC entity now, not the wallet (SFI-1924). Use `kyc.entity.resume`. */
5
7
  resume: ({ wallet_id, verification_ref, }) => apiClientV2.postRequest(`/kyc/resume/${wallet_id}/${verification_ref}`),
6
8
  },
7
9
  sumsub: {
@@ -9,6 +11,11 @@ export const kyc = {
9
11
  },
10
12
  entity: {
11
13
  get: ({ wallet_id }) => apiClientV2.getRequest(`/kyc/${wallet_id}/entity`),
14
+ create: (data) => apiClientV2.postRequest('/kyc/entities', { data }),
15
+ getAll: () => apiClientV2.getRequest('/kyc/entities'),
16
+ getById: ({ kyc_entity_id }) => apiClientV2.getRequest(`/kyc/entities/${kyc_entity_id}`),
17
+ init: ({ kyc_entity_id, ...params }) => apiClientV2.postRequest(`/kyc/entities/${kyc_entity_id}/init`, { params }),
18
+ resume: ({ kyc_entity_id, verification_ref, }) => apiClientV2.postRequest(`/kyc/entities/${kyc_entity_id}/resume/${verification_ref}`),
12
19
  },
13
20
  rails: {
14
21
  info: {
@@ -1109,7 +1109,7 @@ export interface paths {
1109
1109
  put?: never;
1110
1110
  /**
1111
1111
  * Create crypto wallet
1112
- * @description Creates a new crypto wallet (Utila wallet).
1112
+ * @description Creates a new crypto wallet.
1113
1113
  * Optionally specify chains to create addresses immediately.
1114
1114
  *
1115
1115
  */
@@ -1292,7 +1292,7 @@ export interface paths {
1292
1292
  post?: never;
1293
1293
  /**
1294
1294
  * Delete crypto wallet
1295
- * @description Soft-deletes a crypto wallet and archives it in Utila.
1295
+ * @description Soft-deletes a crypto wallet and archives it with the custody provider.
1296
1296
  * The wallet is marked as deleted and all addresses are deactivated.
1297
1297
  *
1298
1298
  */
@@ -1919,7 +1919,7 @@ export interface paths {
1919
1919
  */
1920
1920
  gov_id_expiration_date?: string;
1921
1921
  /**
1922
- * @description Tax identifier of the cardholder, separate from the document number. Required by Interlace CONSUMER programs when nationality is USA, where it must be a valid SSN (9 digits or XXX-XX-XXXX).
1922
+ * @description Tax identifier of the cardholder, separate from the document number. Required by some CONSUMER programs when nationality is USA, where it must be a valid SSN (9 digits or XXX-XX-XXXX).
1923
1923
  *
1924
1924
  * @example 123-45-6789
1925
1925
  */
@@ -2227,7 +2227,7 @@ export interface paths {
2227
2227
  gov_id_issuance_date?: string;
2228
2228
  /** Format: date */
2229
2229
  gov_id_expiration_date?: string;
2230
- /** @description Tax identifier (USA + Interlace CONSUMER: SSN, 9 digits or XXX-XX-XXXX) */
2230
+ /** @description Tax identifier (USA + CONSUMER programs that require it: SSN, 9 digits or XXX-XX-XXXX) */
2231
2231
  tax_identification_number?: string;
2232
2232
  address?: {
2233
2233
  line1?: string;
@@ -4859,7 +4859,13 @@ export interface paths {
4859
4859
  limit?: number;
4860
4860
  sort_by?: string;
4861
4861
  sort_order?: "asc" | "desc";
4862
- /** @description JSON-encoded array of filters, e.g. `[{"status":"COMPLETE"}]`.
4862
+ /** @description JSON-encoded array of filters, e.g. `[{"status":"COMPLETE"}]`. A value may be an
4863
+ * array to match any of several values: `[{"status":["NEW","PROCESSING"]}]`.
4864
+ * Filter by order type with `[{"order_type":"TRANSFER_INTERNAL"}]` — the names are
4865
+ * the ones `GET /api/reference/order_types` returns.
4866
+ * To find an order by the `reference` sent at creation, filter on that meta field:
4867
+ * `[{"meta->>reference":"invoice-2026-04-001"}]` — this is how an order is recovered
4868
+ * when the create response was lost.
4863
4869
  * Besides order columns it accepts `mass_payout_id` (uuid), which narrows the
4864
4870
  * result to the orders of one mass payout batch — the same batch reported by
4865
4871
  * the `mass_payout_id` field of each order. A non-uuid value is rejected with 400.
@@ -5184,6 +5190,16 @@ export interface paths {
5184
5190
  * @default false
5185
5191
  */
5186
5192
  is_reverse?: boolean;
5193
+ /**
5194
+ * @description Optional. Free-form reference visible in order/transaction listings. Kept on the order, so it is also how you find the transfer again if the create response was lost: `GET /api/orders/list?filters=[{"meta->>reference":"<your reference>"}]`.
5195
+ * @example invoice-2026-04-001
5196
+ */
5197
+ reference?: string;
5198
+ /**
5199
+ * @description Optional. Internal note attached to the order.
5200
+ * @example Fee collected for order 550e8400-e29b-41d4-a716-446655440000
5201
+ */
5202
+ note?: string;
5187
5203
  /**
5188
5204
  * Format: date-time
5189
5205
  * @description Optional. Schedule the transfer for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically.
@@ -5280,6 +5296,19 @@ export interface paths {
5280
5296
  * - Sufficient balance in `from_currency_id` at approve time on the wallet
5281
5297
  * bound to the API key.
5282
5298
  *
5299
+ * **Cross-currency send (optional).** Pass a `to_currency_id` different
5300
+ * from `from_currency_id` to convert on the way out, exactly like the fiat
5301
+ * offramps: the wallet is debited `amount` in `from_currency_id`, and the
5302
+ * destination receives `amount_to` (also `meta.transaction_amount`) in
5303
+ * `to_currency_id` at the tenant's exchange rate for this order type.
5304
+ * Requirements: the pair must be configured for the tenant
5305
+ * (`400 EXCHANGE_RATE_NOT_FOUND`), `to_currency_id` must be an on-chain
5306
+ * currency (`400 INVALID_REQUEST`), and the destination address must be
5307
+ * registered on the network of `to_currency_id`
5308
+ * (`400 DESTINATION_CHAIN_MISMATCH`). Preview with `POST /api/orders/calc`.
5309
+ * Without `to_currency_id` (or with the same value) nothing changes: one
5310
+ * currency, one chain.
5311
+ *
5283
5312
  * `wallet_id` is automatically resolved from the API key — do **not** pass it
5284
5313
  * in the body.
5285
5314
  *
@@ -7111,7 +7140,7 @@ export interface components {
7111
7140
  * @example EXCHANGE_OMNI
7112
7141
  * @enum {string}
7113
7142
  */
7114
- OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE";
7143
+ OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE";
7115
7144
  /** @description Card object with all properties */
7116
7145
  IssuingCard: {
7117
7146
  /**
@@ -7267,7 +7296,7 @@ export interface components {
7267
7296
  */
7268
7297
  cvv: string;
7269
7298
  /**
7270
- * @description 3-D Secure password where the vendor exposes one (Wallester); `null` otherwise.
7299
+ * @description 3-D Secure password where the card program exposes one; `null` otherwise.
7271
7300
  * @example null
7272
7301
  */
7273
7302
  security_code: string | null;
@@ -7575,7 +7604,7 @@ export interface components {
7575
7604
  */
7576
7605
  level?: "minimal" | "basic" | "declared" | "full";
7577
7606
  /**
7578
- * @description Required field names; address fields are dotted (address.line1). Interlace CONSUMER also lists gov_id_issuance_date and gov_id_expiration_date (ISO YYYY-MM-DD).
7607
+ * @description Required field names; address fields are dotted (address.line1). Some CONSUMER programs also list gov_id_issuance_date and gov_id_expiration_date (ISO YYYY-MM-DD).
7579
7608
  * @example [
7580
7609
  * "first_name",
7581
7610
  * "last_name",
@@ -7588,7 +7617,7 @@ export interface components {
7588
7617
  required?: string[];
7589
7618
  /** @description Documents that must be attached; empty below the full level */
7590
7619
  required_documents?: ("gov_id_front" | "gov_id_back" | "selfie")[];
7591
- /** @description Human-readable constraints the field list cannot express. Interlace CONSUMER: if nationality is USA, tax_identification_number is required and must be a valid SSN. */
7620
+ /** @description Human-readable constraints the field list cannot express — e.g. a CONSUMER program requiring tax_identification_number to be a valid SSN when nationality is USA. */
7592
7621
  notes?: string[];
7593
7622
  /** @description What each country changes, keyed by ISO 3166-1 alpha-3 with a `default` entry; empty when the vendor reviews nothing. These fields stay out of `required` because they only hold once the nationality or address country is known: read the rule for the nationality the user picked (required_by_nationality), the rule for the address country (required_by_address), and the rule for the country that issued the document (gov_id_types). */
7594
7623
  country_rules?: {
@@ -8206,13 +8235,13 @@ export interface components {
8206
8235
  from_currency_id: string;
8207
8236
  /**
8208
8237
  * Format: uuid
8209
- * @description Optional. UUID of the destination currency. Defaults to `from_currency_id` when omitted (no on-chain conversion).
8238
+ * @description Optional. UUID of the currency delivered on-chain to the destination. Omitted or equal to `from_currency_id`: a plain transfer of the same asset (unchanged behaviour). Different: a **cross-currency send** — the wallet is debited `amount` in `from_currency_id`, and the omnibus pays out `amount_to` (`meta.transaction_amount`) in `to_currency_id` at the tenant's exchange rate for `OMNIBUS_CRYPTO_TRANSFER`, the same way the fiat offramps convert. The pair must be configured for the tenant (`400 EXCHANGE_RATE_NOT_FOUND` otherwise), the currency must be on-chain (`400 INVALID_REQUEST`), and the counterparty destination must be registered on the same network as `to_currency_id` (`400 DESTINATION_CHAIN_MISMATCH`). Preview the rate and the delivered amount with `POST /api/orders/calc` using the same `from_currency_id` / `to_currency_id`.
8210
8239
  * @example 509eca03-bc0d-4a38-b7dc-d136d2bdaa43
8211
8240
  */
8212
8241
  to_currency_id?: string;
8213
8242
  /**
8214
8243
  * Format: uuid
8215
- * @description UUID of a `CRYPTO_EXTERNAL` counterparty destination previously created via `POST /api/counterparty/destinations`.
8244
+ * @description UUID of a `CRYPTO_EXTERNAL` counterparty destination previously created via `POST /api/counterparty/destinations`. For a cross-currency send its address must sit on the network of `to_currency_id`.
8216
8245
  * @example b2f3d8c1-4a7e-4d22-9c5f-1e6a8d0b2a44
8217
8246
  */
8218
8247
  counterparty_destination_id: string;
@@ -1154,7 +1154,9 @@ export interface paths {
1154
1154
  "application/json": components["schemas"]["ErrorResponse"];
1155
1155
  };
1156
1156
  };
1157
- /** @description Access denied */
1157
+ /** @description Access denied, or (Clerk tenants) the second-factor verification is
1158
+ * stale — `TWO_FACTOR_REVERIFICATION_REQUIRED`: re-verify and retry.
1159
+ * */
1158
1160
  403: {
1159
1161
  headers: {
1160
1162
  [name: string]: unknown;
@@ -1255,7 +1257,9 @@ export interface paths {
1255
1257
  };
1256
1258
  };
1257
1259
  };
1258
- /** @description Access denied */
1260
+ /** @description Access denied, or (Clerk tenants) the second-factor verification is
1261
+ * stale — `TWO_FACTOR_REVERIFICATION_REQUIRED`: re-verify and retry.
1262
+ * */
1259
1263
  403: {
1260
1264
  headers: {
1261
1265
  [name: string]: unknown;
@@ -1311,7 +1315,9 @@ export interface paths {
1311
1315
  };
1312
1316
  };
1313
1317
  };
1314
- /** @description Access denied */
1318
+ /** @description Access denied, or (Clerk tenants) the second-factor verification is
1319
+ * stale — `TWO_FACTOR_REVERIFICATION_REQUIRED`: re-verify and retry.
1320
+ * */
1315
1321
  403: {
1316
1322
  headers: {
1317
1323
  [name: string]: unknown;
@@ -1477,7 +1483,9 @@ export interface paths {
1477
1483
  };
1478
1484
  };
1479
1485
  };
1480
- /** @description Access denied */
1486
+ /** @description Access denied, or (Clerk tenants) the second-factor verification is
1487
+ * stale — `TWO_FACTOR_REVERIFICATION_REQUIRED`: re-verify and retry.
1488
+ * */
1481
1489
  403: {
1482
1490
  headers: {
1483
1491
  [name: string]: unknown;
@@ -1532,7 +1540,9 @@ export interface paths {
1532
1540
  };
1533
1541
  };
1534
1542
  };
1535
- /** @description Access denied */
1543
+ /** @description Access denied, or (Clerk tenants) the second-factor verification is
1544
+ * stale — `TWO_FACTOR_REVERIFICATION_REQUIRED`: re-verify and retry.
1545
+ * */
1536
1546
  403: {
1537
1547
  headers: {
1538
1548
  [name: string]: unknown;
@@ -1703,7 +1713,9 @@ export interface paths {
1703
1713
  "application/json": components["schemas"]["ErrorResponse"];
1704
1714
  };
1705
1715
  };
1706
- /** @description Access denied */
1716
+ /** @description Access denied, or (Clerk tenants) the second-factor verification is
1717
+ * stale — `TWO_FACTOR_REVERIFICATION_REQUIRED`: re-verify and retry.
1718
+ * */
1707
1719
  403: {
1708
1720
  headers: {
1709
1721
  [name: string]: unknown;
@@ -1782,7 +1794,7 @@ export interface paths {
1782
1794
  put?: never;
1783
1795
  /**
1784
1796
  * Create crypto wallet
1785
- * @description Creates a new crypto wallet (Utila wallet) for the platform wallet.
1797
+ * @description Creates a new crypto wallet for the platform wallet.
1786
1798
  * Optionally specify chains to create addresses immediately.
1787
1799
  *
1788
1800
  */
@@ -1949,7 +1961,7 @@ export interface paths {
1949
1961
  post?: never;
1950
1962
  /**
1951
1963
  * Delete crypto wallet
1952
- * @description Soft-deletes a crypto wallet and archives it in Utila.
1964
+ * @description Soft-deletes a crypto wallet and archives it with the custody provider.
1953
1965
  * The wallet is marked as deleted and all addresses are deactivated.
1954
1966
  *
1955
1967
  */
@@ -5037,7 +5049,7 @@ export interface paths {
5037
5049
  */
5038
5050
  gov_id_expiration_date?: string;
5039
5051
  /**
5040
- * @description Tax identifier of the cardholder, separate from the document number. Required by Interlace CONSUMER programs when nationality is USA, where it must be a valid SSN (9 digits or XXX-XX-XXXX).
5052
+ * @description Tax identifier of the cardholder, separate from the document number. Required by some CONSUMER programs when nationality is USA, where it must be a valid SSN (9 digits or XXX-XX-XXXX).
5041
5053
  *
5042
5054
  * @example 123-45-6789
5043
5055
  */
@@ -5337,7 +5349,7 @@ export interface paths {
5337
5349
  gov_id_issuance_date?: string;
5338
5350
  /** Format: date */
5339
5351
  gov_id_expiration_date?: string;
5340
- /** @description Tax identifier (USA + Interlace CONSUMER: SSN, 9 digits or XXX-XX-XXXX) */
5352
+ /** @description Tax identifier (USA + CONSUMER programs that require it: SSN, 9 digits or XXX-XX-XXXX) */
5341
5353
  tax_identification_number?: string;
5342
5354
  address?: {
5343
5355
  line1?: string;
@@ -8186,6 +8198,17 @@ export interface paths {
8186
8198
  * `GET /frontend/counterparty/destinations/{id}/internal-transfer` to
8187
8199
  * offer that option when the destination supports it.
8188
8200
  *
8201
+ * **Cross-currency send (optional).** A `to_currency_id` different from
8202
+ * `from_currency_id` converts on the way out, like the fiat offramps: the
8203
+ * wallet is debited in `from_currency_id`, the destination receives
8204
+ * `amount_to` in `to_currency_id` at the tenant's exchange rate for this
8205
+ * order type. The pair must be configured (`400 EXCHANGE_RATE_NOT_FOUND`),
8206
+ * `to_currency_id` must be on-chain (`400 INVALID_REQUEST`) and the
8207
+ * destination must be registered on the network of `to_currency_id`
8208
+ * (`400 DESTINATION_CHAIN_MISMATCH`). Preview with
8209
+ * `POST /frontend/orders/calc`. Omitted or equal `to_currency_id` is the
8210
+ * plain same-asset transfer.
8211
+ *
8189
8212
  */
8190
8213
  post: {
8191
8214
  parameters: {
@@ -9509,6 +9532,14 @@ export interface paths {
9509
9532
  * carry `request_id` (idempotency key); `scheduled_at` is ignored.
9510
9533
  * Prefer `POST /frontend/orders/withdrawal/crypto`.
9511
9534
  *
9535
+ * A `to_currency_id` different from `from_currency_id` is a cross-currency
9536
+ * send under the same rules as the preferred endpoint (`400
9537
+ * EXCHANGE_RATE_NOT_FOUND` / `INVALID_REQUEST` / `DESTINATION_CHAIN_MISMATCH`).
9538
+ * This alias still downgrades a send to an address of a wallet on this
9539
+ * platform to an off-chain internal transfer, which moves one currency
9540
+ * only — such a request with a different `to_currency_id` is refused with
9541
+ * `400 INVALID_REQUEST` instead of silently delivering `from_currency_id`.
9542
+ *
9512
9543
  */
9513
9544
  post: {
9514
9545
  parameters: {
@@ -10564,8 +10595,8 @@ export interface paths {
10564
10595
  put?: never;
10565
10596
  /**
10566
10597
  * Sync virtual account
10567
- * @description Refreshes the bank account details and deposit instructions from the vendor
10568
- * (Brale / Delos / BCB) and updates the local record. Historical Rail.io
10598
+ * @description Refreshes the bank account details and deposit instructions from the provider
10599
+ * serving the account and updates the local record. Historical Rail.io
10569
10600
  * (RAIL-B / RAIL-C) accounts cannot be refreshed — their stored requisites are
10570
10601
  * returned unchanged.
10571
10602
  *
@@ -10654,7 +10685,7 @@ export interface paths {
10654
10685
  /**
10655
10686
  * Get virtual account
10656
10687
  * @description Retrieves detailed information about a specific virtual account.
10657
- * For accounts linked to a vendor (Brale / Delos / BCB) the requisites are refreshed
10688
+ * For accounts linked to a provider the requisites are refreshed
10658
10689
  * from the vendor on read unless `skip_sync=true`; a failed refresh falls back to the
10659
10690
  * cached data (still 200). Accounts without a vendor link and historical Rail.io
10660
10691
  * accounts return the stored data.
@@ -12158,7 +12189,7 @@ export interface paths {
12158
12189
  *
12159
12190
  * **Access Control**: Owner or admin of the wallet; wallet KYC must be APPROVED
12160
12191
  *
12161
- * **Note**: New addresses are always provisioned via Utila. The legacy Processing (Accepta) provider was decommissioned; existing `processing` addresses remain readable.
12192
+ * **Note**: New addresses are always provisioned with `type: utila`. The legacy `processing` provider was decommissioned; existing `processing` addresses remain readable.
12162
12193
  *
12163
12194
  */
12164
12195
  post: {
@@ -12663,7 +12694,10 @@ export interface paths {
12663
12694
  */
12664
12695
  user_data_uuid: string;
12665
12696
  /**
12666
- * @description Role to assign to the user
12697
+ * @description Role to assign to the user. Must be one of the roles enabled for the tenant
12698
+ * (tenant config `allowed_roles`); any other role is refused with
12699
+ * 400 `ROLE_NOT_ALLOWED_FOR_TENANT`.
12700
+ *
12667
12701
  * @enum {string}
12668
12702
  */
12669
12703
  role: "auditor" | "user" | "admin";
@@ -12837,7 +12871,10 @@ export interface paths {
12837
12871
  content: {
12838
12872
  "application/json": {
12839
12873
  /**
12840
- * @description New role for the user
12874
+ * @description New role for the user. Must be one of the roles enabled for the tenant
12875
+ * (tenant config `allowed_roles`); any other role is refused with
12876
+ * 400 `ROLE_NOT_ALLOWED_FOR_TENANT`.
12877
+ *
12841
12878
  * @enum {string}
12842
12879
  */
12843
12880
  role: "auditor" | "user" | "admin";
@@ -13170,7 +13207,10 @@ export interface paths {
13170
13207
  */
13171
13208
  email: string;
13172
13209
  /**
13173
- * @description Role to assign on acceptance
13210
+ * @description Role to assign on acceptance. Must be one of the roles enabled for the tenant
13211
+ * (tenant config `allowed_roles`); any other role is refused with
13212
+ * 400 `ROLE_NOT_ALLOWED_FOR_TENANT`.
13213
+ *
13174
13214
  * @enum {string}
13175
13215
  */
13176
13216
  role: "auditor" | "user" | "admin";
@@ -13430,7 +13470,7 @@ export interface components {
13430
13470
  * @example EXCHANGE_OMNI
13431
13471
  * @enum {string}
13432
13472
  */
13433
- OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE";
13473
+ OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE";
13434
13474
  OrderCalculation: {
13435
13475
  /**
13436
13476
  * Format: uuid
@@ -13803,10 +13843,10 @@ export interface components {
13803
13843
  cardholder_requirements?: {
13804
13844
  /** @enum {string} */
13805
13845
  level?: "minimal" | "basic" | "declared" | "full";
13806
- /** @description Required field names; address fields are dotted (address.line1). Interlace CONSUMER also lists gov_id_issuance_date and gov_id_expiration_date (ISO YYYY-MM-DD). */
13846
+ /** @description Required field names; address fields are dotted (address.line1). Some CONSUMER programs also list gov_id_issuance_date and gov_id_expiration_date (ISO YYYY-MM-DD). */
13807
13847
  required?: string[];
13808
13848
  required_documents?: ("gov_id_front" | "gov_id_back" | "selfie")[];
13809
- /** @description Human-readable constraints the field list cannot express. Interlace CONSUMER: if nationality is USA, tax_identification_number is required and must be a valid SSN. */
13849
+ /** @description Human-readable constraints the field list cannot express — e.g. a CONSUMER program requiring tax_identification_number to be a valid SSN when nationality is USA. */
13810
13850
  notes?: string[];
13811
13851
  /** @description What each country changes, keyed by ISO 3166-1 alpha-3 with a `default` entry; empty when the vendor reviews nothing. These fields stay out of `required` because they only hold once the nationality or address country is known: read the rule for the nationality the user picked (required_by_nationality), the rule for the address country (required_by_address), and the rule for the country that issued the document (gov_id_types). */
13812
13852
  country_rules?: {
@@ -14045,7 +14085,7 @@ export interface components {
14045
14085
  transaction_amount: number;
14046
14086
  /** @example USD */
14047
14087
  transaction_currency: string;
14048
- /** @description What actually left the card: `billing_amount` plus `fee` for a debit. Show this one when a fee sits inside the operation. */
14088
+ /** @description What actually left the card: `billing_amount` plus `fee` for a debit, minus it for a credit, and 0 when `status` is `DECLINED` — a refusal moves no money, however much the vendor quoted for it. Show this one when a fee sits inside the operation. */
14049
14089
  total_amount?: number;
14050
14090
  /** @description Fee charged inside this operation, in billing currency. 0 for vendors that bill fees as their own transactions (those arrive as separate rows with `transaction_type: FEE`). */
14051
14091
  fee?: number;
@@ -14926,11 +14966,20 @@ export interface components {
14926
14966
  * @default false
14927
14967
  */
14928
14968
  is_reverse: boolean;
14929
- /** Format: uuid */
14969
+ /**
14970
+ * Format: uuid
14971
+ * @description Currency debited from the wallet.
14972
+ */
14930
14973
  from_currency_id: string;
14931
- /** Format: uuid */
14974
+ /**
14975
+ * Format: uuid
14976
+ * @description Optional. Currency delivered on-chain to the destination. Omitted or equal to `from_currency_id`: a plain transfer of the same asset. Different: a cross-currency send — the wallet is debited in `from_currency_id`, the destination receives `amount_to` in `to_currency_id` at the tenant's `OMNIBUS_CRYPTO_TRANSFER` exchange rate (like the fiat offramps). Requires a configured pair (`400 EXCHANGE_RATE_NOT_FOUND`), an on-chain currency (`400 INVALID_REQUEST`) and a destination registered on the network of `to_currency_id` (`400 DESTINATION_CHAIN_MISMATCH`). Preview with `POST /frontend/orders/calc`.
14977
+ */
14932
14978
  to_currency_id?: string;
14933
- /** Format: uuid */
14979
+ /**
14980
+ * Format: uuid
14981
+ * @description A `CRYPTO_EXTERNAL` counterparty destination. For a cross-currency send its address must be on the network of `to_currency_id`.
14982
+ */
14934
14983
  counterparty_destination_id: string;
14935
14984
  /** Format: uuid */
14936
14985
  wallet_account_id?: string;
@@ -15398,7 +15447,7 @@ export interface components {
15398
15447
  /** Format: uuid */
15399
15448
  id: string;
15400
15449
  /** @enum {string} */
15401
- type: "DEPOSIT_RECEIVED" | "TRANSFER_RECEIVED" | "ORDER_STATUS_CHANGED" | "KYC_STATUS_CHANGED" | "ANNOUNCEMENT" | "SYSTEM_MESSAGE";
15450
+ type: "DEPOSIT_RECEIVED" | "TRANSFER_RECEIVED" | "ORDER_STATUS_CHANGED" | "KYC_STATUS_CHANGED" | "ANNOUNCEMENT" | "SYSTEM_MESSAGE" | "MASS_PAYOUT_STATUS_CHANGED" | "CARD_OTP";
15402
15451
  /** @description Structured fact snapshot; the client renders the presentation. Shape depends on `type`; evolution is additive-only. */
15403
15452
  payload: Record<string, never>;
15404
15453
  /** Format: uuid */
@@ -15410,12 +15459,12 @@ export interface components {
15410
15459
  };
15411
15460
  NotificationPreference: {
15412
15461
  /** @enum {string} */
15413
- channel: "IN_APP" | "PUSH" | "EMAIL" | "TELEGRAM";
15462
+ channel: "IN_APP" | "PUSH" | "EMAIL" | "TELEGRAM" | "SMS";
15414
15463
  enabled: boolean;
15415
15464
  };
15416
15465
  NotificationCategoryPreference: {
15417
15466
  /** @enum {string} */
15418
- category: "TRANSACTIONS" | "COMPLIANCE" | "ANNOUNCEMENTS" | "SYSTEM";
15467
+ category: "TRANSACTIONS" | "COMPLIANCE" | "ANNOUNCEMENTS" | "SYSTEM" | "SECURITY";
15419
15468
  enabled: boolean;
15420
15469
  };
15421
15470
  };
@@ -5541,6 +5541,14 @@ export interface paths {
5541
5541
  * **External transfer:** If the address is external, creates an `OMNIBUS_CRYPTO_TRANSFER` order
5542
5542
  * in status `NEW`, triggers async QStash workflow for blockchain transaction.
5543
5543
  *
5544
+ * **Cross-currency send:** a `to_currency_id` different from `from_currency_id` debits
5545
+ * `from_currency_id` and delivers `amount_to` in `to_currency_id` on its own network, at the
5546
+ * tenant's exchange rate for this order type (`400 EXCHANGE_RATE_NOT_FOUND` when the pair is
5547
+ * not configured, `400 INVALID_REQUEST` when `to_currency_id` is not on-chain,
5548
+ * `400 DESTINATION_CHAIN_MISMATCH` when the destination is registered on another network).
5549
+ * The internal downgrade moves one currency only, so it refuses a different `to_currency_id`
5550
+ * with `400 INVALID_REQUEST`.
5551
+ *
5544
5552
  */
5545
5553
  post: {
5546
5554
  parameters: {
@@ -5586,9 +5594,14 @@ export interface paths {
5586
5594
  wallet_account_id?: string;
5587
5595
  /**
5588
5596
  * Format: uuid
5589
- * @description Currency UUID
5597
+ * @description Currency debited from the wallet
5590
5598
  */
5591
5599
  from_currency_id: string;
5600
+ /**
5601
+ * Format: uuid
5602
+ * @description Optional. Currency delivered on-chain; omitted or equal to `from_currency_id` is a plain same-asset transfer, a different value is a cross-currency send (see above)
5603
+ */
5604
+ to_currency_id?: string;
5592
5605
  /**
5593
5606
  * @description Calculate in reverse (starting from the destination amount). Ignored for internal transfers.
5594
5607
  * @example false
@@ -7154,7 +7167,7 @@ export interface components {
7154
7167
  * @example EXCHANGE_OMNI
7155
7168
  * @enum {string}
7156
7169
  */
7157
- OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE";
7170
+ OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE";
7158
7171
  /** @description Order type reference with optional product guardrails, associated KYC rails and tenant billing rates */
7159
7172
  OrderType: {
7160
7173
  /** @description Order type identifier (e.g. EXCHANGE, WITHDRAWAL_CRYPTO) */
@@ -1194,7 +1194,7 @@ export interface paths {
1194
1194
  post?: never;
1195
1195
  /**
1196
1196
  * Delete crypto wallet
1197
- * @description Soft-deletes a crypto wallet and archives it in Utila.
1197
+ * @description Soft-deletes a crypto wallet and archives it with the custody provider.
1198
1198
  * The wallet is marked as deleted and all addresses are deactivated.
1199
1199
  *
1200
1200
  */
@@ -2578,6 +2578,10 @@ export interface paths {
2578
2578
  * @default false
2579
2579
  */
2580
2580
  is_reverse?: boolean;
2581
+ /** @description Free-form reference visible in order/transaction listings */
2582
+ reference?: string;
2583
+ /** @description Internal note attached to the order */
2584
+ note?: string;
2581
2585
  /**
2582
2586
  * Format: date-time
2583
2587
  * @description Optional. Schedule the transfer for a future time (min 1 hour, max 90 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically.
@@ -2655,6 +2659,17 @@ export interface paths {
2655
2659
  * a wallet on this platform. Internal (off-chain) transfers are created
2656
2660
  * only through the internal transfer endpoint.
2657
2661
  *
2662
+ * **Cross-currency send (optional).** A `to_currency_id` different from
2663
+ * `from_currency_id` converts on the way out, like the fiat offramps: the
2664
+ * wallet is debited in `from_currency_id`, the destination receives
2665
+ * `amount_to` in `to_currency_id` at the tenant's exchange rate for this
2666
+ * order type. The pair must be configured (`400 EXCHANGE_RATE_NOT_FOUND`),
2667
+ * `to_currency_id` must be on-chain (`400 INVALID_REQUEST`) and the
2668
+ * destination must be registered on the network of `to_currency_id`
2669
+ * (`400 DESTINATION_CHAIN_MISMATCH`). Preview with
2670
+ * `POST /admin/orders/calc`. Omitted or equal `to_currency_id` is the
2671
+ * plain same-asset transfer.
2672
+ *
2658
2673
  */
2659
2674
  post: {
2660
2675
  parameters: {
@@ -6213,7 +6228,7 @@ export interface paths {
6213
6228
  */
6214
6229
  gov_id_expiration_date?: string;
6215
6230
  /**
6216
- * @description Tax identifier of the cardholder, separate from the document number. Required by Interlace CONSUMER programs when nationality is USA, where it must be a valid SSN (9 digits or XXX-XX-XXXX).
6231
+ * @description Tax identifier of the cardholder, separate from the document number. Required by some CONSUMER programs when nationality is USA, where it must be a valid SSN (9 digits or XXX-XX-XXXX).
6217
6232
  *
6218
6233
  * @example 123-45-6789
6219
6234
  */
@@ -6409,7 +6424,7 @@ export interface paths {
6409
6424
  gov_id_issuance_date?: string;
6410
6425
  /** Format: date */
6411
6426
  gov_id_expiration_date?: string;
6412
- /** @description Tax identifier (USA + Interlace CONSUMER: SSN, 9 digits or XXX-XX-XXXX) */
6427
+ /** @description Tax identifier (USA + CONSUMER programs that require it: SSN, 9 digits or XXX-XX-XXXX) */
6413
6428
  tax_identification_number?: string;
6414
6429
  address?: {
6415
6430
  line1?: string;
@@ -7928,7 +7943,7 @@ export interface components {
7928
7943
  */
7929
7944
  cvv: string;
7930
7945
  /**
7931
- * @description 3-D Secure password where the vendor exposes one (Wallester); `null` otherwise.
7946
+ * @description 3-D Secure password where the card program exposes one; `null` otherwise.
7932
7947
  * @example null
7933
7948
  */
7934
7949
  security_code: string | null;
@@ -8678,7 +8693,7 @@ export interface components {
8678
8693
  * @example EXCHANGE_OMNI
8679
8694
  * @enum {string}
8680
8695
  */
8681
- OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE";
8696
+ OrderTypeId: "EXCHANGE_OMNI" | "EXCHANGE_OMNI_ONRAMP" | "EXCHANGE_OMNI_OFFRAMP" | "EXCHANGE_OMNI_CRYPTO" | "EXCHANGE_CRYPTO_INTERNAL" | "L2F_ACH_ONRAMP" | "L2F_ACH_OFFRAMP" | "L2F_SEPA_ONRAMP" | "L2F_SEPA_OFFRAMP" | "L2F_SWIFT_ONRAMP" | "L2F_SWIFT_OFFRAMP" | "L2F_WIRE_ONRAMP" | "L2F_WIRE_OFFRAMP" | "L2F_CHAPS_ONRAMP" | "L2F_CHAPS_OFFRAMP" | "L2F_FPS_ONRAMP" | "L2F_FPS_OFFRAMP" | "BRL_WIRE_ONRAMP" | "BRL_WIRE_OFFRAMP" | "BRL_ACH_ONRAMP" | "BRL_ACH_OFFRAMP" | "BRL_RTP_OFFRAMP" | "DLS_WIRE_ONRAMP" | "DLS_WIRE_OFFRAMP" | "DLS_ACH_ONRAMP" | "DLS_ACH_OFFRAMP" | "DLS_SEPA_ONRAMP" | "DLS_SEPA_OFFRAMP" | "DLS_SWIFT_ONRAMP" | "DLS_SWIFT_OFFRAMP" | "BC1_SEPA_ONRAMP" | "BC1_SEPA_OFFRAMP" | "BC1_SWIFT_ONRAMP" | "BC1_SWIFT_OFFRAMP" | "BC3_SEPA_ONRAMP" | "BC3_SEPA_OFFRAMP" | "RPP_SWIFT_OFFRAMP" | "RPP_SEPA_OFFRAMP" | "RPP_FPS_OFFRAMP" | "RPP_ACH_OFFRAMP" | "OMNIBUS_CRYPTO_TRANSFER" | "OMNIBUS_CRYPTO_WITHDRAWAL" | "OMNIBUS_INTERNAL_TRANSFER" | "SEGREGATED_CRYPTO_TRANSFER" | "TRANSFER_INTERNAL" | "TRANSFER_CARD_PREPAID" | "TRANSFER_CARD_SUBACCOUNT" | "TRANSFER_CARD_WHOLESALE" | "WITHDRAW_CARD_PREPAID" | "WITHDRAW_CARD_SUBACCOUNT" | "REFUND_CARD_PREPAID" | "REFUND_CARD_SUBACCOUNT" | "RN_CARDS_OFFRAMP" | "CARD_ISSUING_FEE" | "MONTHLY_FEE";
8682
8697
  OrderType: {
8683
8698
  id?: components["schemas"]["OrderTypeId"];
8684
8699
  description?: string;
@@ -8732,9 +8747,20 @@ export interface components {
8732
8747
  * @default false
8733
8748
  */
8734
8749
  is_reverse: boolean;
8735
- /** Format: uuid */
8750
+ /**
8751
+ * Format: uuid
8752
+ * @description Currency debited from the wallet.
8753
+ */
8736
8754
  from_currency_id: string;
8737
- /** Format: uuid */
8755
+ /**
8756
+ * Format: uuid
8757
+ * @description Optional. Currency delivered on-chain to the destination. Omitted or equal to `from_currency_id`: a plain transfer of the same asset. Different: a cross-currency send — the wallet is debited in `from_currency_id`, the destination receives `amount_to` in `to_currency_id` at the tenant's `OMNIBUS_CRYPTO_TRANSFER` exchange rate (like the fiat offramps). Requires a configured pair (`400 EXCHANGE_RATE_NOT_FOUND`), an on-chain currency (`400 INVALID_REQUEST`) and a destination registered on the network of `to_currency_id` (`400 DESTINATION_CHAIN_MISMATCH`). Preview with `POST /admin/orders/calc`.
8758
+ */
8759
+ to_currency_id?: string;
8760
+ /**
8761
+ * Format: uuid
8762
+ * @description A `CRYPTO_EXTERNAL` counterparty destination. For a cross-currency send its address must be on the network of `to_currency_id`.
8763
+ */
8738
8764
  counterparty_destination_id: string;
8739
8765
  /** @description Free-form reference visible in order/transaction listings */
8740
8766
  reference?: string;
@@ -2036,6 +2036,12 @@ export interface components {
2036
2036
  * "business"
2037
2037
  * ] */
2038
2038
  allowed_kyc_entity_types: ("individual" | "business" | "universal")[] | null;
2039
+ /** @example [
2040
+ * "owner",
2041
+ * "admin",
2042
+ * "auditor"
2043
+ * ] */
2044
+ allowed_roles: ("owner" | "admin" | "user" | "auditor")[];
2039
2045
  tg_bot_name: string | null;
2040
2046
  theme_switch: boolean;
2041
2047
  enable_exchange: boolean;
@@ -3844,6 +3850,8 @@ export interface operations {
3844
3850
  query?: {
3845
3851
  /** @description Whether to prefill the provider verification with the current user data (email, phone, name). Defaults to true. */
3846
3852
  prefill?: boolean;
3853
+ /** @description Reuse the current user's approved user-level verification for this entity instead of collecting it again. Omit to take the per-type default: individual reuses it (the dossier is the user), business does not (reuse means "I am a UBO of this company" and is opt-in). Pass false to opt out, true to require it — an explicit true fails when the user-level verification is not approved, while the default silently falls back to a normal verification. Only honoured by providers that keep a reusable user-level verification. */
3854
+ reuse_user_verification?: boolean;
3847
3855
  };
3848
3856
  header?: never;
3849
3857
  path: {
@@ -3861,6 +3869,13 @@ export interface operations {
3861
3869
  "application/json": components["schemas"]["InitKycDataCollectionResponseDto"];
3862
3870
  };
3863
3871
  };
3872
+ /** @description reuse_user_verification requested for an entity type that supports no reuse */
3873
+ 400: {
3874
+ headers: {
3875
+ [name: string]: unknown;
3876
+ };
3877
+ content?: never;
3878
+ };
3864
3879
  /** @description Unauthorized */
3865
3880
  401: {
3866
3881
  headers: {
@@ -1287,6 +1287,25 @@ export declare namespace API {
1287
1287
  type Request = operations['KycEntitiesController_findOne']['parameters']['path'];
1288
1288
  type Response = operations['KycEntitiesController_findOne']['responses']['200']['content']['application/json'];
1289
1289
  }
1290
+ namespace Create {
1291
+ type Request = operations['KycEntitiesController_create']['requestBody']['content']['application/json'];
1292
+ type Response = operations['KycEntitiesController_create']['responses']['201']['content']['application/json'];
1293
+ }
1294
+ namespace List {
1295
+ type Response = operations['KycEntitiesController_findMy']['responses']['200']['content']['application/json'];
1296
+ }
1297
+ namespace GetById {
1298
+ type Request = operations['KycEntitiesController_findById']['parameters']['path'];
1299
+ type Response = operations['KycEntitiesController_findById']['responses']['200']['content']['application/json'];
1300
+ }
1301
+ namespace Init {
1302
+ type Request = operations['KycEntitiesController_initDataCollection']['parameters']['path'] & NonNullable<operations['KycEntitiesController_initDataCollection']['parameters']['query']>;
1303
+ type Response = operations['KycEntitiesController_initDataCollection']['responses']['200']['content']['application/json'];
1304
+ }
1305
+ namespace Resume {
1306
+ type Request = operations['KycEntitiesController_resumeDataCollection']['parameters']['path'];
1307
+ type Response = operations['KycEntitiesController_resumeDataCollection']['responses']['200']['content']['application/json'];
1308
+ }
1290
1309
  }
1291
1310
  export namespace Forms {
1292
1311
  namespace FormField {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squarefi-bff-api-module",
3
- "version": "1.36.60",
3
+ "version": "1.36.62",
4
4
  "description": "Squarefi BFF API client module",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",