squarefi-bff-api-module 1.36.31 → 1.36.33
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/dist/api/bank-data.d.ts +4 -1
- package/dist/api/bank-data.js +4 -6
- package/dist/api/frontend.d.ts +10 -0
- package/dist/api/frontend.js +17 -1
- package/dist/api/orders.d.ts +0 -1
- package/dist/api/orders.js +0 -1
- package/dist/api/types/autogen/apiV1External.types.d.ts +288 -244
- package/dist/api/types/autogen/apiV1Frontend.types.d.ts +1132 -847
- package/dist/api/types/autogen/apiV1Legacy.types.d.ts +104 -1062
- package/dist/api/types/autogen/apiV1Tenant.types.d.ts +88 -225
- package/dist/api/types/autogen/apiV2.types.d.ts +382 -86
- package/dist/api/types/types.d.ts +61 -5
- package/dist/api/user.d.ts +4 -0
- package/dist/api/user.js +10 -0
- package/dist/constants.d.ts +7 -0
- package/dist/constants.js +8 -0
- package/dist/utils/apiClientFactory.js +11 -1
- package/dist/utils/tokensFactory.d.ts +10 -0
- package/dist/utils/tokensFactory.js +25 -0
- package/package.json +1 -1
|
@@ -872,9 +872,21 @@ export interface paths {
|
|
|
872
872
|
cookie?: never;
|
|
873
873
|
};
|
|
874
874
|
/**
|
|
875
|
-
* Look up bank data by code
|
|
876
|
-
* @description Resolves a bank identifier
|
|
877
|
-
* bank
|
|
875
|
+
* Look up bank data by payment method and code
|
|
876
|
+
* @description Resolves a bank identifier into the bank name and registered address for
|
|
877
|
+
* prefilling counterparty bank details. `method` fixes the expected code
|
|
878
|
+
* format:
|
|
879
|
+
*
|
|
880
|
+
* | `method` | code |
|
|
881
|
+
* | --- | --- |
|
|
882
|
+
* | `ach`, `fedwire` | US routing number (ABA/RTN) |
|
|
883
|
+
* | `swift`, `sepa` | SWIFT/BIC |
|
|
884
|
+
* | `fps`, `chaps` | UK sort code (always resolves to an empty list today) |
|
|
885
|
+
*
|
|
886
|
+
* Matching is by full code — prefix search is not supported, so `data`
|
|
887
|
+
* carries at most one element today. A well-formed code that matches no
|
|
888
|
+
* bank is `200` with an empty `data`, not a 404. Banks that do not accept
|
|
889
|
+
* the selected method also resolve to an empty `data`.
|
|
878
890
|
*
|
|
879
891
|
* **Authentication**: Bearer token + x-tenant-id header
|
|
880
892
|
*
|
|
@@ -882,8 +894,13 @@ export interface paths {
|
|
|
882
894
|
get: {
|
|
883
895
|
parameters: {
|
|
884
896
|
query: {
|
|
885
|
-
/** @description
|
|
897
|
+
/** @description Full bank code in the format implied by `method`. For `ach`/`fedwire`
|
|
898
|
+
* the legacy `routing:account` form is tolerated — the account part is
|
|
899
|
+
* ignored.
|
|
900
|
+
* */
|
|
886
901
|
code: string;
|
|
902
|
+
/** @description Payment method the bank details are collected for */
|
|
903
|
+
method: "ach" | "fedwire" | "swift" | "sepa" | "fps" | "chaps";
|
|
887
904
|
};
|
|
888
905
|
header?: never;
|
|
889
906
|
path?: never;
|
|
@@ -891,9 +908,9 @@ export interface paths {
|
|
|
891
908
|
};
|
|
892
909
|
requestBody?: never;
|
|
893
910
|
responses: {
|
|
894
|
-
/** @description
|
|
895
|
-
*
|
|
896
|
-
*
|
|
911
|
+
/** @description Matched banks (at most one today). An empty `data` means the code is
|
|
912
|
+
* well-formed but no bank was found for the requested method — clients
|
|
913
|
+
* fall back to manual entry.
|
|
897
914
|
* */
|
|
898
915
|
200: {
|
|
899
916
|
headers: {
|
|
@@ -903,20 +920,24 @@ export interface paths {
|
|
|
903
920
|
"application/json": {
|
|
904
921
|
/** @example true */
|
|
905
922
|
success: boolean;
|
|
906
|
-
data: components["schemas"]["
|
|
923
|
+
data: components["schemas"]["BankDataItem"][];
|
|
924
|
+
/**
|
|
925
|
+
* @description Convenience length of `data`
|
|
926
|
+
* @example 1
|
|
927
|
+
*/
|
|
928
|
+
count?: number;
|
|
907
929
|
};
|
|
908
930
|
};
|
|
909
931
|
};
|
|
910
|
-
/** @description Bad request —
|
|
911
|
-
* - `VALIDATION_ERROR` —
|
|
912
|
-
*
|
|
913
|
-
* - `
|
|
914
|
-
*
|
|
915
|
-
* 400, never as 404/502
|
|
916
|
-
* - `EXTERNAL_SERVICE_ERROR` — the bank-data lookup is temporarily unavailable
|
|
932
|
+
/** @description Bad request — only for malformed input:
|
|
933
|
+
* - `VALIDATION_ERROR` — `code` is missing/empty or longer than 64
|
|
934
|
+
* characters, or `method` is missing/not one of the allowed values
|
|
935
|
+
* - `UNSUPPORTED_BANK_CODE` — `code` does not match the format required
|
|
936
|
+
* by `method` (e.g. a SWIFT/BIC passed with `method=ach`)
|
|
917
937
|
*
|
|
918
|
-
*
|
|
919
|
-
*
|
|
938
|
+
* A resolvable-but-unknown code is NOT a 400 — it answers `200` with an
|
|
939
|
+
* empty `data`. The body also carries a top-level `correlationId`
|
|
940
|
+
* (added by the error handler to every 4xx/5xx it formats).
|
|
920
941
|
* */
|
|
921
942
|
400: {
|
|
922
943
|
headers: {
|
|
@@ -975,6 +996,25 @@ export interface paths {
|
|
|
975
996
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
976
997
|
};
|
|
977
998
|
};
|
|
999
|
+
/** @description Bank data lookup is temporarily unavailable — safe to retry later.
|
|
1000
|
+
* The body carries a `correlationId`.
|
|
1001
|
+
* */
|
|
1002
|
+
503: {
|
|
1003
|
+
headers: {
|
|
1004
|
+
[name: string]: unknown;
|
|
1005
|
+
};
|
|
1006
|
+
content: {
|
|
1007
|
+
/** @example {
|
|
1008
|
+
* "success": false,
|
|
1009
|
+
* "error": {
|
|
1010
|
+
* "code": "BANK_DATA_LOOKUP_FAILED",
|
|
1011
|
+
* "message": "Bank data lookup failed"
|
|
1012
|
+
* },
|
|
1013
|
+
* "correlationId": "3f7f2f9a-8f0e-4a3b-9a3d-2f1c9d6a1b2c"
|
|
1014
|
+
* } */
|
|
1015
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1016
|
+
};
|
|
1017
|
+
};
|
|
978
1018
|
};
|
|
979
1019
|
};
|
|
980
1020
|
put?: never;
|
|
@@ -2124,7 +2164,7 @@ export interface paths {
|
|
|
2124
2164
|
* Format: uuid
|
|
2125
2165
|
* @description Optional. Binds the card to a wallet member so a scoped `user` role can
|
|
2126
2166
|
* access ONLY this card (view, sensitive data, transactions, freeze/unfreeze),
|
|
2127
|
-
* and nothing else in the wallet
|
|
2167
|
+
* and nothing else in the wallet. Must be the `user_data.uuid` of an
|
|
2128
2168
|
* active member of the target wallet; resolved server-side to the card's owner.
|
|
2129
2169
|
*
|
|
2130
2170
|
* @example a1b2c3d4-e5f6-7890-abcd-ef1234567890
|
|
@@ -2818,11 +2858,13 @@ export interface paths {
|
|
|
2818
2858
|
put?: never;
|
|
2819
2859
|
/**
|
|
2820
2860
|
* Deposit funds to card
|
|
2821
|
-
* @description
|
|
2822
|
-
*
|
|
2823
|
-
*
|
|
2861
|
+
* @description Thin wrapper over the sub-account deposit: the card's sub-account is
|
|
2862
|
+
* resolved from `card_id` and the request is processed by the same
|
|
2863
|
+
* implementation as POST /frontend/issuing/sub-accounts/{sub_account_id}/deposit
|
|
2864
|
+
* (same order types, validation and program routing).
|
|
2824
2865
|
*
|
|
2825
|
-
* **
|
|
2866
|
+
* **Authentication**: Bearer token with x-tenant-id header required.
|
|
2867
|
+
* **Access Control**: wallet ADMIN role on the card's wallet.
|
|
2826
2868
|
*
|
|
2827
2869
|
*/
|
|
2828
2870
|
post: {
|
|
@@ -2840,85 +2882,53 @@ export interface paths {
|
|
|
2840
2882
|
"application/json": {
|
|
2841
2883
|
/**
|
|
2842
2884
|
* Format: uuid
|
|
2843
|
-
* @description Unique reference ID for idempotency
|
|
2844
|
-
* @example 550e8400-e29b-41d4-a716-446655440000
|
|
2885
|
+
* @description Unique reference ID for idempotency
|
|
2845
2886
|
*/
|
|
2846
2887
|
reference_id: string;
|
|
2847
2888
|
/**
|
|
2848
2889
|
* Format: uuid
|
|
2849
|
-
* @description UUID of the currency to deduct from wallet
|
|
2850
|
-
* @example 509eca03-bc0d-4a38-b7dc-d136d2bdaa43
|
|
2890
|
+
* @description UUID of the currency to deduct from the wallet
|
|
2851
2891
|
*/
|
|
2852
2892
|
from_currency_id: string;
|
|
2853
|
-
/**
|
|
2854
|
-
* @description Amount to deposit
|
|
2855
|
-
* @example 100.5
|
|
2856
|
-
*/
|
|
2857
2893
|
amount: number;
|
|
2858
|
-
/**
|
|
2859
|
-
* @description Optional description for the deposit
|
|
2860
|
-
* @example Monthly card funding
|
|
2861
|
-
*/
|
|
2862
2894
|
note?: string;
|
|
2863
2895
|
};
|
|
2864
2896
|
};
|
|
2865
2897
|
};
|
|
2866
2898
|
responses: {
|
|
2867
|
-
/** @description Deposit
|
|
2899
|
+
/** @description Deposit order created (COMPLETE, FAILED, or PROCESSING for workflow-routed programs) */
|
|
2868
2900
|
200: {
|
|
2869
2901
|
headers: {
|
|
2870
2902
|
[name: string]: unknown;
|
|
2871
2903
|
};
|
|
2872
|
-
content
|
|
2873
|
-
"application/json": {
|
|
2874
|
-
/** @example true */
|
|
2875
|
-
success?: boolean;
|
|
2876
|
-
data?: {
|
|
2877
|
-
/**
|
|
2878
|
-
* Format: uuid
|
|
2879
|
-
* @description Unique order identifier
|
|
2880
|
-
*/
|
|
2881
|
-
order_uuid?: string;
|
|
2882
|
-
/** @description Transaction ID for tracking */
|
|
2883
|
-
transaction_id?: string;
|
|
2884
|
-
/** @enum {string} */
|
|
2885
|
-
status?: "PENDING" | "COMPLETE" | "FAILED";
|
|
2886
|
-
amount_from?: number;
|
|
2887
|
-
amount_to?: number;
|
|
2888
|
-
/** Format: date-time */
|
|
2889
|
-
created_at?: string;
|
|
2890
|
-
};
|
|
2891
|
-
};
|
|
2892
|
-
};
|
|
2904
|
+
content?: never;
|
|
2893
2905
|
};
|
|
2894
|
-
/** @description
|
|
2895
|
-
* - Missing required fields
|
|
2896
|
-
* - Invalid reference_id format
|
|
2897
|
-
* - Invalid amount (must be positive number)
|
|
2898
|
-
* */
|
|
2906
|
+
/** @description Validation error */
|
|
2899
2907
|
400: {
|
|
2900
2908
|
headers: {
|
|
2901
2909
|
[name: string]: unknown;
|
|
2902
2910
|
};
|
|
2903
|
-
content
|
|
2911
|
+
content: {
|
|
2912
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2913
|
+
};
|
|
2904
2914
|
};
|
|
2905
|
-
/** @description
|
|
2906
|
-
* - Access denied to this card
|
|
2907
|
-
* - Insufficient wallet balance
|
|
2908
|
-
* - Topup not allowed (limits exceeded)
|
|
2909
|
-
* */
|
|
2915
|
+
/** @description Access denied to this card */
|
|
2910
2916
|
403: {
|
|
2911
2917
|
headers: {
|
|
2912
2918
|
[name: string]: unknown;
|
|
2913
2919
|
};
|
|
2914
|
-
content
|
|
2920
|
+
content: {
|
|
2921
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2922
|
+
};
|
|
2915
2923
|
};
|
|
2916
|
-
/** @description Card or
|
|
2924
|
+
/** @description Card or sub-account not found */
|
|
2917
2925
|
404: {
|
|
2918
2926
|
headers: {
|
|
2919
2927
|
[name: string]: unknown;
|
|
2920
2928
|
};
|
|
2921
|
-
content
|
|
2929
|
+
content: {
|
|
2930
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2931
|
+
};
|
|
2922
2932
|
};
|
|
2923
2933
|
};
|
|
2924
2934
|
};
|
|
@@ -2939,13 +2949,14 @@ export interface paths {
|
|
|
2939
2949
|
put?: never;
|
|
2940
2950
|
/**
|
|
2941
2951
|
* Withdraw funds from card
|
|
2942
|
-
* @description
|
|
2943
|
-
*
|
|
2944
|
-
*
|
|
2945
|
-
*
|
|
2946
|
-
*
|
|
2952
|
+
* @description Thin wrapper over the sub-account withdraw: the card's sub-account is
|
|
2953
|
+
* resolved from `card_id` and the request is processed by the same
|
|
2954
|
+
* implementation as POST /frontend/issuing/sub-accounts/{sub_account_id}/withdraw
|
|
2955
|
+
* (same order types and validation; concurrent withdrawals on the same
|
|
2956
|
+
* sub-account are rejected with 409).
|
|
2947
2957
|
*
|
|
2948
|
-
* **
|
|
2958
|
+
* **Authentication**: Bearer token with x-tenant-id header required.
|
|
2959
|
+
* **Access Control**: wallet ADMIN role on the card's wallet.
|
|
2949
2960
|
*
|
|
2950
2961
|
*/
|
|
2951
2962
|
post: {
|
|
@@ -2961,60 +2972,54 @@ export interface paths {
|
|
|
2961
2972
|
requestBody: {
|
|
2962
2973
|
content: {
|
|
2963
2974
|
"application/json": {
|
|
2964
|
-
/**
|
|
2965
|
-
* @description Amount to withdraw
|
|
2966
|
-
* @example 50
|
|
2967
|
-
*/
|
|
2975
|
+
/** @description Amount to withdraw back to the wallet */
|
|
2968
2976
|
amount: number;
|
|
2969
|
-
/**
|
|
2970
|
-
* @description Optional description for the withdrawal
|
|
2971
|
-
* @example Refund to wallet
|
|
2972
|
-
*/
|
|
2973
|
-
description?: string;
|
|
2974
2977
|
};
|
|
2975
2978
|
};
|
|
2976
2979
|
};
|
|
2977
2980
|
responses: {
|
|
2978
|
-
/** @description Withdrawal
|
|
2981
|
+
/** @description Withdrawal completed */
|
|
2979
2982
|
200: {
|
|
2980
2983
|
headers: {
|
|
2981
2984
|
[name: string]: unknown;
|
|
2982
2985
|
};
|
|
2983
|
-
content
|
|
2984
|
-
"application/json": {
|
|
2985
|
-
/** @example true */
|
|
2986
|
-
success?: boolean;
|
|
2987
|
-
data?: {
|
|
2988
|
-
/** Format: uuid */
|
|
2989
|
-
transaction_id?: string;
|
|
2990
|
-
amount?: number;
|
|
2991
|
-
new_balance?: number;
|
|
2992
|
-
/** @example completed */
|
|
2993
|
-
status?: string;
|
|
2994
|
-
};
|
|
2995
|
-
};
|
|
2996
|
-
};
|
|
2986
|
+
content?: never;
|
|
2997
2987
|
};
|
|
2998
|
-
/** @description
|
|
2988
|
+
/** @description Validation error */
|
|
2999
2989
|
400: {
|
|
3000
2990
|
headers: {
|
|
3001
2991
|
[name: string]: unknown;
|
|
3002
2992
|
};
|
|
3003
|
-
content
|
|
2993
|
+
content: {
|
|
2994
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2995
|
+
};
|
|
3004
2996
|
};
|
|
3005
2997
|
/** @description Access denied to this card */
|
|
3006
2998
|
403: {
|
|
3007
2999
|
headers: {
|
|
3008
3000
|
[name: string]: unknown;
|
|
3009
3001
|
};
|
|
3010
|
-
content
|
|
3002
|
+
content: {
|
|
3003
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3004
|
+
};
|
|
3011
3005
|
};
|
|
3012
|
-
/** @description
|
|
3013
|
-
|
|
3006
|
+
/** @description Card or sub-account not found */
|
|
3007
|
+
404: {
|
|
3014
3008
|
headers: {
|
|
3015
3009
|
[name: string]: unknown;
|
|
3016
3010
|
};
|
|
3017
|
-
content
|
|
3011
|
+
content: {
|
|
3012
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3013
|
+
};
|
|
3014
|
+
};
|
|
3015
|
+
/** @description Another withdrawal for this sub-account is in progress */
|
|
3016
|
+
409: {
|
|
3017
|
+
headers: {
|
|
3018
|
+
[name: string]: unknown;
|
|
3019
|
+
};
|
|
3020
|
+
content: {
|
|
3021
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3022
|
+
};
|
|
3018
3023
|
};
|
|
3019
3024
|
};
|
|
3020
3025
|
};
|
|
@@ -4914,89 +4919,117 @@ export interface paths {
|
|
|
4914
4919
|
patch?: never;
|
|
4915
4920
|
trace?: never;
|
|
4916
4921
|
};
|
|
4917
|
-
"/frontend/
|
|
4922
|
+
"/frontend/mass-payouts/{wallet_id}": {
|
|
4918
4923
|
parameters: {
|
|
4919
4924
|
query?: never;
|
|
4920
4925
|
header?: never;
|
|
4921
4926
|
path?: never;
|
|
4922
4927
|
cookie?: never;
|
|
4923
4928
|
};
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
/**
|
|
4927
|
-
* ACH (coming soon)
|
|
4928
|
-
* @description ACH deposit is not yet implemented. Returns 501.
|
|
4929
|
-
*/
|
|
4930
|
-
post: {
|
|
4929
|
+
/** List mass payouts of a wallet */
|
|
4930
|
+
get: {
|
|
4931
4931
|
parameters: {
|
|
4932
|
-
query?:
|
|
4932
|
+
query?: {
|
|
4933
|
+
status?: "DRAFT" | "PENDING_APPROVAL" | "PROCESSING" | "COMPLETED" | "FAILED" | "CANCELED";
|
|
4934
|
+
limit?: number;
|
|
4935
|
+
offset?: number;
|
|
4936
|
+
};
|
|
4933
4937
|
header?: never;
|
|
4934
|
-
path
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
requestBody: {
|
|
4938
|
-
content: {
|
|
4939
|
-
"application/json": {
|
|
4940
|
-
/** Format: uuid */
|
|
4941
|
-
wallet_id: string;
|
|
4942
|
-
amount?: number;
|
|
4943
|
-
request_id?: string;
|
|
4944
|
-
};
|
|
4938
|
+
path: {
|
|
4939
|
+
/** @description Source wallet the batches belong to */
|
|
4940
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
4945
4941
|
};
|
|
4942
|
+
cookie?: never;
|
|
4946
4943
|
};
|
|
4944
|
+
requestBody?: never;
|
|
4947
4945
|
responses: {
|
|
4948
|
-
/** @description
|
|
4949
|
-
|
|
4946
|
+
/** @description Page of batches, newest first */
|
|
4947
|
+
200: {
|
|
4950
4948
|
headers: {
|
|
4951
4949
|
[name: string]: unknown;
|
|
4952
4950
|
};
|
|
4953
4951
|
content: {
|
|
4954
|
-
"application/json":
|
|
4952
|
+
"application/json": {
|
|
4953
|
+
/** @example true */
|
|
4954
|
+
success?: boolean;
|
|
4955
|
+
data?: {
|
|
4956
|
+
items?: components["schemas"]["MassPayout"][];
|
|
4957
|
+
total?: number;
|
|
4958
|
+
limit?: number;
|
|
4959
|
+
offset?: number;
|
|
4960
|
+
};
|
|
4961
|
+
};
|
|
4955
4962
|
};
|
|
4956
4963
|
};
|
|
4957
4964
|
};
|
|
4958
4965
|
};
|
|
4959
|
-
delete?: never;
|
|
4960
|
-
options?: never;
|
|
4961
|
-
head?: never;
|
|
4962
|
-
patch?: never;
|
|
4963
|
-
trace?: never;
|
|
4964
|
-
};
|
|
4965
|
-
"/frontend/orders/deposit/crypto": {
|
|
4966
|
-
parameters: {
|
|
4967
|
-
query?: never;
|
|
4968
|
-
header?: never;
|
|
4969
|
-
path?: never;
|
|
4970
|
-
cookie?: never;
|
|
4971
|
-
};
|
|
4972
|
-
get?: never;
|
|
4973
4966
|
put?: never;
|
|
4974
4967
|
/**
|
|
4975
|
-
*
|
|
4976
|
-
* @description
|
|
4968
|
+
* Create a mass payout draft
|
|
4969
|
+
* @description Creates a batch of payouts to existing counterparty destinations: one
|
|
4970
|
+
* source wallet, one currency, up to the tenant's batch-size limit of
|
|
4971
|
+
* recipients (default 100). The draft can be freely edited and
|
|
4972
|
+
* previewed; nothing moves until it is submitted and approved.
|
|
4973
|
+
* `virtual_account_id` is required only when the list contains banking
|
|
4974
|
+
* recipients. Requires an administrative role on the source wallet.
|
|
4975
|
+
*
|
|
4977
4976
|
*/
|
|
4978
4977
|
post: {
|
|
4979
4978
|
parameters: {
|
|
4980
4979
|
query?: never;
|
|
4981
4980
|
header?: never;
|
|
4982
|
-
path
|
|
4981
|
+
path: {
|
|
4982
|
+
/** @description Source wallet the batches belong to */
|
|
4983
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
4984
|
+
};
|
|
4983
4985
|
cookie?: never;
|
|
4984
4986
|
};
|
|
4985
4987
|
requestBody: {
|
|
4986
4988
|
content: {
|
|
4987
4989
|
"application/json": {
|
|
4988
4990
|
/** Format: uuid */
|
|
4989
|
-
|
|
4990
|
-
amount?: number;
|
|
4991
|
+
currency_id: string;
|
|
4991
4992
|
/** Format: uuid */
|
|
4992
|
-
|
|
4993
|
-
|
|
4993
|
+
virtual_account_id?: string;
|
|
4994
|
+
name: string;
|
|
4995
|
+
items: components["schemas"]["MassPayoutItemInput"][];
|
|
4994
4996
|
};
|
|
4995
4997
|
};
|
|
4996
4998
|
};
|
|
4997
4999
|
responses: {
|
|
4998
|
-
/** @description
|
|
4999
|
-
|
|
5000
|
+
/** @description Draft created */
|
|
5001
|
+
200: {
|
|
5002
|
+
headers: {
|
|
5003
|
+
[name: string]: unknown;
|
|
5004
|
+
};
|
|
5005
|
+
content: {
|
|
5006
|
+
"application/json": {
|
|
5007
|
+
/** @example true */
|
|
5008
|
+
success?: boolean;
|
|
5009
|
+
data?: components["schemas"]["MassPayout"];
|
|
5010
|
+
};
|
|
5011
|
+
};
|
|
5012
|
+
};
|
|
5013
|
+
/** @description Validation error (including the batch-size limit) */
|
|
5014
|
+
400: {
|
|
5015
|
+
headers: {
|
|
5016
|
+
[name: string]: unknown;
|
|
5017
|
+
};
|
|
5018
|
+
content: {
|
|
5019
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5020
|
+
};
|
|
5021
|
+
};
|
|
5022
|
+
/** @description Caller lacks permission on the source wallet */
|
|
5023
|
+
403: {
|
|
5024
|
+
headers: {
|
|
5025
|
+
[name: string]: unknown;
|
|
5026
|
+
};
|
|
5027
|
+
content: {
|
|
5028
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5029
|
+
};
|
|
5030
|
+
};
|
|
5031
|
+
/** @description Rate limit exceeded */
|
|
5032
|
+
429: {
|
|
5000
5033
|
headers: {
|
|
5001
5034
|
[name: string]: unknown;
|
|
5002
5035
|
};
|
|
@@ -5012,39 +5045,42 @@ export interface paths {
|
|
|
5012
5045
|
patch?: never;
|
|
5013
5046
|
trace?: never;
|
|
5014
5047
|
};
|
|
5015
|
-
"/frontend/
|
|
5048
|
+
"/frontend/mass-payouts/{wallet_id}/{id}": {
|
|
5016
5049
|
parameters: {
|
|
5017
5050
|
query?: never;
|
|
5018
5051
|
header?: never;
|
|
5019
5052
|
path?: never;
|
|
5020
5053
|
cookie?: never;
|
|
5021
5054
|
};
|
|
5022
|
-
|
|
5023
|
-
|
|
5024
|
-
/**
|
|
5025
|
-
* PIX (coming soon)
|
|
5026
|
-
* @description PIX deposit is not yet implemented. Returns 501.
|
|
5027
|
-
*/
|
|
5028
|
-
post: {
|
|
5055
|
+
/** Get a mass payout */
|
|
5056
|
+
get: {
|
|
5029
5057
|
parameters: {
|
|
5030
5058
|
query?: never;
|
|
5031
5059
|
header?: never;
|
|
5032
|
-
path
|
|
5060
|
+
path: {
|
|
5061
|
+
/** @description Source wallet the batches belong to */
|
|
5062
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5063
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5064
|
+
};
|
|
5033
5065
|
cookie?: never;
|
|
5034
5066
|
};
|
|
5035
|
-
requestBody
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5067
|
+
requestBody?: never;
|
|
5068
|
+
responses: {
|
|
5069
|
+
/** @description Batch details with progress counters and total amount */
|
|
5070
|
+
200: {
|
|
5071
|
+
headers: {
|
|
5072
|
+
[name: string]: unknown;
|
|
5073
|
+
};
|
|
5074
|
+
content: {
|
|
5075
|
+
"application/json": {
|
|
5076
|
+
/** @example true */
|
|
5077
|
+
success?: boolean;
|
|
5078
|
+
data?: components["schemas"]["MassPayout"];
|
|
5079
|
+
};
|
|
5042
5080
|
};
|
|
5043
5081
|
};
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
/** @description Not implemented */
|
|
5047
|
-
501: {
|
|
5082
|
+
/** @description Mass payout not found */
|
|
5083
|
+
404: {
|
|
5048
5084
|
headers: {
|
|
5049
5085
|
[name: string]: unknown;
|
|
5050
5086
|
};
|
|
@@ -5054,45 +5090,33 @@ export interface paths {
|
|
|
5054
5090
|
};
|
|
5055
5091
|
};
|
|
5056
5092
|
};
|
|
5057
|
-
delete?: never;
|
|
5058
|
-
options?: never;
|
|
5059
|
-
head?: never;
|
|
5060
|
-
patch?: never;
|
|
5061
|
-
trace?: never;
|
|
5062
|
-
};
|
|
5063
|
-
"/frontend/orders/deposit/card": {
|
|
5064
|
-
parameters: {
|
|
5065
|
-
query?: never;
|
|
5066
|
-
header?: never;
|
|
5067
|
-
path?: never;
|
|
5068
|
-
cookie?: never;
|
|
5069
|
-
};
|
|
5070
|
-
get?: never;
|
|
5071
|
-
put?: never;
|
|
5072
5093
|
/**
|
|
5073
|
-
*
|
|
5074
|
-
* @description
|
|
5094
|
+
* Edit a mass payout draft
|
|
5095
|
+
* @description Draft-only. `items` fully replaces the recipient list; `virtual_account_id: null` clears the source VA.
|
|
5075
5096
|
*/
|
|
5076
|
-
|
|
5097
|
+
put: {
|
|
5077
5098
|
parameters: {
|
|
5078
5099
|
query?: never;
|
|
5079
5100
|
header?: never;
|
|
5080
|
-
path
|
|
5101
|
+
path: {
|
|
5102
|
+
/** @description Source wallet the batches belong to */
|
|
5103
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5104
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5105
|
+
};
|
|
5081
5106
|
cookie?: never;
|
|
5082
5107
|
};
|
|
5083
5108
|
requestBody: {
|
|
5084
5109
|
content: {
|
|
5085
5110
|
"application/json": {
|
|
5111
|
+
name?: string;
|
|
5086
5112
|
/** Format: uuid */
|
|
5087
|
-
|
|
5088
|
-
|
|
5089
|
-
/** Format: uuid */
|
|
5090
|
-
sub_account_id: string;
|
|
5113
|
+
virtual_account_id?: string | null;
|
|
5114
|
+
items?: components["schemas"]["MassPayoutItemInput"][];
|
|
5091
5115
|
};
|
|
5092
5116
|
};
|
|
5093
5117
|
};
|
|
5094
5118
|
responses: {
|
|
5095
|
-
/** @description
|
|
5119
|
+
/** @description Updated draft */
|
|
5096
5120
|
200: {
|
|
5097
5121
|
headers: {
|
|
5098
5122
|
[name: string]: unknown;
|
|
@@ -5101,14 +5125,12 @@ export interface paths {
|
|
|
5101
5125
|
"application/json": {
|
|
5102
5126
|
/** @example true */
|
|
5103
5127
|
success?: boolean;
|
|
5104
|
-
data?: components["schemas"]["
|
|
5105
|
-
/** @example Card return order created */
|
|
5106
|
-
message?: string;
|
|
5128
|
+
data?: components["schemas"]["MassPayout"];
|
|
5107
5129
|
};
|
|
5108
5130
|
};
|
|
5109
5131
|
};
|
|
5110
|
-
/** @description
|
|
5111
|
-
|
|
5132
|
+
/** @description Batch is not editable anymore (already submitted) */
|
|
5133
|
+
409: {
|
|
5112
5134
|
headers: {
|
|
5113
5135
|
[name: string]: unknown;
|
|
5114
5136
|
};
|
|
@@ -5116,42 +5138,156 @@ export interface paths {
|
|
|
5116
5138
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5117
5139
|
};
|
|
5118
5140
|
};
|
|
5119
|
-
|
|
5120
|
-
|
|
5121
|
-
|
|
5122
|
-
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5141
|
+
};
|
|
5142
|
+
};
|
|
5143
|
+
post?: never;
|
|
5144
|
+
delete?: never;
|
|
5145
|
+
options?: never;
|
|
5146
|
+
head?: never;
|
|
5147
|
+
patch?: never;
|
|
5148
|
+
trace?: never;
|
|
5149
|
+
};
|
|
5150
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/items": {
|
|
5151
|
+
parameters: {
|
|
5152
|
+
query?: never;
|
|
5153
|
+
header?: never;
|
|
5154
|
+
path?: never;
|
|
5155
|
+
cookie?: never;
|
|
5156
|
+
};
|
|
5157
|
+
/**
|
|
5158
|
+
* List items of a mass payout
|
|
5159
|
+
* @description Items in upload order, paginated with limit/offset like the batch list.
|
|
5160
|
+
*/
|
|
5161
|
+
get: {
|
|
5162
|
+
parameters: {
|
|
5163
|
+
query?: {
|
|
5164
|
+
limit?: number;
|
|
5165
|
+
offset?: number;
|
|
5127
5166
|
};
|
|
5128
|
-
|
|
5129
|
-
|
|
5167
|
+
header?: never;
|
|
5168
|
+
path: {
|
|
5169
|
+
/** @description Source wallet the batches belong to */
|
|
5170
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5171
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5172
|
+
};
|
|
5173
|
+
cookie?: never;
|
|
5174
|
+
};
|
|
5175
|
+
requestBody?: never;
|
|
5176
|
+
responses: {
|
|
5177
|
+
/** @description Page of items */
|
|
5178
|
+
200: {
|
|
5130
5179
|
headers: {
|
|
5131
5180
|
[name: string]: unknown;
|
|
5132
5181
|
};
|
|
5133
5182
|
content: {
|
|
5134
|
-
"application/json":
|
|
5183
|
+
"application/json": {
|
|
5184
|
+
/** @example true */
|
|
5185
|
+
success?: boolean;
|
|
5186
|
+
data?: {
|
|
5187
|
+
items?: components["schemas"]["MassPayoutItem"][];
|
|
5188
|
+
total?: number;
|
|
5189
|
+
limit?: number;
|
|
5190
|
+
offset?: number;
|
|
5191
|
+
};
|
|
5192
|
+
};
|
|
5135
5193
|
};
|
|
5136
5194
|
};
|
|
5137
|
-
|
|
5138
|
-
|
|
5195
|
+
};
|
|
5196
|
+
};
|
|
5197
|
+
put?: never;
|
|
5198
|
+
post?: never;
|
|
5199
|
+
delete?: never;
|
|
5200
|
+
options?: never;
|
|
5201
|
+
head?: never;
|
|
5202
|
+
patch?: never;
|
|
5203
|
+
trace?: never;
|
|
5204
|
+
};
|
|
5205
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/preview": {
|
|
5206
|
+
parameters: {
|
|
5207
|
+
query?: never;
|
|
5208
|
+
header?: never;
|
|
5209
|
+
path?: never;
|
|
5210
|
+
cookie?: never;
|
|
5211
|
+
};
|
|
5212
|
+
/**
|
|
5213
|
+
* Preview a mass payout
|
|
5214
|
+
* @description Dry-run before submitting: validates every recipient, estimates the fee
|
|
5215
|
+
* per item through the tenant's pricing, sums the total debit and checks
|
|
5216
|
+
* it against the wallet balance. Crypto payouts to on-platform addresses
|
|
5217
|
+
* may execute cheaper than estimated (they settle internally).
|
|
5218
|
+
*
|
|
5219
|
+
*/
|
|
5220
|
+
get: {
|
|
5221
|
+
parameters: {
|
|
5222
|
+
query?: never;
|
|
5223
|
+
header?: never;
|
|
5224
|
+
path: {
|
|
5225
|
+
/** @description Source wallet the batches belong to */
|
|
5226
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5227
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5228
|
+
};
|
|
5229
|
+
cookie?: never;
|
|
5230
|
+
};
|
|
5231
|
+
requestBody?: never;
|
|
5232
|
+
responses: {
|
|
5233
|
+
/** @description Validation report, fee estimates and balance check */
|
|
5234
|
+
200: {
|
|
5139
5235
|
headers: {
|
|
5140
5236
|
[name: string]: unknown;
|
|
5141
5237
|
};
|
|
5142
5238
|
content: {
|
|
5143
|
-
"application/json":
|
|
5239
|
+
"application/json": {
|
|
5240
|
+
/** @example true */
|
|
5241
|
+
success?: boolean;
|
|
5242
|
+
data?: {
|
|
5243
|
+
/** Format: uuid */
|
|
5244
|
+
id?: string;
|
|
5245
|
+
/** Format: uuid */
|
|
5246
|
+
currency_id?: string;
|
|
5247
|
+
total_items?: number;
|
|
5248
|
+
total_amount?: number;
|
|
5249
|
+
total_fees?: number;
|
|
5250
|
+
total_debit?: number;
|
|
5251
|
+
balance?: {
|
|
5252
|
+
available?: number;
|
|
5253
|
+
sufficient?: boolean;
|
|
5254
|
+
};
|
|
5255
|
+
valid_count?: number;
|
|
5256
|
+
invalid_count?: number;
|
|
5257
|
+
items?: {
|
|
5258
|
+
/** Format: uuid */
|
|
5259
|
+
item_id?: string;
|
|
5260
|
+
position?: number;
|
|
5261
|
+
/** Format: uuid */
|
|
5262
|
+
destination_id?: string;
|
|
5263
|
+
amount?: number;
|
|
5264
|
+
fee?: number;
|
|
5265
|
+
debit_amount?: number;
|
|
5266
|
+
result_amount?: number;
|
|
5267
|
+
}[];
|
|
5268
|
+
problems?: {
|
|
5269
|
+
/** Format: uuid */
|
|
5270
|
+
item_id?: string;
|
|
5271
|
+
position?: number;
|
|
5272
|
+
/** Format: uuid */
|
|
5273
|
+
destination_id?: string;
|
|
5274
|
+
error?: string;
|
|
5275
|
+
}[];
|
|
5276
|
+
};
|
|
5277
|
+
};
|
|
5144
5278
|
};
|
|
5145
5279
|
};
|
|
5146
5280
|
};
|
|
5147
5281
|
};
|
|
5282
|
+
put?: never;
|
|
5283
|
+
post?: never;
|
|
5148
5284
|
delete?: never;
|
|
5149
5285
|
options?: never;
|
|
5150
5286
|
head?: never;
|
|
5151
5287
|
patch?: never;
|
|
5152
5288
|
trace?: never;
|
|
5153
5289
|
};
|
|
5154
|
-
"/frontend/
|
|
5290
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/submit": {
|
|
5155
5291
|
parameters: {
|
|
5156
5292
|
query?: never;
|
|
5157
5293
|
header?: never;
|
|
@@ -5161,35 +5297,25 @@ export interface paths {
|
|
|
5161
5297
|
get?: never;
|
|
5162
5298
|
put?: never;
|
|
5163
5299
|
/**
|
|
5164
|
-
*
|
|
5165
|
-
* @description
|
|
5166
|
-
*
|
|
5167
|
-
* the exchange calculation config: a disabled pair is rejected at create.
|
|
5168
|
-
*
|
|
5169
|
-
* Two-phase, like the banking withdrawals: the order is created in status
|
|
5170
|
-
* `NEW` without touching the balance. Call `POST /frontend/orders/{order_id}/approve`
|
|
5171
|
-
* (OTP-gated, keyed on the order id) to check the balance, debit the
|
|
5172
|
-
* source funds and execute the swap — the order lands in `COMPLETE`
|
|
5173
|
-
* synchronously — or `POST /frontend/orders/{order_id}/cancel` to
|
|
5174
|
-
* discard the order.
|
|
5175
|
-
*
|
|
5176
|
-
* Caller must be `admin` of the wallet.
|
|
5300
|
+
* Submit a mass payout for approval
|
|
5301
|
+
* @description DRAFT → PENDING_APPROVAL. Refused while any recipient is invalid — the
|
|
5302
|
+
* problems are returned in the error details so the rows can be fixed.
|
|
5177
5303
|
*
|
|
5178
5304
|
*/
|
|
5179
5305
|
post: {
|
|
5180
5306
|
parameters: {
|
|
5181
5307
|
query?: never;
|
|
5182
5308
|
header?: never;
|
|
5183
|
-
path
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
content: {
|
|
5188
|
-
"application/json": components["schemas"]["FrontendExchangeOrderRequest"];
|
|
5309
|
+
path: {
|
|
5310
|
+
/** @description Source wallet the batches belong to */
|
|
5311
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5312
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5189
5313
|
};
|
|
5314
|
+
cookie?: never;
|
|
5190
5315
|
};
|
|
5316
|
+
requestBody?: never;
|
|
5191
5317
|
responses: {
|
|
5192
|
-
/** @description
|
|
5318
|
+
/** @description Batch is awaiting approval */
|
|
5193
5319
|
200: {
|
|
5194
5320
|
headers: {
|
|
5195
5321
|
[name: string]: unknown;
|
|
@@ -5198,11 +5324,11 @@ export interface paths {
|
|
|
5198
5324
|
"application/json": {
|
|
5199
5325
|
/** @example true */
|
|
5200
5326
|
success?: boolean;
|
|
5201
|
-
data?: components["schemas"]["
|
|
5327
|
+
data?: components["schemas"]["MassPayout"];
|
|
5202
5328
|
};
|
|
5203
5329
|
};
|
|
5204
5330
|
};
|
|
5205
|
-
/** @description
|
|
5331
|
+
/** @description Batch has invalid items (details carry the per-item problems) */
|
|
5206
5332
|
400: {
|
|
5207
5333
|
headers: {
|
|
5208
5334
|
[name: string]: unknown;
|
|
@@ -5211,26 +5337,8 @@ export interface paths {
|
|
|
5211
5337
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5212
5338
|
};
|
|
5213
5339
|
};
|
|
5214
|
-
/** @description
|
|
5215
|
-
|
|
5216
|
-
headers: {
|
|
5217
|
-
[name: string]: unknown;
|
|
5218
|
-
};
|
|
5219
|
-
content: {
|
|
5220
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5221
|
-
};
|
|
5222
|
-
};
|
|
5223
|
-
/** @description Caller is not an admin of the wallet */
|
|
5224
|
-
403: {
|
|
5225
|
-
headers: {
|
|
5226
|
-
[name: string]: unknown;
|
|
5227
|
-
};
|
|
5228
|
-
content: {
|
|
5229
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5230
|
-
};
|
|
5231
|
-
};
|
|
5232
|
-
/** @description Rate limit exceeded */
|
|
5233
|
-
429: {
|
|
5340
|
+
/** @description Batch is not in DRAFT */
|
|
5341
|
+
409: {
|
|
5234
5342
|
headers: {
|
|
5235
5343
|
[name: string]: unknown;
|
|
5236
5344
|
};
|
|
@@ -5246,7 +5354,7 @@ export interface paths {
|
|
|
5246
5354
|
patch?: never;
|
|
5247
5355
|
trace?: never;
|
|
5248
5356
|
};
|
|
5249
|
-
"/frontend/
|
|
5357
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/approve": {
|
|
5250
5358
|
parameters: {
|
|
5251
5359
|
query?: never;
|
|
5252
5360
|
header?: never;
|
|
@@ -5256,46 +5364,29 @@ export interface paths {
|
|
|
5256
5364
|
get?: never;
|
|
5257
5365
|
put?: never;
|
|
5258
5366
|
/**
|
|
5259
|
-
*
|
|
5260
|
-
* @description
|
|
5261
|
-
*
|
|
5262
|
-
*
|
|
5263
|
-
*
|
|
5264
|
-
*
|
|
5265
|
-
*
|
|
5266
|
-
* Caller must be `admin` of the source wallet.
|
|
5367
|
+
* Approve a mass payout
|
|
5368
|
+
* @description PENDING_APPROVAL → PROCESSING and starts the asynchronous execution:
|
|
5369
|
+
* every item becomes a regular order (created and approved through the
|
|
5370
|
+
* standard order flow, funds are debited per order). Requires an
|
|
5371
|
+
* administrative wallet role and a recent second-factor verification — a stale one is rejected
|
|
5372
|
+
* with `TWO_FACTOR_REVERIFICATION_REQUIRED`. Execution continues past
|
|
5373
|
+
* failed items; progress is visible through the batch counters.
|
|
5267
5374
|
*
|
|
5268
5375
|
*/
|
|
5269
5376
|
post: {
|
|
5270
5377
|
parameters: {
|
|
5271
5378
|
query?: never;
|
|
5272
5379
|
header?: never;
|
|
5273
|
-
path
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
content: {
|
|
5278
|
-
"application/json": {
|
|
5279
|
-
/**
|
|
5280
|
-
* Format: uuid
|
|
5281
|
-
* @description Source wallet UUID
|
|
5282
|
-
*/
|
|
5283
|
-
wallet_id: string;
|
|
5284
|
-
/** Format: uuid */
|
|
5285
|
-
from_currency_id: string;
|
|
5286
|
-
/**
|
|
5287
|
-
* Format: uuid
|
|
5288
|
-
* @description Counterparty destination of type INTERNAL (points at the receiver wallet).
|
|
5289
|
-
*/
|
|
5290
|
-
counterparty_destination_id: string;
|
|
5291
|
-
amount: number;
|
|
5292
|
-
/** @description Optional supporting documents persisted with the order. */
|
|
5293
|
-
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
5294
|
-
};
|
|
5380
|
+
path: {
|
|
5381
|
+
/** @description Source wallet the batches belong to */
|
|
5382
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5383
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5295
5384
|
};
|
|
5385
|
+
cookie?: never;
|
|
5296
5386
|
};
|
|
5387
|
+
requestBody?: never;
|
|
5297
5388
|
responses: {
|
|
5298
|
-
/** @description
|
|
5389
|
+
/** @description Execution started */
|
|
5299
5390
|
200: {
|
|
5300
5391
|
headers: {
|
|
5301
5392
|
[name: string]: unknown;
|
|
@@ -5304,29 +5395,11 @@ export interface paths {
|
|
|
5304
5395
|
"application/json": {
|
|
5305
5396
|
/** @example true */
|
|
5306
5397
|
success?: boolean;
|
|
5307
|
-
data?: components["schemas"]["
|
|
5398
|
+
data?: components["schemas"]["MassPayout"];
|
|
5308
5399
|
};
|
|
5309
5400
|
};
|
|
5310
5401
|
};
|
|
5311
|
-
/** @description
|
|
5312
|
-
400: {
|
|
5313
|
-
headers: {
|
|
5314
|
-
[name: string]: unknown;
|
|
5315
|
-
};
|
|
5316
|
-
content: {
|
|
5317
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5318
|
-
};
|
|
5319
|
-
};
|
|
5320
|
-
/** @description Authentication required */
|
|
5321
|
-
401: {
|
|
5322
|
-
headers: {
|
|
5323
|
-
[name: string]: unknown;
|
|
5324
|
-
};
|
|
5325
|
-
content: {
|
|
5326
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5327
|
-
};
|
|
5328
|
-
};
|
|
5329
|
-
/** @description Caller is not an admin of the source wallet */
|
|
5402
|
+
/** @description Second-factor verification is stale or the caller lacks permission */
|
|
5330
5403
|
403: {
|
|
5331
5404
|
headers: {
|
|
5332
5405
|
[name: string]: unknown;
|
|
@@ -5335,8 +5408,8 @@ export interface paths {
|
|
|
5335
5408
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5336
5409
|
};
|
|
5337
5410
|
};
|
|
5338
|
-
/** @description
|
|
5339
|
-
|
|
5411
|
+
/** @description Batch is not awaiting approval */
|
|
5412
|
+
409: {
|
|
5340
5413
|
headers: {
|
|
5341
5414
|
[name: string]: unknown;
|
|
5342
5415
|
};
|
|
@@ -5352,7 +5425,7 @@ export interface paths {
|
|
|
5352
5425
|
patch?: never;
|
|
5353
5426
|
trace?: never;
|
|
5354
5427
|
};
|
|
5355
|
-
"/frontend/
|
|
5428
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/cancel": {
|
|
5356
5429
|
parameters: {
|
|
5357
5430
|
query?: never;
|
|
5358
5431
|
header?: never;
|
|
@@ -5362,31 +5435,23 @@ export interface paths {
|
|
|
5362
5435
|
get?: never;
|
|
5363
5436
|
put?: never;
|
|
5364
5437
|
/**
|
|
5365
|
-
*
|
|
5366
|
-
* @description
|
|
5367
|
-
* the order is created in `NEW` status without touching the balance;
|
|
5368
|
-
* `POST /frontend/orders/{id}/approve` (OTP-gated, keyed on the order
|
|
5369
|
-
* id) checks the balance, debits the funds and dispatches the on-chain
|
|
5370
|
-
* send. If the destination address belongs to a wallet in the same
|
|
5371
|
-
* tenant, the order is created as `OMNIBUS_INTERNAL_TRANSFER` (no
|
|
5372
|
-
* on-chain transaction) — still `NEW` at create, debited + settled
|
|
5373
|
-
* synchronously to `COMPLETE` at approve.
|
|
5374
|
-
*
|
|
5438
|
+
* Cancel a mass payout
|
|
5439
|
+
* @description Allowed from DRAFT and PENDING_APPROVAL. A PROCESSING batch cannot be canceled — payouts are already executing.
|
|
5375
5440
|
*/
|
|
5376
5441
|
post: {
|
|
5377
5442
|
parameters: {
|
|
5378
5443
|
query?: never;
|
|
5379
5444
|
header?: never;
|
|
5380
|
-
path
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
content: {
|
|
5385
|
-
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
5445
|
+
path: {
|
|
5446
|
+
/** @description Source wallet the batches belong to */
|
|
5447
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5448
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5386
5449
|
};
|
|
5450
|
+
cookie?: never;
|
|
5387
5451
|
};
|
|
5452
|
+
requestBody?: never;
|
|
5388
5453
|
responses: {
|
|
5389
|
-
/** @description
|
|
5454
|
+
/** @description Batch canceled */
|
|
5390
5455
|
200: {
|
|
5391
5456
|
headers: {
|
|
5392
5457
|
[name: string]: unknown;
|
|
@@ -5395,12 +5460,12 @@ export interface paths {
|
|
|
5395
5460
|
"application/json": {
|
|
5396
5461
|
/** @example true */
|
|
5397
5462
|
success?: boolean;
|
|
5398
|
-
data?: components["schemas"]["
|
|
5463
|
+
data?: components["schemas"]["MassPayout"];
|
|
5399
5464
|
};
|
|
5400
5465
|
};
|
|
5401
5466
|
};
|
|
5402
|
-
/** @description
|
|
5403
|
-
|
|
5467
|
+
/** @description Batch can no longer be canceled */
|
|
5468
|
+
409: {
|
|
5404
5469
|
headers: {
|
|
5405
5470
|
[name: string]: unknown;
|
|
5406
5471
|
};
|
|
@@ -5408,26 +5473,51 @@ export interface paths {
|
|
|
5408
5473
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5409
5474
|
};
|
|
5410
5475
|
};
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5476
|
+
};
|
|
5477
|
+
};
|
|
5478
|
+
delete?: never;
|
|
5479
|
+
options?: never;
|
|
5480
|
+
head?: never;
|
|
5481
|
+
patch?: never;
|
|
5482
|
+
trace?: never;
|
|
5483
|
+
};
|
|
5484
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/report.csv": {
|
|
5485
|
+
parameters: {
|
|
5486
|
+
query?: never;
|
|
5487
|
+
header?: never;
|
|
5488
|
+
path?: never;
|
|
5489
|
+
cookie?: never;
|
|
5490
|
+
};
|
|
5491
|
+
/**
|
|
5492
|
+
* Download the mass payout report (CSV)
|
|
5493
|
+
* @description Streaming CSV: recipient, amount, item status, the linked order and its
|
|
5494
|
+
* current status, and the failure reason for every unsuccessful payout.
|
|
5495
|
+
*
|
|
5496
|
+
*/
|
|
5497
|
+
get: {
|
|
5498
|
+
parameters: {
|
|
5499
|
+
query?: never;
|
|
5500
|
+
header?: never;
|
|
5501
|
+
path: {
|
|
5502
|
+
/** @description Source wallet the batches belong to */
|
|
5503
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5504
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5419
5505
|
};
|
|
5420
|
-
|
|
5421
|
-
|
|
5506
|
+
cookie?: never;
|
|
5507
|
+
};
|
|
5508
|
+
requestBody?: never;
|
|
5509
|
+
responses: {
|
|
5510
|
+
/** @description CSV file */
|
|
5511
|
+
200: {
|
|
5422
5512
|
headers: {
|
|
5423
5513
|
[name: string]: unknown;
|
|
5424
5514
|
};
|
|
5425
5515
|
content: {
|
|
5426
|
-
"
|
|
5516
|
+
"text/csv": string;
|
|
5427
5517
|
};
|
|
5428
5518
|
};
|
|
5429
|
-
/** @description
|
|
5430
|
-
|
|
5519
|
+
/** @description Mass payout not found */
|
|
5520
|
+
404: {
|
|
5431
5521
|
headers: {
|
|
5432
5522
|
[name: string]: unknown;
|
|
5433
5523
|
};
|
|
@@ -5437,13 +5527,15 @@ export interface paths {
|
|
|
5437
5527
|
};
|
|
5438
5528
|
};
|
|
5439
5529
|
};
|
|
5530
|
+
put?: never;
|
|
5531
|
+
post?: never;
|
|
5440
5532
|
delete?: never;
|
|
5441
5533
|
options?: never;
|
|
5442
5534
|
head?: never;
|
|
5443
5535
|
patch?: never;
|
|
5444
5536
|
trace?: never;
|
|
5445
5537
|
};
|
|
5446
|
-
"/frontend/orders/
|
|
5538
|
+
"/frontend/orders/deposit/ach": {
|
|
5447
5539
|
parameters: {
|
|
5448
5540
|
query?: never;
|
|
5449
5541
|
header?: never;
|
|
@@ -5452,7 +5544,10 @@ export interface paths {
|
|
|
5452
5544
|
};
|
|
5453
5545
|
get?: never;
|
|
5454
5546
|
put?: never;
|
|
5455
|
-
/**
|
|
5547
|
+
/**
|
|
5548
|
+
* ACH (coming soon)
|
|
5549
|
+
* @description ACH deposit is not yet implemented. Returns 501.
|
|
5550
|
+
*/
|
|
5456
5551
|
post: {
|
|
5457
5552
|
parameters: {
|
|
5458
5553
|
query?: never;
|
|
@@ -5462,34 +5557,67 @@ export interface paths {
|
|
|
5462
5557
|
};
|
|
5463
5558
|
requestBody: {
|
|
5464
5559
|
content: {
|
|
5465
|
-
"application/json":
|
|
5560
|
+
"application/json": {
|
|
5561
|
+
/** Format: uuid */
|
|
5562
|
+
wallet_id: string;
|
|
5563
|
+
amount?: number;
|
|
5564
|
+
request_id?: string;
|
|
5565
|
+
};
|
|
5466
5566
|
};
|
|
5467
5567
|
};
|
|
5468
5568
|
responses: {
|
|
5469
|
-
/** @description
|
|
5470
|
-
|
|
5569
|
+
/** @description Not implemented */
|
|
5570
|
+
501: {
|
|
5471
5571
|
headers: {
|
|
5472
5572
|
[name: string]: unknown;
|
|
5473
5573
|
};
|
|
5474
5574
|
content: {
|
|
5475
|
-
"application/json":
|
|
5476
|
-
/** @example true */
|
|
5477
|
-
success?: boolean;
|
|
5478
|
-
data?: components["schemas"]["Order"];
|
|
5479
|
-
};
|
|
5575
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5480
5576
|
};
|
|
5481
5577
|
};
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5578
|
+
};
|
|
5579
|
+
};
|
|
5580
|
+
delete?: never;
|
|
5581
|
+
options?: never;
|
|
5582
|
+
head?: never;
|
|
5583
|
+
patch?: never;
|
|
5584
|
+
trace?: never;
|
|
5585
|
+
};
|
|
5586
|
+
"/frontend/orders/deposit/crypto": {
|
|
5587
|
+
parameters: {
|
|
5588
|
+
query?: never;
|
|
5589
|
+
header?: never;
|
|
5590
|
+
path?: never;
|
|
5591
|
+
cookie?: never;
|
|
5592
|
+
};
|
|
5593
|
+
get?: never;
|
|
5594
|
+
put?: never;
|
|
5595
|
+
/**
|
|
5596
|
+
* Crypto (coming soon)
|
|
5597
|
+
* @description Crypto deposit is not yet implemented. Returns 501.
|
|
5598
|
+
*/
|
|
5599
|
+
post: {
|
|
5600
|
+
parameters: {
|
|
5601
|
+
query?: never;
|
|
5602
|
+
header?: never;
|
|
5603
|
+
path?: never;
|
|
5604
|
+
cookie?: never;
|
|
5605
|
+
};
|
|
5606
|
+
requestBody: {
|
|
5607
|
+
content: {
|
|
5608
|
+
"application/json": {
|
|
5609
|
+
/** Format: uuid */
|
|
5610
|
+
wallet_id: string;
|
|
5611
|
+
amount?: number;
|
|
5612
|
+
/** Format: uuid */
|
|
5613
|
+
currency_id?: string;
|
|
5614
|
+
request_id?: string;
|
|
5489
5615
|
};
|
|
5490
5616
|
};
|
|
5491
|
-
|
|
5492
|
-
|
|
5617
|
+
};
|
|
5618
|
+
responses: {
|
|
5619
|
+
/** @description Not implemented */
|
|
5620
|
+
501: {
|
|
5493
5621
|
headers: {
|
|
5494
5622
|
[name: string]: unknown;
|
|
5495
5623
|
};
|
|
@@ -5497,17 +5625,47 @@ export interface paths {
|
|
|
5497
5625
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5498
5626
|
};
|
|
5499
5627
|
};
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5628
|
+
};
|
|
5629
|
+
};
|
|
5630
|
+
delete?: never;
|
|
5631
|
+
options?: never;
|
|
5632
|
+
head?: never;
|
|
5633
|
+
patch?: never;
|
|
5634
|
+
trace?: never;
|
|
5635
|
+
};
|
|
5636
|
+
"/frontend/orders/deposit/pix": {
|
|
5637
|
+
parameters: {
|
|
5638
|
+
query?: never;
|
|
5639
|
+
header?: never;
|
|
5640
|
+
path?: never;
|
|
5641
|
+
cookie?: never;
|
|
5642
|
+
};
|
|
5643
|
+
get?: never;
|
|
5644
|
+
put?: never;
|
|
5645
|
+
/**
|
|
5646
|
+
* PIX (coming soon)
|
|
5647
|
+
* @description PIX deposit is not yet implemented. Returns 501.
|
|
5648
|
+
*/
|
|
5649
|
+
post: {
|
|
5650
|
+
parameters: {
|
|
5651
|
+
query?: never;
|
|
5652
|
+
header?: never;
|
|
5653
|
+
path?: never;
|
|
5654
|
+
cookie?: never;
|
|
5655
|
+
};
|
|
5656
|
+
requestBody: {
|
|
5657
|
+
content: {
|
|
5658
|
+
"application/json": {
|
|
5659
|
+
/** Format: uuid */
|
|
5660
|
+
wallet_id: string;
|
|
5661
|
+
amount?: number;
|
|
5662
|
+
request_id?: string;
|
|
5507
5663
|
};
|
|
5508
5664
|
};
|
|
5509
|
-
|
|
5510
|
-
|
|
5665
|
+
};
|
|
5666
|
+
responses: {
|
|
5667
|
+
/** @description Not implemented */
|
|
5668
|
+
501: {
|
|
5511
5669
|
headers: {
|
|
5512
5670
|
[name: string]: unknown;
|
|
5513
5671
|
};
|
|
@@ -5523,7 +5681,7 @@ export interface paths {
|
|
|
5523
5681
|
patch?: never;
|
|
5524
5682
|
trace?: never;
|
|
5525
5683
|
};
|
|
5526
|
-
"/frontend/orders/
|
|
5684
|
+
"/frontend/orders/exchange": {
|
|
5527
5685
|
parameters: {
|
|
5528
5686
|
query?: never;
|
|
5529
5687
|
header?: never;
|
|
@@ -5532,7 +5690,22 @@ export interface paths {
|
|
|
5532
5690
|
};
|
|
5533
5691
|
get?: never;
|
|
5534
5692
|
put?: never;
|
|
5535
|
-
/**
|
|
5693
|
+
/**
|
|
5694
|
+
* Exchange
|
|
5695
|
+
* @description Currency exchange within a wallet — a pure ledger swap for any enabled
|
|
5696
|
+
* currency pair (crypto and fiat alike). Pair availability is governed by
|
|
5697
|
+
* the exchange calculation config: a disabled pair is rejected at create.
|
|
5698
|
+
*
|
|
5699
|
+
* Two-phase, like the banking withdrawals: the order is created in status
|
|
5700
|
+
* `NEW` without touching the balance. Call `POST /frontend/orders/{order_id}/approve`
|
|
5701
|
+
* (OTP-gated, keyed on the order id) to check the balance, debit the
|
|
5702
|
+
* source funds and execute the swap — the order lands in `COMPLETE`
|
|
5703
|
+
* synchronously — or `POST /frontend/orders/{order_id}/cancel` to
|
|
5704
|
+
* discard the order.
|
|
5705
|
+
*
|
|
5706
|
+
* Caller must be `admin` of the wallet.
|
|
5707
|
+
*
|
|
5708
|
+
*/
|
|
5536
5709
|
post: {
|
|
5537
5710
|
parameters: {
|
|
5538
5711
|
query?: never;
|
|
@@ -5542,11 +5715,11 @@ export interface paths {
|
|
|
5542
5715
|
};
|
|
5543
5716
|
requestBody: {
|
|
5544
5717
|
content: {
|
|
5545
|
-
"application/json": components["schemas"]["
|
|
5718
|
+
"application/json": components["schemas"]["FrontendExchangeOrderRequest"];
|
|
5546
5719
|
};
|
|
5547
5720
|
};
|
|
5548
5721
|
responses: {
|
|
5549
|
-
/** @description
|
|
5722
|
+
/** @description Exchange order created (status NEW — approve to debit and execute) */
|
|
5550
5723
|
200: {
|
|
5551
5724
|
headers: {
|
|
5552
5725
|
[name: string]: unknown;
|
|
@@ -5559,7 +5732,7 @@ export interface paths {
|
|
|
5559
5732
|
};
|
|
5560
5733
|
};
|
|
5561
5734
|
};
|
|
5562
|
-
/** @description Validation error */
|
|
5735
|
+
/** @description Validation error (insufficient balance, virtual account missing, etc.) */
|
|
5563
5736
|
400: {
|
|
5564
5737
|
headers: {
|
|
5565
5738
|
[name: string]: unknown;
|
|
@@ -5577,7 +5750,7 @@ export interface paths {
|
|
|
5577
5750
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5578
5751
|
};
|
|
5579
5752
|
};
|
|
5580
|
-
/** @description Caller is not an admin of the
|
|
5753
|
+
/** @description Caller is not an admin of the wallet */
|
|
5581
5754
|
403: {
|
|
5582
5755
|
headers: {
|
|
5583
5756
|
[name: string]: unknown;
|
|
@@ -5603,7 +5776,7 @@ export interface paths {
|
|
|
5603
5776
|
patch?: never;
|
|
5604
5777
|
trace?: never;
|
|
5605
5778
|
};
|
|
5606
|
-
"/frontend/orders/withdrawal/
|
|
5779
|
+
"/frontend/orders/withdrawal/internal": {
|
|
5607
5780
|
parameters: {
|
|
5608
5781
|
query?: never;
|
|
5609
5782
|
header?: never;
|
|
@@ -5612,7 +5785,17 @@ export interface paths {
|
|
|
5612
5785
|
};
|
|
5613
5786
|
get?: never;
|
|
5614
5787
|
put?: never;
|
|
5615
|
-
/**
|
|
5788
|
+
/**
|
|
5789
|
+
* Internal
|
|
5790
|
+
* @description Transfers funds between two wallets within the platform. Two-phase:
|
|
5791
|
+
* the order is created in `NEW` status without touching the balance;
|
|
5792
|
+
* `POST /frontend/orders/{id}/approve` (OTP-gated, keyed on the order
|
|
5793
|
+
* id) checks the balance, debits the sender and executes the transfer
|
|
5794
|
+
* synchronously — receiver credited, order `COMPLETE`. A `NEW` order
|
|
5795
|
+
* can simply be canceled (no funds are held).
|
|
5796
|
+
* Caller must be `admin` of the source wallet.
|
|
5797
|
+
*
|
|
5798
|
+
*/
|
|
5616
5799
|
post: {
|
|
5617
5800
|
parameters: {
|
|
5618
5801
|
query?: never;
|
|
@@ -5622,11 +5805,32 @@ export interface paths {
|
|
|
5622
5805
|
};
|
|
5623
5806
|
requestBody: {
|
|
5624
5807
|
content: {
|
|
5625
|
-
"application/json":
|
|
5808
|
+
"application/json": {
|
|
5809
|
+
/**
|
|
5810
|
+
* Format: uuid
|
|
5811
|
+
* @description Source wallet UUID
|
|
5812
|
+
*/
|
|
5813
|
+
wallet_id: string;
|
|
5814
|
+
/** Format: uuid */
|
|
5815
|
+
from_currency_id: string;
|
|
5816
|
+
/**
|
|
5817
|
+
* Format: uuid
|
|
5818
|
+
* @description Counterparty destination of type INTERNAL (points at the receiver wallet).
|
|
5819
|
+
*/
|
|
5820
|
+
counterparty_destination_id: string;
|
|
5821
|
+
amount: number;
|
|
5822
|
+
/**
|
|
5823
|
+
* Format: date-time
|
|
5824
|
+
* @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.
|
|
5825
|
+
*/
|
|
5826
|
+
scheduled_at?: string;
|
|
5827
|
+
/** @description Optional supporting documents persisted with the order. */
|
|
5828
|
+
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
5829
|
+
};
|
|
5626
5830
|
};
|
|
5627
5831
|
};
|
|
5628
5832
|
responses: {
|
|
5629
|
-
/** @description
|
|
5833
|
+
/** @description Transfer created in NEW status (awaiting approve; no funds held) */
|
|
5630
5834
|
200: {
|
|
5631
5835
|
headers: {
|
|
5632
5836
|
[name: string]: unknown;
|
|
@@ -5683,7 +5887,7 @@ export interface paths {
|
|
|
5683
5887
|
patch?: never;
|
|
5684
5888
|
trace?: never;
|
|
5685
5889
|
};
|
|
5686
|
-
"/frontend/orders/withdrawal/
|
|
5890
|
+
"/frontend/orders/withdrawal/crypto": {
|
|
5687
5891
|
parameters: {
|
|
5688
5892
|
query?: never;
|
|
5689
5893
|
header?: never;
|
|
@@ -5692,7 +5896,18 @@ export interface paths {
|
|
|
5692
5896
|
};
|
|
5693
5897
|
get?: never;
|
|
5694
5898
|
put?: never;
|
|
5695
|
-
/**
|
|
5899
|
+
/**
|
|
5900
|
+
* Crypto
|
|
5901
|
+
* @description Sends crypto from an omnibus wallet to an external address. Two-phase:
|
|
5902
|
+
* the order is created in `NEW` status without touching the balance;
|
|
5903
|
+
* `POST /frontend/orders/{id}/approve` (OTP-gated, keyed on the order
|
|
5904
|
+
* id) checks the balance, debits the funds and dispatches the on-chain
|
|
5905
|
+
* send. If the destination address belongs to a wallet in the same
|
|
5906
|
+
* tenant, the order is created as `OMNIBUS_INTERNAL_TRANSFER` (no
|
|
5907
|
+
* on-chain transaction) — still `NEW` at create, debited + settled
|
|
5908
|
+
* synchronously to `COMPLETE` at approve.
|
|
5909
|
+
*
|
|
5910
|
+
*/
|
|
5696
5911
|
post: {
|
|
5697
5912
|
parameters: {
|
|
5698
5913
|
query?: never;
|
|
@@ -5702,11 +5917,11 @@ export interface paths {
|
|
|
5702
5917
|
};
|
|
5703
5918
|
requestBody: {
|
|
5704
5919
|
content: {
|
|
5705
|
-
"application/json": components["schemas"]["
|
|
5920
|
+
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
5706
5921
|
};
|
|
5707
5922
|
};
|
|
5708
5923
|
responses: {
|
|
5709
|
-
/** @description
|
|
5924
|
+
/** @description Crypto withdrawal created */
|
|
5710
5925
|
200: {
|
|
5711
5926
|
headers: {
|
|
5712
5927
|
[name: string]: unknown;
|
|
@@ -5763,7 +5978,7 @@ export interface paths {
|
|
|
5763
5978
|
patch?: never;
|
|
5764
5979
|
trace?: never;
|
|
5765
5980
|
};
|
|
5766
|
-
"/frontend/orders/withdrawal/
|
|
5981
|
+
"/frontend/orders/withdrawal/wire": {
|
|
5767
5982
|
parameters: {
|
|
5768
5983
|
query?: never;
|
|
5769
5984
|
header?: never;
|
|
@@ -5772,7 +5987,7 @@ export interface paths {
|
|
|
5772
5987
|
};
|
|
5773
5988
|
get?: never;
|
|
5774
5989
|
put?: never;
|
|
5775
|
-
/**
|
|
5990
|
+
/** Wire */
|
|
5776
5991
|
post: {
|
|
5777
5992
|
parameters: {
|
|
5778
5993
|
query?: never;
|
|
@@ -5786,7 +6001,7 @@ export interface paths {
|
|
|
5786
6001
|
};
|
|
5787
6002
|
};
|
|
5788
6003
|
responses: {
|
|
5789
|
-
/** @description
|
|
6004
|
+
/** @description Wire withdrawal created */
|
|
5790
6005
|
200: {
|
|
5791
6006
|
headers: {
|
|
5792
6007
|
[name: string]: unknown;
|
|
@@ -5843,7 +6058,7 @@ export interface paths {
|
|
|
5843
6058
|
patch?: never;
|
|
5844
6059
|
trace?: never;
|
|
5845
6060
|
};
|
|
5846
|
-
"/frontend/orders/withdrawal/
|
|
6061
|
+
"/frontend/orders/withdrawal/ach": {
|
|
5847
6062
|
parameters: {
|
|
5848
6063
|
query?: never;
|
|
5849
6064
|
header?: never;
|
|
@@ -5852,7 +6067,7 @@ export interface paths {
|
|
|
5852
6067
|
};
|
|
5853
6068
|
get?: never;
|
|
5854
6069
|
put?: never;
|
|
5855
|
-
/**
|
|
6070
|
+
/** ACH */
|
|
5856
6071
|
post: {
|
|
5857
6072
|
parameters: {
|
|
5858
6073
|
query?: never;
|
|
@@ -5866,7 +6081,7 @@ export interface paths {
|
|
|
5866
6081
|
};
|
|
5867
6082
|
};
|
|
5868
6083
|
responses: {
|
|
5869
|
-
/** @description
|
|
6084
|
+
/** @description ACH withdrawal created */
|
|
5870
6085
|
200: {
|
|
5871
6086
|
headers: {
|
|
5872
6087
|
[name: string]: unknown;
|
|
@@ -5923,7 +6138,7 @@ export interface paths {
|
|
|
5923
6138
|
patch?: never;
|
|
5924
6139
|
trace?: never;
|
|
5925
6140
|
};
|
|
5926
|
-
"/frontend/orders/withdrawal/
|
|
6141
|
+
"/frontend/orders/withdrawal/sepa": {
|
|
5927
6142
|
parameters: {
|
|
5928
6143
|
query?: never;
|
|
5929
6144
|
header?: never;
|
|
@@ -5932,10 +6147,7 @@ export interface paths {
|
|
|
5932
6147
|
};
|
|
5933
6148
|
get?: never;
|
|
5934
6149
|
put?: never;
|
|
5935
|
-
/**
|
|
5936
|
-
* Card
|
|
5937
|
-
* @description Funds a card sub-account from a wallet.
|
|
5938
|
-
*/
|
|
6150
|
+
/** SEPA */
|
|
5939
6151
|
post: {
|
|
5940
6152
|
parameters: {
|
|
5941
6153
|
query?: never;
|
|
@@ -5945,32 +6157,11 @@ export interface paths {
|
|
|
5945
6157
|
};
|
|
5946
6158
|
requestBody: {
|
|
5947
6159
|
content: {
|
|
5948
|
-
"application/json":
|
|
5949
|
-
/** Format: uuid */
|
|
5950
|
-
wallet_id: string;
|
|
5951
|
-
amount: number;
|
|
5952
|
-
/**
|
|
5953
|
-
* Format: uuid
|
|
5954
|
-
* @description Source currency UUID
|
|
5955
|
-
*/
|
|
5956
|
-
from_uuid: string;
|
|
5957
|
-
/** Format: uuid */
|
|
5958
|
-
sub_account_id: string;
|
|
5959
|
-
/**
|
|
5960
|
-
* Format: uuid
|
|
5961
|
-
* @description Optional specific card ID
|
|
5962
|
-
*/
|
|
5963
|
-
card_id?: string;
|
|
5964
|
-
/** @description Idempotency key */
|
|
5965
|
-
reference_id?: string;
|
|
5966
|
-
note?: string;
|
|
5967
|
-
/** @description Optional supporting documents persisted with the order. */
|
|
5968
|
-
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
5969
|
-
};
|
|
6160
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
5970
6161
|
};
|
|
5971
6162
|
};
|
|
5972
6163
|
responses: {
|
|
5973
|
-
/** @description
|
|
6164
|
+
/** @description SEPA withdrawal created */
|
|
5974
6165
|
200: {
|
|
5975
6166
|
headers: {
|
|
5976
6167
|
[name: string]: unknown;
|
|
@@ -5980,12 +6171,10 @@ export interface paths {
|
|
|
5980
6171
|
/** @example true */
|
|
5981
6172
|
success?: boolean;
|
|
5982
6173
|
data?: components["schemas"]["Order"];
|
|
5983
|
-
/** @example Card topup order created */
|
|
5984
|
-
message?: string;
|
|
5985
6174
|
};
|
|
5986
6175
|
};
|
|
5987
6176
|
};
|
|
5988
|
-
/** @description
|
|
6177
|
+
/** @description Validation error */
|
|
5989
6178
|
400: {
|
|
5990
6179
|
headers: {
|
|
5991
6180
|
[name: string]: unknown;
|
|
@@ -6012,8 +6201,8 @@ export interface paths {
|
|
|
6012
6201
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6013
6202
|
};
|
|
6014
6203
|
};
|
|
6015
|
-
/** @description
|
|
6016
|
-
|
|
6204
|
+
/** @description Rate limit exceeded */
|
|
6205
|
+
429: {
|
|
6017
6206
|
headers: {
|
|
6018
6207
|
[name: string]: unknown;
|
|
6019
6208
|
};
|
|
@@ -6029,7 +6218,7 @@ export interface paths {
|
|
|
6029
6218
|
patch?: never;
|
|
6030
6219
|
trace?: never;
|
|
6031
6220
|
};
|
|
6032
|
-
"/frontend/orders/
|
|
6221
|
+
"/frontend/orders/withdrawal/swift": {
|
|
6033
6222
|
parameters: {
|
|
6034
6223
|
query?: never;
|
|
6035
6224
|
header?: never;
|
|
@@ -6038,36 +6227,21 @@ export interface paths {
|
|
|
6038
6227
|
};
|
|
6039
6228
|
get?: never;
|
|
6040
6229
|
put?: never;
|
|
6041
|
-
/**
|
|
6042
|
-
* Approve an order
|
|
6043
|
-
* @description Moves a NEW order to PROCESSING: checks the balance, debits the funds
|
|
6044
|
-
* (transaction written as `complete`) and triggers its workflow.
|
|
6045
|
-
* Exchange orders (EXCHANGE_OMNI) and internal transfers
|
|
6046
|
-
* (TRANSFER_INTERNAL / OMNIBUS_INTERNAL_TRANSFER) settle synchronously
|
|
6047
|
-
* and land in COMPLETE. An insufficient balance fails the order
|
|
6048
|
-
* (FAILED). OTP verification is mandatory and keyed on the order id
|
|
6049
|
-
* (request the OTP for the order being approved).
|
|
6050
|
-
*
|
|
6051
|
-
*/
|
|
6230
|
+
/** SWIFT */
|
|
6052
6231
|
post: {
|
|
6053
6232
|
parameters: {
|
|
6054
6233
|
query?: never;
|
|
6055
6234
|
header?: never;
|
|
6056
|
-
path
|
|
6057
|
-
order_id: string;
|
|
6058
|
-
};
|
|
6235
|
+
path?: never;
|
|
6059
6236
|
cookie?: never;
|
|
6060
6237
|
};
|
|
6061
6238
|
requestBody: {
|
|
6062
6239
|
content: {
|
|
6063
|
-
"application/json":
|
|
6064
|
-
/** Format: uuid */
|
|
6065
|
-
wallet_id: string;
|
|
6066
|
-
};
|
|
6240
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6067
6241
|
};
|
|
6068
6242
|
};
|
|
6069
6243
|
responses: {
|
|
6070
|
-
/** @description
|
|
6244
|
+
/** @description SWIFT withdrawal created */
|
|
6071
6245
|
200: {
|
|
6072
6246
|
headers: {
|
|
6073
6247
|
[name: string]: unknown;
|
|
@@ -6080,8 +6254,35 @@ export interface paths {
|
|
|
6080
6254
|
};
|
|
6081
6255
|
};
|
|
6082
6256
|
};
|
|
6083
|
-
/** @description
|
|
6084
|
-
|
|
6257
|
+
/** @description Validation error */
|
|
6258
|
+
400: {
|
|
6259
|
+
headers: {
|
|
6260
|
+
[name: string]: unknown;
|
|
6261
|
+
};
|
|
6262
|
+
content: {
|
|
6263
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6264
|
+
};
|
|
6265
|
+
};
|
|
6266
|
+
/** @description Authentication required */
|
|
6267
|
+
401: {
|
|
6268
|
+
headers: {
|
|
6269
|
+
[name: string]: unknown;
|
|
6270
|
+
};
|
|
6271
|
+
content: {
|
|
6272
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6273
|
+
};
|
|
6274
|
+
};
|
|
6275
|
+
/** @description Caller is not an admin of the source wallet */
|
|
6276
|
+
403: {
|
|
6277
|
+
headers: {
|
|
6278
|
+
[name: string]: unknown;
|
|
6279
|
+
};
|
|
6280
|
+
content: {
|
|
6281
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6282
|
+
};
|
|
6283
|
+
};
|
|
6284
|
+
/** @description Rate limit exceeded */
|
|
6285
|
+
429: {
|
|
6085
6286
|
headers: {
|
|
6086
6287
|
[name: string]: unknown;
|
|
6087
6288
|
};
|
|
@@ -6097,7 +6298,7 @@ export interface paths {
|
|
|
6097
6298
|
patch?: never;
|
|
6098
6299
|
trace?: never;
|
|
6099
6300
|
};
|
|
6100
|
-
"/frontend/orders/
|
|
6301
|
+
"/frontend/orders/withdrawal/chaps": {
|
|
6101
6302
|
parameters: {
|
|
6102
6303
|
query?: never;
|
|
6103
6304
|
header?: never;
|
|
@@ -6106,30 +6307,21 @@ export interface paths {
|
|
|
6106
6307
|
};
|
|
6107
6308
|
get?: never;
|
|
6108
6309
|
put?: never;
|
|
6109
|
-
/**
|
|
6110
|
-
* Cancel an order
|
|
6111
|
-
* @description Cancels a NEW/FAILED order, cancels its workflow run, and refunds the debited funds (if the order was ever approved).
|
|
6112
|
-
*/
|
|
6310
|
+
/** CHAPS */
|
|
6113
6311
|
post: {
|
|
6114
6312
|
parameters: {
|
|
6115
6313
|
query?: never;
|
|
6116
6314
|
header?: never;
|
|
6117
|
-
path
|
|
6118
|
-
order_id: string;
|
|
6119
|
-
};
|
|
6315
|
+
path?: never;
|
|
6120
6316
|
cookie?: never;
|
|
6121
6317
|
};
|
|
6122
6318
|
requestBody: {
|
|
6123
6319
|
content: {
|
|
6124
|
-
"application/json":
|
|
6125
|
-
/** Format: uuid */
|
|
6126
|
-
wallet_id: string;
|
|
6127
|
-
reason?: string;
|
|
6128
|
-
};
|
|
6320
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6129
6321
|
};
|
|
6130
6322
|
};
|
|
6131
6323
|
responses: {
|
|
6132
|
-
/** @description
|
|
6324
|
+
/** @description CHAPS withdrawal created */
|
|
6133
6325
|
200: {
|
|
6134
6326
|
headers: {
|
|
6135
6327
|
[name: string]: unknown;
|
|
@@ -6142,8 +6334,35 @@ export interface paths {
|
|
|
6142
6334
|
};
|
|
6143
6335
|
};
|
|
6144
6336
|
};
|
|
6145
|
-
/** @description
|
|
6146
|
-
|
|
6337
|
+
/** @description Validation error */
|
|
6338
|
+
400: {
|
|
6339
|
+
headers: {
|
|
6340
|
+
[name: string]: unknown;
|
|
6341
|
+
};
|
|
6342
|
+
content: {
|
|
6343
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6344
|
+
};
|
|
6345
|
+
};
|
|
6346
|
+
/** @description Authentication required */
|
|
6347
|
+
401: {
|
|
6348
|
+
headers: {
|
|
6349
|
+
[name: string]: unknown;
|
|
6350
|
+
};
|
|
6351
|
+
content: {
|
|
6352
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6353
|
+
};
|
|
6354
|
+
};
|
|
6355
|
+
/** @description Caller is not an admin of the source wallet */
|
|
6356
|
+
403: {
|
|
6357
|
+
headers: {
|
|
6358
|
+
[name: string]: unknown;
|
|
6359
|
+
};
|
|
6360
|
+
content: {
|
|
6361
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6362
|
+
};
|
|
6363
|
+
};
|
|
6364
|
+
/** @description Rate limit exceeded */
|
|
6365
|
+
429: {
|
|
6147
6366
|
headers: {
|
|
6148
6367
|
[name: string]: unknown;
|
|
6149
6368
|
};
|
|
@@ -6159,7 +6378,7 @@ export interface paths {
|
|
|
6159
6378
|
patch?: never;
|
|
6160
6379
|
trace?: never;
|
|
6161
6380
|
};
|
|
6162
|
-
"/frontend/orders/
|
|
6381
|
+
"/frontend/orders/withdrawal/fps": {
|
|
6163
6382
|
parameters: {
|
|
6164
6383
|
query?: never;
|
|
6165
6384
|
header?: never;
|
|
@@ -6167,39 +6386,22 @@ export interface paths {
|
|
|
6167
6386
|
cookie?: never;
|
|
6168
6387
|
};
|
|
6169
6388
|
get?: never;
|
|
6170
|
-
|
|
6171
|
-
|
|
6172
|
-
|
|
6173
|
-
* (incoming or outgoing). Useful for noting who an incoming crypto deposit
|
|
6174
|
-
* came from. Send `comment: null` or an empty string to clear it.
|
|
6175
|
-
*
|
|
6176
|
-
* The response includes the saved `comment` plus audit metadata
|
|
6177
|
-
* (`comment_updated_by` = editor's user_data uuid, `comment_updated_at`).
|
|
6178
|
-
*
|
|
6179
|
-
* **Access Control**: caller must be `admin` or `owner` of the order's wallet.
|
|
6180
|
-
*
|
|
6181
|
-
*/
|
|
6182
|
-
put: {
|
|
6389
|
+
put?: never;
|
|
6390
|
+
/** FPS */
|
|
6391
|
+
post: {
|
|
6183
6392
|
parameters: {
|
|
6184
6393
|
query?: never;
|
|
6185
6394
|
header?: never;
|
|
6186
|
-
path
|
|
6187
|
-
order_id: string;
|
|
6188
|
-
};
|
|
6395
|
+
path?: never;
|
|
6189
6396
|
cookie?: never;
|
|
6190
6397
|
};
|
|
6191
6398
|
requestBody: {
|
|
6192
6399
|
content: {
|
|
6193
|
-
"application/json":
|
|
6194
|
-
/** Format: uuid */
|
|
6195
|
-
wallet_id: string;
|
|
6196
|
-
/** @description Comment text. `null` or empty clears the comment. */
|
|
6197
|
-
comment?: string | null;
|
|
6198
|
-
};
|
|
6400
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6199
6401
|
};
|
|
6200
6402
|
};
|
|
6201
6403
|
responses: {
|
|
6202
|
-
/** @description
|
|
6404
|
+
/** @description FPS withdrawal created */
|
|
6203
6405
|
200: {
|
|
6204
6406
|
headers: {
|
|
6205
6407
|
[name: string]: unknown;
|
|
@@ -6212,7 +6414,7 @@ export interface paths {
|
|
|
6212
6414
|
};
|
|
6213
6415
|
};
|
|
6214
6416
|
};
|
|
6215
|
-
/** @description Validation error
|
|
6417
|
+
/** @description Validation error */
|
|
6216
6418
|
400: {
|
|
6217
6419
|
headers: {
|
|
6218
6420
|
[name: string]: unknown;
|
|
@@ -6221,7 +6423,16 @@ export interface paths {
|
|
|
6221
6423
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6222
6424
|
};
|
|
6223
6425
|
};
|
|
6224
|
-
/** @description
|
|
6426
|
+
/** @description Authentication required */
|
|
6427
|
+
401: {
|
|
6428
|
+
headers: {
|
|
6429
|
+
[name: string]: unknown;
|
|
6430
|
+
};
|
|
6431
|
+
content: {
|
|
6432
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6433
|
+
};
|
|
6434
|
+
};
|
|
6435
|
+
/** @description Caller is not an admin of the source wallet */
|
|
6225
6436
|
403: {
|
|
6226
6437
|
headers: {
|
|
6227
6438
|
[name: string]: unknown;
|
|
@@ -6230,8 +6441,8 @@ export interface paths {
|
|
|
6230
6441
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6231
6442
|
};
|
|
6232
6443
|
};
|
|
6233
|
-
/** @description
|
|
6234
|
-
|
|
6444
|
+
/** @description Rate limit exceeded */
|
|
6445
|
+
429: {
|
|
6235
6446
|
headers: {
|
|
6236
6447
|
[name: string]: unknown;
|
|
6237
6448
|
};
|
|
@@ -6241,138 +6452,190 @@ export interface paths {
|
|
|
6241
6452
|
};
|
|
6242
6453
|
};
|
|
6243
6454
|
};
|
|
6244
|
-
post?: never;
|
|
6245
6455
|
delete?: never;
|
|
6246
6456
|
options?: never;
|
|
6247
6457
|
head?: never;
|
|
6248
6458
|
patch?: never;
|
|
6249
6459
|
trace?: never;
|
|
6250
6460
|
};
|
|
6251
|
-
"/frontend/orders/
|
|
6461
|
+
"/frontend/orders/{order_id}/approve": {
|
|
6252
6462
|
parameters: {
|
|
6253
6463
|
query?: never;
|
|
6254
6464
|
header?: never;
|
|
6255
6465
|
path?: never;
|
|
6256
6466
|
cookie?: never;
|
|
6257
6467
|
};
|
|
6468
|
+
get?: never;
|
|
6469
|
+
put?: never;
|
|
6258
6470
|
/**
|
|
6259
|
-
*
|
|
6260
|
-
* @description
|
|
6261
|
-
*
|
|
6262
|
-
*
|
|
6471
|
+
* Approve an order
|
|
6472
|
+
* @description Moves a NEW order to PROCESSING: checks the balance, debits the funds
|
|
6473
|
+
* (transaction written as `complete`) and triggers its workflow.
|
|
6474
|
+
* Exchange orders (EXCHANGE_OMNI) and internal transfers
|
|
6475
|
+
* (TRANSFER_INTERNAL / OMNIBUS_INTERNAL_TRANSFER) settle synchronously
|
|
6476
|
+
* and land in COMPLETE. An insufficient balance fails the order
|
|
6477
|
+
* (FAILED). OTP verification is mandatory and keyed on the order id
|
|
6478
|
+
* (request the OTP for the order being approved). Orders created with
|
|
6479
|
+
* `scheduled_at` move to EXPECTED instead — no funds are debited until
|
|
6480
|
+
* execution at the requested time.
|
|
6263
6481
|
*
|
|
6264
6482
|
*/
|
|
6265
|
-
|
|
6483
|
+
post: {
|
|
6266
6484
|
parameters: {
|
|
6267
6485
|
query?: never;
|
|
6268
6486
|
header?: never;
|
|
6269
|
-
path
|
|
6487
|
+
path: {
|
|
6488
|
+
order_id: string;
|
|
6489
|
+
};
|
|
6270
6490
|
cookie?: never;
|
|
6271
6491
|
};
|
|
6272
|
-
requestBody
|
|
6492
|
+
requestBody: {
|
|
6493
|
+
content: {
|
|
6494
|
+
"application/json": {
|
|
6495
|
+
/** Format: uuid */
|
|
6496
|
+
wallet_id: string;
|
|
6497
|
+
};
|
|
6498
|
+
};
|
|
6499
|
+
};
|
|
6273
6500
|
responses: {
|
|
6274
|
-
/** @description
|
|
6501
|
+
/** @description Order moved to PROCESSING */
|
|
6275
6502
|
200: {
|
|
6276
6503
|
headers: {
|
|
6277
6504
|
[name: string]: unknown;
|
|
6278
6505
|
};
|
|
6279
|
-
content
|
|
6506
|
+
content: {
|
|
6507
|
+
"application/json": {
|
|
6508
|
+
/** @example true */
|
|
6509
|
+
success?: boolean;
|
|
6510
|
+
data?: components["schemas"]["Order"];
|
|
6511
|
+
};
|
|
6512
|
+
};
|
|
6513
|
+
};
|
|
6514
|
+
/** @description Order is not in an approvable state */
|
|
6515
|
+
409: {
|
|
6516
|
+
headers: {
|
|
6517
|
+
[name: string]: unknown;
|
|
6518
|
+
};
|
|
6519
|
+
content: {
|
|
6520
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6521
|
+
};
|
|
6280
6522
|
};
|
|
6281
6523
|
};
|
|
6282
6524
|
};
|
|
6283
|
-
put?: never;
|
|
6284
|
-
post?: never;
|
|
6285
6525
|
delete?: never;
|
|
6286
6526
|
options?: never;
|
|
6287
6527
|
head?: never;
|
|
6288
6528
|
patch?: never;
|
|
6289
6529
|
trace?: never;
|
|
6290
6530
|
};
|
|
6291
|
-
"/frontend/orders/
|
|
6531
|
+
"/frontend/orders/{order_id}/cancel": {
|
|
6292
6532
|
parameters: {
|
|
6293
6533
|
query?: never;
|
|
6294
6534
|
header?: never;
|
|
6295
6535
|
path?: never;
|
|
6296
6536
|
cookie?: never;
|
|
6297
6537
|
};
|
|
6538
|
+
get?: never;
|
|
6539
|
+
put?: never;
|
|
6298
6540
|
/**
|
|
6299
|
-
*
|
|
6300
|
-
* @description
|
|
6301
|
-
*
|
|
6302
|
-
*
|
|
6541
|
+
* Cancel an order
|
|
6542
|
+
* @description Cancels a NEW or EXPECTED order and cancels its workflow run. Neither
|
|
6543
|
+
* status holds debited funds, so cancel never moves money.
|
|
6544
|
+
* BREAKING CHANGE (2026-07-26): FAILED is no longer cancelable and returns
|
|
6545
|
+
* 409. Paying back an order that was debited and then failed is now a
|
|
6546
|
+
* separate, admin-panel-only refund action.
|
|
6303
6547
|
*
|
|
6304
6548
|
*/
|
|
6305
|
-
|
|
6549
|
+
post: {
|
|
6306
6550
|
parameters: {
|
|
6307
6551
|
query?: never;
|
|
6308
6552
|
header?: never;
|
|
6309
6553
|
path: {
|
|
6310
|
-
|
|
6554
|
+
order_id: string;
|
|
6311
6555
|
};
|
|
6312
6556
|
cookie?: never;
|
|
6313
6557
|
};
|
|
6314
|
-
requestBody
|
|
6558
|
+
requestBody: {
|
|
6559
|
+
content: {
|
|
6560
|
+
"application/json": {
|
|
6561
|
+
/** Format: uuid */
|
|
6562
|
+
wallet_id: string;
|
|
6563
|
+
reason?: string;
|
|
6564
|
+
};
|
|
6565
|
+
};
|
|
6566
|
+
};
|
|
6315
6567
|
responses: {
|
|
6316
|
-
/** @description Order
|
|
6568
|
+
/** @description Order canceled (no balance change) */
|
|
6317
6569
|
200: {
|
|
6318
6570
|
headers: {
|
|
6319
6571
|
[name: string]: unknown;
|
|
6320
6572
|
};
|
|
6321
|
-
content
|
|
6573
|
+
content: {
|
|
6574
|
+
"application/json": {
|
|
6575
|
+
/** @example true */
|
|
6576
|
+
success?: boolean;
|
|
6577
|
+
data?: components["schemas"]["Order"];
|
|
6578
|
+
};
|
|
6579
|
+
};
|
|
6322
6580
|
};
|
|
6323
|
-
/** @description Order
|
|
6324
|
-
|
|
6581
|
+
/** @description Order is not in a cancelable state */
|
|
6582
|
+
409: {
|
|
6325
6583
|
headers: {
|
|
6326
6584
|
[name: string]: unknown;
|
|
6327
6585
|
};
|
|
6328
|
-
content
|
|
6586
|
+
content: {
|
|
6587
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6588
|
+
};
|
|
6329
6589
|
};
|
|
6330
6590
|
};
|
|
6331
6591
|
};
|
|
6332
|
-
put?: never;
|
|
6333
|
-
post?: never;
|
|
6334
6592
|
delete?: never;
|
|
6335
6593
|
options?: never;
|
|
6336
6594
|
head?: never;
|
|
6337
6595
|
patch?: never;
|
|
6338
6596
|
trace?: never;
|
|
6339
6597
|
};
|
|
6340
|
-
"/frontend/orders/
|
|
6598
|
+
"/frontend/orders/{order_id}/comment": {
|
|
6341
6599
|
parameters: {
|
|
6342
6600
|
query?: never;
|
|
6343
6601
|
header?: never;
|
|
6344
6602
|
path?: never;
|
|
6345
6603
|
cookie?: never;
|
|
6346
6604
|
};
|
|
6605
|
+
get?: never;
|
|
6347
6606
|
/**
|
|
6348
|
-
*
|
|
6349
|
-
* @description
|
|
6607
|
+
* Set or clear an order's comment
|
|
6608
|
+
* @description Saves (or edits) a single free-text comment attached to an order
|
|
6609
|
+
* (incoming or outgoing). Useful for noting who an incoming crypto deposit
|
|
6610
|
+
* came from. Send `comment: null` or an empty string to clear it.
|
|
6350
6611
|
*
|
|
6351
|
-
*
|
|
6612
|
+
* The response includes the saved `comment` plus audit metadata
|
|
6613
|
+
* (`comment_updated_by` = editor's user_data uuid, `comment_updated_at`).
|
|
6614
|
+
*
|
|
6615
|
+
* **Access Control**: caller must be `admin` or `owner` of the order's wallet.
|
|
6352
6616
|
*
|
|
6353
6617
|
*/
|
|
6354
|
-
|
|
6618
|
+
put: {
|
|
6355
6619
|
parameters: {
|
|
6356
|
-
query
|
|
6357
|
-
order_type: components["schemas"]["OrderTypeId"];
|
|
6358
|
-
amount: number;
|
|
6359
|
-
from_currency_id: string;
|
|
6360
|
-
to_currency_id: string;
|
|
6361
|
-
/** @description If `true`, calculates inputs needed to receive the given amount. */
|
|
6362
|
-
is_reverse: boolean;
|
|
6363
|
-
/** @description If `true`, the network fee is subtracted from `result_amount`. If `false`, the fee is added on top of `from_amount` and the recipient gets the full converted amount. Ignored for reverse calculations. Required so the client always states the fee-allocation mode explicitly — a change of the server-side fallback can never silently alter the calculation.
|
|
6364
|
-
* */
|
|
6365
|
-
is_subtract: boolean;
|
|
6366
|
-
/** @description Destination address (for crypto withdrawals; affects network fee estimation). */
|
|
6367
|
-
to_address?: string;
|
|
6368
|
-
};
|
|
6620
|
+
query?: never;
|
|
6369
6621
|
header?: never;
|
|
6370
|
-
path
|
|
6622
|
+
path: {
|
|
6623
|
+
order_id: string;
|
|
6624
|
+
};
|
|
6371
6625
|
cookie?: never;
|
|
6372
6626
|
};
|
|
6373
|
-
requestBody
|
|
6627
|
+
requestBody: {
|
|
6628
|
+
content: {
|
|
6629
|
+
"application/json": {
|
|
6630
|
+
/** Format: uuid */
|
|
6631
|
+
wallet_id: string;
|
|
6632
|
+
/** @description Comment text. `null` or empty clears the comment. */
|
|
6633
|
+
comment?: string | null;
|
|
6634
|
+
};
|
|
6635
|
+
};
|
|
6636
|
+
};
|
|
6374
6637
|
responses: {
|
|
6375
|
-
/** @description
|
|
6638
|
+
/** @description Comment saved */
|
|
6376
6639
|
200: {
|
|
6377
6640
|
headers: {
|
|
6378
6641
|
[name: string]: unknown;
|
|
@@ -6380,12 +6643,12 @@ export interface paths {
|
|
|
6380
6643
|
content: {
|
|
6381
6644
|
"application/json": {
|
|
6382
6645
|
/** @example true */
|
|
6383
|
-
success
|
|
6384
|
-
data
|
|
6646
|
+
success?: boolean;
|
|
6647
|
+
data?: components["schemas"]["Order"];
|
|
6385
6648
|
};
|
|
6386
6649
|
};
|
|
6387
6650
|
};
|
|
6388
|
-
/** @description
|
|
6651
|
+
/** @description Validation error (e.g. comment too long) */
|
|
6389
6652
|
400: {
|
|
6390
6653
|
headers: {
|
|
6391
6654
|
[name: string]: unknown;
|
|
@@ -6394,8 +6657,8 @@ export interface paths {
|
|
|
6394
6657
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6395
6658
|
};
|
|
6396
6659
|
};
|
|
6397
|
-
/** @description
|
|
6398
|
-
|
|
6660
|
+
/** @description Access denied (insufficient wallet role / wrong wallet) */
|
|
6661
|
+
403: {
|
|
6399
6662
|
headers: {
|
|
6400
6663
|
[name: string]: unknown;
|
|
6401
6664
|
};
|
|
@@ -6403,78 +6666,17 @@ export interface paths {
|
|
|
6403
6666
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6404
6667
|
};
|
|
6405
6668
|
};
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
put?: never;
|
|
6409
|
-
post?: never;
|
|
6410
|
-
delete?: never;
|
|
6411
|
-
options?: never;
|
|
6412
|
-
head?: never;
|
|
6413
|
-
patch?: never;
|
|
6414
|
-
trace?: never;
|
|
6415
|
-
};
|
|
6416
|
-
"/frontend/orders/wallet/{wallet_uuid}": {
|
|
6417
|
-
parameters: {
|
|
6418
|
-
query?: never;
|
|
6419
|
-
header?: never;
|
|
6420
|
-
path?: never;
|
|
6421
|
-
cookie?: never;
|
|
6422
|
-
};
|
|
6423
|
-
/**
|
|
6424
|
-
* List orders
|
|
6425
|
-
* @description Retrieves a paginated list of orders for a specific wallet.
|
|
6426
|
-
*
|
|
6427
|
-
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6428
|
-
*
|
|
6429
|
-
* **Access Control**: User must have access to the wallet
|
|
6430
|
-
*
|
|
6431
|
-
*/
|
|
6432
|
-
get: {
|
|
6433
|
-
parameters: {
|
|
6434
|
-
query?: {
|
|
6435
|
-
offset?: number;
|
|
6436
|
-
limit?: number;
|
|
6437
|
-
sort_by?: string;
|
|
6438
|
-
sort_order?: "asc" | "desc";
|
|
6439
|
-
/** @description JSON-encoded filters */
|
|
6440
|
-
filters?: string;
|
|
6441
|
-
date_from?: string;
|
|
6442
|
-
date_to?: string;
|
|
6443
|
-
/** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
|
|
6444
|
-
show_low_balance?: "true" | "false";
|
|
6445
|
-
};
|
|
6446
|
-
header?: never;
|
|
6447
|
-
path: {
|
|
6448
|
-
wallet_uuid: string;
|
|
6449
|
-
};
|
|
6450
|
-
cookie?: never;
|
|
6451
|
-
};
|
|
6452
|
-
requestBody?: never;
|
|
6453
|
-
responses: {
|
|
6454
|
-
/** @description List of orders */
|
|
6455
|
-
200: {
|
|
6669
|
+
/** @description Order not found */
|
|
6670
|
+
404: {
|
|
6456
6671
|
headers: {
|
|
6457
6672
|
[name: string]: unknown;
|
|
6458
6673
|
};
|
|
6459
6674
|
content: {
|
|
6460
|
-
"application/json":
|
|
6461
|
-
/** @example true */
|
|
6462
|
-
success: boolean;
|
|
6463
|
-
data: components["schemas"]["Order"][];
|
|
6464
|
-
pagination: components["schemas"]["PaginationResponse"];
|
|
6465
|
-
};
|
|
6466
|
-
};
|
|
6467
|
-
};
|
|
6468
|
-
/** @description Access denied to wallet */
|
|
6469
|
-
403: {
|
|
6470
|
-
headers: {
|
|
6471
|
-
[name: string]: unknown;
|
|
6675
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6472
6676
|
};
|
|
6473
|
-
content?: never;
|
|
6474
6677
|
};
|
|
6475
6678
|
};
|
|
6476
6679
|
};
|
|
6477
|
-
put?: never;
|
|
6478
6680
|
post?: never;
|
|
6479
6681
|
delete?: never;
|
|
6480
6682
|
options?: never;
|
|
@@ -6482,7 +6684,7 @@ export interface paths {
|
|
|
6482
6684
|
patch?: never;
|
|
6483
6685
|
trace?: never;
|
|
6484
6686
|
};
|
|
6485
|
-
"/frontend/orders/
|
|
6687
|
+
"/frontend/orders/types": {
|
|
6486
6688
|
parameters: {
|
|
6487
6689
|
query?: never;
|
|
6488
6690
|
header?: never;
|
|
@@ -6490,43 +6692,23 @@ export interface paths {
|
|
|
6490
6692
|
cookie?: never;
|
|
6491
6693
|
};
|
|
6492
6694
|
/**
|
|
6493
|
-
*
|
|
6494
|
-
* @description
|
|
6695
|
+
* List order types
|
|
6696
|
+
* @description Retrieves a list of available order types for the tenant.
|
|
6495
6697
|
*
|
|
6496
6698
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6497
6699
|
*
|
|
6498
|
-
* **Access Control**: User must have access to the wallet
|
|
6499
|
-
*
|
|
6500
6700
|
*/
|
|
6501
6701
|
get: {
|
|
6502
6702
|
parameters: {
|
|
6503
|
-
query?:
|
|
6504
|
-
date_from?: string;
|
|
6505
|
-
date_to?: string;
|
|
6506
|
-
/** @description JSON-encoded filters */
|
|
6507
|
-
filters?: string;
|
|
6508
|
-
/** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
|
|
6509
|
-
show_low_balance?: "true" | "false";
|
|
6510
|
-
};
|
|
6703
|
+
query?: never;
|
|
6511
6704
|
header?: never;
|
|
6512
|
-
path
|
|
6513
|
-
wallet_uuid: string;
|
|
6514
|
-
};
|
|
6705
|
+
path?: never;
|
|
6515
6706
|
cookie?: never;
|
|
6516
6707
|
};
|
|
6517
6708
|
requestBody?: never;
|
|
6518
6709
|
responses: {
|
|
6519
|
-
/** @description
|
|
6710
|
+
/** @description List of available order types */
|
|
6520
6711
|
200: {
|
|
6521
|
-
headers: {
|
|
6522
|
-
[name: string]: unknown;
|
|
6523
|
-
};
|
|
6524
|
-
content: {
|
|
6525
|
-
"text/csv": string;
|
|
6526
|
-
};
|
|
6527
|
-
};
|
|
6528
|
-
/** @description Access denied to wallet */
|
|
6529
|
-
403: {
|
|
6530
6712
|
headers: {
|
|
6531
6713
|
[name: string]: unknown;
|
|
6532
6714
|
};
|
|
@@ -6542,7 +6724,7 @@ export interface paths {
|
|
|
6542
6724
|
patch?: never;
|
|
6543
6725
|
trace?: never;
|
|
6544
6726
|
};
|
|
6545
|
-
"/frontend/orders/
|
|
6727
|
+
"/frontend/orders/types/{id}": {
|
|
6546
6728
|
parameters: {
|
|
6547
6729
|
query?: never;
|
|
6548
6730
|
header?: never;
|
|
@@ -6550,8 +6732,8 @@ export interface paths {
|
|
|
6550
6732
|
cookie?: never;
|
|
6551
6733
|
};
|
|
6552
6734
|
/**
|
|
6553
|
-
* Get order
|
|
6554
|
-
* @description Retrieves a specific order by
|
|
6735
|
+
* Get order type
|
|
6736
|
+
* @description Retrieves details of a specific order type by ID.
|
|
6555
6737
|
*
|
|
6556
6738
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6557
6739
|
*
|
|
@@ -6561,26 +6743,20 @@ export interface paths {
|
|
|
6561
6743
|
query?: never;
|
|
6562
6744
|
header?: never;
|
|
6563
6745
|
path: {
|
|
6564
|
-
|
|
6746
|
+
id: string;
|
|
6565
6747
|
};
|
|
6566
6748
|
cookie?: never;
|
|
6567
6749
|
};
|
|
6568
6750
|
requestBody?: never;
|
|
6569
6751
|
responses: {
|
|
6570
|
-
/** @description Order details */
|
|
6752
|
+
/** @description Order type details */
|
|
6571
6753
|
200: {
|
|
6572
6754
|
headers: {
|
|
6573
6755
|
[name: string]: unknown;
|
|
6574
6756
|
};
|
|
6575
|
-
content
|
|
6576
|
-
"application/json": {
|
|
6577
|
-
/** @example true */
|
|
6578
|
-
success: boolean;
|
|
6579
|
-
data: components["schemas"]["OrderDetail"];
|
|
6580
|
-
};
|
|
6581
|
-
};
|
|
6757
|
+
content?: never;
|
|
6582
6758
|
};
|
|
6583
|
-
/** @description Order not found */
|
|
6759
|
+
/** @description Order type not found */
|
|
6584
6760
|
404: {
|
|
6585
6761
|
headers: {
|
|
6586
6762
|
[name: string]: unknown;
|
|
@@ -6597,7 +6773,7 @@ export interface paths {
|
|
|
6597
6773
|
patch?: never;
|
|
6598
6774
|
trace?: never;
|
|
6599
6775
|
};
|
|
6600
|
-
"/frontend/orders/
|
|
6776
|
+
"/frontend/orders/calc": {
|
|
6601
6777
|
parameters: {
|
|
6602
6778
|
query?: never;
|
|
6603
6779
|
header?: never;
|
|
@@ -6605,24 +6781,34 @@ export interface paths {
|
|
|
6605
6781
|
cookie?: never;
|
|
6606
6782
|
};
|
|
6607
6783
|
/**
|
|
6608
|
-
*
|
|
6609
|
-
* @description
|
|
6784
|
+
* Calculate order
|
|
6785
|
+
* @description Pre-calculates order amounts, fees and exchange rates without creating an order.
|
|
6610
6786
|
*
|
|
6611
6787
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6612
6788
|
*
|
|
6613
6789
|
*/
|
|
6614
6790
|
get: {
|
|
6615
6791
|
parameters: {
|
|
6616
|
-
query
|
|
6617
|
-
|
|
6618
|
-
|
|
6619
|
-
|
|
6792
|
+
query: {
|
|
6793
|
+
order_type: components["schemas"]["OrderTypeId"];
|
|
6794
|
+
amount: number;
|
|
6795
|
+
from_currency_id: string;
|
|
6796
|
+
to_currency_id: string;
|
|
6797
|
+
/** @description If `true`, calculates inputs needed to receive the given amount. */
|
|
6798
|
+
is_reverse: boolean;
|
|
6799
|
+
/** @description If `true`, the network fee is subtracted from `result_amount`. If `false`, the fee is added on top of `from_amount` and the recipient gets the full converted amount. Ignored for reverse calculations. Required so the client always states the fee-allocation mode explicitly — a change of the server-side fallback can never silently alter the calculation.
|
|
6800
|
+
* */
|
|
6801
|
+
is_subtract: boolean;
|
|
6802
|
+
/** @description Destination address (for crypto withdrawals; affects network fee estimation). */
|
|
6803
|
+
to_address?: string;
|
|
6620
6804
|
};
|
|
6805
|
+
header?: never;
|
|
6806
|
+
path?: never;
|
|
6621
6807
|
cookie?: never;
|
|
6622
6808
|
};
|
|
6623
6809
|
requestBody?: never;
|
|
6624
6810
|
responses: {
|
|
6625
|
-
/** @description
|
|
6811
|
+
/** @description Calculated order details */
|
|
6626
6812
|
200: {
|
|
6627
6813
|
headers: {
|
|
6628
6814
|
[name: string]: unknown;
|
|
@@ -6631,16 +6817,27 @@ export interface paths {
|
|
|
6631
6817
|
"application/json": {
|
|
6632
6818
|
/** @example true */
|
|
6633
6819
|
success: boolean;
|
|
6634
|
-
data: components["schemas"]["
|
|
6820
|
+
data: components["schemas"]["OrderCalculation"];
|
|
6635
6821
|
};
|
|
6636
6822
|
};
|
|
6637
6823
|
};
|
|
6638
|
-
/** @description
|
|
6639
|
-
|
|
6824
|
+
/** @description Invalid request (e.g. unknown `order_type`, missing required parameter, exchange rate not found) */
|
|
6825
|
+
400: {
|
|
6640
6826
|
headers: {
|
|
6641
6827
|
[name: string]: unknown;
|
|
6642
6828
|
};
|
|
6643
|
-
content
|
|
6829
|
+
content: {
|
|
6830
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6831
|
+
};
|
|
6832
|
+
};
|
|
6833
|
+
/** @description Calculation failed (e.g. network fee estimation error) */
|
|
6834
|
+
500: {
|
|
6835
|
+
headers: {
|
|
6836
|
+
[name: string]: unknown;
|
|
6837
|
+
};
|
|
6838
|
+
content: {
|
|
6839
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6840
|
+
};
|
|
6644
6841
|
};
|
|
6645
6842
|
};
|
|
6646
6843
|
};
|
|
@@ -6652,103 +6849,60 @@ export interface paths {
|
|
|
6652
6849
|
patch?: never;
|
|
6653
6850
|
trace?: never;
|
|
6654
6851
|
};
|
|
6655
|
-
"/frontend/orders/
|
|
6852
|
+
"/frontend/orders/wallet/{wallet_uuid}": {
|
|
6656
6853
|
parameters: {
|
|
6657
6854
|
query?: never;
|
|
6658
6855
|
header?: never;
|
|
6659
6856
|
path?: never;
|
|
6660
6857
|
cookie?: never;
|
|
6661
6858
|
};
|
|
6662
|
-
get?: never;
|
|
6663
|
-
put?: never;
|
|
6664
6859
|
/**
|
|
6665
|
-
*
|
|
6666
|
-
* @description
|
|
6860
|
+
* List orders
|
|
6861
|
+
* @description Retrieves a paginated list of orders for a specific wallet.
|
|
6667
6862
|
*
|
|
6668
6863
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6669
6864
|
*
|
|
6670
|
-
* **Access Control**: User must
|
|
6865
|
+
* **Access Control**: User must have access to the wallet
|
|
6671
6866
|
*
|
|
6672
6867
|
*/
|
|
6673
|
-
|
|
6868
|
+
get: {
|
|
6674
6869
|
parameters: {
|
|
6675
|
-
query?:
|
|
6870
|
+
query?: {
|
|
6871
|
+
offset?: number;
|
|
6872
|
+
limit?: number;
|
|
6873
|
+
sort_by?: string;
|
|
6874
|
+
sort_order?: "asc" | "desc";
|
|
6875
|
+
/** @description JSON-encoded filters */
|
|
6876
|
+
filters?: string;
|
|
6877
|
+
date_from?: string;
|
|
6878
|
+
date_to?: string;
|
|
6879
|
+
/** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
|
|
6880
|
+
show_low_balance?: "true" | "false";
|
|
6881
|
+
};
|
|
6676
6882
|
header?: never;
|
|
6677
|
-
path
|
|
6678
|
-
|
|
6679
|
-
};
|
|
6680
|
-
requestBody: {
|
|
6681
|
-
content: {
|
|
6682
|
-
"application/json": {
|
|
6683
|
-
/** Format: uuid */
|
|
6684
|
-
wallet_id: string;
|
|
6685
|
-
/** Format: uuid */
|
|
6686
|
-
from_currency_id: string;
|
|
6687
|
-
/**
|
|
6688
|
-
* Format: uuid
|
|
6689
|
-
* @description Receiver — a counterparty destination of type INTERNAL (points at the target wallet)
|
|
6690
|
-
*/
|
|
6691
|
-
counterparty_destination_id: string;
|
|
6692
|
-
amount: number;
|
|
6693
|
-
request_id: string;
|
|
6694
|
-
};
|
|
6883
|
+
path: {
|
|
6884
|
+
wallet_uuid: string;
|
|
6695
6885
|
};
|
|
6886
|
+
cookie?: never;
|
|
6696
6887
|
};
|
|
6888
|
+
requestBody?: never;
|
|
6697
6889
|
responses: {
|
|
6698
|
-
/** @description
|
|
6890
|
+
/** @description List of orders */
|
|
6699
6891
|
200: {
|
|
6700
6892
|
headers: {
|
|
6701
6893
|
[name: string]: unknown;
|
|
6702
6894
|
};
|
|
6703
|
-
content
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
content?: never;
|
|
6711
|
-
};
|
|
6712
|
-
/** @description Rate limit exceeded */
|
|
6713
|
-
429: {
|
|
6714
|
-
headers: {
|
|
6715
|
-
[name: string]: unknown;
|
|
6895
|
+
content: {
|
|
6896
|
+
"application/json": {
|
|
6897
|
+
/** @example true */
|
|
6898
|
+
success: boolean;
|
|
6899
|
+
data: components["schemas"]["Order"][];
|
|
6900
|
+
pagination: components["schemas"]["PaginationResponse"];
|
|
6901
|
+
};
|
|
6716
6902
|
};
|
|
6717
|
-
content?: never;
|
|
6718
|
-
};
|
|
6719
|
-
};
|
|
6720
|
-
};
|
|
6721
|
-
delete?: never;
|
|
6722
|
-
options?: never;
|
|
6723
|
-
head?: never;
|
|
6724
|
-
patch?: never;
|
|
6725
|
-
trace?: never;
|
|
6726
|
-
};
|
|
6727
|
-
"/frontend/orders/OMNIBUS_CRYPTO_TRANSFER": {
|
|
6728
|
-
parameters: {
|
|
6729
|
-
query?: never;
|
|
6730
|
-
header?: never;
|
|
6731
|
-
path?: never;
|
|
6732
|
-
cookie?: never;
|
|
6733
|
-
};
|
|
6734
|
-
get?: never;
|
|
6735
|
-
put?: never;
|
|
6736
|
-
/** Create omnibus crypto transfer */
|
|
6737
|
-
post: {
|
|
6738
|
-
parameters: {
|
|
6739
|
-
query?: never;
|
|
6740
|
-
header?: never;
|
|
6741
|
-
path?: never;
|
|
6742
|
-
cookie?: never;
|
|
6743
|
-
};
|
|
6744
|
-
requestBody: {
|
|
6745
|
-
content: {
|
|
6746
|
-
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
6747
6903
|
};
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
/** @description Order created */
|
|
6751
|
-
200: {
|
|
6904
|
+
/** @description Access denied to wallet */
|
|
6905
|
+
403: {
|
|
6752
6906
|
headers: {
|
|
6753
6907
|
[name: string]: unknown;
|
|
6754
6908
|
};
|
|
@@ -6756,37 +6910,59 @@ export interface paths {
|
|
|
6756
6910
|
};
|
|
6757
6911
|
};
|
|
6758
6912
|
};
|
|
6913
|
+
put?: never;
|
|
6914
|
+
post?: never;
|
|
6759
6915
|
delete?: never;
|
|
6760
6916
|
options?: never;
|
|
6761
6917
|
head?: never;
|
|
6762
6918
|
patch?: never;
|
|
6763
6919
|
trace?: never;
|
|
6764
6920
|
};
|
|
6765
|
-
"/frontend/orders/
|
|
6921
|
+
"/frontend/orders/wallet/{wallet_uuid}/csv": {
|
|
6766
6922
|
parameters: {
|
|
6767
6923
|
query?: never;
|
|
6768
6924
|
header?: never;
|
|
6769
6925
|
path?: never;
|
|
6770
6926
|
cookie?: never;
|
|
6771
6927
|
};
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6928
|
+
/**
|
|
6929
|
+
* Export orders
|
|
6930
|
+
* @description Exports orders for a specific wallet as a CSV file.
|
|
6931
|
+
*
|
|
6932
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6933
|
+
*
|
|
6934
|
+
* **Access Control**: User must have access to the wallet
|
|
6935
|
+
*
|
|
6936
|
+
*/
|
|
6937
|
+
get: {
|
|
6776
6938
|
parameters: {
|
|
6777
|
-
query?:
|
|
6939
|
+
query?: {
|
|
6940
|
+
date_from?: string;
|
|
6941
|
+
date_to?: string;
|
|
6942
|
+
/** @description JSON-encoded filters */
|
|
6943
|
+
filters?: string;
|
|
6944
|
+
/** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
|
|
6945
|
+
show_low_balance?: "true" | "false";
|
|
6946
|
+
};
|
|
6778
6947
|
header?: never;
|
|
6779
|
-
path
|
|
6780
|
-
|
|
6781
|
-
};
|
|
6782
|
-
requestBody: {
|
|
6783
|
-
content: {
|
|
6784
|
-
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
6948
|
+
path: {
|
|
6949
|
+
wallet_uuid: string;
|
|
6785
6950
|
};
|
|
6951
|
+
cookie?: never;
|
|
6786
6952
|
};
|
|
6953
|
+
requestBody?: never;
|
|
6787
6954
|
responses: {
|
|
6788
|
-
/** @description
|
|
6955
|
+
/** @description CSV file download */
|
|
6789
6956
|
200: {
|
|
6957
|
+
headers: {
|
|
6958
|
+
[name: string]: unknown;
|
|
6959
|
+
};
|
|
6960
|
+
content: {
|
|
6961
|
+
"text/csv": string;
|
|
6962
|
+
};
|
|
6963
|
+
};
|
|
6964
|
+
/** @description Access denied to wallet */
|
|
6965
|
+
403: {
|
|
6790
6966
|
headers: {
|
|
6791
6967
|
[name: string]: unknown;
|
|
6792
6968
|
};
|
|
@@ -6794,37 +6970,54 @@ export interface paths {
|
|
|
6794
6970
|
};
|
|
6795
6971
|
};
|
|
6796
6972
|
};
|
|
6973
|
+
put?: never;
|
|
6974
|
+
post?: never;
|
|
6797
6975
|
delete?: never;
|
|
6798
6976
|
options?: never;
|
|
6799
6977
|
head?: never;
|
|
6800
6978
|
patch?: never;
|
|
6801
6979
|
trace?: never;
|
|
6802
6980
|
};
|
|
6803
|
-
"/frontend/orders/
|
|
6981
|
+
"/frontend/orders/id/{order_id}": {
|
|
6804
6982
|
parameters: {
|
|
6805
6983
|
query?: never;
|
|
6806
6984
|
header?: never;
|
|
6807
6985
|
path?: never;
|
|
6808
6986
|
cookie?: never;
|
|
6809
6987
|
};
|
|
6810
|
-
|
|
6811
|
-
|
|
6812
|
-
|
|
6813
|
-
|
|
6988
|
+
/**
|
|
6989
|
+
* Get order
|
|
6990
|
+
* @description Retrieves a specific order by its numeric ID.
|
|
6991
|
+
*
|
|
6992
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6993
|
+
*
|
|
6994
|
+
*/
|
|
6995
|
+
get: {
|
|
6814
6996
|
parameters: {
|
|
6815
6997
|
query?: never;
|
|
6816
6998
|
header?: never;
|
|
6817
|
-
path
|
|
6818
|
-
|
|
6819
|
-
};
|
|
6820
|
-
requestBody: {
|
|
6821
|
-
content: {
|
|
6822
|
-
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6999
|
+
path: {
|
|
7000
|
+
order_id: number;
|
|
6823
7001
|
};
|
|
7002
|
+
cookie?: never;
|
|
6824
7003
|
};
|
|
7004
|
+
requestBody?: never;
|
|
6825
7005
|
responses: {
|
|
6826
|
-
/** @description Order
|
|
7006
|
+
/** @description Order details */
|
|
6827
7007
|
200: {
|
|
7008
|
+
headers: {
|
|
7009
|
+
[name: string]: unknown;
|
|
7010
|
+
};
|
|
7011
|
+
content: {
|
|
7012
|
+
"application/json": {
|
|
7013
|
+
/** @example true */
|
|
7014
|
+
success: boolean;
|
|
7015
|
+
data: components["schemas"]["OrderDetail"];
|
|
7016
|
+
};
|
|
7017
|
+
};
|
|
7018
|
+
};
|
|
7019
|
+
/** @description Order not found */
|
|
7020
|
+
404: {
|
|
6828
7021
|
headers: {
|
|
6829
7022
|
[name: string]: unknown;
|
|
6830
7023
|
};
|
|
@@ -6832,37 +7025,54 @@ export interface paths {
|
|
|
6832
7025
|
};
|
|
6833
7026
|
};
|
|
6834
7027
|
};
|
|
7028
|
+
put?: never;
|
|
7029
|
+
post?: never;
|
|
6835
7030
|
delete?: never;
|
|
6836
7031
|
options?: never;
|
|
6837
7032
|
head?: never;
|
|
6838
7033
|
patch?: never;
|
|
6839
7034
|
trace?: never;
|
|
6840
7035
|
};
|
|
6841
|
-
"/frontend/orders/
|
|
7036
|
+
"/frontend/orders/uuid/{order_uuid}": {
|
|
6842
7037
|
parameters: {
|
|
6843
7038
|
query?: never;
|
|
6844
7039
|
header?: never;
|
|
6845
7040
|
path?: never;
|
|
6846
7041
|
cookie?: never;
|
|
6847
7042
|
};
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
7043
|
+
/**
|
|
7044
|
+
* Get order by UUID
|
|
7045
|
+
* @description Retrieves a specific order by its UUID.
|
|
7046
|
+
*
|
|
7047
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
7048
|
+
*
|
|
7049
|
+
*/
|
|
7050
|
+
get: {
|
|
6852
7051
|
parameters: {
|
|
6853
7052
|
query?: never;
|
|
6854
7053
|
header?: never;
|
|
6855
|
-
path
|
|
6856
|
-
|
|
6857
|
-
};
|
|
6858
|
-
requestBody: {
|
|
6859
|
-
content: {
|
|
6860
|
-
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
7054
|
+
path: {
|
|
7055
|
+
order_uuid: string;
|
|
6861
7056
|
};
|
|
7057
|
+
cookie?: never;
|
|
6862
7058
|
};
|
|
7059
|
+
requestBody?: never;
|
|
6863
7060
|
responses: {
|
|
6864
|
-
/** @description Order
|
|
7061
|
+
/** @description Order details */
|
|
6865
7062
|
200: {
|
|
7063
|
+
headers: {
|
|
7064
|
+
[name: string]: unknown;
|
|
7065
|
+
};
|
|
7066
|
+
content: {
|
|
7067
|
+
"application/json": {
|
|
7068
|
+
/** @example true */
|
|
7069
|
+
success: boolean;
|
|
7070
|
+
data: components["schemas"]["OrderDetail"];
|
|
7071
|
+
};
|
|
7072
|
+
};
|
|
7073
|
+
};
|
|
7074
|
+
/** @description Order not found */
|
|
7075
|
+
404: {
|
|
6866
7076
|
headers: {
|
|
6867
7077
|
[name: string]: unknown;
|
|
6868
7078
|
};
|
|
@@ -6870,13 +7080,15 @@ export interface paths {
|
|
|
6870
7080
|
};
|
|
6871
7081
|
};
|
|
6872
7082
|
};
|
|
7083
|
+
put?: never;
|
|
7084
|
+
post?: never;
|
|
6873
7085
|
delete?: never;
|
|
6874
7086
|
options?: never;
|
|
6875
7087
|
head?: never;
|
|
6876
7088
|
patch?: never;
|
|
6877
7089
|
trace?: never;
|
|
6878
7090
|
};
|
|
6879
|
-
"/frontend/orders/
|
|
7091
|
+
"/frontend/orders/TRANSFER_INTERNAL": {
|
|
6880
7092
|
parameters: {
|
|
6881
7093
|
query?: never;
|
|
6882
7094
|
header?: never;
|
|
@@ -6885,7 +7097,15 @@ export interface paths {
|
|
|
6885
7097
|
};
|
|
6886
7098
|
get?: never;
|
|
6887
7099
|
put?: never;
|
|
6888
|
-
/**
|
|
7100
|
+
/**
|
|
7101
|
+
* Create internal transfer
|
|
7102
|
+
* @description Creates an internal transfer between wallets.
|
|
7103
|
+
*
|
|
7104
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
7105
|
+
*
|
|
7106
|
+
* **Access Control**: User must be admin of the source wallet
|
|
7107
|
+
*
|
|
7108
|
+
*/
|
|
6889
7109
|
post: {
|
|
6890
7110
|
parameters: {
|
|
6891
7111
|
query?: never;
|
|
@@ -6895,7 +7115,19 @@ export interface paths {
|
|
|
6895
7115
|
};
|
|
6896
7116
|
requestBody: {
|
|
6897
7117
|
content: {
|
|
6898
|
-
"application/json":
|
|
7118
|
+
"application/json": {
|
|
7119
|
+
/** Format: uuid */
|
|
7120
|
+
wallet_id: string;
|
|
7121
|
+
/** Format: uuid */
|
|
7122
|
+
from_currency_id: string;
|
|
7123
|
+
/**
|
|
7124
|
+
* Format: uuid
|
|
7125
|
+
* @description Receiver — a counterparty destination of type INTERNAL (points at the target wallet)
|
|
7126
|
+
*/
|
|
7127
|
+
counterparty_destination_id: string;
|
|
7128
|
+
amount: number;
|
|
7129
|
+
request_id: string;
|
|
7130
|
+
};
|
|
6899
7131
|
};
|
|
6900
7132
|
};
|
|
6901
7133
|
responses: {
|
|
@@ -6906,39 +7138,15 @@ export interface paths {
|
|
|
6906
7138
|
};
|
|
6907
7139
|
content?: never;
|
|
6908
7140
|
};
|
|
6909
|
-
|
|
6910
|
-
|
|
6911
|
-
|
|
6912
|
-
|
|
6913
|
-
|
|
6914
|
-
|
|
6915
|
-
trace?: never;
|
|
6916
|
-
};
|
|
6917
|
-
"/frontend/orders/L2F_SWIFT_OFFRAMP": {
|
|
6918
|
-
parameters: {
|
|
6919
|
-
query?: never;
|
|
6920
|
-
header?: never;
|
|
6921
|
-
path?: never;
|
|
6922
|
-
cookie?: never;
|
|
6923
|
-
};
|
|
6924
|
-
get?: never;
|
|
6925
|
-
put?: never;
|
|
6926
|
-
/** Create SWIFT offramp */
|
|
6927
|
-
post: {
|
|
6928
|
-
parameters: {
|
|
6929
|
-
query?: never;
|
|
6930
|
-
header?: never;
|
|
6931
|
-
path?: never;
|
|
6932
|
-
cookie?: never;
|
|
6933
|
-
};
|
|
6934
|
-
requestBody: {
|
|
6935
|
-
content: {
|
|
6936
|
-
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
7141
|
+
/** @description Access denied */
|
|
7142
|
+
403: {
|
|
7143
|
+
headers: {
|
|
7144
|
+
[name: string]: unknown;
|
|
7145
|
+
};
|
|
7146
|
+
content?: never;
|
|
6937
7147
|
};
|
|
6938
|
-
|
|
6939
|
-
|
|
6940
|
-
/** @description Order created */
|
|
6941
|
-
200: {
|
|
7148
|
+
/** @description Rate limit exceeded */
|
|
7149
|
+
429: {
|
|
6942
7150
|
headers: {
|
|
6943
7151
|
[name: string]: unknown;
|
|
6944
7152
|
};
|
|
@@ -6952,7 +7160,7 @@ export interface paths {
|
|
|
6952
7160
|
patch?: never;
|
|
6953
7161
|
trace?: never;
|
|
6954
7162
|
};
|
|
6955
|
-
"/frontend/orders/
|
|
7163
|
+
"/frontend/orders/OMNIBUS_CRYPTO_TRANSFER": {
|
|
6956
7164
|
parameters: {
|
|
6957
7165
|
query?: never;
|
|
6958
7166
|
header?: never;
|
|
@@ -6961,7 +7169,7 @@ export interface paths {
|
|
|
6961
7169
|
};
|
|
6962
7170
|
get?: never;
|
|
6963
7171
|
put?: never;
|
|
6964
|
-
/** Create
|
|
7172
|
+
/** Create omnibus crypto transfer */
|
|
6965
7173
|
post: {
|
|
6966
7174
|
parameters: {
|
|
6967
7175
|
query?: never;
|
|
@@ -6971,7 +7179,7 @@ export interface paths {
|
|
|
6971
7179
|
};
|
|
6972
7180
|
requestBody: {
|
|
6973
7181
|
content: {
|
|
6974
|
-
"application/json": components["schemas"]["
|
|
7182
|
+
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
6975
7183
|
};
|
|
6976
7184
|
};
|
|
6977
7185
|
responses: {
|
|
@@ -6990,7 +7198,7 @@ export interface paths {
|
|
|
6990
7198
|
patch?: never;
|
|
6991
7199
|
trace?: never;
|
|
6992
7200
|
};
|
|
6993
|
-
"/frontend/orders/
|
|
7201
|
+
"/frontend/orders/SEGREGATED_CRYPTO_TRANSFER": {
|
|
6994
7202
|
parameters: {
|
|
6995
7203
|
query?: never;
|
|
6996
7204
|
header?: never;
|
|
@@ -6999,7 +7207,7 @@ export interface paths {
|
|
|
6999
7207
|
};
|
|
7000
7208
|
get?: never;
|
|
7001
7209
|
put?: never;
|
|
7002
|
-
/** Create
|
|
7210
|
+
/** Create segregated crypto transfer */
|
|
7003
7211
|
post: {
|
|
7004
7212
|
parameters: {
|
|
7005
7213
|
query?: never;
|
|
@@ -7009,7 +7217,7 @@ export interface paths {
|
|
|
7009
7217
|
};
|
|
7010
7218
|
requestBody: {
|
|
7011
7219
|
content: {
|
|
7012
|
-
"application/json": components["schemas"]["
|
|
7220
|
+
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
7013
7221
|
};
|
|
7014
7222
|
};
|
|
7015
7223
|
responses: {
|
|
@@ -10435,7 +10643,7 @@ export interface components {
|
|
|
10435
10643
|
* @example EXCHANGE_OMNI
|
|
10436
10644
|
* @enum {string}
|
|
10437
10645
|
*/
|
|
10438
|
-
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" | "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";
|
|
10646
|
+
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" | "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";
|
|
10439
10647
|
OrderCalculation: {
|
|
10440
10648
|
/**
|
|
10441
10649
|
* Format: uuid
|
|
@@ -10629,11 +10837,11 @@ export interface components {
|
|
|
10629
10837
|
*/
|
|
10630
10838
|
target_wallet_id: string | null;
|
|
10631
10839
|
};
|
|
10632
|
-
/** @description
|
|
10840
|
+
/** @description Registered bank address. `country_id`/`state_id` reference the `countries`/`states` dictionaries served by this API, so the payload can prefill a counterparty form as-is. */
|
|
10633
10841
|
BankDataAddress: {
|
|
10634
10842
|
/** @description Resolved `countries.id` of the bank’s country; null when it could not be resolved */
|
|
10635
10843
|
country_id: number | null;
|
|
10636
|
-
/** @description
|
|
10844
|
+
/** @description Resolved `states.id`; populated for US banks when available, null otherwise */
|
|
10637
10845
|
state_id: number | null;
|
|
10638
10846
|
city: string | null;
|
|
10639
10847
|
postcode: string | null;
|
|
@@ -10641,46 +10849,28 @@ export interface components {
|
|
|
10641
10849
|
street1: string | null;
|
|
10642
10850
|
/** @description Always null today (reserved) */
|
|
10643
10851
|
street2: string | null;
|
|
10644
|
-
/** @description Always null today (reserved) */
|
|
10645
|
-
description: string | null;
|
|
10646
10852
|
};
|
|
10647
10853
|
/**
|
|
10648
|
-
* @description
|
|
10854
|
+
* @description A bank matched by the looked-up code. The list holds at most one element today (full-code match; prefix search is not supported).
|
|
10649
10855
|
* @example {
|
|
10650
|
-
* "
|
|
10651
|
-
* "
|
|
10652
|
-
* "note": null,
|
|
10653
|
-
* "routing_number": null,
|
|
10654
|
-
* "swift_bic": "NWBKGB2LXXX",
|
|
10655
|
-
* "iban": "GB29NWBK60161331926819",
|
|
10656
|
-
* "sort_code": "601613",
|
|
10856
|
+
* "bank_name": "JPMORGAN CHASE BANK, NA",
|
|
10857
|
+
* "code": "021000021",
|
|
10657
10858
|
* "address": {
|
|
10658
|
-
* "country_id":
|
|
10659
|
-
* "state_id":
|
|
10660
|
-
* "city": "
|
|
10859
|
+
* "country_id": 233,
|
|
10860
|
+
* "state_id": 1452,
|
|
10861
|
+
* "city": "NEW YORK",
|
|
10661
10862
|
* "postcode": null,
|
|
10662
10863
|
* "street1": null,
|
|
10663
|
-
* "street2": null
|
|
10664
|
-
* "description": null
|
|
10864
|
+
* "street2": null
|
|
10665
10865
|
* }
|
|
10666
10866
|
* }
|
|
10667
10867
|
*/
|
|
10668
|
-
|
|
10669
|
-
/** @description Populated only for GB IBANs (22 chars): the embedded 8-digit account number (IBAN positions 14-22); null otherwise */
|
|
10670
|
-
account_number: string | null;
|
|
10868
|
+
BankDataItem: {
|
|
10671
10869
|
/** @description Registered bank name; null when unavailable */
|
|
10672
10870
|
bank_name: string | null;
|
|
10673
|
-
/** @description
|
|
10674
|
-
|
|
10675
|
-
/** @description
|
|
10676
|
-
routing_number: string | null;
|
|
10677
|
-
/** @description SWIFT/BIC (ISO 9362); populated for SWIFT lookups and for IBAN lookups when the IBAN resolves to a BIC */
|
|
10678
|
-
swift_bic: string | null;
|
|
10679
|
-
/** @description Populated only for IBAN lookups (the normalised IBAN itself) */
|
|
10680
|
-
iban: string | null;
|
|
10681
|
-
/** @description Populated only for GB IBANs: the embedded 6-digit sort code (IBAN positions 8-14); null otherwise */
|
|
10682
|
-
sort_code: string | null;
|
|
10683
|
-
/** @description Bank postal address (always present) */
|
|
10871
|
+
/** @description Normalised code the bank was matched by (echoes the query `code`) */
|
|
10872
|
+
code: string;
|
|
10873
|
+
/** @description Registered bank address (always present) */
|
|
10684
10874
|
address: components["schemas"]["BankDataAddress"];
|
|
10685
10875
|
};
|
|
10686
10876
|
/** @description Bank / rail account coordinates for a sub-account. Rail-dependent — some rails return only a subset of these. */
|
|
@@ -11166,11 +11356,33 @@ export interface components {
|
|
|
11166
11356
|
amount_to?: number | null;
|
|
11167
11357
|
order_type?: string;
|
|
11168
11358
|
/** @enum {string} */
|
|
11169
|
-
status?: "NEW" | "PROCESSING" | "COMPLETE" | "FAILED" | "CANCELED";
|
|
11359
|
+
status?: "NEW" | "PENDING" | "EXPECTED" | "PROCESSING" | "COMPLETE" | "FAILED" | "CANCELED" | "REFUNDED";
|
|
11360
|
+
/**
|
|
11361
|
+
* @description Compliance (transaction monitoring) state. Orthogonal to `status`: a `held` order is still PENDING and nothing has been credited — it resolves to COMPLETE or FAILED once the review finishes. `null` means the order was never subject to a compliance hold.
|
|
11362
|
+
* @enum {string|null}
|
|
11363
|
+
*/
|
|
11364
|
+
compliance_state?: "held" | "released" | "rejected" | null;
|
|
11365
|
+
/** @description Why the order is (or was) held. */
|
|
11366
|
+
compliance_reason?: string | null;
|
|
11367
|
+
/**
|
|
11368
|
+
* Format: date-time
|
|
11369
|
+
* @description When the hold started.
|
|
11370
|
+
*/
|
|
11371
|
+
compliance_held_at?: string | null;
|
|
11372
|
+
/**
|
|
11373
|
+
* Format: date-time
|
|
11374
|
+
* @description When the hold was released or rejected.
|
|
11375
|
+
*/
|
|
11376
|
+
compliance_resolved_at?: string | null;
|
|
11170
11377
|
/** Format: uuid */
|
|
11171
11378
|
sub_account_id?: string | null;
|
|
11172
11379
|
info?: string | null;
|
|
11173
11380
|
meta?: components["schemas"]["OrderMeta"];
|
|
11381
|
+
/**
|
|
11382
|
+
* Format: date-time
|
|
11383
|
+
* @description Requested execution time for scheduled payments (status EXPECTED); null for immediate orders
|
|
11384
|
+
*/
|
|
11385
|
+
scheduled_at?: string | null;
|
|
11174
11386
|
/** Format: date-time */
|
|
11175
11387
|
created_at?: string;
|
|
11176
11388
|
/** Format: date-time */
|
|
@@ -11215,6 +11427,11 @@ export interface components {
|
|
|
11215
11427
|
wallet_account_id?: string;
|
|
11216
11428
|
reference?: string;
|
|
11217
11429
|
note?: string;
|
|
11430
|
+
/**
|
|
11431
|
+
* Format: date-time
|
|
11432
|
+
* @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.
|
|
11433
|
+
*/
|
|
11434
|
+
scheduled_at?: string;
|
|
11218
11435
|
/** @description Optional supporting documents persisted with the order. */
|
|
11219
11436
|
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
11220
11437
|
};
|
|
@@ -11235,6 +11452,11 @@ export interface components {
|
|
|
11235
11452
|
counterparty_destination_id: string;
|
|
11236
11453
|
reference?: string;
|
|
11237
11454
|
note?: string;
|
|
11455
|
+
/**
|
|
11456
|
+
* Format: date-time
|
|
11457
|
+
* @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.
|
|
11458
|
+
*/
|
|
11459
|
+
scheduled_at?: string;
|
|
11238
11460
|
/** @description Optional supporting documents persisted with the order. */
|
|
11239
11461
|
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
11240
11462
|
};
|
|
@@ -11365,6 +11587,66 @@ export interface components {
|
|
|
11365
11587
|
/** Format: uuid */
|
|
11366
11588
|
wallet_id?: string;
|
|
11367
11589
|
};
|
|
11590
|
+
MassPayout: {
|
|
11591
|
+
/** Format: uuid */
|
|
11592
|
+
id?: string;
|
|
11593
|
+
/** Format: uuid */
|
|
11594
|
+
wallet_id?: string;
|
|
11595
|
+
/** Format: uuid */
|
|
11596
|
+
currency_id?: string;
|
|
11597
|
+
/**
|
|
11598
|
+
* Format: uuid
|
|
11599
|
+
* @description Source virtual account for banking payouts (required only when the batch contains banking recipients)
|
|
11600
|
+
*/
|
|
11601
|
+
virtual_account_id?: string | null;
|
|
11602
|
+
name?: string;
|
|
11603
|
+
/** @enum {string} */
|
|
11604
|
+
status?: "DRAFT" | "PENDING_APPROVAL" | "PROCESSING" | "COMPLETED" | "FAILED" | "CANCELED";
|
|
11605
|
+
total_items?: number;
|
|
11606
|
+
total_amount?: number;
|
|
11607
|
+
completed_count?: number;
|
|
11608
|
+
failed_count?: number;
|
|
11609
|
+
/**
|
|
11610
|
+
* Format: uuid
|
|
11611
|
+
* @description User id of the wallet member who approved the batch; null until approved
|
|
11612
|
+
*/
|
|
11613
|
+
approved_by?: string | null;
|
|
11614
|
+
/** Format: date-time */
|
|
11615
|
+
approved_at?: string | null;
|
|
11616
|
+
error_message?: string | null;
|
|
11617
|
+
/** Format: date-time */
|
|
11618
|
+
created_at?: string;
|
|
11619
|
+
/** Format: date-time */
|
|
11620
|
+
finished_at?: string | null;
|
|
11621
|
+
};
|
|
11622
|
+
MassPayoutItem: {
|
|
11623
|
+
/** Format: uuid */
|
|
11624
|
+
id?: string;
|
|
11625
|
+
/** Format: uuid */
|
|
11626
|
+
destination_id?: string;
|
|
11627
|
+
amount?: number;
|
|
11628
|
+
/** @enum {string} */
|
|
11629
|
+
status?: "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED";
|
|
11630
|
+
/**
|
|
11631
|
+
* Format: uuid
|
|
11632
|
+
* @description The regular order created for this item at execution
|
|
11633
|
+
*/
|
|
11634
|
+
order_id?: string | null;
|
|
11635
|
+
error_message?: string | null;
|
|
11636
|
+
position?: number;
|
|
11637
|
+
/** Format: date-time */
|
|
11638
|
+
created_at?: string;
|
|
11639
|
+
/** Format: date-time */
|
|
11640
|
+
processed_at?: string | null;
|
|
11641
|
+
};
|
|
11642
|
+
MassPayoutItemInput: {
|
|
11643
|
+
/**
|
|
11644
|
+
* Format: uuid
|
|
11645
|
+
* @description Existing counterparty destination of the source wallet
|
|
11646
|
+
*/
|
|
11647
|
+
destination_id: string;
|
|
11648
|
+
amount: number;
|
|
11649
|
+
};
|
|
11368
11650
|
};
|
|
11369
11651
|
responses: {
|
|
11370
11652
|
/** @description Authentication credentials are missing or invalid */
|
|
@@ -11422,6 +11704,9 @@ export interface components {
|
|
|
11422
11704
|
* @example e04c0c85-b031-47d7-8541-207b4e83d91a
|
|
11423
11705
|
*/
|
|
11424
11706
|
TenantId: string;
|
|
11707
|
+
/** @description Source wallet the batches belong to */
|
|
11708
|
+
MassPayoutWalletId: string;
|
|
11709
|
+
MassPayoutId: string;
|
|
11425
11710
|
};
|
|
11426
11711
|
requestBodies: never;
|
|
11427
11712
|
headers: never;
|