squarefi-bff-api-module 1.36.31 → 1.36.32
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/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 +271 -244
- package/dist/api/types/autogen/apiV1Frontend.types.d.ts +1035 -838
- 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 +55 -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
|
@@ -2124,7 +2124,7 @@ export interface paths {
|
|
|
2124
2124
|
* Format: uuid
|
|
2125
2125
|
* @description Optional. Binds the card to a wallet member so a scoped `user` role can
|
|
2126
2126
|
* access ONLY this card (view, sensitive data, transactions, freeze/unfreeze),
|
|
2127
|
-
* and nothing else in the wallet
|
|
2127
|
+
* and nothing else in the wallet. Must be the `user_data.uuid` of an
|
|
2128
2128
|
* active member of the target wallet; resolved server-side to the card's owner.
|
|
2129
2129
|
*
|
|
2130
2130
|
* @example a1b2c3d4-e5f6-7890-abcd-ef1234567890
|
|
@@ -2818,11 +2818,13 @@ export interface paths {
|
|
|
2818
2818
|
put?: never;
|
|
2819
2819
|
/**
|
|
2820
2820
|
* Deposit funds to card
|
|
2821
|
-
* @description
|
|
2821
|
+
* @description Thin wrapper over the sub-account deposit: the card's sub-account is
|
|
2822
|
+
* resolved from `card_id` and the request is processed by the same
|
|
2823
|
+
* implementation as POST /frontend/issuing/sub-accounts/{sub_account_id}/deposit
|
|
2824
|
+
* (same order types, validation and program routing).
|
|
2822
2825
|
*
|
|
2823
|
-
* **Authentication**: Bearer token with x-tenant-id header required
|
|
2824
|
-
*
|
|
2825
|
-
* **Access Control**: User must have access to the card
|
|
2826
|
+
* **Authentication**: Bearer token with x-tenant-id header required.
|
|
2827
|
+
* **Access Control**: wallet ADMIN role on the card's wallet.
|
|
2826
2828
|
*
|
|
2827
2829
|
*/
|
|
2828
2830
|
post: {
|
|
@@ -2840,85 +2842,53 @@ export interface paths {
|
|
|
2840
2842
|
"application/json": {
|
|
2841
2843
|
/**
|
|
2842
2844
|
* Format: uuid
|
|
2843
|
-
* @description Unique reference ID for idempotency
|
|
2844
|
-
* @example 550e8400-e29b-41d4-a716-446655440000
|
|
2845
|
+
* @description Unique reference ID for idempotency
|
|
2845
2846
|
*/
|
|
2846
2847
|
reference_id: string;
|
|
2847
2848
|
/**
|
|
2848
2849
|
* Format: uuid
|
|
2849
|
-
* @description UUID of the currency to deduct from wallet
|
|
2850
|
-
* @example 509eca03-bc0d-4a38-b7dc-d136d2bdaa43
|
|
2850
|
+
* @description UUID of the currency to deduct from the wallet
|
|
2851
2851
|
*/
|
|
2852
2852
|
from_currency_id: string;
|
|
2853
|
-
/**
|
|
2854
|
-
* @description Amount to deposit
|
|
2855
|
-
* @example 100.5
|
|
2856
|
-
*/
|
|
2857
2853
|
amount: number;
|
|
2858
|
-
/**
|
|
2859
|
-
* @description Optional description for the deposit
|
|
2860
|
-
* @example Monthly card funding
|
|
2861
|
-
*/
|
|
2862
2854
|
note?: string;
|
|
2863
2855
|
};
|
|
2864
2856
|
};
|
|
2865
2857
|
};
|
|
2866
2858
|
responses: {
|
|
2867
|
-
/** @description Deposit
|
|
2859
|
+
/** @description Deposit order created (COMPLETE, FAILED, or PROCESSING for workflow-routed programs) */
|
|
2868
2860
|
200: {
|
|
2869
2861
|
headers: {
|
|
2870
2862
|
[name: string]: unknown;
|
|
2871
2863
|
};
|
|
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
|
-
};
|
|
2864
|
+
content?: never;
|
|
2893
2865
|
};
|
|
2894
|
-
/** @description
|
|
2895
|
-
* - Missing required fields
|
|
2896
|
-
* - Invalid reference_id format
|
|
2897
|
-
* - Invalid amount (must be positive number)
|
|
2898
|
-
* */
|
|
2866
|
+
/** @description Validation error */
|
|
2899
2867
|
400: {
|
|
2900
2868
|
headers: {
|
|
2901
2869
|
[name: string]: unknown;
|
|
2902
2870
|
};
|
|
2903
|
-
content
|
|
2871
|
+
content: {
|
|
2872
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2873
|
+
};
|
|
2904
2874
|
};
|
|
2905
|
-
/** @description
|
|
2906
|
-
* - Access denied to this card
|
|
2907
|
-
* - Insufficient wallet balance
|
|
2908
|
-
* - Topup not allowed (limits exceeded)
|
|
2909
|
-
* */
|
|
2875
|
+
/** @description Access denied to this card */
|
|
2910
2876
|
403: {
|
|
2911
2877
|
headers: {
|
|
2912
2878
|
[name: string]: unknown;
|
|
2913
2879
|
};
|
|
2914
|
-
content
|
|
2880
|
+
content: {
|
|
2881
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2882
|
+
};
|
|
2915
2883
|
};
|
|
2916
|
-
/** @description Card or
|
|
2884
|
+
/** @description Card or sub-account not found */
|
|
2917
2885
|
404: {
|
|
2918
2886
|
headers: {
|
|
2919
2887
|
[name: string]: unknown;
|
|
2920
2888
|
};
|
|
2921
|
-
content
|
|
2889
|
+
content: {
|
|
2890
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2891
|
+
};
|
|
2922
2892
|
};
|
|
2923
2893
|
};
|
|
2924
2894
|
};
|
|
@@ -2939,13 +2909,14 @@ export interface paths {
|
|
|
2939
2909
|
put?: never;
|
|
2940
2910
|
/**
|
|
2941
2911
|
* Withdraw funds from card
|
|
2942
|
-
* @description
|
|
2943
|
-
*
|
|
2944
|
-
*
|
|
2945
|
-
*
|
|
2946
|
-
*
|
|
2912
|
+
* @description Thin wrapper over the sub-account withdraw: the card's sub-account is
|
|
2913
|
+
* resolved from `card_id` and the request is processed by the same
|
|
2914
|
+
* implementation as POST /frontend/issuing/sub-accounts/{sub_account_id}/withdraw
|
|
2915
|
+
* (same order types and validation; concurrent withdrawals on the same
|
|
2916
|
+
* sub-account are rejected with 409).
|
|
2947
2917
|
*
|
|
2948
|
-
* **
|
|
2918
|
+
* **Authentication**: Bearer token with x-tenant-id header required.
|
|
2919
|
+
* **Access Control**: wallet ADMIN role on the card's wallet.
|
|
2949
2920
|
*
|
|
2950
2921
|
*/
|
|
2951
2922
|
post: {
|
|
@@ -2961,60 +2932,54 @@ export interface paths {
|
|
|
2961
2932
|
requestBody: {
|
|
2962
2933
|
content: {
|
|
2963
2934
|
"application/json": {
|
|
2964
|
-
/**
|
|
2965
|
-
* @description Amount to withdraw
|
|
2966
|
-
* @example 50
|
|
2967
|
-
*/
|
|
2935
|
+
/** @description Amount to withdraw back to the wallet */
|
|
2968
2936
|
amount: number;
|
|
2969
|
-
/**
|
|
2970
|
-
* @description Optional description for the withdrawal
|
|
2971
|
-
* @example Refund to wallet
|
|
2972
|
-
*/
|
|
2973
|
-
description?: string;
|
|
2974
2937
|
};
|
|
2975
2938
|
};
|
|
2976
2939
|
};
|
|
2977
2940
|
responses: {
|
|
2978
|
-
/** @description Withdrawal
|
|
2941
|
+
/** @description Withdrawal completed */
|
|
2979
2942
|
200: {
|
|
2980
2943
|
headers: {
|
|
2981
2944
|
[name: string]: unknown;
|
|
2982
2945
|
};
|
|
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
|
-
};
|
|
2946
|
+
content?: never;
|
|
2997
2947
|
};
|
|
2998
|
-
/** @description
|
|
2948
|
+
/** @description Validation error */
|
|
2999
2949
|
400: {
|
|
3000
2950
|
headers: {
|
|
3001
2951
|
[name: string]: unknown;
|
|
3002
2952
|
};
|
|
3003
|
-
content
|
|
2953
|
+
content: {
|
|
2954
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2955
|
+
};
|
|
3004
2956
|
};
|
|
3005
2957
|
/** @description Access denied to this card */
|
|
3006
2958
|
403: {
|
|
3007
2959
|
headers: {
|
|
3008
2960
|
[name: string]: unknown;
|
|
3009
2961
|
};
|
|
3010
|
-
content
|
|
2962
|
+
content: {
|
|
2963
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2964
|
+
};
|
|
3011
2965
|
};
|
|
3012
|
-
/** @description
|
|
3013
|
-
|
|
2966
|
+
/** @description Card or sub-account not found */
|
|
2967
|
+
404: {
|
|
3014
2968
|
headers: {
|
|
3015
2969
|
[name: string]: unknown;
|
|
3016
2970
|
};
|
|
3017
|
-
content
|
|
2971
|
+
content: {
|
|
2972
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2973
|
+
};
|
|
2974
|
+
};
|
|
2975
|
+
/** @description Another withdrawal for this sub-account is in progress */
|
|
2976
|
+
409: {
|
|
2977
|
+
headers: {
|
|
2978
|
+
[name: string]: unknown;
|
|
2979
|
+
};
|
|
2980
|
+
content: {
|
|
2981
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2982
|
+
};
|
|
3018
2983
|
};
|
|
3019
2984
|
};
|
|
3020
2985
|
};
|
|
@@ -4914,89 +4879,117 @@ export interface paths {
|
|
|
4914
4879
|
patch?: never;
|
|
4915
4880
|
trace?: never;
|
|
4916
4881
|
};
|
|
4917
|
-
"/frontend/
|
|
4882
|
+
"/frontend/mass-payouts/{wallet_id}": {
|
|
4918
4883
|
parameters: {
|
|
4919
4884
|
query?: never;
|
|
4920
4885
|
header?: never;
|
|
4921
4886
|
path?: never;
|
|
4922
4887
|
cookie?: never;
|
|
4923
4888
|
};
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
/**
|
|
4927
|
-
* ACH (coming soon)
|
|
4928
|
-
* @description ACH deposit is not yet implemented. Returns 501.
|
|
4929
|
-
*/
|
|
4930
|
-
post: {
|
|
4889
|
+
/** List mass payouts of a wallet */
|
|
4890
|
+
get: {
|
|
4931
4891
|
parameters: {
|
|
4932
|
-
query?:
|
|
4892
|
+
query?: {
|
|
4893
|
+
status?: "DRAFT" | "PENDING_APPROVAL" | "PROCESSING" | "COMPLETED" | "FAILED" | "CANCELED";
|
|
4894
|
+
limit?: number;
|
|
4895
|
+
offset?: number;
|
|
4896
|
+
};
|
|
4933
4897
|
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
|
-
};
|
|
4898
|
+
path: {
|
|
4899
|
+
/** @description Source wallet the batches belong to */
|
|
4900
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
4945
4901
|
};
|
|
4902
|
+
cookie?: never;
|
|
4946
4903
|
};
|
|
4904
|
+
requestBody?: never;
|
|
4947
4905
|
responses: {
|
|
4948
|
-
/** @description
|
|
4949
|
-
|
|
4906
|
+
/** @description Page of batches, newest first */
|
|
4907
|
+
200: {
|
|
4950
4908
|
headers: {
|
|
4951
4909
|
[name: string]: unknown;
|
|
4952
4910
|
};
|
|
4953
4911
|
content: {
|
|
4954
|
-
"application/json":
|
|
4912
|
+
"application/json": {
|
|
4913
|
+
/** @example true */
|
|
4914
|
+
success?: boolean;
|
|
4915
|
+
data?: {
|
|
4916
|
+
items?: components["schemas"]["MassPayout"][];
|
|
4917
|
+
total?: number;
|
|
4918
|
+
limit?: number;
|
|
4919
|
+
offset?: number;
|
|
4920
|
+
};
|
|
4921
|
+
};
|
|
4955
4922
|
};
|
|
4956
4923
|
};
|
|
4957
4924
|
};
|
|
4958
4925
|
};
|
|
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
4926
|
put?: never;
|
|
4974
4927
|
/**
|
|
4975
|
-
*
|
|
4976
|
-
* @description
|
|
4928
|
+
* Create a mass payout draft
|
|
4929
|
+
* @description Creates a batch of payouts to existing counterparty destinations: one
|
|
4930
|
+
* source wallet, one currency, up to the tenant's batch-size limit of
|
|
4931
|
+
* recipients (default 100). The draft can be freely edited and
|
|
4932
|
+
* previewed; nothing moves until it is submitted and approved.
|
|
4933
|
+
* `virtual_account_id` is required only when the list contains banking
|
|
4934
|
+
* recipients. Requires an administrative role on the source wallet.
|
|
4935
|
+
*
|
|
4977
4936
|
*/
|
|
4978
4937
|
post: {
|
|
4979
4938
|
parameters: {
|
|
4980
4939
|
query?: never;
|
|
4981
4940
|
header?: never;
|
|
4982
|
-
path
|
|
4941
|
+
path: {
|
|
4942
|
+
/** @description Source wallet the batches belong to */
|
|
4943
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
4944
|
+
};
|
|
4983
4945
|
cookie?: never;
|
|
4984
4946
|
};
|
|
4985
4947
|
requestBody: {
|
|
4986
4948
|
content: {
|
|
4987
4949
|
"application/json": {
|
|
4988
4950
|
/** Format: uuid */
|
|
4989
|
-
|
|
4990
|
-
amount?: number;
|
|
4951
|
+
currency_id: string;
|
|
4991
4952
|
/** Format: uuid */
|
|
4992
|
-
|
|
4993
|
-
|
|
4953
|
+
virtual_account_id?: string;
|
|
4954
|
+
name: string;
|
|
4955
|
+
items: components["schemas"]["MassPayoutItemInput"][];
|
|
4994
4956
|
};
|
|
4995
4957
|
};
|
|
4996
4958
|
};
|
|
4997
4959
|
responses: {
|
|
4998
|
-
/** @description
|
|
4999
|
-
|
|
4960
|
+
/** @description Draft created */
|
|
4961
|
+
200: {
|
|
4962
|
+
headers: {
|
|
4963
|
+
[name: string]: unknown;
|
|
4964
|
+
};
|
|
4965
|
+
content: {
|
|
4966
|
+
"application/json": {
|
|
4967
|
+
/** @example true */
|
|
4968
|
+
success?: boolean;
|
|
4969
|
+
data?: components["schemas"]["MassPayout"];
|
|
4970
|
+
};
|
|
4971
|
+
};
|
|
4972
|
+
};
|
|
4973
|
+
/** @description Validation error (including the batch-size limit) */
|
|
4974
|
+
400: {
|
|
4975
|
+
headers: {
|
|
4976
|
+
[name: string]: unknown;
|
|
4977
|
+
};
|
|
4978
|
+
content: {
|
|
4979
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4980
|
+
};
|
|
4981
|
+
};
|
|
4982
|
+
/** @description Caller lacks permission on the source wallet */
|
|
4983
|
+
403: {
|
|
4984
|
+
headers: {
|
|
4985
|
+
[name: string]: unknown;
|
|
4986
|
+
};
|
|
4987
|
+
content: {
|
|
4988
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
4989
|
+
};
|
|
4990
|
+
};
|
|
4991
|
+
/** @description Rate limit exceeded */
|
|
4992
|
+
429: {
|
|
5000
4993
|
headers: {
|
|
5001
4994
|
[name: string]: unknown;
|
|
5002
4995
|
};
|
|
@@ -5012,39 +5005,42 @@ export interface paths {
|
|
|
5012
5005
|
patch?: never;
|
|
5013
5006
|
trace?: never;
|
|
5014
5007
|
};
|
|
5015
|
-
"/frontend/
|
|
5008
|
+
"/frontend/mass-payouts/{wallet_id}/{id}": {
|
|
5016
5009
|
parameters: {
|
|
5017
5010
|
query?: never;
|
|
5018
5011
|
header?: never;
|
|
5019
5012
|
path?: never;
|
|
5020
5013
|
cookie?: never;
|
|
5021
5014
|
};
|
|
5022
|
-
|
|
5023
|
-
|
|
5024
|
-
/**
|
|
5025
|
-
* PIX (coming soon)
|
|
5026
|
-
* @description PIX deposit is not yet implemented. Returns 501.
|
|
5027
|
-
*/
|
|
5028
|
-
post: {
|
|
5015
|
+
/** Get a mass payout */
|
|
5016
|
+
get: {
|
|
5029
5017
|
parameters: {
|
|
5030
5018
|
query?: never;
|
|
5031
5019
|
header?: never;
|
|
5032
|
-
path
|
|
5020
|
+
path: {
|
|
5021
|
+
/** @description Source wallet the batches belong to */
|
|
5022
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5023
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5024
|
+
};
|
|
5033
5025
|
cookie?: never;
|
|
5034
5026
|
};
|
|
5035
|
-
requestBody
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5027
|
+
requestBody?: never;
|
|
5028
|
+
responses: {
|
|
5029
|
+
/** @description Batch details with progress counters and total amount */
|
|
5030
|
+
200: {
|
|
5031
|
+
headers: {
|
|
5032
|
+
[name: string]: unknown;
|
|
5033
|
+
};
|
|
5034
|
+
content: {
|
|
5035
|
+
"application/json": {
|
|
5036
|
+
/** @example true */
|
|
5037
|
+
success?: boolean;
|
|
5038
|
+
data?: components["schemas"]["MassPayout"];
|
|
5039
|
+
};
|
|
5042
5040
|
};
|
|
5043
5041
|
};
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
/** @description Not implemented */
|
|
5047
|
-
501: {
|
|
5042
|
+
/** @description Mass payout not found */
|
|
5043
|
+
404: {
|
|
5048
5044
|
headers: {
|
|
5049
5045
|
[name: string]: unknown;
|
|
5050
5046
|
};
|
|
@@ -5054,45 +5050,42 @@ export interface paths {
|
|
|
5054
5050
|
};
|
|
5055
5051
|
};
|
|
5056
5052
|
};
|
|
5053
|
+
put?: never;
|
|
5054
|
+
post?: never;
|
|
5057
5055
|
delete?: never;
|
|
5058
5056
|
options?: never;
|
|
5059
5057
|
head?: never;
|
|
5060
5058
|
patch?: never;
|
|
5061
5059
|
trace?: never;
|
|
5062
5060
|
};
|
|
5063
|
-
"/frontend/
|
|
5061
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/items": {
|
|
5064
5062
|
parameters: {
|
|
5065
5063
|
query?: never;
|
|
5066
5064
|
header?: never;
|
|
5067
5065
|
path?: never;
|
|
5068
5066
|
cookie?: never;
|
|
5069
5067
|
};
|
|
5070
|
-
get?: never;
|
|
5071
|
-
put?: never;
|
|
5072
5068
|
/**
|
|
5073
|
-
*
|
|
5074
|
-
* @description
|
|
5069
|
+
* List items of a mass payout
|
|
5070
|
+
* @description Items in upload order, paginated with limit/offset like the batch list.
|
|
5075
5071
|
*/
|
|
5076
|
-
|
|
5072
|
+
get: {
|
|
5077
5073
|
parameters: {
|
|
5078
|
-
query?:
|
|
5074
|
+
query?: {
|
|
5075
|
+
limit?: number;
|
|
5076
|
+
offset?: number;
|
|
5077
|
+
};
|
|
5079
5078
|
header?: never;
|
|
5080
|
-
path
|
|
5079
|
+
path: {
|
|
5080
|
+
/** @description Source wallet the batches belong to */
|
|
5081
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5082
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5083
|
+
};
|
|
5081
5084
|
cookie?: never;
|
|
5082
5085
|
};
|
|
5083
|
-
requestBody
|
|
5084
|
-
content: {
|
|
5085
|
-
"application/json": {
|
|
5086
|
-
/** Format: uuid */
|
|
5087
|
-
wallet_id: string;
|
|
5088
|
-
amount: number;
|
|
5089
|
-
/** Format: uuid */
|
|
5090
|
-
sub_account_id: string;
|
|
5091
|
-
};
|
|
5092
|
-
};
|
|
5093
|
-
};
|
|
5086
|
+
requestBody?: never;
|
|
5094
5087
|
responses: {
|
|
5095
|
-
/** @description
|
|
5088
|
+
/** @description Page of items */
|
|
5096
5089
|
200: {
|
|
5097
5090
|
headers: {
|
|
5098
5091
|
[name: string]: unknown;
|
|
@@ -5101,95 +5094,54 @@ export interface paths {
|
|
|
5101
5094
|
"application/json": {
|
|
5102
5095
|
/** @example true */
|
|
5103
5096
|
success?: boolean;
|
|
5104
|
-
data?:
|
|
5105
|
-
|
|
5106
|
-
|
|
5097
|
+
data?: {
|
|
5098
|
+
items?: components["schemas"]["MassPayoutItem"][];
|
|
5099
|
+
total?: number;
|
|
5100
|
+
limit?: number;
|
|
5101
|
+
offset?: number;
|
|
5102
|
+
};
|
|
5107
5103
|
};
|
|
5108
5104
|
};
|
|
5109
5105
|
};
|
|
5110
|
-
/** @description Missing required fields or invalid amount */
|
|
5111
|
-
400: {
|
|
5112
|
-
headers: {
|
|
5113
|
-
[name: string]: unknown;
|
|
5114
|
-
};
|
|
5115
|
-
content: {
|
|
5116
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5117
|
-
};
|
|
5118
|
-
};
|
|
5119
|
-
/** @description Authentication required */
|
|
5120
|
-
401: {
|
|
5121
|
-
headers: {
|
|
5122
|
-
[name: string]: unknown;
|
|
5123
|
-
};
|
|
5124
|
-
content: {
|
|
5125
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5126
|
-
};
|
|
5127
|
-
};
|
|
5128
|
-
/** @description Caller is not an admin of the wallet */
|
|
5129
|
-
403: {
|
|
5130
|
-
headers: {
|
|
5131
|
-
[name: string]: unknown;
|
|
5132
|
-
};
|
|
5133
|
-
content: {
|
|
5134
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5135
|
-
};
|
|
5136
|
-
};
|
|
5137
|
-
/** @description Card return failed */
|
|
5138
|
-
500: {
|
|
5139
|
-
headers: {
|
|
5140
|
-
[name: string]: unknown;
|
|
5141
|
-
};
|
|
5142
|
-
content: {
|
|
5143
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5144
|
-
};
|
|
5145
|
-
};
|
|
5146
5106
|
};
|
|
5147
5107
|
};
|
|
5108
|
+
put?: never;
|
|
5109
|
+
post?: never;
|
|
5148
5110
|
delete?: never;
|
|
5149
5111
|
options?: never;
|
|
5150
5112
|
head?: never;
|
|
5151
5113
|
patch?: never;
|
|
5152
5114
|
trace?: never;
|
|
5153
5115
|
};
|
|
5154
|
-
"/frontend/
|
|
5116
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/preview": {
|
|
5155
5117
|
parameters: {
|
|
5156
5118
|
query?: never;
|
|
5157
5119
|
header?: never;
|
|
5158
5120
|
path?: never;
|
|
5159
5121
|
cookie?: never;
|
|
5160
5122
|
};
|
|
5161
|
-
get?: never;
|
|
5162
|
-
put?: never;
|
|
5163
5123
|
/**
|
|
5164
|
-
*
|
|
5165
|
-
* @description
|
|
5166
|
-
*
|
|
5167
|
-
*
|
|
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.
|
|
5124
|
+
* Preview a mass payout
|
|
5125
|
+
* @description Dry-run before submitting: validates every recipient, estimates the fee
|
|
5126
|
+
* per item through the tenant's pricing, sums the total debit and checks
|
|
5127
|
+
* it against the wallet balance. Crypto payouts to on-platform addresses
|
|
5128
|
+
* may execute cheaper than estimated (they settle internally).
|
|
5177
5129
|
*
|
|
5178
5130
|
*/
|
|
5179
|
-
|
|
5131
|
+
get: {
|
|
5180
5132
|
parameters: {
|
|
5181
5133
|
query?: never;
|
|
5182
5134
|
header?: never;
|
|
5183
|
-
path
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
content: {
|
|
5188
|
-
"application/json": components["schemas"]["FrontendExchangeOrderRequest"];
|
|
5135
|
+
path: {
|
|
5136
|
+
/** @description Source wallet the batches belong to */
|
|
5137
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5138
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5189
5139
|
};
|
|
5140
|
+
cookie?: never;
|
|
5190
5141
|
};
|
|
5142
|
+
requestBody?: never;
|
|
5191
5143
|
responses: {
|
|
5192
|
-
/** @description
|
|
5144
|
+
/** @description Validation report, fee estimates and balance check */
|
|
5193
5145
|
200: {
|
|
5194
5146
|
headers: {
|
|
5195
5147
|
[name: string]: unknown;
|
|
@@ -5198,55 +5150,55 @@ export interface paths {
|
|
|
5198
5150
|
"application/json": {
|
|
5199
5151
|
/** @example true */
|
|
5200
5152
|
success?: boolean;
|
|
5201
|
-
data?:
|
|
5153
|
+
data?: {
|
|
5154
|
+
/** Format: uuid */
|
|
5155
|
+
id?: string;
|
|
5156
|
+
/** Format: uuid */
|
|
5157
|
+
currency_id?: string;
|
|
5158
|
+
total_items?: number;
|
|
5159
|
+
total_amount?: number;
|
|
5160
|
+
total_fees?: number;
|
|
5161
|
+
total_debit?: number;
|
|
5162
|
+
balance?: {
|
|
5163
|
+
available?: number;
|
|
5164
|
+
sufficient?: boolean;
|
|
5165
|
+
};
|
|
5166
|
+
valid_count?: number;
|
|
5167
|
+
invalid_count?: number;
|
|
5168
|
+
items?: {
|
|
5169
|
+
/** Format: uuid */
|
|
5170
|
+
item_id?: string;
|
|
5171
|
+
position?: number;
|
|
5172
|
+
/** Format: uuid */
|
|
5173
|
+
destination_id?: string;
|
|
5174
|
+
amount?: number;
|
|
5175
|
+
fee?: number;
|
|
5176
|
+
debit_amount?: number;
|
|
5177
|
+
result_amount?: number;
|
|
5178
|
+
}[];
|
|
5179
|
+
problems?: {
|
|
5180
|
+
/** Format: uuid */
|
|
5181
|
+
item_id?: string;
|
|
5182
|
+
position?: number;
|
|
5183
|
+
/** Format: uuid */
|
|
5184
|
+
destination_id?: string;
|
|
5185
|
+
error?: string;
|
|
5186
|
+
}[];
|
|
5187
|
+
};
|
|
5202
5188
|
};
|
|
5203
5189
|
};
|
|
5204
5190
|
};
|
|
5205
|
-
/** @description Validation error (insufficient balance, virtual account missing, etc.) */
|
|
5206
|
-
400: {
|
|
5207
|
-
headers: {
|
|
5208
|
-
[name: string]: unknown;
|
|
5209
|
-
};
|
|
5210
|
-
content: {
|
|
5211
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5212
|
-
};
|
|
5213
|
-
};
|
|
5214
|
-
/** @description Authentication required */
|
|
5215
|
-
401: {
|
|
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: {
|
|
5234
|
-
headers: {
|
|
5235
|
-
[name: string]: unknown;
|
|
5236
|
-
};
|
|
5237
|
-
content: {
|
|
5238
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5239
|
-
};
|
|
5240
|
-
};
|
|
5241
5191
|
};
|
|
5242
5192
|
};
|
|
5193
|
+
put?: never;
|
|
5194
|
+
post?: never;
|
|
5243
5195
|
delete?: never;
|
|
5244
5196
|
options?: never;
|
|
5245
5197
|
head?: never;
|
|
5246
5198
|
patch?: never;
|
|
5247
5199
|
trace?: never;
|
|
5248
5200
|
};
|
|
5249
|
-
"/frontend/
|
|
5201
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/submit": {
|
|
5250
5202
|
parameters: {
|
|
5251
5203
|
query?: never;
|
|
5252
5204
|
header?: never;
|
|
@@ -5256,46 +5208,25 @@ export interface paths {
|
|
|
5256
5208
|
get?: never;
|
|
5257
5209
|
put?: never;
|
|
5258
5210
|
/**
|
|
5259
|
-
*
|
|
5260
|
-
* @description
|
|
5261
|
-
*
|
|
5262
|
-
* `POST /frontend/orders/{id}/approve` (OTP-gated, keyed on the order
|
|
5263
|
-
* id) checks the balance, debits the sender and executes the transfer
|
|
5264
|
-
* synchronously — receiver credited, order `COMPLETE`. A `NEW` order
|
|
5265
|
-
* can simply be canceled (no funds are held).
|
|
5266
|
-
* Caller must be `admin` of the source wallet.
|
|
5211
|
+
* Submit a mass payout for approval
|
|
5212
|
+
* @description DRAFT → PENDING_APPROVAL. Refused while any recipient is invalid — the
|
|
5213
|
+
* problems are returned in the error details so the rows can be fixed.
|
|
5267
5214
|
*
|
|
5268
5215
|
*/
|
|
5269
5216
|
post: {
|
|
5270
5217
|
parameters: {
|
|
5271
5218
|
query?: never;
|
|
5272
5219
|
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
|
-
};
|
|
5220
|
+
path: {
|
|
5221
|
+
/** @description Source wallet the batches belong to */
|
|
5222
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5223
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5295
5224
|
};
|
|
5225
|
+
cookie?: never;
|
|
5296
5226
|
};
|
|
5227
|
+
requestBody?: never;
|
|
5297
5228
|
responses: {
|
|
5298
|
-
/** @description
|
|
5229
|
+
/** @description Batch is awaiting approval */
|
|
5299
5230
|
200: {
|
|
5300
5231
|
headers: {
|
|
5301
5232
|
[name: string]: unknown;
|
|
@@ -5304,11 +5235,11 @@ export interface paths {
|
|
|
5304
5235
|
"application/json": {
|
|
5305
5236
|
/** @example true */
|
|
5306
5237
|
success?: boolean;
|
|
5307
|
-
data?: components["schemas"]["
|
|
5238
|
+
data?: components["schemas"]["MassPayout"];
|
|
5308
5239
|
};
|
|
5309
5240
|
};
|
|
5310
5241
|
};
|
|
5311
|
-
/** @description
|
|
5242
|
+
/** @description Batch has invalid items (details carry the per-item problems) */
|
|
5312
5243
|
400: {
|
|
5313
5244
|
headers: {
|
|
5314
5245
|
[name: string]: unknown;
|
|
@@ -5317,26 +5248,8 @@ export interface paths {
|
|
|
5317
5248
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5318
5249
|
};
|
|
5319
5250
|
};
|
|
5320
|
-
/** @description
|
|
5321
|
-
|
|
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 */
|
|
5330
|
-
403: {
|
|
5331
|
-
headers: {
|
|
5332
|
-
[name: string]: unknown;
|
|
5333
|
-
};
|
|
5334
|
-
content: {
|
|
5335
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5336
|
-
};
|
|
5337
|
-
};
|
|
5338
|
-
/** @description Rate limit exceeded */
|
|
5339
|
-
429: {
|
|
5251
|
+
/** @description Batch is not in DRAFT */
|
|
5252
|
+
409: {
|
|
5340
5253
|
headers: {
|
|
5341
5254
|
[name: string]: unknown;
|
|
5342
5255
|
};
|
|
@@ -5352,7 +5265,7 @@ export interface paths {
|
|
|
5352
5265
|
patch?: never;
|
|
5353
5266
|
trace?: never;
|
|
5354
5267
|
};
|
|
5355
|
-
"/frontend/
|
|
5268
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/approve": {
|
|
5356
5269
|
parameters: {
|
|
5357
5270
|
query?: never;
|
|
5358
5271
|
header?: never;
|
|
@@ -5362,31 +5275,29 @@ export interface paths {
|
|
|
5362
5275
|
get?: never;
|
|
5363
5276
|
put?: never;
|
|
5364
5277
|
/**
|
|
5365
|
-
*
|
|
5366
|
-
* @description
|
|
5367
|
-
*
|
|
5368
|
-
*
|
|
5369
|
-
*
|
|
5370
|
-
*
|
|
5371
|
-
*
|
|
5372
|
-
* on-chain transaction) — still `NEW` at create, debited + settled
|
|
5373
|
-
* synchronously to `COMPLETE` at approve.
|
|
5278
|
+
* Approve a mass payout
|
|
5279
|
+
* @description PENDING_APPROVAL → PROCESSING and starts the asynchronous execution:
|
|
5280
|
+
* every item becomes a regular order (created and approved through the
|
|
5281
|
+
* standard order flow, funds are debited per order). Requires an
|
|
5282
|
+
* administrative wallet role and a recent second-factor verification — a stale one is rejected
|
|
5283
|
+
* with `TWO_FACTOR_REVERIFICATION_REQUIRED`. Execution continues past
|
|
5284
|
+
* failed items; progress is visible through the batch counters.
|
|
5374
5285
|
*
|
|
5375
5286
|
*/
|
|
5376
5287
|
post: {
|
|
5377
5288
|
parameters: {
|
|
5378
5289
|
query?: never;
|
|
5379
5290
|
header?: never;
|
|
5380
|
-
path
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
content: {
|
|
5385
|
-
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
5291
|
+
path: {
|
|
5292
|
+
/** @description Source wallet the batches belong to */
|
|
5293
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5294
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5386
5295
|
};
|
|
5296
|
+
cookie?: never;
|
|
5387
5297
|
};
|
|
5298
|
+
requestBody?: never;
|
|
5388
5299
|
responses: {
|
|
5389
|
-
/** @description
|
|
5300
|
+
/** @description Execution started */
|
|
5390
5301
|
200: {
|
|
5391
5302
|
headers: {
|
|
5392
5303
|
[name: string]: unknown;
|
|
@@ -5395,29 +5306,11 @@ export interface paths {
|
|
|
5395
5306
|
"application/json": {
|
|
5396
5307
|
/** @example true */
|
|
5397
5308
|
success?: boolean;
|
|
5398
|
-
data?: components["schemas"]["
|
|
5309
|
+
data?: components["schemas"]["MassPayout"];
|
|
5399
5310
|
};
|
|
5400
5311
|
};
|
|
5401
5312
|
};
|
|
5402
|
-
/** @description
|
|
5403
|
-
400: {
|
|
5404
|
-
headers: {
|
|
5405
|
-
[name: string]: unknown;
|
|
5406
|
-
};
|
|
5407
|
-
content: {
|
|
5408
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5409
|
-
};
|
|
5410
|
-
};
|
|
5411
|
-
/** @description Authentication required */
|
|
5412
|
-
401: {
|
|
5413
|
-
headers: {
|
|
5414
|
-
[name: string]: unknown;
|
|
5415
|
-
};
|
|
5416
|
-
content: {
|
|
5417
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5418
|
-
};
|
|
5419
|
-
};
|
|
5420
|
-
/** @description Caller is not an admin of the source wallet */
|
|
5313
|
+
/** @description Second-factor verification is stale or the caller lacks permission */
|
|
5421
5314
|
403: {
|
|
5422
5315
|
headers: {
|
|
5423
5316
|
[name: string]: unknown;
|
|
@@ -5426,8 +5319,8 @@ export interface paths {
|
|
|
5426
5319
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5427
5320
|
};
|
|
5428
5321
|
};
|
|
5429
|
-
/** @description
|
|
5430
|
-
|
|
5322
|
+
/** @description Batch is not awaiting approval */
|
|
5323
|
+
409: {
|
|
5431
5324
|
headers: {
|
|
5432
5325
|
[name: string]: unknown;
|
|
5433
5326
|
};
|
|
@@ -5443,7 +5336,7 @@ export interface paths {
|
|
|
5443
5336
|
patch?: never;
|
|
5444
5337
|
trace?: never;
|
|
5445
5338
|
};
|
|
5446
|
-
"/frontend/
|
|
5339
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/cancel": {
|
|
5447
5340
|
parameters: {
|
|
5448
5341
|
query?: never;
|
|
5449
5342
|
header?: never;
|
|
@@ -5452,21 +5345,24 @@ export interface paths {
|
|
|
5452
5345
|
};
|
|
5453
5346
|
get?: never;
|
|
5454
5347
|
put?: never;
|
|
5455
|
-
/**
|
|
5348
|
+
/**
|
|
5349
|
+
* Cancel a mass payout
|
|
5350
|
+
* @description Allowed from DRAFT and PENDING_APPROVAL. A PROCESSING batch cannot be canceled — payouts are already executing.
|
|
5351
|
+
*/
|
|
5456
5352
|
post: {
|
|
5457
5353
|
parameters: {
|
|
5458
5354
|
query?: never;
|
|
5459
5355
|
header?: never;
|
|
5460
|
-
path
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
content: {
|
|
5465
|
-
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
5356
|
+
path: {
|
|
5357
|
+
/** @description Source wallet the batches belong to */
|
|
5358
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5359
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5466
5360
|
};
|
|
5361
|
+
cookie?: never;
|
|
5467
5362
|
};
|
|
5363
|
+
requestBody?: never;
|
|
5468
5364
|
responses: {
|
|
5469
|
-
/** @description
|
|
5365
|
+
/** @description Batch canceled */
|
|
5470
5366
|
200: {
|
|
5471
5367
|
headers: {
|
|
5472
5368
|
[name: string]: unknown;
|
|
@@ -5475,21 +5371,12 @@ export interface paths {
|
|
|
5475
5371
|
"application/json": {
|
|
5476
5372
|
/** @example true */
|
|
5477
5373
|
success?: boolean;
|
|
5478
|
-
data?: components["schemas"]["
|
|
5374
|
+
data?: components["schemas"]["MassPayout"];
|
|
5479
5375
|
};
|
|
5480
5376
|
};
|
|
5481
5377
|
};
|
|
5482
|
-
/** @description
|
|
5483
|
-
|
|
5484
|
-
headers: {
|
|
5485
|
-
[name: string]: unknown;
|
|
5486
|
-
};
|
|
5487
|
-
content: {
|
|
5488
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
5489
|
-
};
|
|
5490
|
-
};
|
|
5491
|
-
/** @description Authentication required */
|
|
5492
|
-
401: {
|
|
5378
|
+
/** @description Batch can no longer be canceled */
|
|
5379
|
+
409: {
|
|
5493
5380
|
headers: {
|
|
5494
5381
|
[name: string]: unknown;
|
|
5495
5382
|
};
|
|
@@ -5497,17 +5384,51 @@ export interface paths {
|
|
|
5497
5384
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5498
5385
|
};
|
|
5499
5386
|
};
|
|
5500
|
-
|
|
5501
|
-
|
|
5387
|
+
};
|
|
5388
|
+
};
|
|
5389
|
+
delete?: never;
|
|
5390
|
+
options?: never;
|
|
5391
|
+
head?: never;
|
|
5392
|
+
patch?: never;
|
|
5393
|
+
trace?: never;
|
|
5394
|
+
};
|
|
5395
|
+
"/frontend/mass-payouts/{wallet_id}/{id}/report.csv": {
|
|
5396
|
+
parameters: {
|
|
5397
|
+
query?: never;
|
|
5398
|
+
header?: never;
|
|
5399
|
+
path?: never;
|
|
5400
|
+
cookie?: never;
|
|
5401
|
+
};
|
|
5402
|
+
/**
|
|
5403
|
+
* Download the mass payout report (CSV)
|
|
5404
|
+
* @description Streaming CSV: recipient, amount, item status, the linked order and its
|
|
5405
|
+
* current status, and the failure reason for every unsuccessful payout.
|
|
5406
|
+
*
|
|
5407
|
+
*/
|
|
5408
|
+
get: {
|
|
5409
|
+
parameters: {
|
|
5410
|
+
query?: never;
|
|
5411
|
+
header?: never;
|
|
5412
|
+
path: {
|
|
5413
|
+
/** @description Source wallet the batches belong to */
|
|
5414
|
+
wallet_id: components["parameters"]["MassPayoutWalletId"];
|
|
5415
|
+
id: components["parameters"]["MassPayoutId"];
|
|
5416
|
+
};
|
|
5417
|
+
cookie?: never;
|
|
5418
|
+
};
|
|
5419
|
+
requestBody?: never;
|
|
5420
|
+
responses: {
|
|
5421
|
+
/** @description CSV file */
|
|
5422
|
+
200: {
|
|
5502
5423
|
headers: {
|
|
5503
5424
|
[name: string]: unknown;
|
|
5504
5425
|
};
|
|
5505
5426
|
content: {
|
|
5506
|
-
"
|
|
5427
|
+
"text/csv": string;
|
|
5507
5428
|
};
|
|
5508
5429
|
};
|
|
5509
|
-
/** @description
|
|
5510
|
-
|
|
5430
|
+
/** @description Mass payout not found */
|
|
5431
|
+
404: {
|
|
5511
5432
|
headers: {
|
|
5512
5433
|
[name: string]: unknown;
|
|
5513
5434
|
};
|
|
@@ -5517,13 +5438,15 @@ export interface paths {
|
|
|
5517
5438
|
};
|
|
5518
5439
|
};
|
|
5519
5440
|
};
|
|
5441
|
+
put?: never;
|
|
5442
|
+
post?: never;
|
|
5520
5443
|
delete?: never;
|
|
5521
5444
|
options?: never;
|
|
5522
5445
|
head?: never;
|
|
5523
5446
|
patch?: never;
|
|
5524
5447
|
trace?: never;
|
|
5525
5448
|
};
|
|
5526
|
-
"/frontend/orders/
|
|
5449
|
+
"/frontend/orders/deposit/ach": {
|
|
5527
5450
|
parameters: {
|
|
5528
5451
|
query?: never;
|
|
5529
5452
|
header?: never;
|
|
@@ -5532,7 +5455,10 @@ export interface paths {
|
|
|
5532
5455
|
};
|
|
5533
5456
|
get?: never;
|
|
5534
5457
|
put?: never;
|
|
5535
|
-
/**
|
|
5458
|
+
/**
|
|
5459
|
+
* ACH (coming soon)
|
|
5460
|
+
* @description ACH deposit is not yet implemented. Returns 501.
|
|
5461
|
+
*/
|
|
5536
5462
|
post: {
|
|
5537
5463
|
parameters: {
|
|
5538
5464
|
query?: never;
|
|
@@ -5542,34 +5468,67 @@ export interface paths {
|
|
|
5542
5468
|
};
|
|
5543
5469
|
requestBody: {
|
|
5544
5470
|
content: {
|
|
5545
|
-
"application/json":
|
|
5471
|
+
"application/json": {
|
|
5472
|
+
/** Format: uuid */
|
|
5473
|
+
wallet_id: string;
|
|
5474
|
+
amount?: number;
|
|
5475
|
+
request_id?: string;
|
|
5476
|
+
};
|
|
5546
5477
|
};
|
|
5547
5478
|
};
|
|
5548
5479
|
responses: {
|
|
5549
|
-
/** @description
|
|
5550
|
-
|
|
5480
|
+
/** @description Not implemented */
|
|
5481
|
+
501: {
|
|
5551
5482
|
headers: {
|
|
5552
5483
|
[name: string]: unknown;
|
|
5553
5484
|
};
|
|
5554
5485
|
content: {
|
|
5555
|
-
"application/json":
|
|
5556
|
-
/** @example true */
|
|
5557
|
-
success?: boolean;
|
|
5558
|
-
data?: components["schemas"]["Order"];
|
|
5559
|
-
};
|
|
5486
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
5560
5487
|
};
|
|
5561
5488
|
};
|
|
5562
|
-
|
|
5563
|
-
|
|
5564
|
-
|
|
5565
|
-
|
|
5566
|
-
|
|
5567
|
-
|
|
5568
|
-
|
|
5489
|
+
};
|
|
5490
|
+
};
|
|
5491
|
+
delete?: never;
|
|
5492
|
+
options?: never;
|
|
5493
|
+
head?: never;
|
|
5494
|
+
patch?: never;
|
|
5495
|
+
trace?: never;
|
|
5496
|
+
};
|
|
5497
|
+
"/frontend/orders/deposit/crypto": {
|
|
5498
|
+
parameters: {
|
|
5499
|
+
query?: never;
|
|
5500
|
+
header?: never;
|
|
5501
|
+
path?: never;
|
|
5502
|
+
cookie?: never;
|
|
5503
|
+
};
|
|
5504
|
+
get?: never;
|
|
5505
|
+
put?: never;
|
|
5506
|
+
/**
|
|
5507
|
+
* Crypto (coming soon)
|
|
5508
|
+
* @description Crypto deposit is not yet implemented. Returns 501.
|
|
5509
|
+
*/
|
|
5510
|
+
post: {
|
|
5511
|
+
parameters: {
|
|
5512
|
+
query?: never;
|
|
5513
|
+
header?: never;
|
|
5514
|
+
path?: never;
|
|
5515
|
+
cookie?: never;
|
|
5516
|
+
};
|
|
5517
|
+
requestBody: {
|
|
5518
|
+
content: {
|
|
5519
|
+
"application/json": {
|
|
5520
|
+
/** Format: uuid */
|
|
5521
|
+
wallet_id: string;
|
|
5522
|
+
amount?: number;
|
|
5523
|
+
/** Format: uuid */
|
|
5524
|
+
currency_id?: string;
|
|
5525
|
+
request_id?: string;
|
|
5569
5526
|
};
|
|
5570
5527
|
};
|
|
5571
|
-
|
|
5572
|
-
|
|
5528
|
+
};
|
|
5529
|
+
responses: {
|
|
5530
|
+
/** @description Not implemented */
|
|
5531
|
+
501: {
|
|
5573
5532
|
headers: {
|
|
5574
5533
|
[name: string]: unknown;
|
|
5575
5534
|
};
|
|
@@ -5577,17 +5536,47 @@ export interface paths {
|
|
|
5577
5536
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5578
5537
|
};
|
|
5579
5538
|
};
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5539
|
+
};
|
|
5540
|
+
};
|
|
5541
|
+
delete?: never;
|
|
5542
|
+
options?: never;
|
|
5543
|
+
head?: never;
|
|
5544
|
+
patch?: never;
|
|
5545
|
+
trace?: never;
|
|
5546
|
+
};
|
|
5547
|
+
"/frontend/orders/deposit/pix": {
|
|
5548
|
+
parameters: {
|
|
5549
|
+
query?: never;
|
|
5550
|
+
header?: never;
|
|
5551
|
+
path?: never;
|
|
5552
|
+
cookie?: never;
|
|
5553
|
+
};
|
|
5554
|
+
get?: never;
|
|
5555
|
+
put?: never;
|
|
5556
|
+
/**
|
|
5557
|
+
* PIX (coming soon)
|
|
5558
|
+
* @description PIX deposit is not yet implemented. Returns 501.
|
|
5559
|
+
*/
|
|
5560
|
+
post: {
|
|
5561
|
+
parameters: {
|
|
5562
|
+
query?: never;
|
|
5563
|
+
header?: never;
|
|
5564
|
+
path?: never;
|
|
5565
|
+
cookie?: never;
|
|
5566
|
+
};
|
|
5567
|
+
requestBody: {
|
|
5568
|
+
content: {
|
|
5569
|
+
"application/json": {
|
|
5570
|
+
/** Format: uuid */
|
|
5571
|
+
wallet_id: string;
|
|
5572
|
+
amount?: number;
|
|
5573
|
+
request_id?: string;
|
|
5587
5574
|
};
|
|
5588
5575
|
};
|
|
5589
|
-
|
|
5590
|
-
|
|
5576
|
+
};
|
|
5577
|
+
responses: {
|
|
5578
|
+
/** @description Not implemented */
|
|
5579
|
+
501: {
|
|
5591
5580
|
headers: {
|
|
5592
5581
|
[name: string]: unknown;
|
|
5593
5582
|
};
|
|
@@ -5603,7 +5592,7 @@ export interface paths {
|
|
|
5603
5592
|
patch?: never;
|
|
5604
5593
|
trace?: never;
|
|
5605
5594
|
};
|
|
5606
|
-
"/frontend/orders/
|
|
5595
|
+
"/frontend/orders/exchange": {
|
|
5607
5596
|
parameters: {
|
|
5608
5597
|
query?: never;
|
|
5609
5598
|
header?: never;
|
|
@@ -5612,7 +5601,22 @@ export interface paths {
|
|
|
5612
5601
|
};
|
|
5613
5602
|
get?: never;
|
|
5614
5603
|
put?: never;
|
|
5615
|
-
/**
|
|
5604
|
+
/**
|
|
5605
|
+
* Exchange
|
|
5606
|
+
* @description Currency exchange within a wallet — a pure ledger swap for any enabled
|
|
5607
|
+
* currency pair (crypto and fiat alike). Pair availability is governed by
|
|
5608
|
+
* the exchange calculation config: a disabled pair is rejected at create.
|
|
5609
|
+
*
|
|
5610
|
+
* Two-phase, like the banking withdrawals: the order is created in status
|
|
5611
|
+
* `NEW` without touching the balance. Call `POST /frontend/orders/{order_id}/approve`
|
|
5612
|
+
* (OTP-gated, keyed on the order id) to check the balance, debit the
|
|
5613
|
+
* source funds and execute the swap — the order lands in `COMPLETE`
|
|
5614
|
+
* synchronously — or `POST /frontend/orders/{order_id}/cancel` to
|
|
5615
|
+
* discard the order.
|
|
5616
|
+
*
|
|
5617
|
+
* Caller must be `admin` of the wallet.
|
|
5618
|
+
*
|
|
5619
|
+
*/
|
|
5616
5620
|
post: {
|
|
5617
5621
|
parameters: {
|
|
5618
5622
|
query?: never;
|
|
@@ -5622,11 +5626,11 @@ export interface paths {
|
|
|
5622
5626
|
};
|
|
5623
5627
|
requestBody: {
|
|
5624
5628
|
content: {
|
|
5625
|
-
"application/json": components["schemas"]["
|
|
5629
|
+
"application/json": components["schemas"]["FrontendExchangeOrderRequest"];
|
|
5626
5630
|
};
|
|
5627
5631
|
};
|
|
5628
5632
|
responses: {
|
|
5629
|
-
/** @description
|
|
5633
|
+
/** @description Exchange order created (status NEW — approve to debit and execute) */
|
|
5630
5634
|
200: {
|
|
5631
5635
|
headers: {
|
|
5632
5636
|
[name: string]: unknown;
|
|
@@ -5639,7 +5643,7 @@ export interface paths {
|
|
|
5639
5643
|
};
|
|
5640
5644
|
};
|
|
5641
5645
|
};
|
|
5642
|
-
/** @description Validation error */
|
|
5646
|
+
/** @description Validation error (insufficient balance, virtual account missing, etc.) */
|
|
5643
5647
|
400: {
|
|
5644
5648
|
headers: {
|
|
5645
5649
|
[name: string]: unknown;
|
|
@@ -5657,7 +5661,7 @@ export interface paths {
|
|
|
5657
5661
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
5658
5662
|
};
|
|
5659
5663
|
};
|
|
5660
|
-
/** @description Caller is not an admin of the
|
|
5664
|
+
/** @description Caller is not an admin of the wallet */
|
|
5661
5665
|
403: {
|
|
5662
5666
|
headers: {
|
|
5663
5667
|
[name: string]: unknown;
|
|
@@ -5683,7 +5687,7 @@ export interface paths {
|
|
|
5683
5687
|
patch?: never;
|
|
5684
5688
|
trace?: never;
|
|
5685
5689
|
};
|
|
5686
|
-
"/frontend/orders/withdrawal/
|
|
5690
|
+
"/frontend/orders/withdrawal/internal": {
|
|
5687
5691
|
parameters: {
|
|
5688
5692
|
query?: never;
|
|
5689
5693
|
header?: never;
|
|
@@ -5692,7 +5696,17 @@ export interface paths {
|
|
|
5692
5696
|
};
|
|
5693
5697
|
get?: never;
|
|
5694
5698
|
put?: never;
|
|
5695
|
-
/**
|
|
5699
|
+
/**
|
|
5700
|
+
* Internal
|
|
5701
|
+
* @description Transfers funds between two wallets within the platform. Two-phase:
|
|
5702
|
+
* the order is created in `NEW` status without touching the balance;
|
|
5703
|
+
* `POST /frontend/orders/{id}/approve` (OTP-gated, keyed on the order
|
|
5704
|
+
* id) checks the balance, debits the sender and executes the transfer
|
|
5705
|
+
* synchronously — receiver credited, order `COMPLETE`. A `NEW` order
|
|
5706
|
+
* can simply be canceled (no funds are held).
|
|
5707
|
+
* Caller must be `admin` of the source wallet.
|
|
5708
|
+
*
|
|
5709
|
+
*/
|
|
5696
5710
|
post: {
|
|
5697
5711
|
parameters: {
|
|
5698
5712
|
query?: never;
|
|
@@ -5702,11 +5716,32 @@ export interface paths {
|
|
|
5702
5716
|
};
|
|
5703
5717
|
requestBody: {
|
|
5704
5718
|
content: {
|
|
5705
|
-
"application/json":
|
|
5719
|
+
"application/json": {
|
|
5720
|
+
/**
|
|
5721
|
+
* Format: uuid
|
|
5722
|
+
* @description Source wallet UUID
|
|
5723
|
+
*/
|
|
5724
|
+
wallet_id: string;
|
|
5725
|
+
/** Format: uuid */
|
|
5726
|
+
from_currency_id: string;
|
|
5727
|
+
/**
|
|
5728
|
+
* Format: uuid
|
|
5729
|
+
* @description Counterparty destination of type INTERNAL (points at the receiver wallet).
|
|
5730
|
+
*/
|
|
5731
|
+
counterparty_destination_id: string;
|
|
5732
|
+
amount: number;
|
|
5733
|
+
/**
|
|
5734
|
+
* Format: date-time
|
|
5735
|
+
* @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.
|
|
5736
|
+
*/
|
|
5737
|
+
scheduled_at?: string;
|
|
5738
|
+
/** @description Optional supporting documents persisted with the order. */
|
|
5739
|
+
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
5740
|
+
};
|
|
5706
5741
|
};
|
|
5707
5742
|
};
|
|
5708
5743
|
responses: {
|
|
5709
|
-
/** @description
|
|
5744
|
+
/** @description Transfer created in NEW status (awaiting approve; no funds held) */
|
|
5710
5745
|
200: {
|
|
5711
5746
|
headers: {
|
|
5712
5747
|
[name: string]: unknown;
|
|
@@ -5763,7 +5798,7 @@ export interface paths {
|
|
|
5763
5798
|
patch?: never;
|
|
5764
5799
|
trace?: never;
|
|
5765
5800
|
};
|
|
5766
|
-
"/frontend/orders/withdrawal/
|
|
5801
|
+
"/frontend/orders/withdrawal/crypto": {
|
|
5767
5802
|
parameters: {
|
|
5768
5803
|
query?: never;
|
|
5769
5804
|
header?: never;
|
|
@@ -5772,7 +5807,18 @@ export interface paths {
|
|
|
5772
5807
|
};
|
|
5773
5808
|
get?: never;
|
|
5774
5809
|
put?: never;
|
|
5775
|
-
/**
|
|
5810
|
+
/**
|
|
5811
|
+
* Crypto
|
|
5812
|
+
* @description Sends crypto from an omnibus wallet to an external address. Two-phase:
|
|
5813
|
+
* the order is created in `NEW` status without touching the balance;
|
|
5814
|
+
* `POST /frontend/orders/{id}/approve` (OTP-gated, keyed on the order
|
|
5815
|
+
* id) checks the balance, debits the funds and dispatches the on-chain
|
|
5816
|
+
* send. If the destination address belongs to a wallet in the same
|
|
5817
|
+
* tenant, the order is created as `OMNIBUS_INTERNAL_TRANSFER` (no
|
|
5818
|
+
* on-chain transaction) — still `NEW` at create, debited + settled
|
|
5819
|
+
* synchronously to `COMPLETE` at approve.
|
|
5820
|
+
*
|
|
5821
|
+
*/
|
|
5776
5822
|
post: {
|
|
5777
5823
|
parameters: {
|
|
5778
5824
|
query?: never;
|
|
@@ -5782,11 +5828,11 @@ export interface paths {
|
|
|
5782
5828
|
};
|
|
5783
5829
|
requestBody: {
|
|
5784
5830
|
content: {
|
|
5785
|
-
"application/json": components["schemas"]["
|
|
5831
|
+
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
5786
5832
|
};
|
|
5787
5833
|
};
|
|
5788
5834
|
responses: {
|
|
5789
|
-
/** @description
|
|
5835
|
+
/** @description Crypto withdrawal created */
|
|
5790
5836
|
200: {
|
|
5791
5837
|
headers: {
|
|
5792
5838
|
[name: string]: unknown;
|
|
@@ -5843,7 +5889,7 @@ export interface paths {
|
|
|
5843
5889
|
patch?: never;
|
|
5844
5890
|
trace?: never;
|
|
5845
5891
|
};
|
|
5846
|
-
"/frontend/orders/withdrawal/
|
|
5892
|
+
"/frontend/orders/withdrawal/wire": {
|
|
5847
5893
|
parameters: {
|
|
5848
5894
|
query?: never;
|
|
5849
5895
|
header?: never;
|
|
@@ -5852,7 +5898,7 @@ export interface paths {
|
|
|
5852
5898
|
};
|
|
5853
5899
|
get?: never;
|
|
5854
5900
|
put?: never;
|
|
5855
|
-
/**
|
|
5901
|
+
/** Wire */
|
|
5856
5902
|
post: {
|
|
5857
5903
|
parameters: {
|
|
5858
5904
|
query?: never;
|
|
@@ -5866,7 +5912,7 @@ export interface paths {
|
|
|
5866
5912
|
};
|
|
5867
5913
|
};
|
|
5868
5914
|
responses: {
|
|
5869
|
-
/** @description
|
|
5915
|
+
/** @description Wire withdrawal created */
|
|
5870
5916
|
200: {
|
|
5871
5917
|
headers: {
|
|
5872
5918
|
[name: string]: unknown;
|
|
@@ -5923,7 +5969,7 @@ export interface paths {
|
|
|
5923
5969
|
patch?: never;
|
|
5924
5970
|
trace?: never;
|
|
5925
5971
|
};
|
|
5926
|
-
"/frontend/orders/withdrawal/
|
|
5972
|
+
"/frontend/orders/withdrawal/ach": {
|
|
5927
5973
|
parameters: {
|
|
5928
5974
|
query?: never;
|
|
5929
5975
|
header?: never;
|
|
@@ -5932,10 +5978,7 @@ export interface paths {
|
|
|
5932
5978
|
};
|
|
5933
5979
|
get?: never;
|
|
5934
5980
|
put?: never;
|
|
5935
|
-
/**
|
|
5936
|
-
* Card
|
|
5937
|
-
* @description Funds a card sub-account from a wallet.
|
|
5938
|
-
*/
|
|
5981
|
+
/** ACH */
|
|
5939
5982
|
post: {
|
|
5940
5983
|
parameters: {
|
|
5941
5984
|
query?: never;
|
|
@@ -5945,32 +5988,11 @@ export interface paths {
|
|
|
5945
5988
|
};
|
|
5946
5989
|
requestBody: {
|
|
5947
5990
|
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
|
-
};
|
|
5991
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
5970
5992
|
};
|
|
5971
5993
|
};
|
|
5972
5994
|
responses: {
|
|
5973
|
-
/** @description
|
|
5995
|
+
/** @description ACH withdrawal created */
|
|
5974
5996
|
200: {
|
|
5975
5997
|
headers: {
|
|
5976
5998
|
[name: string]: unknown;
|
|
@@ -5980,12 +6002,10 @@ export interface paths {
|
|
|
5980
6002
|
/** @example true */
|
|
5981
6003
|
success?: boolean;
|
|
5982
6004
|
data?: components["schemas"]["Order"];
|
|
5983
|
-
/** @example Card topup order created */
|
|
5984
|
-
message?: string;
|
|
5985
6005
|
};
|
|
5986
6006
|
};
|
|
5987
6007
|
};
|
|
5988
|
-
/** @description
|
|
6008
|
+
/** @description Validation error */
|
|
5989
6009
|
400: {
|
|
5990
6010
|
headers: {
|
|
5991
6011
|
[name: string]: unknown;
|
|
@@ -6012,8 +6032,8 @@ export interface paths {
|
|
|
6012
6032
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6013
6033
|
};
|
|
6014
6034
|
};
|
|
6015
|
-
/** @description
|
|
6016
|
-
|
|
6035
|
+
/** @description Rate limit exceeded */
|
|
6036
|
+
429: {
|
|
6017
6037
|
headers: {
|
|
6018
6038
|
[name: string]: unknown;
|
|
6019
6039
|
};
|
|
@@ -6029,7 +6049,7 @@ export interface paths {
|
|
|
6029
6049
|
patch?: never;
|
|
6030
6050
|
trace?: never;
|
|
6031
6051
|
};
|
|
6032
|
-
"/frontend/orders/
|
|
6052
|
+
"/frontend/orders/withdrawal/sepa": {
|
|
6033
6053
|
parameters: {
|
|
6034
6054
|
query?: never;
|
|
6035
6055
|
header?: never;
|
|
@@ -6038,36 +6058,21 @@ export interface paths {
|
|
|
6038
6058
|
};
|
|
6039
6059
|
get?: never;
|
|
6040
6060
|
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
|
-
*/
|
|
6061
|
+
/** SEPA */
|
|
6052
6062
|
post: {
|
|
6053
6063
|
parameters: {
|
|
6054
6064
|
query?: never;
|
|
6055
6065
|
header?: never;
|
|
6056
|
-
path
|
|
6057
|
-
order_id: string;
|
|
6058
|
-
};
|
|
6066
|
+
path?: never;
|
|
6059
6067
|
cookie?: never;
|
|
6060
6068
|
};
|
|
6061
6069
|
requestBody: {
|
|
6062
6070
|
content: {
|
|
6063
|
-
"application/json":
|
|
6064
|
-
/** Format: uuid */
|
|
6065
|
-
wallet_id: string;
|
|
6066
|
-
};
|
|
6071
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6067
6072
|
};
|
|
6068
6073
|
};
|
|
6069
6074
|
responses: {
|
|
6070
|
-
/** @description
|
|
6075
|
+
/** @description SEPA withdrawal created */
|
|
6071
6076
|
200: {
|
|
6072
6077
|
headers: {
|
|
6073
6078
|
[name: string]: unknown;
|
|
@@ -6080,8 +6085,35 @@ export interface paths {
|
|
|
6080
6085
|
};
|
|
6081
6086
|
};
|
|
6082
6087
|
};
|
|
6083
|
-
/** @description
|
|
6084
|
-
|
|
6088
|
+
/** @description Validation error */
|
|
6089
|
+
400: {
|
|
6090
|
+
headers: {
|
|
6091
|
+
[name: string]: unknown;
|
|
6092
|
+
};
|
|
6093
|
+
content: {
|
|
6094
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6095
|
+
};
|
|
6096
|
+
};
|
|
6097
|
+
/** @description Authentication required */
|
|
6098
|
+
401: {
|
|
6099
|
+
headers: {
|
|
6100
|
+
[name: string]: unknown;
|
|
6101
|
+
};
|
|
6102
|
+
content: {
|
|
6103
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6104
|
+
};
|
|
6105
|
+
};
|
|
6106
|
+
/** @description Caller is not an admin of the source wallet */
|
|
6107
|
+
403: {
|
|
6108
|
+
headers: {
|
|
6109
|
+
[name: string]: unknown;
|
|
6110
|
+
};
|
|
6111
|
+
content: {
|
|
6112
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6113
|
+
};
|
|
6114
|
+
};
|
|
6115
|
+
/** @description Rate limit exceeded */
|
|
6116
|
+
429: {
|
|
6085
6117
|
headers: {
|
|
6086
6118
|
[name: string]: unknown;
|
|
6087
6119
|
};
|
|
@@ -6097,7 +6129,7 @@ export interface paths {
|
|
|
6097
6129
|
patch?: never;
|
|
6098
6130
|
trace?: never;
|
|
6099
6131
|
};
|
|
6100
|
-
"/frontend/orders/
|
|
6132
|
+
"/frontend/orders/withdrawal/swift": {
|
|
6101
6133
|
parameters: {
|
|
6102
6134
|
query?: never;
|
|
6103
6135
|
header?: never;
|
|
@@ -6106,30 +6138,21 @@ export interface paths {
|
|
|
6106
6138
|
};
|
|
6107
6139
|
get?: never;
|
|
6108
6140
|
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
|
-
*/
|
|
6141
|
+
/** SWIFT */
|
|
6113
6142
|
post: {
|
|
6114
6143
|
parameters: {
|
|
6115
6144
|
query?: never;
|
|
6116
6145
|
header?: never;
|
|
6117
|
-
path
|
|
6118
|
-
order_id: string;
|
|
6119
|
-
};
|
|
6146
|
+
path?: never;
|
|
6120
6147
|
cookie?: never;
|
|
6121
6148
|
};
|
|
6122
6149
|
requestBody: {
|
|
6123
6150
|
content: {
|
|
6124
|
-
"application/json":
|
|
6125
|
-
/** Format: uuid */
|
|
6126
|
-
wallet_id: string;
|
|
6127
|
-
reason?: string;
|
|
6128
|
-
};
|
|
6151
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6129
6152
|
};
|
|
6130
6153
|
};
|
|
6131
6154
|
responses: {
|
|
6132
|
-
/** @description
|
|
6155
|
+
/** @description SWIFT withdrawal created */
|
|
6133
6156
|
200: {
|
|
6134
6157
|
headers: {
|
|
6135
6158
|
[name: string]: unknown;
|
|
@@ -6142,8 +6165,35 @@ export interface paths {
|
|
|
6142
6165
|
};
|
|
6143
6166
|
};
|
|
6144
6167
|
};
|
|
6145
|
-
/** @description
|
|
6146
|
-
|
|
6168
|
+
/** @description Validation error */
|
|
6169
|
+
400: {
|
|
6170
|
+
headers: {
|
|
6171
|
+
[name: string]: unknown;
|
|
6172
|
+
};
|
|
6173
|
+
content: {
|
|
6174
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6175
|
+
};
|
|
6176
|
+
};
|
|
6177
|
+
/** @description Authentication required */
|
|
6178
|
+
401: {
|
|
6179
|
+
headers: {
|
|
6180
|
+
[name: string]: unknown;
|
|
6181
|
+
};
|
|
6182
|
+
content: {
|
|
6183
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6184
|
+
};
|
|
6185
|
+
};
|
|
6186
|
+
/** @description Caller is not an admin of the source wallet */
|
|
6187
|
+
403: {
|
|
6188
|
+
headers: {
|
|
6189
|
+
[name: string]: unknown;
|
|
6190
|
+
};
|
|
6191
|
+
content: {
|
|
6192
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6193
|
+
};
|
|
6194
|
+
};
|
|
6195
|
+
/** @description Rate limit exceeded */
|
|
6196
|
+
429: {
|
|
6147
6197
|
headers: {
|
|
6148
6198
|
[name: string]: unknown;
|
|
6149
6199
|
};
|
|
@@ -6159,7 +6209,7 @@ export interface paths {
|
|
|
6159
6209
|
patch?: never;
|
|
6160
6210
|
trace?: never;
|
|
6161
6211
|
};
|
|
6162
|
-
"/frontend/orders/
|
|
6212
|
+
"/frontend/orders/withdrawal/chaps": {
|
|
6163
6213
|
parameters: {
|
|
6164
6214
|
query?: never;
|
|
6165
6215
|
header?: never;
|
|
@@ -6167,39 +6217,22 @@ export interface paths {
|
|
|
6167
6217
|
cookie?: never;
|
|
6168
6218
|
};
|
|
6169
6219
|
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: {
|
|
6220
|
+
put?: never;
|
|
6221
|
+
/** CHAPS */
|
|
6222
|
+
post: {
|
|
6183
6223
|
parameters: {
|
|
6184
6224
|
query?: never;
|
|
6185
6225
|
header?: never;
|
|
6186
|
-
path
|
|
6187
|
-
order_id: string;
|
|
6188
|
-
};
|
|
6226
|
+
path?: never;
|
|
6189
6227
|
cookie?: never;
|
|
6190
6228
|
};
|
|
6191
6229
|
requestBody: {
|
|
6192
6230
|
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
|
-
};
|
|
6231
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6199
6232
|
};
|
|
6200
6233
|
};
|
|
6201
6234
|
responses: {
|
|
6202
|
-
/** @description
|
|
6235
|
+
/** @description CHAPS withdrawal created */
|
|
6203
6236
|
200: {
|
|
6204
6237
|
headers: {
|
|
6205
6238
|
[name: string]: unknown;
|
|
@@ -6212,7 +6245,7 @@ export interface paths {
|
|
|
6212
6245
|
};
|
|
6213
6246
|
};
|
|
6214
6247
|
};
|
|
6215
|
-
/** @description Validation error
|
|
6248
|
+
/** @description Validation error */
|
|
6216
6249
|
400: {
|
|
6217
6250
|
headers: {
|
|
6218
6251
|
[name: string]: unknown;
|
|
@@ -6221,7 +6254,16 @@ export interface paths {
|
|
|
6221
6254
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6222
6255
|
};
|
|
6223
6256
|
};
|
|
6224
|
-
/** @description
|
|
6257
|
+
/** @description Authentication required */
|
|
6258
|
+
401: {
|
|
6259
|
+
headers: {
|
|
6260
|
+
[name: string]: unknown;
|
|
6261
|
+
};
|
|
6262
|
+
content: {
|
|
6263
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6264
|
+
};
|
|
6265
|
+
};
|
|
6266
|
+
/** @description Caller is not an admin of the source wallet */
|
|
6225
6267
|
403: {
|
|
6226
6268
|
headers: {
|
|
6227
6269
|
[name: string]: unknown;
|
|
@@ -6230,8 +6272,8 @@ export interface paths {
|
|
|
6230
6272
|
"application/json": components["schemas"]["ErrorResponse"];
|
|
6231
6273
|
};
|
|
6232
6274
|
};
|
|
6233
|
-
/** @description
|
|
6234
|
-
|
|
6275
|
+
/** @description Rate limit exceeded */
|
|
6276
|
+
429: {
|
|
6235
6277
|
headers: {
|
|
6236
6278
|
[name: string]: unknown;
|
|
6237
6279
|
};
|
|
@@ -6241,138 +6283,200 @@ export interface paths {
|
|
|
6241
6283
|
};
|
|
6242
6284
|
};
|
|
6243
6285
|
};
|
|
6244
|
-
post?: never;
|
|
6245
6286
|
delete?: never;
|
|
6246
6287
|
options?: never;
|
|
6247
6288
|
head?: never;
|
|
6248
6289
|
patch?: never;
|
|
6249
6290
|
trace?: never;
|
|
6250
6291
|
};
|
|
6251
|
-
"/frontend/orders/
|
|
6292
|
+
"/frontend/orders/withdrawal/fps": {
|
|
6252
6293
|
parameters: {
|
|
6253
6294
|
query?: never;
|
|
6254
6295
|
header?: never;
|
|
6255
6296
|
path?: never;
|
|
6256
6297
|
cookie?: never;
|
|
6257
6298
|
};
|
|
6258
|
-
|
|
6259
|
-
|
|
6260
|
-
|
|
6261
|
-
|
|
6262
|
-
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6263
|
-
*
|
|
6264
|
-
*/
|
|
6265
|
-
get: {
|
|
6299
|
+
get?: never;
|
|
6300
|
+
put?: never;
|
|
6301
|
+
/** FPS */
|
|
6302
|
+
post: {
|
|
6266
6303
|
parameters: {
|
|
6267
6304
|
query?: never;
|
|
6268
6305
|
header?: never;
|
|
6269
6306
|
path?: never;
|
|
6270
6307
|
cookie?: never;
|
|
6271
6308
|
};
|
|
6272
|
-
requestBody
|
|
6309
|
+
requestBody: {
|
|
6310
|
+
content: {
|
|
6311
|
+
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6312
|
+
};
|
|
6313
|
+
};
|
|
6273
6314
|
responses: {
|
|
6274
|
-
/** @description
|
|
6315
|
+
/** @description FPS withdrawal created */
|
|
6275
6316
|
200: {
|
|
6276
6317
|
headers: {
|
|
6277
6318
|
[name: string]: unknown;
|
|
6278
6319
|
};
|
|
6279
|
-
content
|
|
6320
|
+
content: {
|
|
6321
|
+
"application/json": {
|
|
6322
|
+
/** @example true */
|
|
6323
|
+
success?: boolean;
|
|
6324
|
+
data?: components["schemas"]["Order"];
|
|
6325
|
+
};
|
|
6326
|
+
};
|
|
6327
|
+
};
|
|
6328
|
+
/** @description Validation error */
|
|
6329
|
+
400: {
|
|
6330
|
+
headers: {
|
|
6331
|
+
[name: string]: unknown;
|
|
6332
|
+
};
|
|
6333
|
+
content: {
|
|
6334
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6335
|
+
};
|
|
6336
|
+
};
|
|
6337
|
+
/** @description Authentication required */
|
|
6338
|
+
401: {
|
|
6339
|
+
headers: {
|
|
6340
|
+
[name: string]: unknown;
|
|
6341
|
+
};
|
|
6342
|
+
content: {
|
|
6343
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6344
|
+
};
|
|
6345
|
+
};
|
|
6346
|
+
/** @description Caller is not an admin of the source wallet */
|
|
6347
|
+
403: {
|
|
6348
|
+
headers: {
|
|
6349
|
+
[name: string]: unknown;
|
|
6350
|
+
};
|
|
6351
|
+
content: {
|
|
6352
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6353
|
+
};
|
|
6354
|
+
};
|
|
6355
|
+
/** @description Rate limit exceeded */
|
|
6356
|
+
429: {
|
|
6357
|
+
headers: {
|
|
6358
|
+
[name: string]: unknown;
|
|
6359
|
+
};
|
|
6360
|
+
content: {
|
|
6361
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6362
|
+
};
|
|
6280
6363
|
};
|
|
6281
6364
|
};
|
|
6282
6365
|
};
|
|
6283
|
-
put?: never;
|
|
6284
|
-
post?: never;
|
|
6285
6366
|
delete?: never;
|
|
6286
6367
|
options?: never;
|
|
6287
6368
|
head?: never;
|
|
6288
6369
|
patch?: never;
|
|
6289
6370
|
trace?: never;
|
|
6290
6371
|
};
|
|
6291
|
-
"/frontend/orders/
|
|
6372
|
+
"/frontend/orders/{order_id}/approve": {
|
|
6292
6373
|
parameters: {
|
|
6293
6374
|
query?: never;
|
|
6294
6375
|
header?: never;
|
|
6295
6376
|
path?: never;
|
|
6296
6377
|
cookie?: never;
|
|
6297
6378
|
};
|
|
6379
|
+
get?: never;
|
|
6380
|
+
put?: never;
|
|
6298
6381
|
/**
|
|
6299
|
-
*
|
|
6300
|
-
* @description
|
|
6301
|
-
*
|
|
6302
|
-
*
|
|
6382
|
+
* Approve an order
|
|
6383
|
+
* @description Moves a NEW order to PROCESSING: checks the balance, debits the funds
|
|
6384
|
+
* (transaction written as `complete`) and triggers its workflow.
|
|
6385
|
+
* Exchange orders (EXCHANGE_OMNI) and internal transfers
|
|
6386
|
+
* (TRANSFER_INTERNAL / OMNIBUS_INTERNAL_TRANSFER) settle synchronously
|
|
6387
|
+
* and land in COMPLETE. An insufficient balance fails the order
|
|
6388
|
+
* (FAILED). OTP verification is mandatory and keyed on the order id
|
|
6389
|
+
* (request the OTP for the order being approved). Orders created with
|
|
6390
|
+
* `scheduled_at` move to EXPECTED instead — no funds are debited until
|
|
6391
|
+
* execution at the requested time.
|
|
6303
6392
|
*
|
|
6304
6393
|
*/
|
|
6305
|
-
|
|
6394
|
+
post: {
|
|
6306
6395
|
parameters: {
|
|
6307
6396
|
query?: never;
|
|
6308
6397
|
header?: never;
|
|
6309
6398
|
path: {
|
|
6310
|
-
|
|
6399
|
+
order_id: string;
|
|
6311
6400
|
};
|
|
6312
6401
|
cookie?: never;
|
|
6313
6402
|
};
|
|
6314
|
-
requestBody
|
|
6403
|
+
requestBody: {
|
|
6404
|
+
content: {
|
|
6405
|
+
"application/json": {
|
|
6406
|
+
/** Format: uuid */
|
|
6407
|
+
wallet_id: string;
|
|
6408
|
+
};
|
|
6409
|
+
};
|
|
6410
|
+
};
|
|
6315
6411
|
responses: {
|
|
6316
|
-
/** @description Order
|
|
6412
|
+
/** @description Order moved to PROCESSING */
|
|
6317
6413
|
200: {
|
|
6318
6414
|
headers: {
|
|
6319
6415
|
[name: string]: unknown;
|
|
6320
6416
|
};
|
|
6321
|
-
content
|
|
6417
|
+
content: {
|
|
6418
|
+
"application/json": {
|
|
6419
|
+
/** @example true */
|
|
6420
|
+
success?: boolean;
|
|
6421
|
+
data?: components["schemas"]["Order"];
|
|
6422
|
+
};
|
|
6423
|
+
};
|
|
6322
6424
|
};
|
|
6323
|
-
/** @description Order
|
|
6324
|
-
|
|
6425
|
+
/** @description Order is not in an approvable state */
|
|
6426
|
+
409: {
|
|
6325
6427
|
headers: {
|
|
6326
6428
|
[name: string]: unknown;
|
|
6327
6429
|
};
|
|
6328
|
-
content
|
|
6430
|
+
content: {
|
|
6431
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6432
|
+
};
|
|
6329
6433
|
};
|
|
6330
6434
|
};
|
|
6331
6435
|
};
|
|
6332
|
-
put?: never;
|
|
6333
|
-
post?: never;
|
|
6334
6436
|
delete?: never;
|
|
6335
6437
|
options?: never;
|
|
6336
6438
|
head?: never;
|
|
6337
6439
|
patch?: never;
|
|
6338
6440
|
trace?: never;
|
|
6339
6441
|
};
|
|
6340
|
-
"/frontend/orders/
|
|
6442
|
+
"/frontend/orders/{order_id}/cancel": {
|
|
6341
6443
|
parameters: {
|
|
6342
6444
|
query?: never;
|
|
6343
6445
|
header?: never;
|
|
6344
6446
|
path?: never;
|
|
6345
6447
|
cookie?: never;
|
|
6346
6448
|
};
|
|
6449
|
+
get?: never;
|
|
6450
|
+
put?: never;
|
|
6347
6451
|
/**
|
|
6348
|
-
*
|
|
6349
|
-
* @description
|
|
6350
|
-
*
|
|
6351
|
-
*
|
|
6452
|
+
* Cancel an order
|
|
6453
|
+
* @description Cancels a NEW or EXPECTED order and cancels its workflow run. Neither
|
|
6454
|
+
* status holds debited funds, so cancel never moves money.
|
|
6455
|
+
* BREAKING CHANGE (2026-07-26): FAILED is no longer cancelable and returns
|
|
6456
|
+
* 409. Paying back an order that was debited and then failed is now a
|
|
6457
|
+
* separate, admin-panel-only refund action.
|
|
6352
6458
|
*
|
|
6353
6459
|
*/
|
|
6354
|
-
|
|
6460
|
+
post: {
|
|
6355
6461
|
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
|
-
};
|
|
6462
|
+
query?: never;
|
|
6369
6463
|
header?: never;
|
|
6370
|
-
path
|
|
6464
|
+
path: {
|
|
6465
|
+
order_id: string;
|
|
6466
|
+
};
|
|
6371
6467
|
cookie?: never;
|
|
6372
6468
|
};
|
|
6373
|
-
requestBody
|
|
6469
|
+
requestBody: {
|
|
6470
|
+
content: {
|
|
6471
|
+
"application/json": {
|
|
6472
|
+
/** Format: uuid */
|
|
6473
|
+
wallet_id: string;
|
|
6474
|
+
reason?: string;
|
|
6475
|
+
};
|
|
6476
|
+
};
|
|
6477
|
+
};
|
|
6374
6478
|
responses: {
|
|
6375
|
-
/** @description
|
|
6479
|
+
/** @description Order canceled (no balance change) */
|
|
6376
6480
|
200: {
|
|
6377
6481
|
headers: {
|
|
6378
6482
|
[name: string]: unknown;
|
|
@@ -6380,22 +6484,13 @@ export interface paths {
|
|
|
6380
6484
|
content: {
|
|
6381
6485
|
"application/json": {
|
|
6382
6486
|
/** @example true */
|
|
6383
|
-
success
|
|
6384
|
-
data
|
|
6487
|
+
success?: boolean;
|
|
6488
|
+
data?: components["schemas"]["Order"];
|
|
6385
6489
|
};
|
|
6386
6490
|
};
|
|
6387
6491
|
};
|
|
6388
|
-
/** @description
|
|
6389
|
-
|
|
6390
|
-
headers: {
|
|
6391
|
-
[name: string]: unknown;
|
|
6392
|
-
};
|
|
6393
|
-
content: {
|
|
6394
|
-
"application/json": components["schemas"]["ErrorResponse"];
|
|
6395
|
-
};
|
|
6396
|
-
};
|
|
6397
|
-
/** @description Calculation failed (e.g. network fee estimation error) */
|
|
6398
|
-
500: {
|
|
6492
|
+
/** @description Order is not in a cancelable state */
|
|
6493
|
+
409: {
|
|
6399
6494
|
headers: {
|
|
6400
6495
|
[name: string]: unknown;
|
|
6401
6496
|
};
|
|
@@ -6405,53 +6500,53 @@ export interface paths {
|
|
|
6405
6500
|
};
|
|
6406
6501
|
};
|
|
6407
6502
|
};
|
|
6408
|
-
put?: never;
|
|
6409
|
-
post?: never;
|
|
6410
6503
|
delete?: never;
|
|
6411
6504
|
options?: never;
|
|
6412
6505
|
head?: never;
|
|
6413
6506
|
patch?: never;
|
|
6414
6507
|
trace?: never;
|
|
6415
6508
|
};
|
|
6416
|
-
"/frontend/orders/
|
|
6509
|
+
"/frontend/orders/{order_id}/comment": {
|
|
6417
6510
|
parameters: {
|
|
6418
6511
|
query?: never;
|
|
6419
6512
|
header?: never;
|
|
6420
6513
|
path?: never;
|
|
6421
6514
|
cookie?: never;
|
|
6422
6515
|
};
|
|
6516
|
+
get?: never;
|
|
6423
6517
|
/**
|
|
6424
|
-
*
|
|
6425
|
-
* @description
|
|
6518
|
+
* Set or clear an order's comment
|
|
6519
|
+
* @description Saves (or edits) a single free-text comment attached to an order
|
|
6520
|
+
* (incoming or outgoing). Useful for noting who an incoming crypto deposit
|
|
6521
|
+
* came from. Send `comment: null` or an empty string to clear it.
|
|
6426
6522
|
*
|
|
6427
|
-
*
|
|
6523
|
+
* The response includes the saved `comment` plus audit metadata
|
|
6524
|
+
* (`comment_updated_by` = editor's user_data uuid, `comment_updated_at`).
|
|
6428
6525
|
*
|
|
6429
|
-
* **Access Control**:
|
|
6526
|
+
* **Access Control**: caller must be `admin` or `owner` of the order's wallet.
|
|
6430
6527
|
*
|
|
6431
6528
|
*/
|
|
6432
|
-
|
|
6529
|
+
put: {
|
|
6433
6530
|
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
|
-
};
|
|
6531
|
+
query?: never;
|
|
6446
6532
|
header?: never;
|
|
6447
6533
|
path: {
|
|
6448
|
-
|
|
6534
|
+
order_id: string;
|
|
6449
6535
|
};
|
|
6450
6536
|
cookie?: never;
|
|
6451
6537
|
};
|
|
6452
|
-
requestBody
|
|
6538
|
+
requestBody: {
|
|
6539
|
+
content: {
|
|
6540
|
+
"application/json": {
|
|
6541
|
+
/** Format: uuid */
|
|
6542
|
+
wallet_id: string;
|
|
6543
|
+
/** @description Comment text. `null` or empty clears the comment. */
|
|
6544
|
+
comment?: string | null;
|
|
6545
|
+
};
|
|
6546
|
+
};
|
|
6547
|
+
};
|
|
6453
6548
|
responses: {
|
|
6454
|
-
/** @description
|
|
6549
|
+
/** @description Comment saved */
|
|
6455
6550
|
200: {
|
|
6456
6551
|
headers: {
|
|
6457
6552
|
[name: string]: unknown;
|
|
@@ -6459,22 +6554,40 @@ export interface paths {
|
|
|
6459
6554
|
content: {
|
|
6460
6555
|
"application/json": {
|
|
6461
6556
|
/** @example true */
|
|
6462
|
-
success
|
|
6463
|
-
data
|
|
6464
|
-
pagination: components["schemas"]["PaginationResponse"];
|
|
6557
|
+
success?: boolean;
|
|
6558
|
+
data?: components["schemas"]["Order"];
|
|
6465
6559
|
};
|
|
6466
6560
|
};
|
|
6467
6561
|
};
|
|
6468
|
-
/** @description
|
|
6562
|
+
/** @description Validation error (e.g. comment too long) */
|
|
6563
|
+
400: {
|
|
6564
|
+
headers: {
|
|
6565
|
+
[name: string]: unknown;
|
|
6566
|
+
};
|
|
6567
|
+
content: {
|
|
6568
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6569
|
+
};
|
|
6570
|
+
};
|
|
6571
|
+
/** @description Access denied (insufficient wallet role / wrong wallet) */
|
|
6469
6572
|
403: {
|
|
6470
6573
|
headers: {
|
|
6471
6574
|
[name: string]: unknown;
|
|
6472
6575
|
};
|
|
6473
|
-
content
|
|
6576
|
+
content: {
|
|
6577
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6578
|
+
};
|
|
6579
|
+
};
|
|
6580
|
+
/** @description Order not found */
|
|
6581
|
+
404: {
|
|
6582
|
+
headers: {
|
|
6583
|
+
[name: string]: unknown;
|
|
6584
|
+
};
|
|
6585
|
+
content: {
|
|
6586
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6587
|
+
};
|
|
6474
6588
|
};
|
|
6475
6589
|
};
|
|
6476
6590
|
};
|
|
6477
|
-
put?: never;
|
|
6478
6591
|
post?: never;
|
|
6479
6592
|
delete?: never;
|
|
6480
6593
|
options?: never;
|
|
@@ -6482,7 +6595,7 @@ export interface paths {
|
|
|
6482
6595
|
patch?: never;
|
|
6483
6596
|
trace?: never;
|
|
6484
6597
|
};
|
|
6485
|
-
"/frontend/orders/
|
|
6598
|
+
"/frontend/orders/types": {
|
|
6486
6599
|
parameters: {
|
|
6487
6600
|
query?: never;
|
|
6488
6601
|
header?: never;
|
|
@@ -6490,43 +6603,23 @@ export interface paths {
|
|
|
6490
6603
|
cookie?: never;
|
|
6491
6604
|
};
|
|
6492
6605
|
/**
|
|
6493
|
-
*
|
|
6494
|
-
* @description
|
|
6606
|
+
* List order types
|
|
6607
|
+
* @description Retrieves a list of available order types for the tenant.
|
|
6495
6608
|
*
|
|
6496
6609
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6497
6610
|
*
|
|
6498
|
-
* **Access Control**: User must have access to the wallet
|
|
6499
|
-
*
|
|
6500
6611
|
*/
|
|
6501
6612
|
get: {
|
|
6502
6613
|
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
|
-
};
|
|
6614
|
+
query?: never;
|
|
6511
6615
|
header?: never;
|
|
6512
|
-
path
|
|
6513
|
-
wallet_uuid: string;
|
|
6514
|
-
};
|
|
6616
|
+
path?: never;
|
|
6515
6617
|
cookie?: never;
|
|
6516
6618
|
};
|
|
6517
6619
|
requestBody?: never;
|
|
6518
6620
|
responses: {
|
|
6519
|
-
/** @description
|
|
6621
|
+
/** @description List of available order types */
|
|
6520
6622
|
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
6623
|
headers: {
|
|
6531
6624
|
[name: string]: unknown;
|
|
6532
6625
|
};
|
|
@@ -6542,7 +6635,7 @@ export interface paths {
|
|
|
6542
6635
|
patch?: never;
|
|
6543
6636
|
trace?: never;
|
|
6544
6637
|
};
|
|
6545
|
-
"/frontend/orders/
|
|
6638
|
+
"/frontend/orders/types/{id}": {
|
|
6546
6639
|
parameters: {
|
|
6547
6640
|
query?: never;
|
|
6548
6641
|
header?: never;
|
|
@@ -6550,8 +6643,8 @@ export interface paths {
|
|
|
6550
6643
|
cookie?: never;
|
|
6551
6644
|
};
|
|
6552
6645
|
/**
|
|
6553
|
-
* Get order
|
|
6554
|
-
* @description Retrieves a specific order by
|
|
6646
|
+
* Get order type
|
|
6647
|
+
* @description Retrieves details of a specific order type by ID.
|
|
6555
6648
|
*
|
|
6556
6649
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6557
6650
|
*
|
|
@@ -6561,26 +6654,20 @@ export interface paths {
|
|
|
6561
6654
|
query?: never;
|
|
6562
6655
|
header?: never;
|
|
6563
6656
|
path: {
|
|
6564
|
-
|
|
6657
|
+
id: string;
|
|
6565
6658
|
};
|
|
6566
6659
|
cookie?: never;
|
|
6567
6660
|
};
|
|
6568
6661
|
requestBody?: never;
|
|
6569
6662
|
responses: {
|
|
6570
|
-
/** @description Order details */
|
|
6663
|
+
/** @description Order type details */
|
|
6571
6664
|
200: {
|
|
6572
6665
|
headers: {
|
|
6573
6666
|
[name: string]: unknown;
|
|
6574
6667
|
};
|
|
6575
|
-
content
|
|
6576
|
-
"application/json": {
|
|
6577
|
-
/** @example true */
|
|
6578
|
-
success: boolean;
|
|
6579
|
-
data: components["schemas"]["OrderDetail"];
|
|
6580
|
-
};
|
|
6581
|
-
};
|
|
6668
|
+
content?: never;
|
|
6582
6669
|
};
|
|
6583
|
-
/** @description Order not found */
|
|
6670
|
+
/** @description Order type not found */
|
|
6584
6671
|
404: {
|
|
6585
6672
|
headers: {
|
|
6586
6673
|
[name: string]: unknown;
|
|
@@ -6597,7 +6684,7 @@ export interface paths {
|
|
|
6597
6684
|
patch?: never;
|
|
6598
6685
|
trace?: never;
|
|
6599
6686
|
};
|
|
6600
|
-
"/frontend/orders/
|
|
6687
|
+
"/frontend/orders/calc": {
|
|
6601
6688
|
parameters: {
|
|
6602
6689
|
query?: never;
|
|
6603
6690
|
header?: never;
|
|
@@ -6605,24 +6692,34 @@ export interface paths {
|
|
|
6605
6692
|
cookie?: never;
|
|
6606
6693
|
};
|
|
6607
6694
|
/**
|
|
6608
|
-
*
|
|
6609
|
-
* @description
|
|
6695
|
+
* Calculate order
|
|
6696
|
+
* @description Pre-calculates order amounts, fees and exchange rates without creating an order.
|
|
6610
6697
|
*
|
|
6611
6698
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6612
6699
|
*
|
|
6613
6700
|
*/
|
|
6614
6701
|
get: {
|
|
6615
6702
|
parameters: {
|
|
6616
|
-
query
|
|
6617
|
-
|
|
6618
|
-
|
|
6619
|
-
|
|
6703
|
+
query: {
|
|
6704
|
+
order_type: components["schemas"]["OrderTypeId"];
|
|
6705
|
+
amount: number;
|
|
6706
|
+
from_currency_id: string;
|
|
6707
|
+
to_currency_id: string;
|
|
6708
|
+
/** @description If `true`, calculates inputs needed to receive the given amount. */
|
|
6709
|
+
is_reverse: boolean;
|
|
6710
|
+
/** @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.
|
|
6711
|
+
* */
|
|
6712
|
+
is_subtract: boolean;
|
|
6713
|
+
/** @description Destination address (for crypto withdrawals; affects network fee estimation). */
|
|
6714
|
+
to_address?: string;
|
|
6620
6715
|
};
|
|
6716
|
+
header?: never;
|
|
6717
|
+
path?: never;
|
|
6621
6718
|
cookie?: never;
|
|
6622
6719
|
};
|
|
6623
6720
|
requestBody?: never;
|
|
6624
6721
|
responses: {
|
|
6625
|
-
/** @description
|
|
6722
|
+
/** @description Calculated order details */
|
|
6626
6723
|
200: {
|
|
6627
6724
|
headers: {
|
|
6628
6725
|
[name: string]: unknown;
|
|
@@ -6631,16 +6728,27 @@ export interface paths {
|
|
|
6631
6728
|
"application/json": {
|
|
6632
6729
|
/** @example true */
|
|
6633
6730
|
success: boolean;
|
|
6634
|
-
data: components["schemas"]["
|
|
6731
|
+
data: components["schemas"]["OrderCalculation"];
|
|
6635
6732
|
};
|
|
6636
6733
|
};
|
|
6637
6734
|
};
|
|
6638
|
-
/** @description
|
|
6639
|
-
|
|
6735
|
+
/** @description Invalid request (e.g. unknown `order_type`, missing required parameter, exchange rate not found) */
|
|
6736
|
+
400: {
|
|
6640
6737
|
headers: {
|
|
6641
6738
|
[name: string]: unknown;
|
|
6642
6739
|
};
|
|
6643
|
-
content
|
|
6740
|
+
content: {
|
|
6741
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6742
|
+
};
|
|
6743
|
+
};
|
|
6744
|
+
/** @description Calculation failed (e.g. network fee estimation error) */
|
|
6745
|
+
500: {
|
|
6746
|
+
headers: {
|
|
6747
|
+
[name: string]: unknown;
|
|
6748
|
+
};
|
|
6749
|
+
content: {
|
|
6750
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
6751
|
+
};
|
|
6644
6752
|
};
|
|
6645
6753
|
};
|
|
6646
6754
|
};
|
|
@@ -6652,103 +6760,60 @@ export interface paths {
|
|
|
6652
6760
|
patch?: never;
|
|
6653
6761
|
trace?: never;
|
|
6654
6762
|
};
|
|
6655
|
-
"/frontend/orders/
|
|
6763
|
+
"/frontend/orders/wallet/{wallet_uuid}": {
|
|
6656
6764
|
parameters: {
|
|
6657
6765
|
query?: never;
|
|
6658
6766
|
header?: never;
|
|
6659
6767
|
path?: never;
|
|
6660
6768
|
cookie?: never;
|
|
6661
6769
|
};
|
|
6662
|
-
get?: never;
|
|
6663
|
-
put?: never;
|
|
6664
6770
|
/**
|
|
6665
|
-
*
|
|
6666
|
-
* @description
|
|
6771
|
+
* List orders
|
|
6772
|
+
* @description Retrieves a paginated list of orders for a specific wallet.
|
|
6667
6773
|
*
|
|
6668
6774
|
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6669
6775
|
*
|
|
6670
|
-
* **Access Control**: User must
|
|
6776
|
+
* **Access Control**: User must have access to the wallet
|
|
6671
6777
|
*
|
|
6672
6778
|
*/
|
|
6673
|
-
|
|
6779
|
+
get: {
|
|
6674
6780
|
parameters: {
|
|
6675
|
-
query?:
|
|
6781
|
+
query?: {
|
|
6782
|
+
offset?: number;
|
|
6783
|
+
limit?: number;
|
|
6784
|
+
sort_by?: string;
|
|
6785
|
+
sort_order?: "asc" | "desc";
|
|
6786
|
+
/** @description JSON-encoded filters */
|
|
6787
|
+
filters?: string;
|
|
6788
|
+
date_from?: string;
|
|
6789
|
+
date_to?: string;
|
|
6790
|
+
/** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
|
|
6791
|
+
show_low_balance?: "true" | "false";
|
|
6792
|
+
};
|
|
6676
6793
|
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
|
-
};
|
|
6794
|
+
path: {
|
|
6795
|
+
wallet_uuid: string;
|
|
6695
6796
|
};
|
|
6797
|
+
cookie?: never;
|
|
6696
6798
|
};
|
|
6799
|
+
requestBody?: never;
|
|
6697
6800
|
responses: {
|
|
6698
|
-
/** @description
|
|
6801
|
+
/** @description List of orders */
|
|
6699
6802
|
200: {
|
|
6700
6803
|
headers: {
|
|
6701
6804
|
[name: string]: unknown;
|
|
6702
6805
|
};
|
|
6703
|
-
content
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
|
|
6711
|
-
};
|
|
6712
|
-
/** @description Rate limit exceeded */
|
|
6713
|
-
429: {
|
|
6714
|
-
headers: {
|
|
6715
|
-
[name: string]: unknown;
|
|
6716
|
-
};
|
|
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"];
|
|
6806
|
+
content: {
|
|
6807
|
+
"application/json": {
|
|
6808
|
+
/** @example true */
|
|
6809
|
+
success: boolean;
|
|
6810
|
+
data: components["schemas"]["Order"][];
|
|
6811
|
+
pagination: components["schemas"]["PaginationResponse"];
|
|
6812
|
+
};
|
|
6813
|
+
};
|
|
6747
6814
|
};
|
|
6748
|
-
|
|
6749
|
-
|
|
6750
|
-
/** @description Order created */
|
|
6751
|
-
200: {
|
|
6815
|
+
/** @description Access denied to wallet */
|
|
6816
|
+
403: {
|
|
6752
6817
|
headers: {
|
|
6753
6818
|
[name: string]: unknown;
|
|
6754
6819
|
};
|
|
@@ -6756,37 +6821,59 @@ export interface paths {
|
|
|
6756
6821
|
};
|
|
6757
6822
|
};
|
|
6758
6823
|
};
|
|
6824
|
+
put?: never;
|
|
6825
|
+
post?: never;
|
|
6759
6826
|
delete?: never;
|
|
6760
6827
|
options?: never;
|
|
6761
6828
|
head?: never;
|
|
6762
6829
|
patch?: never;
|
|
6763
6830
|
trace?: never;
|
|
6764
6831
|
};
|
|
6765
|
-
"/frontend/orders/
|
|
6832
|
+
"/frontend/orders/wallet/{wallet_uuid}/csv": {
|
|
6766
6833
|
parameters: {
|
|
6767
6834
|
query?: never;
|
|
6768
6835
|
header?: never;
|
|
6769
6836
|
path?: never;
|
|
6770
6837
|
cookie?: never;
|
|
6771
6838
|
};
|
|
6772
|
-
|
|
6773
|
-
|
|
6774
|
-
|
|
6775
|
-
|
|
6839
|
+
/**
|
|
6840
|
+
* Export orders
|
|
6841
|
+
* @description Exports orders for a specific wallet as a CSV file.
|
|
6842
|
+
*
|
|
6843
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6844
|
+
*
|
|
6845
|
+
* **Access Control**: User must have access to the wallet
|
|
6846
|
+
*
|
|
6847
|
+
*/
|
|
6848
|
+
get: {
|
|
6776
6849
|
parameters: {
|
|
6777
|
-
query?:
|
|
6850
|
+
query?: {
|
|
6851
|
+
date_from?: string;
|
|
6852
|
+
date_to?: string;
|
|
6853
|
+
/** @description JSON-encoded filters */
|
|
6854
|
+
filters?: string;
|
|
6855
|
+
/** @description If `true`, includes dust orders (amount below render threshold for either currency). Defaults to `false` — dust orders are hidden. */
|
|
6856
|
+
show_low_balance?: "true" | "false";
|
|
6857
|
+
};
|
|
6778
6858
|
header?: never;
|
|
6779
|
-
path
|
|
6780
|
-
|
|
6781
|
-
};
|
|
6782
|
-
requestBody: {
|
|
6783
|
-
content: {
|
|
6784
|
-
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
6859
|
+
path: {
|
|
6860
|
+
wallet_uuid: string;
|
|
6785
6861
|
};
|
|
6862
|
+
cookie?: never;
|
|
6786
6863
|
};
|
|
6864
|
+
requestBody?: never;
|
|
6787
6865
|
responses: {
|
|
6788
|
-
/** @description
|
|
6866
|
+
/** @description CSV file download */
|
|
6789
6867
|
200: {
|
|
6868
|
+
headers: {
|
|
6869
|
+
[name: string]: unknown;
|
|
6870
|
+
};
|
|
6871
|
+
content: {
|
|
6872
|
+
"text/csv": string;
|
|
6873
|
+
};
|
|
6874
|
+
};
|
|
6875
|
+
/** @description Access denied to wallet */
|
|
6876
|
+
403: {
|
|
6790
6877
|
headers: {
|
|
6791
6878
|
[name: string]: unknown;
|
|
6792
6879
|
};
|
|
@@ -6794,37 +6881,54 @@ export interface paths {
|
|
|
6794
6881
|
};
|
|
6795
6882
|
};
|
|
6796
6883
|
};
|
|
6884
|
+
put?: never;
|
|
6885
|
+
post?: never;
|
|
6797
6886
|
delete?: never;
|
|
6798
6887
|
options?: never;
|
|
6799
6888
|
head?: never;
|
|
6800
6889
|
patch?: never;
|
|
6801
6890
|
trace?: never;
|
|
6802
6891
|
};
|
|
6803
|
-
"/frontend/orders/
|
|
6892
|
+
"/frontend/orders/id/{order_id}": {
|
|
6804
6893
|
parameters: {
|
|
6805
6894
|
query?: never;
|
|
6806
6895
|
header?: never;
|
|
6807
6896
|
path?: never;
|
|
6808
6897
|
cookie?: never;
|
|
6809
6898
|
};
|
|
6810
|
-
|
|
6811
|
-
|
|
6812
|
-
|
|
6813
|
-
|
|
6899
|
+
/**
|
|
6900
|
+
* Get order
|
|
6901
|
+
* @description Retrieves a specific order by its numeric ID.
|
|
6902
|
+
*
|
|
6903
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6904
|
+
*
|
|
6905
|
+
*/
|
|
6906
|
+
get: {
|
|
6814
6907
|
parameters: {
|
|
6815
6908
|
query?: never;
|
|
6816
6909
|
header?: never;
|
|
6817
|
-
path
|
|
6818
|
-
|
|
6819
|
-
};
|
|
6820
|
-
requestBody: {
|
|
6821
|
-
content: {
|
|
6822
|
-
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6910
|
+
path: {
|
|
6911
|
+
order_id: number;
|
|
6823
6912
|
};
|
|
6913
|
+
cookie?: never;
|
|
6824
6914
|
};
|
|
6915
|
+
requestBody?: never;
|
|
6825
6916
|
responses: {
|
|
6826
|
-
/** @description Order
|
|
6917
|
+
/** @description Order details */
|
|
6827
6918
|
200: {
|
|
6919
|
+
headers: {
|
|
6920
|
+
[name: string]: unknown;
|
|
6921
|
+
};
|
|
6922
|
+
content: {
|
|
6923
|
+
"application/json": {
|
|
6924
|
+
/** @example true */
|
|
6925
|
+
success: boolean;
|
|
6926
|
+
data: components["schemas"]["OrderDetail"];
|
|
6927
|
+
};
|
|
6928
|
+
};
|
|
6929
|
+
};
|
|
6930
|
+
/** @description Order not found */
|
|
6931
|
+
404: {
|
|
6828
6932
|
headers: {
|
|
6829
6933
|
[name: string]: unknown;
|
|
6830
6934
|
};
|
|
@@ -6832,37 +6936,54 @@ export interface paths {
|
|
|
6832
6936
|
};
|
|
6833
6937
|
};
|
|
6834
6938
|
};
|
|
6939
|
+
put?: never;
|
|
6940
|
+
post?: never;
|
|
6835
6941
|
delete?: never;
|
|
6836
6942
|
options?: never;
|
|
6837
6943
|
head?: never;
|
|
6838
6944
|
patch?: never;
|
|
6839
6945
|
trace?: never;
|
|
6840
6946
|
};
|
|
6841
|
-
"/frontend/orders/
|
|
6947
|
+
"/frontend/orders/uuid/{order_uuid}": {
|
|
6842
6948
|
parameters: {
|
|
6843
6949
|
query?: never;
|
|
6844
6950
|
header?: never;
|
|
6845
6951
|
path?: never;
|
|
6846
6952
|
cookie?: never;
|
|
6847
6953
|
};
|
|
6848
|
-
|
|
6849
|
-
|
|
6850
|
-
|
|
6851
|
-
|
|
6954
|
+
/**
|
|
6955
|
+
* Get order by UUID
|
|
6956
|
+
* @description Retrieves a specific order by its UUID.
|
|
6957
|
+
*
|
|
6958
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
6959
|
+
*
|
|
6960
|
+
*/
|
|
6961
|
+
get: {
|
|
6852
6962
|
parameters: {
|
|
6853
6963
|
query?: never;
|
|
6854
6964
|
header?: never;
|
|
6855
|
-
path
|
|
6856
|
-
|
|
6857
|
-
};
|
|
6858
|
-
requestBody: {
|
|
6859
|
-
content: {
|
|
6860
|
-
"application/json": components["schemas"]["FrontendL2FOrderRequest"];
|
|
6965
|
+
path: {
|
|
6966
|
+
order_uuid: string;
|
|
6861
6967
|
};
|
|
6968
|
+
cookie?: never;
|
|
6862
6969
|
};
|
|
6970
|
+
requestBody?: never;
|
|
6863
6971
|
responses: {
|
|
6864
|
-
/** @description Order
|
|
6972
|
+
/** @description Order details */
|
|
6865
6973
|
200: {
|
|
6974
|
+
headers: {
|
|
6975
|
+
[name: string]: unknown;
|
|
6976
|
+
};
|
|
6977
|
+
content: {
|
|
6978
|
+
"application/json": {
|
|
6979
|
+
/** @example true */
|
|
6980
|
+
success: boolean;
|
|
6981
|
+
data: components["schemas"]["OrderDetail"];
|
|
6982
|
+
};
|
|
6983
|
+
};
|
|
6984
|
+
};
|
|
6985
|
+
/** @description Order not found */
|
|
6986
|
+
404: {
|
|
6866
6987
|
headers: {
|
|
6867
6988
|
[name: string]: unknown;
|
|
6868
6989
|
};
|
|
@@ -6870,13 +6991,15 @@ export interface paths {
|
|
|
6870
6991
|
};
|
|
6871
6992
|
};
|
|
6872
6993
|
};
|
|
6994
|
+
put?: never;
|
|
6995
|
+
post?: never;
|
|
6873
6996
|
delete?: never;
|
|
6874
6997
|
options?: never;
|
|
6875
6998
|
head?: never;
|
|
6876
6999
|
patch?: never;
|
|
6877
7000
|
trace?: never;
|
|
6878
7001
|
};
|
|
6879
|
-
"/frontend/orders/
|
|
7002
|
+
"/frontend/orders/TRANSFER_INTERNAL": {
|
|
6880
7003
|
parameters: {
|
|
6881
7004
|
query?: never;
|
|
6882
7005
|
header?: never;
|
|
@@ -6885,7 +7008,15 @@ export interface paths {
|
|
|
6885
7008
|
};
|
|
6886
7009
|
get?: never;
|
|
6887
7010
|
put?: never;
|
|
6888
|
-
/**
|
|
7011
|
+
/**
|
|
7012
|
+
* Create internal transfer
|
|
7013
|
+
* @description Creates an internal transfer between wallets.
|
|
7014
|
+
*
|
|
7015
|
+
* **Authentication**: Bearer token with x-tenant-id header required
|
|
7016
|
+
*
|
|
7017
|
+
* **Access Control**: User must be admin of the source wallet
|
|
7018
|
+
*
|
|
7019
|
+
*/
|
|
6889
7020
|
post: {
|
|
6890
7021
|
parameters: {
|
|
6891
7022
|
query?: never;
|
|
@@ -6895,7 +7026,19 @@ export interface paths {
|
|
|
6895
7026
|
};
|
|
6896
7027
|
requestBody: {
|
|
6897
7028
|
content: {
|
|
6898
|
-
"application/json":
|
|
7029
|
+
"application/json": {
|
|
7030
|
+
/** Format: uuid */
|
|
7031
|
+
wallet_id: string;
|
|
7032
|
+
/** Format: uuid */
|
|
7033
|
+
from_currency_id: string;
|
|
7034
|
+
/**
|
|
7035
|
+
* Format: uuid
|
|
7036
|
+
* @description Receiver — a counterparty destination of type INTERNAL (points at the target wallet)
|
|
7037
|
+
*/
|
|
7038
|
+
counterparty_destination_id: string;
|
|
7039
|
+
amount: number;
|
|
7040
|
+
request_id: string;
|
|
7041
|
+
};
|
|
6899
7042
|
};
|
|
6900
7043
|
};
|
|
6901
7044
|
responses: {
|
|
@@ -6906,39 +7049,15 @@ export interface paths {
|
|
|
6906
7049
|
};
|
|
6907
7050
|
content?: never;
|
|
6908
7051
|
};
|
|
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"];
|
|
7052
|
+
/** @description Access denied */
|
|
7053
|
+
403: {
|
|
7054
|
+
headers: {
|
|
7055
|
+
[name: string]: unknown;
|
|
7056
|
+
};
|
|
7057
|
+
content?: never;
|
|
6937
7058
|
};
|
|
6938
|
-
|
|
6939
|
-
|
|
6940
|
-
/** @description Order created */
|
|
6941
|
-
200: {
|
|
7059
|
+
/** @description Rate limit exceeded */
|
|
7060
|
+
429: {
|
|
6942
7061
|
headers: {
|
|
6943
7062
|
[name: string]: unknown;
|
|
6944
7063
|
};
|
|
@@ -6952,7 +7071,7 @@ export interface paths {
|
|
|
6952
7071
|
patch?: never;
|
|
6953
7072
|
trace?: never;
|
|
6954
7073
|
};
|
|
6955
|
-
"/frontend/orders/
|
|
7074
|
+
"/frontend/orders/OMNIBUS_CRYPTO_TRANSFER": {
|
|
6956
7075
|
parameters: {
|
|
6957
7076
|
query?: never;
|
|
6958
7077
|
header?: never;
|
|
@@ -6961,7 +7080,7 @@ export interface paths {
|
|
|
6961
7080
|
};
|
|
6962
7081
|
get?: never;
|
|
6963
7082
|
put?: never;
|
|
6964
|
-
/** Create
|
|
7083
|
+
/** Create omnibus crypto transfer */
|
|
6965
7084
|
post: {
|
|
6966
7085
|
parameters: {
|
|
6967
7086
|
query?: never;
|
|
@@ -6971,7 +7090,7 @@ export interface paths {
|
|
|
6971
7090
|
};
|
|
6972
7091
|
requestBody: {
|
|
6973
7092
|
content: {
|
|
6974
|
-
"application/json": components["schemas"]["
|
|
7093
|
+
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
6975
7094
|
};
|
|
6976
7095
|
};
|
|
6977
7096
|
responses: {
|
|
@@ -6990,7 +7109,7 @@ export interface paths {
|
|
|
6990
7109
|
patch?: never;
|
|
6991
7110
|
trace?: never;
|
|
6992
7111
|
};
|
|
6993
|
-
"/frontend/orders/
|
|
7112
|
+
"/frontend/orders/SEGREGATED_CRYPTO_TRANSFER": {
|
|
6994
7113
|
parameters: {
|
|
6995
7114
|
query?: never;
|
|
6996
7115
|
header?: never;
|
|
@@ -6999,7 +7118,7 @@ export interface paths {
|
|
|
6999
7118
|
};
|
|
7000
7119
|
get?: never;
|
|
7001
7120
|
put?: never;
|
|
7002
|
-
/** Create
|
|
7121
|
+
/** Create segregated crypto transfer */
|
|
7003
7122
|
post: {
|
|
7004
7123
|
parameters: {
|
|
7005
7124
|
query?: never;
|
|
@@ -7009,7 +7128,7 @@ export interface paths {
|
|
|
7009
7128
|
};
|
|
7010
7129
|
requestBody: {
|
|
7011
7130
|
content: {
|
|
7012
|
-
"application/json": components["schemas"]["
|
|
7131
|
+
"application/json": components["schemas"]["FrontendCryptoTransferRequest"];
|
|
7013
7132
|
};
|
|
7014
7133
|
};
|
|
7015
7134
|
responses: {
|
|
@@ -10435,7 +10554,7 @@ export interface components {
|
|
|
10435
10554
|
* @example EXCHANGE_OMNI
|
|
10436
10555
|
* @enum {string}
|
|
10437
10556
|
*/
|
|
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";
|
|
10557
|
+
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
10558
|
OrderCalculation: {
|
|
10440
10559
|
/**
|
|
10441
10560
|
* Format: uuid
|
|
@@ -11166,11 +11285,16 @@ export interface components {
|
|
|
11166
11285
|
amount_to?: number | null;
|
|
11167
11286
|
order_type?: string;
|
|
11168
11287
|
/** @enum {string} */
|
|
11169
|
-
status?: "NEW" | "PROCESSING" | "COMPLETE" | "FAILED" | "CANCELED";
|
|
11288
|
+
status?: "NEW" | "EXPECTED" | "PROCESSING" | "COMPLETE" | "FAILED" | "CANCELED" | "REFUNDED";
|
|
11170
11289
|
/** Format: uuid */
|
|
11171
11290
|
sub_account_id?: string | null;
|
|
11172
11291
|
info?: string | null;
|
|
11173
11292
|
meta?: components["schemas"]["OrderMeta"];
|
|
11293
|
+
/**
|
|
11294
|
+
* Format: date-time
|
|
11295
|
+
* @description Requested execution time for scheduled payments (status EXPECTED); null for immediate orders
|
|
11296
|
+
*/
|
|
11297
|
+
scheduled_at?: string | null;
|
|
11174
11298
|
/** Format: date-time */
|
|
11175
11299
|
created_at?: string;
|
|
11176
11300
|
/** Format: date-time */
|
|
@@ -11215,6 +11339,11 @@ export interface components {
|
|
|
11215
11339
|
wallet_account_id?: string;
|
|
11216
11340
|
reference?: string;
|
|
11217
11341
|
note?: string;
|
|
11342
|
+
/**
|
|
11343
|
+
* Format: date-time
|
|
11344
|
+
* @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.
|
|
11345
|
+
*/
|
|
11346
|
+
scheduled_at?: string;
|
|
11218
11347
|
/** @description Optional supporting documents persisted with the order. */
|
|
11219
11348
|
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
11220
11349
|
};
|
|
@@ -11235,6 +11364,11 @@ export interface components {
|
|
|
11235
11364
|
counterparty_destination_id: string;
|
|
11236
11365
|
reference?: string;
|
|
11237
11366
|
note?: string;
|
|
11367
|
+
/**
|
|
11368
|
+
* Format: date-time
|
|
11369
|
+
* @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.
|
|
11370
|
+
*/
|
|
11371
|
+
scheduled_at?: string;
|
|
11238
11372
|
/** @description Optional supporting documents persisted with the order. */
|
|
11239
11373
|
documents?: components["schemas"]["OrderDocumentInput"][];
|
|
11240
11374
|
};
|
|
@@ -11365,6 +11499,66 @@ export interface components {
|
|
|
11365
11499
|
/** Format: uuid */
|
|
11366
11500
|
wallet_id?: string;
|
|
11367
11501
|
};
|
|
11502
|
+
MassPayout: {
|
|
11503
|
+
/** Format: uuid */
|
|
11504
|
+
id?: string;
|
|
11505
|
+
/** Format: uuid */
|
|
11506
|
+
wallet_id?: string;
|
|
11507
|
+
/** Format: uuid */
|
|
11508
|
+
currency_id?: string;
|
|
11509
|
+
/**
|
|
11510
|
+
* Format: uuid
|
|
11511
|
+
* @description Source virtual account for banking payouts (required only when the batch contains banking recipients)
|
|
11512
|
+
*/
|
|
11513
|
+
virtual_account_id?: string | null;
|
|
11514
|
+
name?: string;
|
|
11515
|
+
/** @enum {string} */
|
|
11516
|
+
status?: "DRAFT" | "PENDING_APPROVAL" | "PROCESSING" | "COMPLETED" | "FAILED" | "CANCELED";
|
|
11517
|
+
total_items?: number;
|
|
11518
|
+
total_amount?: number;
|
|
11519
|
+
completed_count?: number;
|
|
11520
|
+
failed_count?: number;
|
|
11521
|
+
/**
|
|
11522
|
+
* Format: uuid
|
|
11523
|
+
* @description User id of the wallet member who approved the batch; null until approved
|
|
11524
|
+
*/
|
|
11525
|
+
approved_by?: string | null;
|
|
11526
|
+
/** Format: date-time */
|
|
11527
|
+
approved_at?: string | null;
|
|
11528
|
+
error_message?: string | null;
|
|
11529
|
+
/** Format: date-time */
|
|
11530
|
+
created_at?: string;
|
|
11531
|
+
/** Format: date-time */
|
|
11532
|
+
finished_at?: string | null;
|
|
11533
|
+
};
|
|
11534
|
+
MassPayoutItem: {
|
|
11535
|
+
/** Format: uuid */
|
|
11536
|
+
id?: string;
|
|
11537
|
+
/** Format: uuid */
|
|
11538
|
+
destination_id?: string;
|
|
11539
|
+
amount?: number;
|
|
11540
|
+
/** @enum {string} */
|
|
11541
|
+
status?: "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED";
|
|
11542
|
+
/**
|
|
11543
|
+
* Format: uuid
|
|
11544
|
+
* @description The regular order created for this item at execution
|
|
11545
|
+
*/
|
|
11546
|
+
order_id?: string | null;
|
|
11547
|
+
error_message?: string | null;
|
|
11548
|
+
position?: number;
|
|
11549
|
+
/** Format: date-time */
|
|
11550
|
+
created_at?: string;
|
|
11551
|
+
/** Format: date-time */
|
|
11552
|
+
processed_at?: string | null;
|
|
11553
|
+
};
|
|
11554
|
+
MassPayoutItemInput: {
|
|
11555
|
+
/**
|
|
11556
|
+
* Format: uuid
|
|
11557
|
+
* @description Existing counterparty destination of the source wallet
|
|
11558
|
+
*/
|
|
11559
|
+
destination_id: string;
|
|
11560
|
+
amount: number;
|
|
11561
|
+
};
|
|
11368
11562
|
};
|
|
11369
11563
|
responses: {
|
|
11370
11564
|
/** @description Authentication credentials are missing or invalid */
|
|
@@ -11422,6 +11616,9 @@ export interface components {
|
|
|
11422
11616
|
* @example e04c0c85-b031-47d7-8541-207b4e83d91a
|
|
11423
11617
|
*/
|
|
11424
11618
|
TenantId: string;
|
|
11619
|
+
/** @description Source wallet the batches belong to */
|
|
11620
|
+
MassPayoutWalletId: string;
|
|
11621
|
+
MassPayoutId: string;
|
|
11425
11622
|
};
|
|
11426
11623
|
requestBodies: never;
|
|
11427
11624
|
headers: never;
|