squarefi-bff-api-module 1.36.35 → 1.36.36
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 +1 -0
- package/dist/api/frontend.js +10 -4
- package/dist/api/types/autogen/apiV1External.types.d.ts +541 -25
- package/dist/api/types/autogen/apiV1Frontend.types.d.ts +507 -22
- package/dist/api/types/autogen/apiV1Legacy.types.d.ts +0 -114
- package/dist/api/types/autogen/apiV1Tenant.types.d.ts +564 -22
- package/dist/api/types/autogen/apiV2.types.d.ts +64 -9
- package/dist/api/types/types.d.ts +6 -0
- package/package.json +1 -1
|
@@ -1529,6 +1529,175 @@ export interface paths {
|
|
|
1529
1529
|
patch?: never;
|
|
1530
1530
|
trace?: never;
|
|
1531
1531
|
};
|
|
1532
|
+
"/api/issuing/cardholder-documents": {
|
|
1533
|
+
parameters: {
|
|
1534
|
+
query?: never;
|
|
1535
|
+
header?: never;
|
|
1536
|
+
path?: never;
|
|
1537
|
+
cookie?: never;
|
|
1538
|
+
};
|
|
1539
|
+
get?: never;
|
|
1540
|
+
put?: never;
|
|
1541
|
+
/**
|
|
1542
|
+
* Upload KYC document files
|
|
1543
|
+
* @description Uploads KYC files against a wallet via `multipart/form-data`, with no
|
|
1544
|
+
* cardholder involved. The form field name is the document type
|
|
1545
|
+
* (`selfie`, `gov_id_front`, `gov_id_back`); one file per type, 5MB max
|
|
1546
|
+
* each, formats png/jpeg/pdf.
|
|
1547
|
+
*
|
|
1548
|
+
* Send one file per request to get per-file progress and retry a single
|
|
1549
|
+
* file, or send several at once. The response returns an `id` per file;
|
|
1550
|
+
* pass those to `POST /api/issuing/cardholders/{cardholder_id}/documents`
|
|
1551
|
+
* to attach them.
|
|
1552
|
+
*
|
|
1553
|
+
* An upload that is never attached is deleted by a cleanup sweep.
|
|
1554
|
+
*
|
|
1555
|
+
* **Authentication**: x-api-key header required
|
|
1556
|
+
*
|
|
1557
|
+
*/
|
|
1558
|
+
post: {
|
|
1559
|
+
parameters: {
|
|
1560
|
+
query?: {
|
|
1561
|
+
/** @description Wallet ID (required for non-wallet-bound API keys) */
|
|
1562
|
+
wallet_id?: string;
|
|
1563
|
+
};
|
|
1564
|
+
header?: never;
|
|
1565
|
+
path?: never;
|
|
1566
|
+
cookie?: never;
|
|
1567
|
+
};
|
|
1568
|
+
requestBody: {
|
|
1569
|
+
content: {
|
|
1570
|
+
"multipart/form-data": {
|
|
1571
|
+
/**
|
|
1572
|
+
* Format: binary
|
|
1573
|
+
* @description Identity photo / selfie
|
|
1574
|
+
*/
|
|
1575
|
+
selfie?: string;
|
|
1576
|
+
/**
|
|
1577
|
+
* Format: binary
|
|
1578
|
+
* @description Government ID, front side
|
|
1579
|
+
*/
|
|
1580
|
+
gov_id_front?: string;
|
|
1581
|
+
/**
|
|
1582
|
+
* Format: binary
|
|
1583
|
+
* @description Government ID, back side
|
|
1584
|
+
*/
|
|
1585
|
+
gov_id_back?: string;
|
|
1586
|
+
};
|
|
1587
|
+
};
|
|
1588
|
+
};
|
|
1589
|
+
responses: {
|
|
1590
|
+
/** @description Files stored; returns one upload per file */
|
|
1591
|
+
201: {
|
|
1592
|
+
headers: {
|
|
1593
|
+
[name: string]: unknown;
|
|
1594
|
+
};
|
|
1595
|
+
content: {
|
|
1596
|
+
"application/json": {
|
|
1597
|
+
/** @example true */
|
|
1598
|
+
success?: boolean;
|
|
1599
|
+
/** @example Documents uploaded successfully */
|
|
1600
|
+
message?: string;
|
|
1601
|
+
data?: {
|
|
1602
|
+
documents?: components["schemas"]["CardholderDocumentUpload"][];
|
|
1603
|
+
};
|
|
1604
|
+
};
|
|
1605
|
+
};
|
|
1606
|
+
};
|
|
1607
|
+
/** @description No file parts, unsupported field/type, or a file exceeds 5MB */
|
|
1608
|
+
400: {
|
|
1609
|
+
headers: {
|
|
1610
|
+
[name: string]: unknown;
|
|
1611
|
+
};
|
|
1612
|
+
content: {
|
|
1613
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
1614
|
+
};
|
|
1615
|
+
};
|
|
1616
|
+
/** @description Access denied to this wallet */
|
|
1617
|
+
403: {
|
|
1618
|
+
headers: {
|
|
1619
|
+
[name: string]: unknown;
|
|
1620
|
+
};
|
|
1621
|
+
content: {
|
|
1622
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
1623
|
+
};
|
|
1624
|
+
};
|
|
1625
|
+
};
|
|
1626
|
+
};
|
|
1627
|
+
delete?: never;
|
|
1628
|
+
options?: never;
|
|
1629
|
+
head?: never;
|
|
1630
|
+
patch?: never;
|
|
1631
|
+
trace?: never;
|
|
1632
|
+
};
|
|
1633
|
+
"/api/issuing/cardholder-documents/{document_id}": {
|
|
1634
|
+
parameters: {
|
|
1635
|
+
query?: never;
|
|
1636
|
+
header?: never;
|
|
1637
|
+
path?: never;
|
|
1638
|
+
cookie?: never;
|
|
1639
|
+
};
|
|
1640
|
+
get?: never;
|
|
1641
|
+
put?: never;
|
|
1642
|
+
post?: never;
|
|
1643
|
+
/**
|
|
1644
|
+
* Discard an uploaded file
|
|
1645
|
+
* @description Deletes an upload that has not been attached to a cardholder yet — the
|
|
1646
|
+
* "remove this file" action of an upload form. Attached documents are
|
|
1647
|
+
* refused with 409; replace them by attaching a new file of the same type
|
|
1648
|
+
* instead.
|
|
1649
|
+
*
|
|
1650
|
+
* **Authentication**: x-api-key header required
|
|
1651
|
+
*
|
|
1652
|
+
*/
|
|
1653
|
+
delete: {
|
|
1654
|
+
parameters: {
|
|
1655
|
+
query?: {
|
|
1656
|
+
/** @description Wallet ID (required for non-wallet-bound API keys) */
|
|
1657
|
+
wallet_id?: string;
|
|
1658
|
+
};
|
|
1659
|
+
header?: never;
|
|
1660
|
+
path: {
|
|
1661
|
+
document_id: string;
|
|
1662
|
+
};
|
|
1663
|
+
cookie?: never;
|
|
1664
|
+
};
|
|
1665
|
+
requestBody?: never;
|
|
1666
|
+
responses: {
|
|
1667
|
+
/** @description Upload discarded */
|
|
1668
|
+
200: {
|
|
1669
|
+
headers: {
|
|
1670
|
+
[name: string]: unknown;
|
|
1671
|
+
};
|
|
1672
|
+
content: {
|
|
1673
|
+
"application/json": components["schemas"]["ApiSuccessResponse"];
|
|
1674
|
+
};
|
|
1675
|
+
};
|
|
1676
|
+
/** @description Upload not found for this wallet */
|
|
1677
|
+
404: {
|
|
1678
|
+
headers: {
|
|
1679
|
+
[name: string]: unknown;
|
|
1680
|
+
};
|
|
1681
|
+
content: {
|
|
1682
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
1683
|
+
};
|
|
1684
|
+
};
|
|
1685
|
+
/** @description Upload is already attached to a cardholder */
|
|
1686
|
+
409: {
|
|
1687
|
+
headers: {
|
|
1688
|
+
[name: string]: unknown;
|
|
1689
|
+
};
|
|
1690
|
+
content: {
|
|
1691
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
1692
|
+
};
|
|
1693
|
+
};
|
|
1694
|
+
};
|
|
1695
|
+
};
|
|
1696
|
+
options?: never;
|
|
1697
|
+
head?: never;
|
|
1698
|
+
patch?: never;
|
|
1699
|
+
trace?: never;
|
|
1700
|
+
};
|
|
1532
1701
|
"/api/issuing/cardholders": {
|
|
1533
1702
|
parameters: {
|
|
1534
1703
|
query?: never;
|
|
@@ -1610,9 +1779,18 @@ export interface paths {
|
|
|
1610
1779
|
};
|
|
1611
1780
|
put?: never;
|
|
1612
1781
|
/**
|
|
1613
|
-
* Create cardholder
|
|
1614
|
-
* @description Creates a
|
|
1615
|
-
* The `vendor_id` is resolved automatically from `issuing_program_id`.
|
|
1782
|
+
* Create cardholder draft
|
|
1783
|
+
* @description Creates a cardholder in `DRAFT` status. **No vendor is contacted here** — this is
|
|
1784
|
+
* step 1 of 3. The `vendor_id` is resolved automatically from `issuing_program_id`.
|
|
1785
|
+
*
|
|
1786
|
+
* **The three steps**:
|
|
1787
|
+
* 1. `POST /api/issuing/cardholders` — create the draft (this endpoint).
|
|
1788
|
+
* 2. `POST /api/issuing/cardholders/{cardholder_id}/documents` — upload the KYC files
|
|
1789
|
+
* as `multipart/form-data`.
|
|
1790
|
+
* 3. `POST /api/issuing/cardholders/{cardholder_id}/submit` — register at the vendor;
|
|
1791
|
+
* the cardholder becomes `ACTIVE`.
|
|
1792
|
+
*
|
|
1793
|
+
* A draft cannot hold a card: card creation refuses anything that is not `ACTIVE`.
|
|
1616
1794
|
*
|
|
1617
1795
|
* **Authentication**: x-api-key header required
|
|
1618
1796
|
*
|
|
@@ -1621,6 +1799,13 @@ export interface paths {
|
|
|
1621
1799
|
*
|
|
1622
1800
|
* **Uniqueness**: `email + wallet_id + issuing_program_id` must be unique (soft-deleted records excluded).
|
|
1623
1801
|
*
|
|
1802
|
+
* **Two modes**:
|
|
1803
|
+
* - `user_data_id` mode: personal data and KYC documents are seeded from an existing
|
|
1804
|
+
* verified user (requires an approved identity/face verification and a Sumsub applicant).
|
|
1805
|
+
* Manual fields only fill gaps. The Sumsub files are attached to the draft
|
|
1806
|
+
* immediately, so step 2 is usually unnecessary in this mode.
|
|
1807
|
+
* - Manual mode: `first_name`, `last_name`, `email`, `phone` are required.
|
|
1808
|
+
*
|
|
1624
1809
|
* **Important**:
|
|
1625
1810
|
* - For API key authentication: The wallet_id is determined by the API key itself (if the key is bound to a wallet)
|
|
1626
1811
|
* - You cannot create cardholders for a wallet different from the one bound to your API key
|
|
@@ -1637,49 +1822,83 @@ export interface paths {
|
|
|
1637
1822
|
content: {
|
|
1638
1823
|
"application/json": {
|
|
1639
1824
|
/**
|
|
1640
|
-
*
|
|
1825
|
+
* Format: uuid
|
|
1826
|
+
* @description Seed personal data + KYC documents from this verified user (user_data.uuid).
|
|
1827
|
+
* When set, personal fields become optional and only fill gaps.
|
|
1828
|
+
*
|
|
1829
|
+
* @example c3d4e5f6-a7b8-9012-cdef-123456789012
|
|
1830
|
+
*/
|
|
1831
|
+
user_data_id?: string;
|
|
1832
|
+
/**
|
|
1833
|
+
* @description Cardholder's first name (required in manual mode)
|
|
1641
1834
|
* @example John
|
|
1642
1835
|
*/
|
|
1643
|
-
first_name
|
|
1836
|
+
first_name?: string;
|
|
1644
1837
|
/**
|
|
1645
|
-
* @description Cardholder's last name
|
|
1838
|
+
* @description Cardholder's last name (required in manual mode)
|
|
1646
1839
|
* @example Doe
|
|
1647
1840
|
*/
|
|
1648
|
-
last_name
|
|
1841
|
+
last_name?: string;
|
|
1649
1842
|
/**
|
|
1650
1843
|
* Format: email
|
|
1651
|
-
* @description Cardholder's email address
|
|
1844
|
+
* @description Cardholder's email address (required in manual mode)
|
|
1652
1845
|
* @example john.doe@example.com
|
|
1653
1846
|
*/
|
|
1654
|
-
email
|
|
1847
|
+
email?: string;
|
|
1655
1848
|
/**
|
|
1656
|
-
* @description Cardholder's phone number in E.164 format (
|
|
1849
|
+
* @description Cardholder's phone number in E.164 format (required in manual mode)
|
|
1657
1850
|
* @example +14155552671
|
|
1658
1851
|
*/
|
|
1659
|
-
phone
|
|
1852
|
+
phone?: string;
|
|
1660
1853
|
/**
|
|
1661
1854
|
* Format: uuid
|
|
1662
1855
|
* @description Issuing program ID (required). vendor_id is resolved from the program automatically.
|
|
1663
1856
|
* @example a1b2c3d4-e5f6-7890-abcd-ef1234567890
|
|
1664
1857
|
*/
|
|
1665
1858
|
issuing_program_id: string;
|
|
1666
|
-
/**
|
|
1667
|
-
* Format: uuid
|
|
1668
|
-
* @description Sub-account ID (required for balance card vendors)
|
|
1669
|
-
* @example b2c3d4e5-f6a7-8901-bcde-f12345678901
|
|
1670
|
-
*/
|
|
1671
|
-
sub_account_id?: string;
|
|
1672
1859
|
/**
|
|
1673
1860
|
* Format: date
|
|
1674
|
-
* @description Cardholder's date of birth
|
|
1861
|
+
* @description Cardholder's date of birth (YYYY-MM-DD)
|
|
1675
1862
|
* @example 1990-01-15
|
|
1676
1863
|
*/
|
|
1677
|
-
|
|
1864
|
+
birth_date?: string;
|
|
1678
1865
|
/**
|
|
1679
1866
|
* @description Cardholder's nationality as ISO 3166-1 alpha-3 country code
|
|
1680
1867
|
* @example USA
|
|
1681
1868
|
*/
|
|
1682
1869
|
nationality?: string;
|
|
1870
|
+
/**
|
|
1871
|
+
* @description Cardholder's gender (required by some vendors)
|
|
1872
|
+
* @enum {string}
|
|
1873
|
+
*/
|
|
1874
|
+
gender?: "M" | "F";
|
|
1875
|
+
/**
|
|
1876
|
+
* @description Relationship of the cardholder to the account holder
|
|
1877
|
+
* @enum {string}
|
|
1878
|
+
*/
|
|
1879
|
+
cardholder_relationship?: "EMPLOYEE" | "CONTRACTOR";
|
|
1880
|
+
/**
|
|
1881
|
+
* @description Identity document type (KYC vendors)
|
|
1882
|
+
* @enum {string}
|
|
1883
|
+
*/
|
|
1884
|
+
gov_id_type?: "passport" | "id_card" | "driving_license";
|
|
1885
|
+
/** @description Identity document number */
|
|
1886
|
+
gov_id_number?: string;
|
|
1887
|
+
/**
|
|
1888
|
+
* @description Issuing country of the identity document (2-3 letter code)
|
|
1889
|
+
* @example USA
|
|
1890
|
+
*/
|
|
1891
|
+
gov_id_country?: string;
|
|
1892
|
+
/**
|
|
1893
|
+
* Format: date
|
|
1894
|
+
* @description Identity document issue date (YYYY-MM-DD)
|
|
1895
|
+
*/
|
|
1896
|
+
gov_id_issuance_date?: string;
|
|
1897
|
+
/**
|
|
1898
|
+
* Format: date
|
|
1899
|
+
* @description Identity document expiry date (YYYY-MM-DD)
|
|
1900
|
+
*/
|
|
1901
|
+
gov_id_expiration_date?: string;
|
|
1683
1902
|
/** @description Cardholder's address */
|
|
1684
1903
|
address?: {
|
|
1685
1904
|
/**
|
|
@@ -1705,7 +1924,7 @@ export interface paths {
|
|
|
1705
1924
|
};
|
|
1706
1925
|
};
|
|
1707
1926
|
responses: {
|
|
1708
|
-
/** @description Cardholder created
|
|
1927
|
+
/** @description Cardholder draft created (status DRAFT, not yet registered at the vendor) */
|
|
1709
1928
|
201: {
|
|
1710
1929
|
headers: {
|
|
1711
1930
|
[name: string]: unknown;
|
|
@@ -1715,7 +1934,7 @@ export interface paths {
|
|
|
1715
1934
|
/** @example true */
|
|
1716
1935
|
success?: boolean;
|
|
1717
1936
|
data?: components["schemas"]["Cardholder"];
|
|
1718
|
-
/** @example Cardholder created successfully */
|
|
1937
|
+
/** @example Cardholder draft created successfully */
|
|
1719
1938
|
message?: string;
|
|
1720
1939
|
};
|
|
1721
1940
|
};
|
|
@@ -1914,6 +2133,219 @@ export interface paths {
|
|
|
1914
2133
|
patch?: never;
|
|
1915
2134
|
trace?: never;
|
|
1916
2135
|
};
|
|
2136
|
+
"/api/issuing/cardholders/{cardholder_id}/documents": {
|
|
2137
|
+
parameters: {
|
|
2138
|
+
query?: never;
|
|
2139
|
+
header?: never;
|
|
2140
|
+
path?: never;
|
|
2141
|
+
cookie?: never;
|
|
2142
|
+
};
|
|
2143
|
+
get?: never;
|
|
2144
|
+
put?: never;
|
|
2145
|
+
/**
|
|
2146
|
+
* Attach uploaded KYC documents to a cardholder
|
|
2147
|
+
* @description Attaches files that were already uploaded via
|
|
2148
|
+
* `POST /api/issuing/cardholder-documents` to this cardholder. The body
|
|
2149
|
+
* carries upload ids only — no file bytes travel here.
|
|
2150
|
+
*
|
|
2151
|
+
* A document of a type the cardholder already has replaces the previous
|
|
2152
|
+
* one, and the superseded file is deleted. An upload can only be attached
|
|
2153
|
+
* once, and only to a cardholder in the same wallet it was uploaded for.
|
|
2154
|
+
*
|
|
2155
|
+
* Documents are not pushed to the vendor here; they travel at
|
|
2156
|
+
* `POST /cardholders/{cardholder_id}/submit`.
|
|
2157
|
+
*
|
|
2158
|
+
* **Authentication**: x-api-key header required
|
|
2159
|
+
*
|
|
2160
|
+
* **Access Control**: Cardholder must belong to the authenticated wallet
|
|
2161
|
+
*
|
|
2162
|
+
*/
|
|
2163
|
+
post: {
|
|
2164
|
+
parameters: {
|
|
2165
|
+
query?: {
|
|
2166
|
+
/** @description Wallet ID (required for non-wallet-bound API keys) */
|
|
2167
|
+
wallet_id?: string;
|
|
2168
|
+
};
|
|
2169
|
+
header?: never;
|
|
2170
|
+
path: {
|
|
2171
|
+
cardholder_id: string;
|
|
2172
|
+
};
|
|
2173
|
+
cookie?: never;
|
|
2174
|
+
};
|
|
2175
|
+
requestBody: {
|
|
2176
|
+
content: {
|
|
2177
|
+
"application/json": {
|
|
2178
|
+
/** @description Ids returned by the upload endpoint */
|
|
2179
|
+
document_ids: string[];
|
|
2180
|
+
};
|
|
2181
|
+
};
|
|
2182
|
+
};
|
|
2183
|
+
responses: {
|
|
2184
|
+
/** @description Documents attached; returns the updated cardholder */
|
|
2185
|
+
200: {
|
|
2186
|
+
headers: {
|
|
2187
|
+
[name: string]: unknown;
|
|
2188
|
+
};
|
|
2189
|
+
content: {
|
|
2190
|
+
"application/json": {
|
|
2191
|
+
/** @example true */
|
|
2192
|
+
success?: boolean;
|
|
2193
|
+
/** @example Documents attached successfully */
|
|
2194
|
+
message?: string;
|
|
2195
|
+
data?: components["schemas"]["Cardholder"];
|
|
2196
|
+
};
|
|
2197
|
+
};
|
|
2198
|
+
};
|
|
2199
|
+
/** @description document_ids missing, empty, or listing two files of one type */
|
|
2200
|
+
400: {
|
|
2201
|
+
headers: {
|
|
2202
|
+
[name: string]: unknown;
|
|
2203
|
+
};
|
|
2204
|
+
content: {
|
|
2205
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2206
|
+
};
|
|
2207
|
+
};
|
|
2208
|
+
/** @description Access denied to this cardholder */
|
|
2209
|
+
403: {
|
|
2210
|
+
headers: {
|
|
2211
|
+
[name: string]: unknown;
|
|
2212
|
+
};
|
|
2213
|
+
content: {
|
|
2214
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2215
|
+
};
|
|
2216
|
+
};
|
|
2217
|
+
/** @description Cardholder or upload id not found */
|
|
2218
|
+
404: {
|
|
2219
|
+
headers: {
|
|
2220
|
+
[name: string]: unknown;
|
|
2221
|
+
};
|
|
2222
|
+
content: {
|
|
2223
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2224
|
+
};
|
|
2225
|
+
};
|
|
2226
|
+
/** @description An upload is already attached to a cardholder */
|
|
2227
|
+
409: {
|
|
2228
|
+
headers: {
|
|
2229
|
+
[name: string]: unknown;
|
|
2230
|
+
};
|
|
2231
|
+
content: {
|
|
2232
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2233
|
+
};
|
|
2234
|
+
};
|
|
2235
|
+
};
|
|
2236
|
+
};
|
|
2237
|
+
delete?: never;
|
|
2238
|
+
options?: never;
|
|
2239
|
+
head?: never;
|
|
2240
|
+
patch?: never;
|
|
2241
|
+
trace?: never;
|
|
2242
|
+
};
|
|
2243
|
+
"/api/issuing/cardholders/{cardholder_id}/submit": {
|
|
2244
|
+
parameters: {
|
|
2245
|
+
query?: never;
|
|
2246
|
+
header?: never;
|
|
2247
|
+
path?: never;
|
|
2248
|
+
cookie?: never;
|
|
2249
|
+
};
|
|
2250
|
+
get?: never;
|
|
2251
|
+
put?: never;
|
|
2252
|
+
/**
|
|
2253
|
+
* Submit cardholder draft
|
|
2254
|
+
* @description Registers a `DRAFT` cardholder at the vendor and flips it to `ACTIVE` — step 3 of the
|
|
2255
|
+
* create flow. The vendor is resolved from the cardholder's issuing program.
|
|
2256
|
+
*
|
|
2257
|
+
* **Dossier check**: refused with `400 CARDHOLDER_SUBMISSION_INCOMPLETE` while the
|
|
2258
|
+
* program's KYC level is not met; `error.details.missing` lists every field and file
|
|
2259
|
+
* still needed (e.g. `gender`, `documents: selfie`).
|
|
2260
|
+
*
|
|
2261
|
+
* **Retryable**: a failed submit leaves the draft untouched — complete the dossier and
|
|
2262
|
+
* call this endpoint again.
|
|
2263
|
+
*
|
|
2264
|
+
* **Authentication**: x-api-key header required
|
|
2265
|
+
*
|
|
2266
|
+
*/
|
|
2267
|
+
post: {
|
|
2268
|
+
parameters: {
|
|
2269
|
+
query?: {
|
|
2270
|
+
/** @description Wallet ID for access validation (implied by a wallet-bound API key) */
|
|
2271
|
+
wallet_id?: string;
|
|
2272
|
+
};
|
|
2273
|
+
header?: never;
|
|
2274
|
+
path: {
|
|
2275
|
+
cardholder_id: string;
|
|
2276
|
+
};
|
|
2277
|
+
cookie?: never;
|
|
2278
|
+
};
|
|
2279
|
+
requestBody?: never;
|
|
2280
|
+
responses: {
|
|
2281
|
+
/** @description Cardholder registered at the vendor and activated */
|
|
2282
|
+
200: {
|
|
2283
|
+
headers: {
|
|
2284
|
+
[name: string]: unknown;
|
|
2285
|
+
};
|
|
2286
|
+
content: {
|
|
2287
|
+
"application/json": {
|
|
2288
|
+
/** @example true */
|
|
2289
|
+
success?: boolean;
|
|
2290
|
+
/** @example Cardholder submitted successfully */
|
|
2291
|
+
message?: string;
|
|
2292
|
+
data?: components["schemas"]["Cardholder"];
|
|
2293
|
+
};
|
|
2294
|
+
};
|
|
2295
|
+
};
|
|
2296
|
+
/** @description KYC dossier incomplete, or the program has no vendor configured */
|
|
2297
|
+
400: {
|
|
2298
|
+
headers: {
|
|
2299
|
+
[name: string]: unknown;
|
|
2300
|
+
};
|
|
2301
|
+
content: {
|
|
2302
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2303
|
+
};
|
|
2304
|
+
};
|
|
2305
|
+
/** @description Access denied to this cardholder */
|
|
2306
|
+
403: {
|
|
2307
|
+
headers: {
|
|
2308
|
+
[name: string]: unknown;
|
|
2309
|
+
};
|
|
2310
|
+
content: {
|
|
2311
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2312
|
+
};
|
|
2313
|
+
};
|
|
2314
|
+
/** @description Cardholder not found */
|
|
2315
|
+
404: {
|
|
2316
|
+
headers: {
|
|
2317
|
+
[name: string]: unknown;
|
|
2318
|
+
};
|
|
2319
|
+
content: {
|
|
2320
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2321
|
+
};
|
|
2322
|
+
};
|
|
2323
|
+
/** @description Cardholder is not a draft (already submitted) */
|
|
2324
|
+
409: {
|
|
2325
|
+
headers: {
|
|
2326
|
+
[name: string]: unknown;
|
|
2327
|
+
};
|
|
2328
|
+
content: {
|
|
2329
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2330
|
+
};
|
|
2331
|
+
};
|
|
2332
|
+
/** @description Vendor rejected the registration; the draft is kept */
|
|
2333
|
+
502: {
|
|
2334
|
+
headers: {
|
|
2335
|
+
[name: string]: unknown;
|
|
2336
|
+
};
|
|
2337
|
+
content: {
|
|
2338
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
2339
|
+
};
|
|
2340
|
+
};
|
|
2341
|
+
};
|
|
2342
|
+
};
|
|
2343
|
+
delete?: never;
|
|
2344
|
+
options?: never;
|
|
2345
|
+
head?: never;
|
|
2346
|
+
patch?: never;
|
|
2347
|
+
trace?: never;
|
|
2348
|
+
};
|
|
1917
2349
|
"/api/issuing/cards": {
|
|
1918
2350
|
parameters: {
|
|
1919
2351
|
query?: never;
|
|
@@ -3677,6 +4109,30 @@ export interface paths {
|
|
|
3677
4109
|
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
3678
4110
|
};
|
|
3679
4111
|
};
|
|
4112
|
+
/** @description Conflict - the card provider refused the top-up during the pre-flight
|
|
4113
|
+
* allowance check (no order was created, the wallet was not debited):
|
|
4114
|
+
* - `TOPUP_NOT_ALLOWED` — provider does not allow a top-up for this account
|
|
4115
|
+
* - `TOPUP_AMOUNT_EXCEEDS_VENDOR_LIMIT` — amount is above the provider's cap
|
|
4116
|
+
* */
|
|
4117
|
+
409: {
|
|
4118
|
+
headers: {
|
|
4119
|
+
[name: string]: unknown;
|
|
4120
|
+
};
|
|
4121
|
+
content: {
|
|
4122
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
4123
|
+
};
|
|
4124
|
+
};
|
|
4125
|
+
/** @description `TOPUP_CHECK_UNAVAILABLE` — the provider allowance check could not be
|
|
4126
|
+
* completed, so the top-up was refused rather than attempted. Retry later.
|
|
4127
|
+
* */
|
|
4128
|
+
503: {
|
|
4129
|
+
headers: {
|
|
4130
|
+
[name: string]: unknown;
|
|
4131
|
+
};
|
|
4132
|
+
content: {
|
|
4133
|
+
"application/json": components["schemas"]["ApiErrorResponse"];
|
|
4134
|
+
};
|
|
4135
|
+
};
|
|
3680
4136
|
};
|
|
3681
4137
|
};
|
|
3682
4138
|
delete?: never;
|
|
@@ -6235,6 +6691,10 @@ export interface paths {
|
|
|
6235
6691
|
*
|
|
6236
6692
|
* **Important**: This endpoint only works with API keys that are bound to a specific wallet.
|
|
6237
6693
|
*
|
|
6694
|
+
* **Date range**: use `from_date` / `to_date` to request transactions for a specific period.
|
|
6695
|
+
* Both bounds are inclusive and are applied to the transaction `created_at` timestamp;
|
|
6696
|
+
* either one may be supplied on its own for an open-ended range.
|
|
6697
|
+
*
|
|
6238
6698
|
*/
|
|
6239
6699
|
get: {
|
|
6240
6700
|
parameters: {
|
|
@@ -6247,10 +6707,42 @@ export interface paths {
|
|
|
6247
6707
|
sort_by?: string;
|
|
6248
6708
|
/** @description Sort direction */
|
|
6249
6709
|
sort_order?: "ASC" | "DESC";
|
|
6250
|
-
/** @description
|
|
6251
|
-
|
|
6710
|
+
/** @description Filter by status (comma-separated for multi-select — new, pending, processing, complete, canceled, failed) */
|
|
6711
|
+
status?: string;
|
|
6712
|
+
/** @description Transaction type (direction) */
|
|
6713
|
+
type?: "deposit" | "withdrawal";
|
|
6714
|
+
/** @description Transaction method filter */
|
|
6715
|
+
method?: "p2p" | "crypto" | "bank_transfer" | "exchange" | "sbp" | "internal_fiat";
|
|
6716
|
+
/** @description Transaction subtype (e.g. `DEPOSIT_CRYPTO_EXTERNAL`, `CARD_PROVIDER_DEPOSIT`) */
|
|
6717
|
+
record_type?: string;
|
|
6718
|
+
/** @description Filter by sender or recipient address (matches `from` OR `to` fields) */
|
|
6719
|
+
address?: string;
|
|
6720
|
+
/** @description Start of the `created_at` range (inclusive).
|
|
6721
|
+
* Accepts a date (`2026-04-08`) or a full ISO 8601 timestamp (`2026-04-08T00:00:00Z`).
|
|
6252
6722
|
* */
|
|
6253
|
-
|
|
6723
|
+
from_date?: string;
|
|
6724
|
+
/** @description End of the `created_at` range (inclusive).
|
|
6725
|
+
* Accepts a date (`2026-04-08`) or a full ISO 8601 timestamp (`2026-04-08T23:59:59Z`).
|
|
6726
|
+
* */
|
|
6727
|
+
to_date?: string;
|
|
6728
|
+
/**
|
|
6729
|
+
* @deprecated
|
|
6730
|
+
* @description Deprecated alias for `from_date`. Ignored when `from_date` is present.
|
|
6731
|
+
*/
|
|
6732
|
+
from_created_at?: string;
|
|
6733
|
+
/**
|
|
6734
|
+
* @deprecated
|
|
6735
|
+
* @description Deprecated alias for `to_date`. Ignored when `to_date` is present.
|
|
6736
|
+
*/
|
|
6737
|
+
to_created_at?: string;
|
|
6738
|
+
/** @description Filter by currency UUID */
|
|
6739
|
+
currency_uuid?: string;
|
|
6740
|
+
/** @description Filter by billing currency from transaction meta */
|
|
6741
|
+
meta_billing_currency?: string;
|
|
6742
|
+
/** @description Filter by transaction currency from transaction meta */
|
|
6743
|
+
meta_transaction_currency?: string;
|
|
6744
|
+
/** @description When false (default), dust transactions below threshold are hidden */
|
|
6745
|
+
show_low_balance?: boolean;
|
|
6254
6746
|
};
|
|
6255
6747
|
header?: never;
|
|
6256
6748
|
path?: never;
|
|
@@ -6274,7 +6766,7 @@ export interface paths {
|
|
|
6274
6766
|
};
|
|
6275
6767
|
/** @description Bad request - One of the following:
|
|
6276
6768
|
* - API key is not bound to a wallet
|
|
6277
|
-
* - Invalid
|
|
6769
|
+
* - Invalid filter value (unknown `status`/`type`/`method`, malformed `from_date`/`to_date`)
|
|
6278
6770
|
* */
|
|
6279
6771
|
400: {
|
|
6280
6772
|
headers: {
|
|
@@ -6687,6 +7179,30 @@ export interface components {
|
|
|
6687
7179
|
issuing_program_id?: string;
|
|
6688
7180
|
address?: components["schemas"]["CardholderAddress"];
|
|
6689
7181
|
};
|
|
7182
|
+
/** @description An uploaded KYC file, addressable before it is attached to a cardholder */
|
|
7183
|
+
CardholderDocumentUpload: {
|
|
7184
|
+
/**
|
|
7185
|
+
* Format: uuid
|
|
7186
|
+
* @description Pass this to the attach endpoint
|
|
7187
|
+
*/
|
|
7188
|
+
id?: string;
|
|
7189
|
+
/**
|
|
7190
|
+
* @description Document type, taken from the multipart field name
|
|
7191
|
+
* @enum {string}
|
|
7192
|
+
*/
|
|
7193
|
+
type?: "selfie" | "gov_id_front" | "gov_id_back";
|
|
7194
|
+
/** @description Original file name, when the client sent one */
|
|
7195
|
+
filename?: string | null;
|
|
7196
|
+
/** @example image/png */
|
|
7197
|
+
content_type?: string;
|
|
7198
|
+
/**
|
|
7199
|
+
* @description File size in bytes
|
|
7200
|
+
* @example 284512
|
|
7201
|
+
*/
|
|
7202
|
+
size?: number;
|
|
7203
|
+
/** Format: date-time */
|
|
7204
|
+
created_at?: string;
|
|
7205
|
+
};
|
|
6690
7206
|
/** @description Sub-account object */
|
|
6691
7207
|
IssuingSubAccount: {
|
|
6692
7208
|
/**
|