squarefi-bff-api-module 1.36.91 → 1.36.93

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.
@@ -80,6 +80,9 @@ export declare const frontend: {
80
80
  exchangeRates: {
81
81
  list: (params?: API.Frontend.Reference.ExchangeRates.List.Request) => Promise<API.Frontend.Reference.ExchangeRates.List.Response>;
82
82
  };
83
+ orderTypes: {
84
+ list: (params?: API.Frontend.Reference.OrderTypes.List.Request) => Promise<API.Frontend.Reference.OrderTypes.List.Response>;
85
+ };
83
86
  };
84
87
  notificationPreferences: {
85
88
  get: () => Promise<API.Frontend.NotificationPreferences.Get.Response>;
@@ -158,6 +158,10 @@ export const frontend = {
158
158
  exchangeRates: {
159
159
  list: (params = {}) => apiClientV1Frontend.getRequest('/frontend/reference/exchange_rates', { params }),
160
160
  },
161
+ // Only the types enabled for the tenant (a `tenant_order_type_rates` row), paged — 50 by default, 500 at most.
162
+ orderTypes: {
163
+ list: (params = {}) => apiClientV1Frontend.getRequest('/frontend/reference/order_types', { params }),
164
+ },
161
165
  },
162
166
  // IN_APP stays on (400 INBOX_CHANNEL_LOCKED); channels vary by tenant (TELEGRAM needs a bot); PUT upserts any subset.
163
167
  notificationPreferences: {
@@ -5016,7 +5016,7 @@ export interface paths {
5016
5016
  * with `status`. Any other value is rejected with 400.
5017
5017
  *
5018
5018
  * Every key is checked before the query runs (SFI-2693): an unknown field, a value of the
5019
- * wrong type (e.g. a status that does not exist, a non-uuid id) or an object on a plain
5019
+ * wrong type (e.g. a status that does not exist, an `order_type` that is neither enabled for the tenant — see `/reference/order_types` — nor among the wallet's orders, or a non-uuid id) or an object on a plain
5020
5020
  * field answers 400 `INVALID_REQUEST`, and `details.field` names the field. An object is
5021
5021
  * accepted on `meta` only — `[{"meta":{"direction":"out"}}]` matches `meta->>direction`.
5022
5022
  * */
@@ -5025,8 +5025,10 @@ export interface paths {
5025
5025
  date_to?: string;
5026
5026
  /** @description Part of the recipient's name or nickname (`meta.counterparty_account_name`,
5027
5027
  * `meta.counterparty_account_nickname`), case-insensitive. Combines with `filters`,
5028
- * sorting and pagination; `pagination` counts the matches only. Up to 100 characters;
5029
- * `*`, `%`, `"` and `\` are ignored.
5028
+ * sorting and pagination; `pagination` counts the matches only. `*`, `%`, `"` and `\`
5029
+ * are ignored without splitting the word (`des%ign` finds "Design"); `_` matches itself.
5030
+ * Up to 100 characters: a longer value answers 400 `INVALID_REQUEST` with
5031
+ * `details.field` = `search`.
5030
5032
  * */
5031
5033
  search?: string;
5032
5034
  /** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
@@ -5138,8 +5140,10 @@ export interface paths {
5138
5140
  * status NEW can be approved. Orders
5139
5141
  * created with `scheduled_at` move to EXPECTED instead — no funds are
5140
5142
  * debited until execution at the requested time.
5141
- * A scheduled order is approved only while its `scheduled_at` is at least
5142
- * one hour away; a later approve answers 400 `SCHEDULED_AT_TOO_SOON`
5143
+ * A scheduled order is approved only inside its `approval_window`: an
5144
+ * earlier approve answers 400 `SCHEDULED_APPROVAL_NOT_OPEN` with
5145
+ * `details.approvable_from`; once `scheduled_at` is less than one hour
5146
+ * away, 400 `SCHEDULED_AT_TOO_SOON`
5143
5147
  * (create the payment again with a new date).
5144
5148
  *
5145
5149
  */
@@ -5168,7 +5172,7 @@ export interface paths {
5168
5172
  };
5169
5173
  };
5170
5174
  };
5171
- /** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW), a scheduled order less than an hour before its `scheduled_at` (`SCHEDULED_AT_TOO_SOON`), or validation error */
5175
+ /** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW), a scheduled order before its approval window opens (`SCHEDULED_APPROVAL_NOT_OPEN`, `details.approvable_from`) or less than an hour before its `scheduled_at` (`SCHEDULED_AT_TOO_SOON`), or validation error */
5172
5176
  400: {
5173
5177
  headers: {
5174
5178
  [name: string]: unknown;
@@ -5361,7 +5365,7 @@ export interface paths {
5361
5365
  note?: string;
5362
5366
  /**
5363
5367
  * Format: date-time
5364
- * @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, once. If the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
5368
+ * @description Optional. Schedule the transfer for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once. If the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve inside the `approval_window` of the order (from the order signature lifetime minus 1 hour before scheduled_at until 1 hour before it); a draft not approved by then is canceled.
5365
5369
  * @example 2026-07-20T12:00:00Z
5366
5370
  */
5367
5371
  scheduled_at?: string;
@@ -8564,21 +8568,47 @@ export interface components {
8564
8568
  id?: string;
8565
8569
  name?: string | null;
8566
8570
  } | null;
8571
+ /** @description Who created the order — for a scheduled payment, who scheduled it (pair it with `created_at`). Null when no user of the tenant created it: an API key, an operator, the system, or a legacy order with no creation record. Returned by the order list and the single-order reads. */
8572
+ created_by?: {
8573
+ /**
8574
+ * Format: uuid
8575
+ * @description User id of the author.
8576
+ */
8577
+ id: string;
8578
+ /**
8579
+ * @description First and last name from the profile; null when it has neither.
8580
+ * @example Jane Brown
8581
+ */
8582
+ name: string | null;
8583
+ } | null;
8567
8584
  /**
8568
8585
  * Format: date-time
8569
8586
  * @description Requested execution time for scheduled payments (status EXPECTED); null for immediate orders
8570
8587
  */
8571
8588
  scheduled_at?: string | null;
8572
- /** @description Why a scheduled payment failed — set on a scheduled order in `FAILED`, null on any other scheduled order, absent on an immediate one. A scheduled payment is attempted once and never retried: `INSUFFICIENT_FUNDS` means nothing was debited and the payment can be created again; `PROVIDER_ERROR` — the payment was debited and the provider side failed; `EXECUTION_ERROR` — any other reason. */
8589
+ /** @description Why a scheduled payment failed — set on a scheduled order in `FAILED`, and on one in `CANCELED` that was never approved (`NOT_APPROVED`); null on any other scheduled order, absent on an immediate one. A scheduled payment is attempted once and never retried: `INSUFFICIENT_FUNDS` means nothing was debited and the payment can be created again; `PROVIDER_ERROR` — the payment was debited and the provider side failed; `EXECUTION_ERROR` — any other reason; `NOT_APPROVED` — the draft was not approved before its approval window closed and was canceled, nothing was debited. */
8573
8590
  scheduled_failure?: {
8574
8591
  /** @enum {string} */
8575
- code: "INSUFFICIENT_FUNDS" | "PROVIDER_ERROR" | "EXECUTION_ERROR";
8592
+ code: "INSUFFICIENT_FUNDS" | "PROVIDER_ERROR" | "EXECUTION_ERROR" | "NOT_APPROVED";
8576
8593
  /**
8577
8594
  * @description Customer-facing text of the code.
8578
8595
  * @example The balance was insufficient at the scheduled time.
8579
8596
  */
8580
8597
  message: string;
8581
8598
  } | null;
8599
+ /** @description When a scheduled payment draft can be approved — set on a scheduled order in `NEW`, null on any other scheduled order, absent on an immediate one. Approve before `opens_at` returns 400 `SCHEDULED_APPROVAL_NOT_OPEN`, after `closes_at` 400 `SCHEDULED_AT_TOO_SOON`; a draft still unapproved when the window closes is canceled (`scheduled_failure.code` `NOT_APPROVED`). The window follows the order signature lifetime, so it can move when that setting changes. */
8600
+ approval_window?: {
8601
+ /**
8602
+ * Format: date-time
8603
+ * @description From this moment the draft can be approved.
8604
+ */
8605
+ opens_at: string;
8606
+ /**
8607
+ * Format: date-time
8608
+ * @description Last moment to approve: 1 hour before `scheduled_at`.
8609
+ */
8610
+ closes_at: string;
8611
+ } | null;
8582
8612
  /** Format: date-time */
8583
8613
  created_at?: string;
8584
8614
  /** Format: date-time */
@@ -8630,7 +8660,7 @@ export interface components {
8630
8660
  note?: string;
8631
8661
  /**
8632
8662
  * Format: date-time
8633
- * @description Optional. Schedule the payment 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 at the requested time, once: the balance is checked then, and if it does not cover the payment the order fails with `scheduled_failure.code` `INSUFFICIENT_FUNDS` and is not retried. Approve at least 1 hour before `scheduled_at`.
8663
+ * @description Optional. Schedule the payment for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in `EXPECTED` status and executes automatically at the requested time, once: the balance is checked then, and if it does not cover the payment the order fails with `scheduled_failure.code` `INSUFFICIENT_FUNDS` and is not retried. Approve inside the `approval_window` of the order: from `opens_at` (the order signature lifetime minus 1 hour before `scheduled_at`) until 1 hour before `scheduled_at`; a draft not approved by then is canceled.
8634
8664
  * @example 2026-07-20T12:00:00Z
8635
8665
  */
8636
8666
  scheduled_at?: string;
@@ -8682,7 +8712,7 @@ export interface components {
8682
8712
  note?: string;
8683
8713
  /**
8684
8714
  * Format: date-time
8685
- * @description Optional. Schedule the payment 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 at the requested time, once: the balance is checked then, and if it does not cover the payment the order fails with `scheduled_failure.code` `INSUFFICIENT_FUNDS` and is not retried. Approve at least 1 hour before `scheduled_at`.
8715
+ * @description Optional. Schedule the payment for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in `EXPECTED` status and executes automatically at the requested time, once: the balance is checked then, and if it does not cover the payment the order fails with `scheduled_failure.code` `INSUFFICIENT_FUNDS` and is not retried. Approve inside the `approval_window` of the order: from `opens_at` (the order signature lifetime minus 1 hour before `scheduled_at`) until 1 hour before `scheduled_at`; a draft not approved by then is canceled.
8686
8716
  * @example 2026-07-20T12:00:00Z
8687
8717
  */
8688
8718
  scheduled_at?: string;
@@ -8683,7 +8683,7 @@ export interface paths {
8683
8683
  is_reverse?: boolean;
8684
8684
  /**
8685
8685
  * Format: date-time
8686
- * @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, once. If the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
8686
+ * @description Optional. Schedule the transfer for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once. If the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve inside the `approval_window` of the order (from the order signature lifetime minus 1 hour before scheduled_at until 1 hour before it); a draft not approved by then is canceled.
8687
8687
  */
8688
8688
  scheduled_at?: string;
8689
8689
  /** @description Optional supporting documents persisted with the order. */
@@ -9356,8 +9356,10 @@ export interface paths {
9356
9356
  * (request the OTP for the order being approved). Orders created with
9357
9357
  * `scheduled_at` move to EXPECTED instead — no funds are debited until
9358
9358
  * execution at the requested time.
9359
- * A scheduled order is approved only while its `scheduled_at` is at least
9360
- * one hour away; a later approve answers 400 `SCHEDULED_AT_TOO_SOON`
9359
+ * A scheduled order is approved only inside its `approval_window`: an
9360
+ * earlier approve answers 400 `SCHEDULED_APPROVAL_NOT_OPEN` with
9361
+ * `details.approvable_from`; once `scheduled_at` is less than one hour
9362
+ * away, 400 `SCHEDULED_AT_TOO_SOON`
9361
9363
  * (create the payment again with a new date).
9362
9364
  *
9363
9365
  */
@@ -9392,7 +9394,7 @@ export interface paths {
9392
9394
  };
9393
9395
  };
9394
9396
  };
9395
- /** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW), a scheduled order less than an hour before its `scheduled_at` (`SCHEDULED_AT_TOO_SOON`), or validation error */
9397
+ /** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW), a scheduled order before its approval window opens (`SCHEDULED_APPROVAL_NOT_OPEN`, `details.approvable_from`) or less than an hour before its `scheduled_at` (`SCHEDULED_AT_TOO_SOON`), or validation error */
9396
9398
  400: {
9397
9399
  headers: {
9398
9400
  [name: string]: unknown;
@@ -9839,7 +9841,7 @@ export interface paths {
9839
9841
  * Any other value is rejected with 400.
9840
9842
  *
9841
9843
  * Every key is checked before the query runs (SFI-2693): an unknown field, a value of the
9842
- * wrong type (e.g. a status that does not exist, a non-uuid id) or an object on a plain
9844
+ * wrong type (e.g. a status that does not exist, an `order_type` that is neither enabled for the tenant — see `/reference/order_types` — nor among the wallet's orders, or a non-uuid id) or an object on a plain
9843
9845
  * field answers 400 `INVALID_REQUEST`, and `details.field` names the field. An object is
9844
9846
  * accepted on `meta` only — `[{"meta":{"direction":"out"}}]` matches `meta->>direction`.
9845
9847
  * */
@@ -9848,8 +9850,10 @@ export interface paths {
9848
9850
  date_to?: string;
9849
9851
  /** @description Part of the recipient's name or nickname (`meta.counterparty_account_name`,
9850
9852
  * `meta.counterparty_account_nickname`), case-insensitive. Combines with `filters`,
9851
- * sorting and pagination; `pagination` counts the matches only. Up to 100 characters;
9852
- * `*`, `%`, `"` and `\` are ignored.
9853
+ * sorting and pagination; `pagination` counts the matches only. `*`, `%`, `"` and `\`
9854
+ * are ignored without splitting the word (`des%ign` finds "Design"); `_` matches itself.
9855
+ * Up to 100 characters: a longer value answers 400 `INVALID_REQUEST` with
9856
+ * `details.field` = `search`.
9853
9857
  * */
9854
9858
  search?: string;
9855
9859
  /** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
@@ -9877,7 +9881,7 @@ export interface paths {
9877
9881
  };
9878
9882
  };
9879
9883
  };
9880
- /** @description `INVALID_REQUEST` — `filters` is not a JSON array, `mass_payout_id` / `rfi_case_id` is not a uuid, `scheduled` is not `all` / `upcoming` / `past`, or a filter names an unknown field or carries a value of the wrong type (`details.field` names it) */
9884
+ /** @description `INVALID_REQUEST` — `filters` is not a JSON array, `mass_payout_id` / `rfi_case_id` is not a uuid, `scheduled` is not `all` / `upcoming` / `past`, a filter names an unknown field or carries a value of the wrong type, or `search` is longer than 100 characters (`details.field` names the field) */
9881
9885
  400: {
9882
9886
  headers: {
9883
9887
  [name: string]: unknown;
@@ -10039,15 +10043,17 @@ export interface paths {
10039
10043
  * Any other value is rejected with 400.
10040
10044
  *
10041
10045
  * Every key is checked before the query runs (SFI-2693): an unknown field, a value of the
10042
- * wrong type (e.g. a status that does not exist, a non-uuid id) or an object on a plain
10046
+ * wrong type (e.g. a status that does not exist, an `order_type` that is neither enabled for the tenant — see `/reference/order_types` — nor among the wallet's orders, or a non-uuid id) or an object on a plain
10043
10047
  * field answers 400 `INVALID_REQUEST`, and `details.field` names the field. An object is
10044
10048
  * accepted on `meta` only — `[{"meta":{"direction":"out"}}]` matches `meta->>direction`.
10045
10049
  * */
10046
10050
  filters?: string;
10047
10051
  /** @description Part of the recipient's name or nickname (`meta.counterparty_account_name`,
10048
10052
  * `meta.counterparty_account_nickname`), case-insensitive. Combines with `filters`,
10049
- * sorting and pagination; `pagination` counts the matches only. Up to 100 characters;
10050
- * `*`, `%`, `"` and `\` are ignored.
10053
+ * sorting and pagination; `pagination` counts the matches only. `*`, `%`, `"` and `\`
10054
+ * are ignored without splitting the word (`des%ign` finds "Design"); `_` matches itself.
10055
+ * Up to 100 characters: a longer value answers 400 `INVALID_REQUEST` with
10056
+ * `details.field` = `search`.
10051
10057
  * */
10052
10058
  search?: string;
10053
10059
  /** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
@@ -10070,7 +10076,7 @@ export interface paths {
10070
10076
  "text/csv": string;
10071
10077
  };
10072
10078
  };
10073
- /** @description `INVALID_REQUEST` — `filters` is not a JSON array, `mass_payout_id` / `rfi_case_id` is not a uuid, `scheduled` is not `all` / `upcoming` / `past`, or a filter names an unknown field or carries a value of the wrong type (`details.field` names it) */
10079
+ /** @description `INVALID_REQUEST` — `filters` is not a JSON array, `mass_payout_id` / `rfi_case_id` is not a uuid, `scheduled` is not `all` / `upcoming` / `past`, a filter names an unknown field or carries a value of the wrong type, or `search` is longer than 100 characters (`details.field` names the field) */
10074
10080
  400: {
10075
10081
  headers: {
10076
10082
  [name: string]: unknown;
@@ -17585,21 +17591,47 @@ export interface components {
17585
17591
  /** @description Batch name — null only when the batch can no longer be resolved. */
17586
17592
  name?: string | null;
17587
17593
  } | null;
17594
+ /** @description Who created the order — for a scheduled payment, who scheduled it (pair it with `created_at`). Null when no user of the tenant created it: an API key, an operator, the system, or a legacy order with no creation record. Returned by the order list and the single-order reads. */
17595
+ created_by?: {
17596
+ /**
17597
+ * Format: uuid
17598
+ * @description User id of the author.
17599
+ */
17600
+ id: string;
17601
+ /**
17602
+ * @description First and last name from the profile; null when it has neither.
17603
+ * @example Jane Brown
17604
+ */
17605
+ name: string | null;
17606
+ } | null;
17588
17607
  /**
17589
17608
  * Format: date-time
17590
17609
  * @description Requested execution time for scheduled payments (status EXPECTED); null for immediate orders
17591
17610
  */
17592
17611
  scheduled_at?: string | null;
17593
- /** @description Why a scheduled payment failed — set on a scheduled order in `FAILED`, null on any other scheduled order, absent on an immediate one. A scheduled payment is attempted once and never retried: `INSUFFICIENT_FUNDS` means nothing was debited and the payment can be created again; `PROVIDER_ERROR` — the payment was debited and the provider side failed; `EXECUTION_ERROR` — any other reason. */
17612
+ /** @description Why a scheduled payment failed — set on a scheduled order in `FAILED`, and on one in `CANCELED` that was never approved (`NOT_APPROVED`); null on any other scheduled order, absent on an immediate one. A scheduled payment is attempted once and never retried: `INSUFFICIENT_FUNDS` means nothing was debited and the payment can be created again; `PROVIDER_ERROR` — the payment was debited and the provider side failed; `EXECUTION_ERROR` — any other reason; `NOT_APPROVED` — the draft was not approved before its approval window closed and was canceled, nothing was debited. */
17594
17613
  scheduled_failure?: {
17595
17614
  /** @enum {string} */
17596
- code: "INSUFFICIENT_FUNDS" | "PROVIDER_ERROR" | "EXECUTION_ERROR";
17615
+ code: "INSUFFICIENT_FUNDS" | "PROVIDER_ERROR" | "EXECUTION_ERROR" | "NOT_APPROVED";
17597
17616
  /**
17598
17617
  * @description Customer-facing text of the code.
17599
17618
  * @example The balance was insufficient at the scheduled time.
17600
17619
  */
17601
17620
  message: string;
17602
17621
  } | null;
17622
+ /** @description When a scheduled payment draft can be approved — set on a scheduled order in `NEW`, null on any other scheduled order, absent on an immediate one. Approve before `opens_at` returns 400 `SCHEDULED_APPROVAL_NOT_OPEN`, after `closes_at` 400 `SCHEDULED_AT_TOO_SOON`; a draft still unapproved when the window closes is canceled (`scheduled_failure.code` `NOT_APPROVED`). The window follows the order signature lifetime, so it can move when that setting changes. */
17623
+ approval_window?: {
17624
+ /**
17625
+ * Format: date-time
17626
+ * @description From this moment the draft can be approved.
17627
+ */
17628
+ opens_at: string;
17629
+ /**
17630
+ * Format: date-time
17631
+ * @description Last moment to approve: 1 hour before `scheduled_at`.
17632
+ */
17633
+ closes_at: string;
17634
+ } | null;
17603
17635
  /** Format: date-time */
17604
17636
  created_at: string;
17605
17637
  /** Format: date-time */
@@ -17749,7 +17781,7 @@ export interface components {
17749
17781
  note?: string;
17750
17782
  /**
17751
17783
  * Format: date-time
17752
- * @description Optional. Schedule the payment 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, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
17784
+ * @description Optional. Schedule the payment for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve inside the `approval_window` of the order: from `opens_at` (the order signature lifetime minus 1 hour before scheduled_at) until 1 hour before scheduled_at; a draft not approved by then is canceled.
17753
17785
  */
17754
17786
  scheduled_at?: string;
17755
17787
  /** @description Optional supporting documents persisted with the order. */
@@ -17780,7 +17812,7 @@ export interface components {
17780
17812
  note?: string;
17781
17813
  /**
17782
17814
  * Format: date-time
17783
- * @description Optional. Schedule the payment 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, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
17815
+ * @description Optional. Schedule the payment for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve inside the `approval_window` of the order: from `opens_at` (the order signature lifetime minus 1 hour before scheduled_at) until 1 hour before scheduled_at; a draft not approved by then is canceled.
17784
17816
  */
17785
17817
  scheduled_at?: string;
17786
17818
  /** @description Optional supporting documents persisted with the order. */
@@ -18473,7 +18505,7 @@ export interface components {
18473
18505
  /** Format: uuid */
18474
18506
  id: string;
18475
18507
  /** @enum {string} */
18476
- type: "DEPOSIT_RECEIVED" | "DEPOSIT_NOT_ACCEPTED" | "TRANSFER_RECEIVED" | "ORDER_STATUS_CHANGED" | "KYC_STATUS_CHANGED" | "ANNOUNCEMENT" | "SYSTEM_MESSAGE" | "MASS_PAYOUT_STATUS_CHANGED" | "CARD_OTP" | "RFI_REQUESTED" | "RFI_RESOLVED" | "REPORT_READY" | "SCHEDULED_PAYMENT_REMINDER" | "SCHEDULED_PAYMENT_LOW_BALANCE";
18508
+ type: "DEPOSIT_RECEIVED" | "DEPOSIT_NOT_ACCEPTED" | "TRANSFER_RECEIVED" | "ORDER_STATUS_CHANGED" | "KYC_STATUS_CHANGED" | "ANNOUNCEMENT" | "SYSTEM_MESSAGE" | "MASS_PAYOUT_STATUS_CHANGED" | "CARD_OTP" | "RFI_REQUESTED" | "RFI_RESOLVED" | "REPORT_READY" | "SCHEDULED_PAYMENT_REMINDER" | "SCHEDULED_PAYMENT_LOW_BALANCE" | "SCHEDULED_PAYMENT_APPROVAL_REQUIRED";
18477
18509
  /** @description Structured fact snapshot; the client renders the presentation. Shape depends on `type`; evolution is additive-only. */
18478
18510
  payload: Record<string, never>;
18479
18511
  /** Format: uuid */
@@ -2697,8 +2697,8 @@ export interface paths {
2697
2697
  *
2698
2698
  * **Filter Examples:**
2699
2699
  * - Filter by status: `[{"status":"COMPLETE"}]`
2700
- * - Filter by order type: `[{"order_type":"EXCHANGE"}]`
2701
- * - Multiple filters: `[{"status":"PENDING"},{"order_type":"L2F_WIRE_OFFRAMP"}]`
2700
+ * - Filter by order type: `[{"order_type":"EXCHANGE_OMNI"}]`
2701
+ * - Multiple filters: `[{"status":"PENDING"},{"order_type":"WITHDRAWAL_CRYPTO"}]`
2702
2702
  * - Filter by meta field: `[{"meta->>workflow_status":"PROCESSING"}]`
2703
2703
  * - Find an order by your own reference: `[{"meta->>reference":"invoice-2026-04-001"}]`
2704
2704
  *
@@ -2721,7 +2721,7 @@ export interface paths {
2721
2721
  *
2722
2722
  * **Available filter fields:**
2723
2723
  * - `status` - Order status (PENDING, PROCESSING, COMPLETE, FAILED, CANCELED)
2724
- * - `order_type` - Order type (EXCHANGE, WITHDRAWAL_CRYPTO, L2F_WIRE_OFFRAMP, etc.)
2724
+ * - `order_type` - Order type (EXCHANGE_OMNI, WITHDRAWAL_CRYPTO, etc.)
2725
2725
  * - `from_uuid` - Source currency UUID
2726
2726
  * - `to_uuid` - Destination currency UUID
2727
2727
  * - `meta->>key` - JSONB meta field by key with the text operator (e.g., {"meta->>workflow_status":"PROCESSING"})
@@ -2733,7 +2733,7 @@ export interface paths {
2733
2733
  * - By your own reference: `[{"meta->>reference":"invoice-2026-04-001"}]`
2734
2734
  *
2735
2735
  * Every key is checked before the query runs (SFI-2693): an unknown field, a value of the
2736
- * wrong type (e.g. a status that does not exist, a non-uuid id) or an object on a plain
2736
+ * wrong type (e.g. a status that does not exist, an `order_type` that is neither enabled for the tenant — see `/reference/order_types` — nor among the wallet's orders, or a non-uuid id) or an object on a plain
2737
2737
  * field answers 400 `INVALID_REQUEST`, and `details.field` names the field. An object is
2738
2738
  * accepted on `meta` only — `[{"meta":{"direction":"out"}}]` matches `meta->>direction`.
2739
2739
  *
@@ -2746,8 +2746,10 @@ export interface paths {
2746
2746
  date_to?: string;
2747
2747
  /** @description Part of the recipient's name or nickname (`meta.counterparty_account_name`,
2748
2748
  * `meta.counterparty_account_nickname`), case-insensitive. Combines with `filters`,
2749
- * sorting and pagination; `pagination` counts the matches only. Up to 100 characters;
2750
- * `*`, `%`, `"` and `\` are ignored.
2749
+ * sorting and pagination; `pagination` counts the matches only. `*`, `%`, `"` and `\`
2750
+ * are ignored without splitting the word (`des%ign` finds "Design"); `_` matches itself.
2751
+ * Up to 100 characters: a longer value answers 400 `INVALID_REQUEST` with
2752
+ * `details.field` = `search`.
2751
2753
  * */
2752
2754
  search?: string;
2753
2755
  /** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
@@ -1563,6 +1563,11 @@ export interface paths {
1563
1563
  middle_name?: string;
1564
1564
  /** Format: date */
1565
1565
  date_of_birth?: string;
1566
+ /**
1567
+ * @description Gender of an individual as reported by the verification
1568
+ * @enum {string|null}
1569
+ */
1570
+ gender?: "M" | "F" | null;
1566
1571
  /** @description ISO 3166-1 alpha-3 country code */
1567
1572
  nationality?: string;
1568
1573
  country_of_birth?: string;
@@ -1737,6 +1742,11 @@ export interface paths {
1737
1742
  middle_name?: string;
1738
1743
  /** Format: date */
1739
1744
  date_of_birth?: string;
1745
+ /**
1746
+ * @description Gender of an individual as reported by the verification
1747
+ * @enum {string|null}
1748
+ */
1749
+ gender?: "M" | "F" | null;
1740
1750
  nationality?: string;
1741
1751
  country_of_birth?: string;
1742
1752
  occupation?: string;
@@ -2698,7 +2708,7 @@ export interface paths {
2698
2708
  note?: string;
2699
2709
  /**
2700
2710
  * Format: date-time
2701
- * @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, once. If the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
2711
+ * @description Optional. Schedule the transfer for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once. If the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve inside the `approval_window` of the order (from the order signature lifetime minus 1 hour before scheduled_at until 1 hour before it); a draft not approved by then is canceled.
2702
2712
  */
2703
2713
  scheduled_at?: string;
2704
2714
  documents?: Record<string, never>[];
@@ -3373,7 +3383,7 @@ export interface paths {
3373
3383
  * `status`. Malformed JSON or a non-array value is rejected with 400.
3374
3384
  *
3375
3385
  * Every key is checked before the query runs (SFI-2693): an unknown field, a value of the
3376
- * wrong type (e.g. a status that does not exist, a non-uuid id) or an object on a plain
3386
+ * wrong type (e.g. a status that does not exist, an `order_type` that is neither enabled for the tenant — see `/reference/order_types` — nor among the wallet's orders, or a non-uuid id) or an object on a plain
3377
3387
  * field answers 400 `INVALID_REQUEST`, and `details.field` names the field. An object is
3378
3388
  * accepted on `meta` only — `[{"meta":{"direction":"out"}}]` matches `meta->>direction`.
3379
3389
  *
@@ -3386,8 +3396,10 @@ export interface paths {
3386
3396
  date_to?: string;
3387
3397
  /** @description Part of the recipient's name or nickname (`meta.counterparty_account_name`,
3388
3398
  * `meta.counterparty_account_nickname`), case-insensitive. Combines with `filters`,
3389
- * sorting and pagination; `pagination` counts the matches only. Up to 100 characters;
3390
- * `*`, `%`, `"` and `\` are ignored.
3399
+ * sorting and pagination; `pagination` counts the matches only. `*`, `%`, `"` and `\`
3400
+ * are ignored without splitting the word (`des%ign` finds "Design"); `_` matches itself.
3401
+ * Up to 100 characters: a longer value answers 400 `INVALID_REQUEST` with
3402
+ * `details.field` = `search`.
3391
3403
  * */
3392
3404
  search?: string;
3393
3405
  /** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
@@ -3415,7 +3427,7 @@ export interface paths {
3415
3427
  };
3416
3428
  };
3417
3429
  };
3418
- /** @description Invalid `filters` (not a JSON array), non-uuid `mass_payout_id`, `scheduled` other than `all` / `upcoming` / `past`, or a filter with an unknown field or a value of the wrong type (`details.field` names it) */
3430
+ /** @description Invalid `filters` (not a JSON array), non-uuid `mass_payout_id`, `scheduled` other than `all` / `upcoming` / `past`, a filter with an unknown field or a value of the wrong type, or `search` longer than 100 characters (`details.field` names the field) */
3419
3431
  400: {
3420
3432
  headers: {
3421
3433
  [name: string]: unknown;
@@ -3584,8 +3596,10 @@ export interface paths {
3584
3596
  * status NEW can be approved. Orders
3585
3597
  * created with `scheduled_at` move to EXPECTED instead — no funds are
3586
3598
  * debited until execution at the requested time.
3587
- * A scheduled order is approved only while its `scheduled_at` is at least
3588
- * one hour away; a later approve answers 400 `SCHEDULED_AT_TOO_SOON`
3599
+ * A scheduled order is approved only inside its `approval_window`: an
3600
+ * earlier approve answers 400 `SCHEDULED_APPROVAL_NOT_OPEN` with
3601
+ * `details.approvable_from`; once `scheduled_at` is less than one hour
3602
+ * away, 400 `SCHEDULED_AT_TOO_SOON`
3589
3603
  * (create the payment again with a new date).
3590
3604
  *
3591
3605
  */
@@ -3614,7 +3628,7 @@ export interface paths {
3614
3628
  };
3615
3629
  };
3616
3630
  };
3617
- /** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW), a scheduled order less than an hour before its `scheduled_at` (`SCHEDULED_AT_TOO_SOON`), or validation error */
3631
+ /** @description Insufficient funds (`INSUFFICIENT_FUNDS` — the order is released back to NEW), a scheduled order before its approval window opens (`SCHEDULED_APPROVAL_NOT_OPEN`, `details.approvable_from`) or less than an hour before its `scheduled_at` (`SCHEDULED_AT_TOO_SOON`), or validation error */
3618
3632
  400: {
3619
3633
  headers: {
3620
3634
  [name: string]: unknown;
@@ -8849,7 +8863,7 @@ export interface components {
8849
8863
  /** Format: date-time */
8850
8864
  updated_at?: string;
8851
8865
  };
8852
- /** @description Documents to file for the KYC entity. Each entry is stored as a document of its type; an earlier document of the same type stays on record (several documents of one type are allowed). All entries of one request form one batch in the given order, so a multi-file document (e.g. the pages of a bank statement) is sent as several entries of the same type in one request. A document is removed through DELETE /admin/kyc_entity/{entity_id}/documents/{document_id}. */
8866
+ /** @description Documents to file for the KYC entity. Each entry is stored as a document of its type; an earlier document of the same type stays on record (several documents of one type are allowed). All entries of one request form one batch in the given order, so a multi-file document (e.g. the pages of a bank statement) is sent as several entries of the same type in one request. A file already on record under its type is not filed again and keeps its dates; to change them, remove the document and file it again. A document is removed through DELETE /admin/kyc_entity/{entity_id}/documents/{document_id}. */
8853
8867
  KycDocumentsInput: {
8854
8868
  /**
8855
8869
  * @description Document type: supplementary, gov_id_front, gov_id_back, gov_id_hand_hold, selfie, proof_of_address, auth_letter, formation_doc, proof_of_ownership, certificate_of_registration_doc, business_registration_doc, share_structure, constitution_or_annual_report, articles_of_association, ubo_declaration, partnership_mins_of_meeting, partnership_deed, certificate_of_incumbency, regulatory_license, state_registry_doc, good_standing_cert, business_proof_of_address, invoices, contracts, financial_statements, source_of_funds, business_bank_statement, source_of_wealth_ubo, customer_supplier_agreements.
@@ -8861,6 +8875,18 @@ export interface components {
8861
8875
  * @description http(s) URL of the file.
8862
8876
  */
8863
8877
  link: string;
8878
+ /**
8879
+ * Format: date
8880
+ * @description Issue date printed on the document (`YYYY-MM-DD`), when it has one.
8881
+ * @example 2020-01-15
8882
+ */
8883
+ issuance_date?: string | null;
8884
+ /**
8885
+ * Format: date
8886
+ * @description Expiry date printed on the document (`YYYY-MM-DD`), when it has one.
8887
+ * @example 2030-01-14
8888
+ */
8889
+ expiration_date?: string | null;
8864
8890
  }[];
8865
8891
  KycEntity: {
8866
8892
  /** Format: uuid */
@@ -8878,6 +8904,11 @@ export interface components {
8878
8904
  middle_name?: string | null;
8879
8905
  /** Format: date-time */
8880
8906
  date_of_birth?: string | null;
8907
+ /**
8908
+ * @description Gender of an individual as reported by the verification — the form the cardholder endpoints take. Null when unknown.
8909
+ * @enum {string|null}
8910
+ */
8911
+ gender?: "M" | "F" | null;
8881
8912
  nationality?: string | null;
8882
8913
  country_of_birth?: string | null;
8883
8914
  occupation?: string | null;
@@ -8912,6 +8943,16 @@ export interface components {
8912
8943
  type?: string;
8913
8944
  /** Format: uri */
8914
8945
  link?: string;
8946
+ /**
8947
+ * Format: date
8948
+ * @description Issue date printed on the document (`YYYY-MM-DD`); null when it has none or it is unknown. For an identity document this is the issue date the cardholder endpoints take — read it off the newest `gov_id_front` entry (the list is oldest first).
8949
+ */
8950
+ issuance_date?: string | null;
8951
+ /**
8952
+ * Format: date
8953
+ * @description Expiry date printed on the document (`YYYY-MM-DD`); null when it has none or it is unknown. For an identity document this is the expiry date the cardholder endpoints take — read it off the newest `gov_id_front` entry (the list is oldest first).
8954
+ */
8955
+ expiration_date?: string | null;
8915
8956
  /**
8916
8957
  * Format: uuid
8917
8958
  * @description Beneficial owner the document belongs to; null for the entity itself.
@@ -9328,7 +9369,7 @@ export interface components {
9328
9369
  note?: string;
9329
9370
  /**
9330
9371
  * Format: date-time
9331
- * @description Optional. Schedule the payment 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, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
9372
+ * @description Optional. Schedule the payment for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve inside the `approval_window` of the order: from `opens_at` (the order signature lifetime minus 1 hour before scheduled_at) until 1 hour before scheduled_at; a draft not approved by then is canceled.
9332
9373
  */
9333
9374
  scheduled_at?: string;
9334
9375
  };
@@ -9357,7 +9398,7 @@ export interface components {
9357
9398
  note?: string;
9358
9399
  /**
9359
9400
  * Format: date-time
9360
- * @description Optional. Schedule the payment 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, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve at least 1 hour before scheduled_at.
9401
+ * @description Optional. Schedule the payment for a future time (min 1 hour, max 30 days ahead). No funds are reserved; after approval the order waits in EXPECTED status and executes automatically, once: if the balance does not cover it then, it fails with `scheduled_failure.code` INSUFFICIENT_FUNDS and is not retried. Approve inside the `approval_window` of the order: from `opens_at` (the order signature lifetime minus 1 hour before scheduled_at) until 1 hour before scheduled_at; a draft not approved by then is canceled.
9361
9402
  */
9362
9403
  scheduled_at?: string;
9363
9404
  };
@@ -9409,21 +9450,47 @@ export interface components {
9409
9450
  id?: string;
9410
9451
  name?: string | null;
9411
9452
  } | null;
9453
+ /** @description Who created the order — for a scheduled payment, who scheduled it (pair it with `created_at`). Null when no user of the tenant created it: an API key, an operator, the system, or a legacy order with no creation record. Returned by the order list and the single-order reads. */
9454
+ created_by?: {
9455
+ /**
9456
+ * Format: uuid
9457
+ * @description User id of the author.
9458
+ */
9459
+ id: string;
9460
+ /**
9461
+ * @description First and last name from the profile; null when it has neither.
9462
+ * @example Jane Brown
9463
+ */
9464
+ name: string | null;
9465
+ } | null;
9412
9466
  /**
9413
9467
  * Format: date-time
9414
9468
  * @description Requested execution time for scheduled payments (status EXPECTED); null for immediate orders
9415
9469
  */
9416
9470
  scheduled_at?: string | null;
9417
- /** @description Why a scheduled payment failed — set on a scheduled order in `FAILED`, null on any other scheduled order, absent on an immediate one. A scheduled payment is attempted once and never retried: `INSUFFICIENT_FUNDS` means nothing was debited and the payment can be created again; `PROVIDER_ERROR` — the payment was debited and the provider side failed; `EXECUTION_ERROR` — any other reason. */
9471
+ /** @description Why a scheduled payment failed — set on a scheduled order in `FAILED`, and on one in `CANCELED` that was never approved (`NOT_APPROVED`); null on any other scheduled order, absent on an immediate one. A scheduled payment is attempted once and never retried: `INSUFFICIENT_FUNDS` means nothing was debited and the payment can be created again; `PROVIDER_ERROR` — the payment was debited and the provider side failed; `EXECUTION_ERROR` — any other reason; `NOT_APPROVED` — the draft was not approved before its approval window closed and was canceled, nothing was debited. */
9418
9472
  scheduled_failure?: {
9419
9473
  /** @enum {string} */
9420
- code: "INSUFFICIENT_FUNDS" | "PROVIDER_ERROR" | "EXECUTION_ERROR";
9474
+ code: "INSUFFICIENT_FUNDS" | "PROVIDER_ERROR" | "EXECUTION_ERROR" | "NOT_APPROVED";
9421
9475
  /**
9422
9476
  * @description Customer-facing text of the code.
9423
9477
  * @example The balance was insufficient at the scheduled time.
9424
9478
  */
9425
9479
  message: string;
9426
9480
  } | null;
9481
+ /** @description When a scheduled payment draft can be approved — set on a scheduled order in `NEW`, null on any other scheduled order, absent on an immediate one. Approve before `opens_at` returns 400 `SCHEDULED_APPROVAL_NOT_OPEN`, after `closes_at` 400 `SCHEDULED_AT_TOO_SOON`; a draft still unapproved when the window closes is canceled (`scheduled_failure.code` `NOT_APPROVED`). The window follows the order signature lifetime, so it can move when that setting changes. */
9482
+ approval_window?: {
9483
+ /**
9484
+ * Format: date-time
9485
+ * @description From this moment the draft can be approved.
9486
+ */
9487
+ opens_at: string;
9488
+ /**
9489
+ * Format: date-time
9490
+ * @description Last moment to approve: 1 hour before `scheduled_at`.
9491
+ */
9492
+ closes_at: string;
9493
+ } | null;
9427
9494
  /** Format: date-time */
9428
9495
  created_at?: string;
9429
9496
  /** Format: date-time */
@@ -1604,6 +1604,18 @@ export interface components {
1604
1604
  type: "supplementary" | "gov_id_front" | "gov_id_back" | "gov_id_hand_hold" | "selfie" | "proof_of_address" | "auth_letter" | "formation_doc" | "proof_of_ownership" | "certificate_of_registration_doc" | "business_registration_doc" | "share_structure" | "constitution_or_annual_report" | "articles_of_association" | "ubo_declaration" | "partnership_mins_of_meeting" | "partnership_deed" | "certificate_of_incumbency" | "regulatory_license" | "state_registry_doc" | "good_standing_cert" | "business_proof_of_address" | "invoices" | "contracts" | "financial_statements" | "source_of_funds" | "business_bank_statement" | "source_of_wealth_ubo" | "customer_supplier_agreements";
1605
1605
  /** Format: uri */
1606
1606
  link: string;
1607
+ /**
1608
+ * Format: date
1609
+ * @description Issue date printed on the document (YYYY-MM-DD), when it has one.
1610
+ * @example 2020-01-15
1611
+ */
1612
+ issuance_date?: Record<string, never> | null;
1613
+ /**
1614
+ * Format: date
1615
+ * @description Expiry date printed on the document (YYYY-MM-DD), when it has one.
1616
+ * @example 2030-01-14
1617
+ */
1618
+ expiration_date?: Record<string, never> | null;
1607
1619
  /** @example bff */
1608
1620
  readonly source?: string;
1609
1621
  /**
@@ -1688,6 +1700,11 @@ export interface components {
1688
1700
  /** @default false */
1689
1701
  dao_status: boolean | null;
1690
1702
  date_of_birth?: string | null;
1703
+ /**
1704
+ * @description Gender of an individual as the KYC provider reports it: M or F; null when unknown.
1705
+ * @enum {string|null}
1706
+ */
1707
+ gender?: "M" | "F" | null;
1691
1708
  due_diligence_form?: components["schemas"]["KycEntityDueDiligenceFormEntity"] | null;
1692
1709
  email?: string | null;
1693
1710
  export_country?: string | null;
@@ -891,6 +891,15 @@ export declare namespace API {
891
891
  }
892
892
  export {};
893
893
  }
894
+ namespace OrderTypes {
895
+ type OrderTypesRoot = pathsV1Frontend['/frontend/reference/order_types'];
896
+ export type OrderType = componentsV1Frontend['schemas']['ReferenceOrderType'];
897
+ export namespace List {
898
+ type Request = NonNullable<OrderTypesRoot['get']['parameters']['query']>;
899
+ type Response = OrderTypesRoot['get']['responses'][200]['content']['application/json'];
900
+ }
901
+ export {};
902
+ }
894
903
  }
895
904
  namespace NotificationPreferences {
896
905
  type NotificationPreferencesRoot = pathsV1Frontend['/frontend/notification-preferences'];
@@ -2702,6 +2711,8 @@ export declare namespace API {
2702
2711
  type Order = componentsV1Frontend['schemas']['Order'];
2703
2712
  type ScheduledFailure = NonNullable<Order['scheduled_failure']>;
2704
2713
  type ScheduledFailureCode = ScheduledFailure['code'];
2714
+ type ApprovalWindow = NonNullable<Order['approval_window']>;
2715
+ type OrderAuthor = NonNullable<Order['created_by']>;
2705
2716
  type OrderEnvelope = {
2706
2717
  success?: boolean;
2707
2718
  data?: Order;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squarefi-bff-api-module",
3
- "version": "1.36.91",
3
+ "version": "1.36.93",
4
4
  "description": "Squarefi BFF API client module",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",