squarefi-bff-api-module 1.17.23 → 1.17.24

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/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.17.26] - 2025-05-14
9
+
10
+ ### Added
11
+
12
+ - Added Persona inquiries initialization for advanced KYC workflows
13
+
14
+ ## [1.17.25] - 2025-05-14
15
+
16
+ ### Added
17
+
18
+ - Added Rails and Forms namespaces with new types and methods for KYC integration
19
+ - Enhanced support for onboarding and compliance flows
20
+
21
+ ## [1.17.24] - 2025-05-14
22
+
23
+ ### Added
24
+
25
+ - Persona inquiries initialization for advanced KYC workflows
26
+ - Rails and Forms namespaces with new types and methods for KYC integration (onboarding/compliance flows)
27
+
28
+ ### Changed
29
+
30
+ - Removed ExtendedSubAccount type definitions to streamline API types (simplified and unified sub-account type management)
31
+
8
32
  ## [1.17.23] - 2025-05-12
9
33
 
10
34
  ### Changed
package/README.md CHANGED
@@ -86,6 +86,7 @@ Access different API functionalities through the client:
86
86
  - Card status management
87
87
  - `squarefi_bff_api_client.kyc` - Know Your Customer procedures
88
88
  - Sumsub integration
89
+ - Persona inquiries initialization
89
90
  - `squarefi_bff_api_client.list` - System data operations
90
91
  - Currencies list (`/system/currencies`)
91
92
  - Chains list (`/system/chains`)
@@ -94,6 +95,10 @@ Access different API functionalities through the client:
94
95
  - Create orders by type
95
96
  - Calculate exchange rates
96
97
  - Support for INTERNAL_TRANSFER order type
98
+ - `squarefi_bff_api_client.rails` - KYC onboarding rails
99
+ - Manage onboarding rails and flows
100
+ - `squarefi_bff_api_client.forms` - KYC forms
101
+ - Manage and submit KYC forms
97
102
  - `squarefi_bff_api_client.tenants` - Tenant management operations
98
103
  - Tenant configuration
99
104
  - `squarefi_bff_api_client.user` - User profile operations
@@ -125,6 +130,8 @@ Access different API functionalities through the client:
125
130
  - 📦 Comprehensive constants and types
126
131
  - 🛡️ Secure request handling
127
132
  - 🔑 Multi-tenant support
133
+ - 🧩 Persona KYC integration
134
+ - 📝 Rails and Forms modules for flexible onboarding/compliance
128
135
 
129
136
  ## 🛠️ Development
130
137
 
package/dist/api/kyc.d.ts CHANGED
@@ -3,4 +3,13 @@ export declare const kyc: {
3
3
  sumsub: {
4
4
  generate_token: (data: API.KYC.Sumsub.GenerateToken.Request) => Promise<API.KYC.Sumsub.GenerateToken.Response>;
5
5
  };
6
+ rails: {
7
+ info: {
8
+ getAll: ({ wallet_id }: API.KYC.Rails.RailInfo.List.Request) => Promise<API.KYC.Rails.RailInfo.List.Response>;
9
+ getSingle: ({ wallet_id, rail_id }: API.KYC.Rails.RailInfo.SingleRail.Request) => Promise<API.KYC.Rails.RailInfo.RailInfo>;
10
+ };
11
+ submit: {
12
+ single: ({ wallet_id, rail_id }: API.KYC.Rails.Submit.Single.Request) => Promise<API.KYC.Rails.RailInfo.RailInfo>;
13
+ };
14
+ };
6
15
  };
package/dist/api/kyc.js CHANGED
@@ -6,4 +6,13 @@ exports.kyc = {
6
6
  sumsub: {
7
7
  generate_token: (data) => apiClientFactory_1.apiClientV1.postRequest('/kyc/sumsub/generate_token', { data }),
8
8
  },
9
+ rails: {
10
+ info: {
11
+ getAll: ({ wallet_id }) => apiClientFactory_1.apiClientV2.getRequest(`/kyc/${wallet_id}/rails`),
12
+ getSingle: ({ wallet_id, rail_id }) => apiClientFactory_1.apiClientV2.getRequest(`/kyc/${wallet_id}/rails/${rail_id}`),
13
+ },
14
+ submit: {
15
+ single: ({ wallet_id, rail_id }) => apiClientFactory_1.apiClientV2.postRequest(`/kyc/${wallet_id}/rails/${rail_id}`),
16
+ },
17
+ },
9
18
  };
@@ -0,0 +1,6 @@
1
+ import { API } from './types';
2
+ export declare const persona: {
3
+ inquiries: {
4
+ init: ({ wallet_id, type }: API.Persona.Inquiries.Init.Request) => Promise<API.Persona.Inquiries.Init.Response>;
5
+ };
6
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.persona = void 0;
4
+ const apiClientFactory_1 = require("../utils/apiClientFactory");
5
+ exports.persona = {
6
+ inquiries: {
7
+ init: ({ wallet_id, type }) => apiClientFactory_1.apiClientV2.getRequest(`/persona/inquiries/${wallet_id}/${type}`),
8
+ },
9
+ };
@@ -844,6 +844,93 @@ export declare namespace API {
844
844
  }
845
845
  }
846
846
  }
847
+ namespace Forms {
848
+ namespace FormField {
849
+ type FormFieldType = 'text' | 'email' | 'password' | 'radio' | 'select' | 'checkbox' | 'textarea' | 'number' | 'date' | 'switch' | 'file';
850
+ interface FormFieldValidation {
851
+ pattern?: string;
852
+ min?: number;
853
+ max?: number;
854
+ min_length?: number;
855
+ max_length?: number;
856
+ message?: string;
857
+ }
858
+ interface FormFieldOption {
859
+ label: string;
860
+ value: string;
861
+ }
862
+ interface FormField {
863
+ name: string;
864
+ type: FormFieldType;
865
+ label: string;
866
+ placeholder?: string;
867
+ required?: boolean;
868
+ order?: number;
869
+ options?: FormFieldOption[];
870
+ rows?: number;
871
+ value?: string;
872
+ accept?: string;
873
+ validation?: FormFieldValidation;
874
+ }
875
+ }
876
+ namespace FormGroup {
877
+ type FormGroupFieldType = 'group' | 'field';
878
+ interface FormGroupFieldGroup {
879
+ type: 'group';
880
+ fields: API.KYC.Forms.FormGroup.FormGroup[];
881
+ }
882
+ interface FormGroupFieldField {
883
+ type: 'field';
884
+ field: API.KYC.Forms.FormField.FormField;
885
+ }
886
+ interface FormGroup {
887
+ name?: string;
888
+ isArray?: boolean;
889
+ label: string;
890
+ fields: Array<FormGroupFieldGroup | FormGroupFieldField>;
891
+ }
892
+ }
893
+ }
894
+ namespace Rails {
895
+ type RailStatus = 'APPROVED' | 'DECLINED' | 'PENDING' | 'HOLD' | 'DOUBLE' | 'SOFT_REJECT' | 'REJECT' | 'UNVERIFIED';
896
+ interface WalletRail {
897
+ id: string;
898
+ status: API.KYC.Rails.RailStatus;
899
+ }
900
+ namespace RailInfo {
901
+ interface RailInfo {
902
+ id: string;
903
+ code: string;
904
+ name: string;
905
+ wallet_rail: WalletRail;
906
+ }
907
+ namespace SingleRail {
908
+ interface Request {
909
+ wallet_id: string;
910
+ rail_id: string;
911
+ }
912
+ type Response = RailInfo;
913
+ }
914
+ namespace List {
915
+ interface Request {
916
+ wallet_id: string;
917
+ }
918
+ type Response = {
919
+ total: number;
920
+ data: RailInfo[];
921
+ };
922
+ }
923
+ }
924
+ namespace Submit {
925
+ namespace Single {
926
+ interface Request {
927
+ wallet_id: string;
928
+ rail_id: string;
929
+ }
930
+ type Response = API.KYC.Rails.RailInfo.RailInfo;
931
+ }
932
+ }
933
+ }
847
934
  }
848
935
  namespace Location {
849
936
  namespace Countries {
@@ -1285,6 +1372,77 @@ export declare namespace API {
1285
1372
  }
1286
1373
  }
1287
1374
  }
1375
+ namespace Persona {
1376
+ namespace Inquiries {
1377
+ type InquiryType = 'individual' | 'business';
1378
+ namespace Init {
1379
+ interface Request {
1380
+ wallet_id: string;
1381
+ type: InquiryType;
1382
+ }
1383
+ type Response = {
1384
+ referenceId: string;
1385
+ templateId: string;
1386
+ };
1387
+ }
1388
+ }
1389
+ }
1390
+ namespace VirtualAccount {
1391
+ namespace Programs {
1392
+ interface OrderType {
1393
+ id: string;
1394
+ description: string | null;
1395
+ }
1396
+ interface OrderTypeListItem {
1397
+ order_type: OrderType;
1398
+ order_type_id: string;
1399
+ }
1400
+ interface CurrencyItem {
1401
+ icon: string | null;
1402
+ name: string;
1403
+ type: string;
1404
+ uuid: string;
1405
+ symbol: string;
1406
+ }
1407
+ interface IntegrationVendor {
1408
+ id: string;
1409
+ code: string;
1410
+ name: string;
1411
+ }
1412
+ interface Program {
1413
+ id: string;
1414
+ name: string;
1415
+ vendor_id: string | null;
1416
+ tenant_id: string;
1417
+ status: string;
1418
+ account_currency_id: string;
1419
+ description: string;
1420
+ icon: string | null;
1421
+ code: string;
1422
+ kyc_rails_id: string;
1423
+ consent_text: string | null;
1424
+ integration_vendors_id: string;
1425
+ is_hidden: boolean;
1426
+ destination_currency_id: string;
1427
+ integration_vendor: API.VirtualAccount.Programs.IntegrationVendor;
1428
+ account_currency_details: API.VirtualAccount.Programs.CurrencyItem;
1429
+ destination_currency_details: API.VirtualAccount.Programs.CurrencyItem;
1430
+ virtual_accounts_programs_order_types: API.VirtualAccount.Programs.OrderTypeListItem[];
1431
+ }
1432
+ namespace List {
1433
+ interface Request {
1434
+ offset?: number;
1435
+ limit?: number;
1436
+ pagination?: boolean;
1437
+ }
1438
+ interface Response {
1439
+ data: Program[];
1440
+ count: number;
1441
+ has_more: boolean;
1442
+ }
1443
+ }
1444
+ }
1445
+ }
1288
1446
  namespace User {
1289
1447
  interface User {
1290
1448
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squarefi-bff-api-module",
3
- "version": "1.17.23",
3
+ "version": "1.17.24",
4
4
  "description": "Squarefi BFF API client module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/api/kyc.ts CHANGED
@@ -1,10 +1,22 @@
1
1
  import { API } from './types';
2
2
 
3
- import { apiClientV1 } from '../utils/apiClientFactory';
3
+ import { apiClientV1, apiClientV2 } from '../utils/apiClientFactory';
4
4
 
5
5
  export const kyc = {
6
6
  sumsub: {
7
7
  generate_token: (data: API.KYC.Sumsub.GenerateToken.Request) =>
8
8
  apiClientV1.postRequest<API.KYC.Sumsub.GenerateToken.Response>('/kyc/sumsub/generate_token', { data }),
9
9
  },
10
+ rails: {
11
+ info: {
12
+ getAll: ({ wallet_id }: API.KYC.Rails.RailInfo.List.Request) =>
13
+ apiClientV2.getRequest<API.KYC.Rails.RailInfo.List.Response>(`/kyc/${wallet_id}/rails`),
14
+ getSingle: ({ wallet_id, rail_id }: API.KYC.Rails.RailInfo.SingleRail.Request) =>
15
+ apiClientV2.getRequest<API.KYC.Rails.RailInfo.SingleRail.Response>(`/kyc/${wallet_id}/rails/${rail_id}`),
16
+ },
17
+ submit: {
18
+ single: ({ wallet_id, rail_id }: API.KYC.Rails.Submit.Single.Request) =>
19
+ apiClientV2.postRequest<API.KYC.Rails.Submit.Single.Response>(`/kyc/${wallet_id}/rails/${rail_id}`),
20
+ },
21
+ },
10
22
  };
@@ -0,0 +1,9 @@
1
+ import { apiClientV2 } from '../utils/apiClientFactory';
2
+ import { API } from './types';
3
+
4
+ export const persona = {
5
+ inquiries: {
6
+ init: ({ wallet_id, type }: API.Persona.Inquiries.Init.Request) =>
7
+ apiClientV2.getRequest<API.Persona.Inquiries.Init.Response>(`/persona/inquiries/${wallet_id}/${type}`),
8
+ },
9
+ };
package/src/api/types.ts CHANGED
@@ -1001,6 +1001,121 @@ export namespace API {
1001
1001
  }
1002
1002
  }
1003
1003
  }
1004
+ export namespace Forms {
1005
+ export namespace FormField {
1006
+ export type FormFieldType =
1007
+ | 'text'
1008
+ | 'email'
1009
+ | 'password'
1010
+ | 'radio'
1011
+ | 'select'
1012
+ | 'checkbox'
1013
+ | 'textarea'
1014
+ | 'number'
1015
+ | 'date'
1016
+ | 'switch'
1017
+ | 'file';
1018
+
1019
+ export interface FormFieldValidation {
1020
+ pattern?: string;
1021
+ min?: number;
1022
+ max?: number;
1023
+ min_length?: number;
1024
+ max_length?: number;
1025
+ message?: string;
1026
+ }
1027
+
1028
+ export interface FormFieldOption {
1029
+ label: string;
1030
+ value: string;
1031
+ }
1032
+ export interface FormField {
1033
+ name: string;
1034
+ type: FormFieldType;
1035
+ label: string;
1036
+ placeholder?: string;
1037
+ required?: boolean;
1038
+ order?: number;
1039
+ options?: FormFieldOption[];
1040
+ rows?: number;
1041
+ value?: string;
1042
+ accept?: string;
1043
+ validation?: FormFieldValidation;
1044
+ }
1045
+ }
1046
+
1047
+ export namespace FormGroup {
1048
+ export type FormGroupFieldType = 'group' | 'field';
1049
+ export interface FormGroupFieldGroup {
1050
+ type: 'group';
1051
+ fields: API.KYC.Forms.FormGroup.FormGroup[];
1052
+ }
1053
+ export interface FormGroupFieldField {
1054
+ type: 'field';
1055
+ field: API.KYC.Forms.FormField.FormField;
1056
+ }
1057
+ export interface FormGroup {
1058
+ name?: string;
1059
+ isArray?: boolean;
1060
+ label: string;
1061
+ fields: Array<FormGroupFieldGroup | FormGroupFieldField>;
1062
+ }
1063
+ }
1064
+ }
1065
+
1066
+ export namespace Rails {
1067
+ export type RailStatus =
1068
+ | 'APPROVED'
1069
+ | 'DECLINED'
1070
+ | 'PENDING'
1071
+ | 'HOLD'
1072
+ | 'DOUBLE'
1073
+ | 'SOFT_REJECT'
1074
+ | 'REJECT'
1075
+ | 'UNVERIFIED';
1076
+
1077
+ export interface WalletRail {
1078
+ id: string;
1079
+ status: API.KYC.Rails.RailStatus;
1080
+ }
1081
+
1082
+ export namespace RailInfo {
1083
+ export interface RailInfo {
1084
+ id: string;
1085
+ code: string;
1086
+ name: string;
1087
+ wallet_rail: WalletRail;
1088
+ }
1089
+
1090
+ export namespace SingleRail {
1091
+ export interface Request {
1092
+ wallet_id: string;
1093
+ rail_id: string;
1094
+ }
1095
+ export type Response = RailInfo;
1096
+ }
1097
+
1098
+ export namespace List {
1099
+ export interface Request {
1100
+ wallet_id: string;
1101
+ }
1102
+ export type Response = {
1103
+ total: number;
1104
+ data: RailInfo[];
1105
+ };
1106
+ }
1107
+ }
1108
+
1109
+ export namespace Submit {
1110
+ export namespace Single {
1111
+ export interface Request {
1112
+ wallet_id: string;
1113
+ rail_id: string;
1114
+ }
1115
+ export type Response = API.KYC.Rails.RailInfo.RailInfo;
1116
+ }
1117
+ }
1118
+ }
1004
1119
  }
1005
1120
 
1006
1121
  export namespace Location {
@@ -1556,6 +1671,83 @@ export namespace API {
1556
1671
  // }
1557
1672
  }
1558
1673
 
1674
+ export namespace Persona {
1675
+ export namespace Inquiries {
1676
+ export type InquiryType = 'individual' | 'business';
1677
+ export namespace Init {
1678
+ export interface Request {
1679
+ wallet_id: string;
1680
+ type: InquiryType;
1681
+ }
1682
+ export type Response = {
1683
+ referenceId: string;
1684
+ templateId: string;
1685
+ };
1686
+ }
1687
+ }
1688
+ }
1689
+
1690
+ export namespace VirtualAccount {
1691
+ export namespace Programs {
1692
+ export interface OrderType {
1693
+ id: string;
1694
+ description: string | null;
1695
+ }
1696
+ export interface OrderTypeListItem {
1697
+ order_type: OrderType;
1698
+ order_type_id: string;
1699
+ }
1700
+
1701
+ export interface CurrencyItem {
1702
+ icon: string | null;
1703
+ name: string;
1704
+ type: string;
1705
+ uuid: string;
1706
+ symbol: string;
1707
+ }
1708
+
1709
+ export interface IntegrationVendor {
1710
+ id: string;
1711
+ code: string;
1712
+ name: string;
1713
+ }
1714
+
1715
+ export interface Program {
1716
+ id: string;
1717
+ name: string;
1718
+ vendor_id: string | null;
1719
+ tenant_id: string;
1720
+ status: string;
1721
+ account_currency_id: string;
1722
+ description: string;
1723
+ icon: string | null;
1724
+ code: string;
1725
+ kyc_rails_id: string;
1726
+ consent_text: string | null;
1727
+ integration_vendors_id: string;
1728
+ is_hidden: boolean;
1729
+ destination_currency_id: string;
1730
+ integration_vendor: API.VirtualAccount.Programs.IntegrationVendor;
1731
+ account_currency_details: API.VirtualAccount.Programs.CurrencyItem;
1732
+ destination_currency_details: API.VirtualAccount.Programs.CurrencyItem;
1733
+ virtual_accounts_programs_order_types: API.VirtualAccount.Programs.OrderTypeListItem[];
1734
+ }
1735
+
1736
+ export namespace List {
1737
+ export interface Request {
1738
+ offset?: number;
1739
+ limit?: number;
1740
+ pagination?: boolean;
1741
+ }
1742
+ export interface Response {
1743
+ data: Program[];
1744
+ count: number;
1745
+ has_more: boolean;
1746
+ }
1747
+ }
1748
+ }
1749
+ }
1750
+
1559
1751
  export namespace User {
1560
1752
  export interface User {
1561
1753
  id: string;