@inkress/admin-sdk 1.1.42 → 1.1.44

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/README.md CHANGED
@@ -238,11 +238,10 @@ The SDK provides access to 23+ fully-typed resources:
238
238
  - **Addresses** - Address management
239
239
  - **Tokens** - API token management
240
240
  - **Webhook URLs** - Webhook configuration
241
+ - **KYC** - Know Your Customer verification and compliance
241
242
 
242
243
  ### Content & Other
243
244
  - **Generics** - Dynamic endpoint access
244
- - **KYC** - Know Your Customer operations
245
- - **Payout** - Payout processing
246
245
  - **Public** - Public-facing merchant data
247
246
 
248
247
  ---
@@ -814,6 +813,249 @@ const fees = await inkress.public.getMerchantFees('merchant-name', {
814
813
  // Returns: PublicMerchantFees
815
814
  ```
816
815
 
816
+ ---
817
+
818
+ ## KYC (Know Your Customer) Module
819
+
820
+ The KYC module helps you manage merchant verification and compliance documents. It provides both client-side document requirements and server-side status tracking.
821
+
822
+ ### Understanding Entity Types
823
+
824
+ Different merchant types require different KYC documents:
825
+
826
+ | Entity Type | Description | Required Documents |
827
+ |------------|-------------|-------------------|
828
+ | `personal` | Individual merchant | 3 documents |
829
+ | `sole-trader` | Sole proprietorship | 5 documents |
830
+ | `llc` | Limited Liability Company | 9 documents |
831
+ | `non-profit` | Non-profit organization | 6 documents |
832
+ | `alumni` | Alumni association | 6 documents |
833
+ | `other` | Other business types | 9 documents |
834
+
835
+ ### Document Types
836
+
837
+ ```typescript
838
+ type KycDocumentType =
839
+ | 'Proof of Identity'
840
+ | 'Proof of Address'
841
+ | 'Proof of Bank Account Ownership'
842
+ | 'Business Certificate'
843
+ | 'Articles of Incorporation'
844
+ | 'Annual Return'
845
+ | 'Notice of Directors'
846
+ | 'Notice of Secretary'
847
+ | 'Tax Compliance Certificate';
848
+ ```
849
+
850
+ ### Quick Status Check
851
+
852
+ ```typescript
853
+ // Check if KYC is complete for the authenticated merchant
854
+ const isComplete = await inkress.kyc.isKycComplete('llc');
855
+
856
+ if (isComplete) {
857
+ console.log('✅ Merchant is fully verified!');
858
+ } else {
859
+ console.log('⚠️ Verification incomplete');
860
+ }
861
+ ```
862
+
863
+ ### Get Requirements Status (with API call)
864
+
865
+ Fetch the complete KYC status including all document submissions:
866
+
867
+ ```typescript
868
+ const response = await inkress.kyc.getRequirementsStatus('llc');
869
+
870
+ if (response.state === 'ok') {
871
+ const status = response.result!;
872
+
873
+ console.log(`Completion: ${status.completion_percentage}%`);
874
+ console.log(`Complete: ${status.is_complete ? 'Yes' : 'No'}`);
875
+ console.log(`Approved: ${status.total_approved}/${status.total_required}`);
876
+ console.log(`Pending: ${status.total_pending}`);
877
+ console.log(`Rejected: ${status.total_rejected}`);
878
+
879
+ // Check individual documents
880
+ status.document_statuses.forEach(doc => {
881
+ console.log(`${doc.document_type}: ${doc.status || 'not submitted'}`);
882
+
883
+ if (doc.status === 'rejected' && doc.rejection_reason) {
884
+ console.log(` Reason: ${doc.rejection_reason}`);
885
+ }
886
+ });
887
+ }
888
+ ```
889
+
890
+ ### Get Missing Documents
891
+
892
+ Find out which documents still need to be submitted:
893
+
894
+ ```typescript
895
+ const missing = await inkress.kyc.getMissingDocuments('llc');
896
+
897
+ if (missing.length > 0) {
898
+ console.log('Please submit the following documents:');
899
+ missing.forEach(doc => console.log(` • ${doc}`));
900
+ } else {
901
+ console.log('All documents submitted!');
902
+ }
903
+ ```
904
+
905
+ ### Client-Side Requirements (no API call)
906
+
907
+ View required documents without making an API request:
908
+
909
+ ```typescript
910
+ // Get requirements for a specific entity type
911
+ const docs = inkress.kyc.getRequiredDocuments('llc');
912
+ console.log(`LLC requires ${docs.length} documents:`, docs);
913
+ // Returns: ['Proof of Identity', 'Proof of Address', ...]
914
+
915
+ // Get all requirements at once
916
+ const allRequirements = inkress.kyc.getAllRequirements();
917
+ console.log('Personal:', allRequirements.personal);
918
+ console.log('LLC:', allRequirements.llc);
919
+ // Returns complete mapping of all entity types to their required documents
920
+ ```
921
+
922
+ ### Submit KYC Documents
923
+
924
+ ```typescript
925
+ // Upload a document
926
+ await inkress.kyc.uploadDocument({
927
+ kind: 'document_submission',
928
+ status: 'pending',
929
+ data: {
930
+ document_type: 'Proof of Identity',
931
+ document_url: 'https://cdn.example.com/id-card.pdf',
932
+ notes: 'Government-issued ID card'
933
+ }
934
+ });
935
+
936
+ // Update bank information
937
+ await inkress.kyc.updateBankInfo({
938
+ kind: 'bank_info_update',
939
+ status: 'pending',
940
+ data: {
941
+ account_number: '123456789',
942
+ routing_number: '987654321',
943
+ bank_name: 'Example Bank',
944
+ account_holder_name: 'John Doe'
945
+ }
946
+ });
947
+ ```
948
+
949
+ ### Complete Onboarding Flow Example
950
+
951
+ ```typescript
952
+ async function checkKycOnboarding(entityType: 'llc' | 'personal' | 'sole-trader') {
953
+ console.log('🚀 Starting KYC Onboarding Check...\n');
954
+
955
+ // Step 1: Show what's required
956
+ const required = inkress.kyc.getRequiredDocuments(entityType);
957
+ console.log(`📋 ${entityType} requires ${required.length} documents:`);
958
+ required.forEach((doc, i) => console.log(` ${i + 1}. ${doc}`));
959
+ console.log('');
960
+
961
+ // Step 2: Check current status
962
+ const statusResponse = await inkress.kyc.getRequirementsStatus(entityType);
963
+
964
+ if (statusResponse.state === 'ok') {
965
+ const status = statusResponse.result!;
966
+
967
+ console.log('📊 Current Status:');
968
+ console.log(` Completion: ${status.completion_percentage}%`);
969
+ console.log(` Approved: ${status.total_approved}/${status.total_required}`);
970
+ console.log(` Pending: ${status.total_pending}`);
971
+ console.log(` Rejected: ${status.total_rejected}`);
972
+ console.log('');
973
+ }
974
+
975
+ // Step 3: Check if complete
976
+ const isComplete = await inkress.kyc.isKycComplete(entityType);
977
+
978
+ if (isComplete) {
979
+ console.log('✅ KYC Complete - Merchant is verified!');
980
+ } else {
981
+ // Step 4: Show what's missing
982
+ const missing = await inkress.kyc.getMissingDocuments(entityType);
983
+ console.log('⚠️ Action Required:');
984
+ console.log(`Please submit ${missing.length} document(s):`);
985
+ missing.forEach(doc => console.log(` • ${doc}`));
986
+ }
987
+ }
988
+
989
+ // Run the check
990
+ await checkKycOnboarding('llc');
991
+ ```
992
+
993
+ ### TypeScript Types
994
+
995
+ ```typescript
996
+ import type {
997
+ EntityType,
998
+ KycDocumentType,
999
+ KycRequirements,
1000
+ KycDocumentStatus,
1001
+ KYC_DOCUMENT_REQUIREMENTS
1002
+ } from '@inkress/admin-sdk';
1003
+
1004
+ // Document status interface
1005
+ interface KycDocumentStatus {
1006
+ document_type: KycDocumentType;
1007
+ required: boolean;
1008
+ submitted: boolean;
1009
+ status?: 'pending' | 'approved' | 'rejected';
1010
+ submitted_at?: string;
1011
+ reviewed_at?: string;
1012
+ rejection_reason?: string;
1013
+ }
1014
+
1015
+ // Complete requirements interface
1016
+ interface KycRequirements {
1017
+ entity_type: EntityType;
1018
+ required_documents: KycDocumentType[];
1019
+ document_statuses: KycDocumentStatus[];
1020
+ total_required: number;
1021
+ total_submitted: number;
1022
+ total_approved: number;
1023
+ total_rejected: number;
1024
+ total_pending: number;
1025
+ completion_percentage: number;
1026
+ is_complete: boolean;
1027
+ }
1028
+ ```
1029
+
1030
+ ### KYC Status Values
1031
+
1032
+ The API returns integer status codes that are automatically converted:
1033
+
1034
+ | Integer | API Value | Simplified |
1035
+ |---------|-----------|------------|
1036
+ | 1 | `pending` | `pending` |
1037
+ | 2 | `in_review` | `pending` |
1038
+ | 3 | `approved` | `approved` |
1039
+ | 4 | `rejected` | `rejected` |
1040
+
1041
+ The SDK automatically handles the conversion between integers and human-readable strings.
1042
+
1043
+ ### Best Practices
1044
+
1045
+ 1. **Cache Requirements**: The `getRequiredDocuments()` and `getAllRequirements()` methods don't make API calls - use them freely for UI display.
1046
+
1047
+ 2. **Periodic Status Checks**: Poll `getRequirementsStatus()` periodically to track verification progress.
1048
+
1049
+ 3. **Handle Rejections**: Check `rejection_reason` when a document is rejected to provide clear feedback to users.
1050
+
1051
+ 4. **Track Submissions**: Use `submitted_at` and `reviewed_at` timestamps to show processing time.
1052
+
1053
+ 5. **Authentication**: All KYC methods use the authenticated merchant from the `Client-Id` header (set via `username` config).
1054
+
1055
+ See [examples/kyc-requirements.ts](examples/kyc-requirements.ts) for complete working examples.
1056
+
1057
+ ---
1058
+
817
1059
  ## Advanced Query System
818
1060
 
819
1061
  The SDK provides a powerful type-safe query system with two interfaces:
package/dist/index.d.ts CHANGED
@@ -98,6 +98,8 @@ export declare class InkressSDK {
98
98
  }
99
99
  export * from './types';
100
100
  export * from './client';
101
+ export type { WebhookPayload, WebhookVerificationOptions, IncomingWebhookRequest, } from './resources/webhook-urls';
102
+ export { KYC_DOCUMENT_REQUIREMENTS, type EntityType, type KycDocumentType, type KycDocumentStatus, type KycRequirements, } from './resources/kyc';
101
103
  export { InkressSDK as default };
102
104
  export type { OrderQueryParams, ProductQueryParams, UserQueryParams, MerchantQueryParams, CategoryQueryParams, BillingPlanQueryParams, SubscriptionQueryParams, PaymentLinkQueryParams, FinancialAccountQueryParams, FinancialRequestQueryParams, WebhookUrlQueryParams, TokenQueryParams, AddressQueryParams, CurrencyQueryParams, ExchangeRateQueryParams, FeeQueryParams, PaymentMethodQueryParams, TransactionEntryQueryParams, OrderFilterParams, ProductFilterParams, UserFilterParams, MerchantFilterParams, CategoryFilterParams, BillingPlanFilterParams, SubscriptionFilterParams, PaymentLinkFilterParams, FinancialAccountFilterParams, FinancialRequestFilterParams, WebhookUrlFilterParams, TokenFilterParams, AddressFilterParams, CurrencyFilterParams, ExchangeRateFilterParams, FeeFilterParams, PaymentMethodFilterParams, TransactionEntryFilterParams, OrderListResponse, ProductListResponse, UserListResponse, MerchantListResponse, CategoryListResponse, BillingPlanListResponse, SubscriptionListResponse, PaymentLinkListResponse, FinancialAccountListResponse, FinancialRequestListResponse, WebhookUrlListResponse, TokenListResponse, AddressListResponse, CurrencyListResponse, ExchangeRateListResponse, FeeListResponse, PaymentMethodListResponse, TransactionEntryListResponse, PageInfo, } from './types/resources';
103
105
  export { ORDER_FIELD_TYPES, PRODUCT_FIELD_TYPES, USER_FIELD_TYPES, MERCHANT_FIELD_TYPES, CATEGORY_FIELD_TYPES, BILLING_PLAN_FIELD_TYPES, SUBSCRIPTION_FIELD_TYPES, PAYMENT_LINK_FIELD_TYPES, FINANCIAL_ACCOUNT_FIELD_TYPES, FINANCIAL_REQUEST_FIELD_TYPES, WEBHOOK_URL_FIELD_TYPES, TOKEN_FIELD_TYPES, ADDRESS_FIELD_TYPES, CURRENCY_FIELD_TYPES, EXCHANGE_RATE_FIELD_TYPES, FEE_FIELD_TYPES, PAYMENT_METHOD_FIELD_TYPES, TRANSACTION_ENTRY_FIELD_TYPES, } from './types/resources';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}