@verifiquemos/sdk 0.1.1

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.
@@ -0,0 +1,1102 @@
1
+ import createOpenapiClient from 'openapi-fetch';
2
+
3
+ interface components {
4
+ schemas: {
5
+ /** AcceptedUserResponse */
6
+ AcceptedUserResponse: {
7
+ /** Id */
8
+ id: string;
9
+ /** Email */
10
+ email: string;
11
+ /** Name */
12
+ name: string;
13
+ /** Role */
14
+ role: string;
15
+ };
16
+ /** AnalystSummary */
17
+ AnalystSummary: {
18
+ /** User Id */
19
+ user_id: string;
20
+ /** Full Name */
21
+ full_name: string;
22
+ /** Validations Count */
23
+ validations_count: number;
24
+ };
25
+ /** ApiKeyCreateRequest */
26
+ ApiKeyCreateRequest: {
27
+ /** Name */
28
+ name: string;
29
+ };
30
+ /** ApiKeyCreatedResponse */
31
+ ApiKeyCreatedResponse: {
32
+ /** Id */
33
+ id: string;
34
+ /** Name */
35
+ name: string;
36
+ /** Key */
37
+ key: string;
38
+ /** Key Prefix */
39
+ key_prefix: string;
40
+ /** Is Active */
41
+ is_active: boolean;
42
+ /**
43
+ * Created At
44
+ * Format: date-time
45
+ */
46
+ created_at: string;
47
+ };
48
+ /** ApiKeyListResponse */
49
+ ApiKeyListResponse: {
50
+ /** Items */
51
+ items: components["schemas"]["ApiKeySummary"][];
52
+ };
53
+ /** ApiKeySummary */
54
+ ApiKeySummary: {
55
+ /** Id */
56
+ id: string;
57
+ /** Name */
58
+ name: string;
59
+ /** Key Prefix */
60
+ key_prefix: string;
61
+ /** Last Used At */
62
+ last_used_at: string | null;
63
+ /** Is Active */
64
+ is_active: boolean;
65
+ /**
66
+ * Created At
67
+ * Format: date-time
68
+ */
69
+ created_at: string;
70
+ };
71
+ /** AppModeRequest */
72
+ AppModeRequest: {
73
+ /**
74
+ * Mode
75
+ * @enum {string}
76
+ */
77
+ mode: "initial" | "update";
78
+ };
79
+ /** AppModeResponse */
80
+ AppModeResponse: {
81
+ /** Mode */
82
+ mode: string;
83
+ };
84
+ /** AuditEntry */
85
+ AuditEntry: {
86
+ /** Id */
87
+ id: string;
88
+ /** User Id */
89
+ user_id: string | null;
90
+ /** Action */
91
+ action: string;
92
+ /** Entity Type */
93
+ entity_type: string | null;
94
+ /** Entity Id */
95
+ entity_id: string | null;
96
+ /** Ip Address */
97
+ ip_address: string | null;
98
+ /** Details */
99
+ details: {
100
+ [key: string]: unknown;
101
+ } | null;
102
+ /**
103
+ * Created At
104
+ * Format: date-time
105
+ */
106
+ created_at: string;
107
+ };
108
+ /** AuditLogResponse */
109
+ AuditLogResponse: {
110
+ /** Items */
111
+ items: components["schemas"]["AuditEntry"][];
112
+ /** Total */
113
+ total: number;
114
+ /** Page */
115
+ page: number;
116
+ /** Limit */
117
+ limit: number;
118
+ };
119
+ /** AuthResponse */
120
+ AuthResponse: {
121
+ /** Access Token */
122
+ access_token: string;
123
+ /** Refresh Token */
124
+ refresh_token: string;
125
+ /**
126
+ * Token Type
127
+ * @default bearer
128
+ */
129
+ token_type: string;
130
+ user: components["schemas"]["UserResponse"];
131
+ tenant: components["schemas"]["TenantResponse"];
132
+ };
133
+ /** BalanceResponse */
134
+ BalanceResponse: {
135
+ /** Tenant Id */
136
+ tenant_id: string;
137
+ /** Credit Balance */
138
+ credit_balance: number;
139
+ /** Plan */
140
+ plan: string;
141
+ };
142
+ /** BatchCancelResponse */
143
+ BatchCancelResponse: {
144
+ /** Batch Id */
145
+ batch_id: string;
146
+ /** Status */
147
+ status: string;
148
+ /** Already Terminal */
149
+ already_terminal: boolean;
150
+ };
151
+ /** BatchCreatedResponse */
152
+ BatchCreatedResponse: {
153
+ /** Batch Id */
154
+ batch_id: string;
155
+ /** Total Rows */
156
+ total_rows: number;
157
+ /** Status */
158
+ status: string;
159
+ };
160
+ /** BatchDetailResponse */
161
+ BatchDetailResponse: {
162
+ /** Id */
163
+ id: string;
164
+ /** Status */
165
+ status: string;
166
+ /** Total Rows */
167
+ total_rows: number;
168
+ /** Completed Count */
169
+ completed_count: number;
170
+ /** Failed Count */
171
+ failed_count: number;
172
+ /**
173
+ * Created At
174
+ * Format: date-time
175
+ */
176
+ created_at: string;
177
+ /** Completed At */
178
+ completed_at?: string | null;
179
+ /** Items */
180
+ items: components["schemas"]["BatchItemResponse"][];
181
+ };
182
+ /** BatchItemResponse */
183
+ BatchItemResponse: {
184
+ /** Id */
185
+ id: string;
186
+ /** Row Number */
187
+ row_number: number;
188
+ /** Dpi Filename */
189
+ dpi_filename?: string | null;
190
+ /** Validation Id */
191
+ validation_id?: string | null;
192
+ /** Status */
193
+ status: string;
194
+ /** Error Message */
195
+ error_message?: string | null;
196
+ };
197
+ /** BatchListResponse */
198
+ BatchListResponse: {
199
+ /** Items */
200
+ items: components["schemas"]["BatchSummary"][];
201
+ /** Total */
202
+ total: number;
203
+ /** Page */
204
+ page: number;
205
+ /** Limit */
206
+ limit: number;
207
+ };
208
+ /** BatchSummary */
209
+ BatchSummary: {
210
+ /** Id */
211
+ id: string;
212
+ /** Status */
213
+ status: string;
214
+ /** Total Rows */
215
+ total_rows: number;
216
+ /** Completed Count */
217
+ completed_count: number;
218
+ /** Failed Count */
219
+ failed_count: number;
220
+ /**
221
+ * Created At
222
+ * Format: date-time
223
+ */
224
+ created_at: string;
225
+ /** Completed At */
226
+ completed_at?: string | null;
227
+ };
228
+ /** Body_create_validation_api_v1_validations_post */
229
+ Body_create_validation_api_v1_validations_post: {
230
+ /** Dpi File */
231
+ dpi_file: string;
232
+ /** Naturaleza Cliente */
233
+ naturaleza_cliente: string;
234
+ /**
235
+ * Pais Origen Fondos
236
+ * @default GTM
237
+ */
238
+ pais_origen_fondos: string;
239
+ /**
240
+ * Pais Destino Fondos
241
+ * @default GTM
242
+ */
243
+ pais_destino_fondos: string;
244
+ /** Feic File */
245
+ feic_file?: string | null;
246
+ /** Feic Anexo File */
247
+ feic_anexo_file?: string | null;
248
+ /** Feic Data Manual */
249
+ feic_data_manual?: string | null;
250
+ /** Notes */
251
+ notes?: string | null;
252
+ };
253
+ /** Body_submit_batch_api_v1_validations_batch_post */
254
+ Body_submit_batch_api_v1_validations_batch_post: {
255
+ /** Csv File */
256
+ csv_file: string;
257
+ /** Zip File */
258
+ zip_file?: string | null;
259
+ };
260
+ /** Body_upload_list_file_api_v1_lists_upload_post */
261
+ Body_upload_list_file_api_v1_lists_upload_post: {
262
+ /** List Type */
263
+ list_type: string;
264
+ /** File */
265
+ file: string;
266
+ };
267
+ /** DashboardKpis */
268
+ DashboardKpis: {
269
+ /** Total Validations */
270
+ total_validations: number;
271
+ /** Completed Count */
272
+ completed_count: number;
273
+ /** Failed Count */
274
+ failed_count: number;
275
+ /** Processing Count */
276
+ processing_count: number;
277
+ /** Cancelled Count */
278
+ cancelled_count: number;
279
+ /** Avg Score */
280
+ avg_score: number | null;
281
+ /** Total Validations Prev Period */
282
+ total_validations_prev_period: number;
283
+ };
284
+ /** DashboardResponse */
285
+ DashboardResponse: {
286
+ /** Period */
287
+ period: string;
288
+ kpis: components["schemas"]["DashboardKpis"];
289
+ /** Trends */
290
+ trends: components["schemas"]["TrendPoint"][];
291
+ /** Risk Distribution */
292
+ risk_distribution: components["schemas"]["RiskBucket"][];
293
+ /** Top Analysts */
294
+ top_analysts: components["schemas"]["AnalystSummary"][];
295
+ /** Alerts */
296
+ alerts: components["schemas"]["ValidationAlert"][];
297
+ };
298
+ /** ETLJobSummary */
299
+ ETLJobSummary: {
300
+ /** Id */
301
+ id: string;
302
+ /** List Type */
303
+ list_type: string;
304
+ /** Status */
305
+ status: string;
306
+ /** Records Imported */
307
+ records_imported?: number | null;
308
+ /** Started At */
309
+ started_at?: string | null;
310
+ /** Completed At */
311
+ completed_at?: string | null;
312
+ };
313
+ /** ForgotPasswordRequest */
314
+ ForgotPasswordRequest: {
315
+ /**
316
+ * Email
317
+ * Format: email
318
+ */
319
+ email: string;
320
+ };
321
+ /** HTTPValidationError */
322
+ HTTPValidationError: {
323
+ /** Detail */
324
+ detail?: components["schemas"]["ValidationError"][];
325
+ };
326
+ /** HistoryResponse */
327
+ HistoryResponse: {
328
+ /** Items */
329
+ items: components["schemas"]["LedgerEntryResponse"][];
330
+ /** Total */
331
+ total: number;
332
+ /** Page */
333
+ page: number;
334
+ /** Limit */
335
+ limit: number;
336
+ };
337
+ /** InternetResultResponse */
338
+ InternetResultResponse: {
339
+ /** Source */
340
+ source?: string | null;
341
+ /** Title */
342
+ title?: string | null;
343
+ /** Url */
344
+ url?: string | null;
345
+ /** Snippet */
346
+ snippet?: string | null;
347
+ /** Sentiment */
348
+ sentiment?: string | null;
349
+ /** Risk Level */
350
+ risk_level?: string | null;
351
+ /** Summary */
352
+ summary?: string | null;
353
+ /** Category */
354
+ category?: string | null;
355
+ };
356
+ /** InviteAcceptRequest */
357
+ InviteAcceptRequest: {
358
+ /** Name */
359
+ name: string;
360
+ /** Password */
361
+ password: string;
362
+ };
363
+ /** InviteAcceptResponse */
364
+ InviteAcceptResponse: {
365
+ /** Message */
366
+ message: string;
367
+ user: components["schemas"]["AcceptedUserResponse"];
368
+ };
369
+ /** InviteCreateRequest */
370
+ InviteCreateRequest: {
371
+ /**
372
+ * Email
373
+ * Format: email
374
+ */
375
+ email: string;
376
+ /**
377
+ * Role
378
+ * @enum {string}
379
+ */
380
+ role: "admin" | "analyst";
381
+ };
382
+ /** InviteListResponse */
383
+ InviteListResponse: {
384
+ /** Items */
385
+ items: components["schemas"]["InviteSummary"][];
386
+ };
387
+ /** InvitePreviewResponse */
388
+ InvitePreviewResponse: {
389
+ /** Email */
390
+ email: string;
391
+ /** Role */
392
+ role: string;
393
+ /** Tenant Name */
394
+ tenant_name: string;
395
+ /**
396
+ * Expires At
397
+ * Format: date-time
398
+ */
399
+ expires_at: string;
400
+ };
401
+ /** InviteSummary */
402
+ InviteSummary: {
403
+ /** Id */
404
+ id: string;
405
+ /** Email */
406
+ email: string;
407
+ /** Role */
408
+ role: string;
409
+ /** Invited By */
410
+ invited_by: string;
411
+ /**
412
+ * Expires At
413
+ * Format: date-time
414
+ */
415
+ expires_at: string;
416
+ /** Accepted At */
417
+ accepted_at: string | null;
418
+ /**
419
+ * Created At
420
+ * Format: date-time
421
+ */
422
+ created_at: string;
423
+ };
424
+ /** LedgerEntryResponse */
425
+ LedgerEntryResponse: {
426
+ /** Id */
427
+ id: string;
428
+ /** Delta */
429
+ delta: number;
430
+ /** Balance After */
431
+ balance_after: number;
432
+ /** Reason */
433
+ reason: string;
434
+ /** Validation Id */
435
+ validation_id?: string | null;
436
+ /**
437
+ * Created At
438
+ * Format: date-time
439
+ */
440
+ created_at: string;
441
+ };
442
+ /** ListResultResponse */
443
+ ListResultResponse: {
444
+ /** List Type */
445
+ list_type: string;
446
+ /** Found */
447
+ found: boolean;
448
+ /** Match Type */
449
+ match_type?: string | null;
450
+ /** Match Score */
451
+ match_score?: number | null;
452
+ /** Match Details */
453
+ match_details?: string | null;
454
+ };
455
+ /** ListStatus */
456
+ ListStatus: {
457
+ /** List Type */
458
+ list_type: string;
459
+ /** Record Count */
460
+ record_count: number;
461
+ last_etl_job?: components["schemas"]["ETLJobSummary"] | null;
462
+ };
463
+ /** ListsStatusResponse */
464
+ ListsStatusResponse: {
465
+ /** Lists */
466
+ lists: components["schemas"]["ListStatus"][];
467
+ };
468
+ /** LoginRequest */
469
+ LoginRequest: {
470
+ /**
471
+ * Email
472
+ * Format: email
473
+ */
474
+ email: string;
475
+ /** Password */
476
+ password: string;
477
+ };
478
+ /** LogoutRequest */
479
+ LogoutRequest: {
480
+ /** Refresh Token */
481
+ refresh_token: string;
482
+ };
483
+ /** MeResponse */
484
+ MeResponse: {
485
+ user: components["schemas"]["UserResponse"];
486
+ tenant: components["schemas"]["TenantResponse"];
487
+ };
488
+ /** MessageResponse */
489
+ MessageResponse: {
490
+ /** Message */
491
+ message: string;
492
+ };
493
+ /** OAuthBridgeClaimRequest */
494
+ OAuthBridgeClaimRequest: {
495
+ /** Nonce */
496
+ nonce: string;
497
+ };
498
+ /** OAuthLinkConfirmRequest */
499
+ OAuthLinkConfirmRequest: {
500
+ /** Intent Jwt */
501
+ intent_jwt: string;
502
+ /** Password */
503
+ password: string;
504
+ };
505
+ /** OAuthSignupCompleteRequest */
506
+ OAuthSignupCompleteRequest: {
507
+ /** Intent Jwt */
508
+ intent_jwt: string;
509
+ /** Organization Name */
510
+ organization_name: string;
511
+ /**
512
+ * Tenant Type
513
+ * @enum {string}
514
+ */
515
+ tenant_type: "individual" | "juridica";
516
+ };
517
+ /** PurchaseRequest */
518
+ PurchaseRequest: {
519
+ /**
520
+ * Package
521
+ * @enum {string}
522
+ */
523
+ package: "10" | "50" | "100";
524
+ /** Idempotency Key */
525
+ idempotency_key: string;
526
+ /** Payment Token */
527
+ payment_token: string;
528
+ };
529
+ /** PurchaseResponse */
530
+ PurchaseResponse: {
531
+ /** Success */
532
+ success: boolean;
533
+ /** Credits Added */
534
+ credits_added: number;
535
+ /** New Balance */
536
+ new_balance: number;
537
+ /**
538
+ * Idempotent Replay
539
+ * @default false
540
+ */
541
+ idempotent_replay: boolean;
542
+ };
543
+ /** RefreshRequest */
544
+ RefreshRequest: {
545
+ /** Refresh Token */
546
+ refresh_token: string;
547
+ };
548
+ /** RefundRequest */
549
+ RefundRequest: {
550
+ /** Validation Id */
551
+ validation_id: string;
552
+ };
553
+ /** RefundResponse */
554
+ RefundResponse: {
555
+ /** Success */
556
+ success: boolean;
557
+ /** New Balance */
558
+ new_balance: number;
559
+ };
560
+ /** RegisterRequest */
561
+ RegisterRequest: {
562
+ /**
563
+ * Email
564
+ * Format: email
565
+ */
566
+ email: string;
567
+ /** Password */
568
+ password: string;
569
+ /** Name */
570
+ name: string;
571
+ /** Organization Name */
572
+ organization_name: string;
573
+ };
574
+ /**
575
+ * ReportRegenRequest
576
+ * @description Empty request body, present for future option extensibility.
577
+ */
578
+ ReportRegenRequest: Record<string, never>;
579
+ /** ReportRegenResponse */
580
+ ReportRegenResponse: {
581
+ /** Validation Id */
582
+ validation_id: string;
583
+ /** Job Id */
584
+ job_id: string;
585
+ /** Status */
586
+ status: string;
587
+ };
588
+ /** ReportResponse */
589
+ ReportResponse: {
590
+ /** Report Url */
591
+ report_url: string;
592
+ };
593
+ /** ResetPasswordRequest */
594
+ ResetPasswordRequest: {
595
+ /** Token */
596
+ token: string;
597
+ /** New Password */
598
+ new_password: string;
599
+ };
600
+ /** RiskBucket */
601
+ RiskBucket: {
602
+ /** Risk Level */
603
+ risk_level: string;
604
+ /** Count */
605
+ count: number;
606
+ };
607
+ /** RoleUpdateRequest */
608
+ RoleUpdateRequest: {
609
+ /**
610
+ * Role
611
+ * @enum {string}
612
+ */
613
+ role: "admin" | "analyst";
614
+ };
615
+ /** ScoreFactorResponse */
616
+ ScoreFactorResponse: {
617
+ /** Factor Key */
618
+ factor_key: string;
619
+ /** Label */
620
+ label: string;
621
+ /** Raw Score */
622
+ raw_score: number;
623
+ /** Max Score */
624
+ max_score: number;
625
+ };
626
+ /** SetPasswordConfirmRequest */
627
+ SetPasswordConfirmRequest: {
628
+ /** Token */
629
+ token: string;
630
+ /** New Password */
631
+ new_password: string;
632
+ };
633
+ /** SetPasswordRequestResponse */
634
+ SetPasswordRequestResponse: {
635
+ /** Message */
636
+ message: string;
637
+ };
638
+ /** TenantResponse */
639
+ TenantResponse: {
640
+ /** Id */
641
+ id: string;
642
+ /** Name */
643
+ name: string;
644
+ /** Plan */
645
+ plan: string;
646
+ /** Credit Balance */
647
+ credit_balance: number;
648
+ };
649
+ /** TenantUpdateRequest */
650
+ TenantUpdateRequest: {
651
+ /** Name */
652
+ name: string;
653
+ };
654
+ /** TokenResponse */
655
+ TokenResponse: {
656
+ /** Access Token */
657
+ access_token: string;
658
+ /** Refresh Token */
659
+ refresh_token: string;
660
+ /**
661
+ * Token Type
662
+ * @default bearer
663
+ */
664
+ token_type: string;
665
+ };
666
+ /** TrendPoint */
667
+ TrendPoint: {
668
+ /** Date */
669
+ date: string;
670
+ /** Count */
671
+ count: number;
672
+ };
673
+ /** TriggerETLRequest */
674
+ TriggerETLRequest: {
675
+ /**
676
+ * List Type
677
+ * @enum {string}
678
+ */
679
+ list_type: "OFAC" | "ONU";
680
+ };
681
+ /** TriggerETLResponse */
682
+ TriggerETLResponse: {
683
+ /** List Type */
684
+ list_type: string;
685
+ /** Status */
686
+ status: string;
687
+ /** Job Id */
688
+ job_id: string;
689
+ };
690
+ /** UserListResponse */
691
+ UserListResponse: {
692
+ /** Items */
693
+ items: components["schemas"]["UserSummary"][];
694
+ /** Total */
695
+ total: number;
696
+ /** Page */
697
+ page: number;
698
+ /** Limit */
699
+ limit: number;
700
+ };
701
+ /** UserResponse */
702
+ UserResponse: {
703
+ /** Id */
704
+ id: string;
705
+ /** Email */
706
+ email: string;
707
+ /** Name */
708
+ name: string;
709
+ /** Role */
710
+ role: string;
711
+ };
712
+ /** UserSummary */
713
+ UserSummary: {
714
+ /** Id */
715
+ id: string;
716
+ /** Email */
717
+ email: string;
718
+ /** Name */
719
+ name: string;
720
+ /** Role */
721
+ role: string;
722
+ /** Is Active */
723
+ is_active: boolean;
724
+ };
725
+ /** ValidationAlert */
726
+ ValidationAlert: {
727
+ /** Id */
728
+ id: string;
729
+ /** Client Full Name */
730
+ client_full_name: string | null;
731
+ /** Risk Level */
732
+ risk_level: string | null;
733
+ /** Score Total */
734
+ score_total: number | null;
735
+ /**
736
+ * Created At
737
+ * Format: date-time
738
+ */
739
+ created_at: string;
740
+ };
741
+ /** ValidationCancelRequest */
742
+ ValidationCancelRequest: {
743
+ /** Reason */
744
+ reason?: string | null;
745
+ };
746
+ /** ValidationCancelResponse */
747
+ ValidationCancelResponse: {
748
+ /** Id */
749
+ id: string;
750
+ /** Status */
751
+ status: string;
752
+ /** Cancelled At */
753
+ cancelled_at?: string | null;
754
+ /** Cancel Reason */
755
+ cancel_reason?: string | null;
756
+ /** Already Terminal */
757
+ already_terminal: boolean;
758
+ };
759
+ /** ValidationCreatedResponse */
760
+ ValidationCreatedResponse: {
761
+ /** Id */
762
+ id: string;
763
+ /** Status */
764
+ status: string;
765
+ /**
766
+ * Created At
767
+ * Format: date-time
768
+ */
769
+ created_at: string;
770
+ };
771
+ /** ValidationDetailResponse */
772
+ ValidationDetailResponse: {
773
+ /** Id */
774
+ id: string;
775
+ /** Cui */
776
+ cui?: string | null;
777
+ /** Client Full Name */
778
+ client_full_name?: string | null;
779
+ /** Status */
780
+ status: string;
781
+ /** Risk Level */
782
+ risk_level?: string | null;
783
+ /** Naturaleza Cliente */
784
+ naturaleza_cliente?: string | null;
785
+ /** Pais Origen Fondos */
786
+ pais_origen_fondos?: string | null;
787
+ /** Pais Destino Fondos */
788
+ pais_destino_fondos?: string | null;
789
+ /** Score Total */
790
+ score_total?: number | null;
791
+ /** Ai Recommendation */
792
+ ai_recommendation?: string | null;
793
+ /** Current Step */
794
+ current_step?: string | null;
795
+ /** Degraded Steps */
796
+ degraded_steps?: string | null;
797
+ /** Error Code */
798
+ error_code?: ("UPLOAD_FAILED" | "VALIDATION_OCR_FAILED" | "VALIDATION_LISTS_FAILED" | "VALIDATION_STEP_FAILED" | "VALIDATION_TIMEOUT" | "STALE_PROCESSING_TIMEOUT" | "VALIDATION_PIPELINE_CRASH") | null;
799
+ /** Error Message */
800
+ error_message?: string | null;
801
+ /** Notes */
802
+ notes?: string | null;
803
+ /**
804
+ * Created At
805
+ * Format: date-time
806
+ */
807
+ created_at: string;
808
+ /** Completed At */
809
+ completed_at?: string | null;
810
+ /** Client Photo Url */
811
+ client_photo_url?: string | null;
812
+ /** Feic Data */
813
+ feic_data?: string | null;
814
+ /** Feic Source */
815
+ feic_source?: string | null;
816
+ identity?: components["schemas"]["app__api__validations__IdentityResponse"] | null;
817
+ /**
818
+ * Score Factors
819
+ * @default []
820
+ */
821
+ score_factors: components["schemas"]["ScoreFactorResponse"][];
822
+ /** Computed Risk Level */
823
+ computed_risk_level?: string | null;
824
+ /** Overrides Applied */
825
+ overrides_applied?: string | null;
826
+ /** Internet Summary */
827
+ internet_summary?: string | null;
828
+ /** Internet Risk Alerts */
829
+ internet_risk_alerts?: string | null;
830
+ /** Internet Relevant Count */
831
+ internet_relevant_count?: number | null;
832
+ /** Internet Negative Count */
833
+ internet_negative_count?: number | null;
834
+ /**
835
+ * List Results
836
+ * @default []
837
+ */
838
+ list_results: components["schemas"]["ListResultResponse"][];
839
+ /**
840
+ * Internet Results
841
+ * @default []
842
+ */
843
+ internet_results: components["schemas"]["InternetResultResponse"][];
844
+ /** Ocr Data */
845
+ ocr_data?: {
846
+ [key: string]: unknown;
847
+ } | null;
848
+ /** Renap Data */
849
+ renap_data?: {
850
+ [key: string]: unknown;
851
+ } | null;
852
+ };
853
+ /** ValidationError */
854
+ ValidationError: {
855
+ /** Location */
856
+ loc: (string | number)[];
857
+ /** Message */
858
+ msg: string;
859
+ /** Error Type */
860
+ type: string;
861
+ /** Input */
862
+ input?: unknown;
863
+ /** Context */
864
+ ctx?: Record<string, never>;
865
+ };
866
+ /** ValidationListResponse */
867
+ ValidationListResponse: {
868
+ /** Items */
869
+ items: components["schemas"]["ValidationSummaryResponse"][];
870
+ /** Total */
871
+ total: number;
872
+ /** Page */
873
+ page: number;
874
+ /** Limit */
875
+ limit: number;
876
+ };
877
+ /** ValidationSummaryResponse */
878
+ ValidationSummaryResponse: {
879
+ /** Id */
880
+ id: string;
881
+ /** Cui */
882
+ cui?: string | null;
883
+ /** Client Full Name */
884
+ client_full_name?: string | null;
885
+ /** Status */
886
+ status: string;
887
+ /** Risk Level */
888
+ risk_level?: string | null;
889
+ /** Naturaleza Cliente */
890
+ naturaleza_cliente?: string | null;
891
+ /**
892
+ * Created At
893
+ * Format: date-time
894
+ */
895
+ created_at: string;
896
+ };
897
+ /** IdentityResponse */
898
+ app__api__oauth__IdentityResponse: {
899
+ /** Id */
900
+ id: string;
901
+ /** Provider */
902
+ provider: string;
903
+ /** Email At Link */
904
+ email_at_link: string;
905
+ /**
906
+ * Linked At
907
+ * Format: date-time
908
+ */
909
+ linked_at: string;
910
+ /** Last Login At */
911
+ last_login_at: string | null;
912
+ };
913
+ /** IdentityResponse */
914
+ app__api__validations__IdentityResponse: {
915
+ /** Source */
916
+ source?: string | null;
917
+ /** Data Match */
918
+ data_match?: number | null;
919
+ /** Face Match */
920
+ face_match?: number | null;
921
+ /** Face Same */
922
+ face_same?: boolean | null;
923
+ /** Face Reasoning */
924
+ face_reasoning?: string | null;
925
+ };
926
+ };
927
+ responses: never;
928
+ parameters: {
929
+ /** @description ULID identifier (26 chars, Crockford base32) that lets the client retry this request safely. The server caches the 2xx response for 24 hours; a second request with the same key on the same path returns the original response with header `Idempotent-Replay: true`. Generate one new ULID per user-intent, NOT per network retry. */
930
+ IdempotencyKey: string;
931
+ };
932
+ requestBodies: never;
933
+ headers: {
934
+ /** @description Server-generated request identifier (hex). Echoes the inbound `X-Request-ID` when supplied, otherwise generated. Returned on every response — use to correlate client and server logs. */
935
+ XRequestId: string;
936
+ /** @description Maximum number of requests allowed per window. Windows are per-route (e.g. login is 5/minute, list endpoints are 100/minute). The exact limit for the endpoint that returned this header is the integer value. */
937
+ XRateLimitLimit: number;
938
+ /** @description Requests remaining in the current per-route window before slowapi starts returning 429. Use with X-RateLimit-Reset to compute the wait time. */
939
+ XRateLimitRemaining: number;
940
+ /** @description Unix epoch seconds when the rate-limit window resets and `X-RateLimit-Remaining` returns to `X-RateLimit-Limit`. */
941
+ XRateLimitReset: number;
942
+ };
943
+ pathItems: never;
944
+ }
945
+
946
+ interface VerifiquemosClientOptions {
947
+ apiKey: string;
948
+ baseUrl?: string;
949
+ fetch?: typeof fetch;
950
+ /** Override the default Idempotency-Key generator. */
951
+ idempotencyKeyFactory?: () => string;
952
+ }
953
+ /** Internal bundle passed to sub-API classes; not part of the public API. */
954
+ interface SubApiDeps {
955
+ wrappedFetch: VerifiquemosClient["wrappedFetch"];
956
+ raw: ReturnType<typeof createOpenapiClient<paths>>;
957
+ baseUrl: string;
958
+ }
959
+ declare class VerifiquemosClient {
960
+ #private;
961
+ readonly auth: AuthApi;
962
+ readonly validations: ValidationsApi;
963
+ readonly credits: CreditsApi;
964
+ readonly apiKeys: ApiKeysApi;
965
+ constructor(opts: VerifiquemosClientOptions);
966
+ /**
967
+ * Internal: every request flows through here for header injection + error normalization.
968
+ * Accepts either a Request object (from openapi-fetch) or a URL + RequestInit (direct).
969
+ *
970
+ * @internal
971
+ */
972
+ wrappedFetch(input: Request | string | URL, init?: RequestInit): Promise<Response>;
973
+ }
974
+ declare class AuthApi {
975
+ private readonly deps;
976
+ constructor(deps: SubApiDeps);
977
+ me(): Promise<{
978
+ user: components["schemas"]["UserResponse"];
979
+ tenant: components["schemas"]["TenantResponse"];
980
+ } | undefined>;
981
+ }
982
+ declare class ValidationsApi {
983
+ private readonly deps;
984
+ constructor(deps: SubApiDeps);
985
+ /**
986
+ * Submit a new validation request.
987
+ *
988
+ * Note: `cui` (Guatemalan ID number) is NOT a form field — it is extracted
989
+ * automatically from the uploaded DPI image via OCR on the server side.
990
+ *
991
+ * @param input.naturalezaCliente - Client nature, e.g. "individual" or "juridica".
992
+ * @param input.paisOrigenFondos - Optional ISO-3166-1 alpha-2 country code for funds origin.
993
+ * @param input.dpiFile - DPI image blob (front side; OCR extracts the CUI).
994
+ */
995
+ create(input: {
996
+ naturalezaCliente: string;
997
+ paisOrigenFondos?: string;
998
+ dpiFile: Blob;
999
+ }): Promise<{
1000
+ id: string;
1001
+ status: string;
1002
+ }>;
1003
+ get(id: string): Promise<{
1004
+ id: string;
1005
+ cui?: string | null;
1006
+ client_full_name?: string | null;
1007
+ status: string;
1008
+ risk_level?: string | null;
1009
+ naturaleza_cliente?: string | null;
1010
+ pais_origen_fondos?: string | null;
1011
+ pais_destino_fondos?: string | null;
1012
+ score_total?: number | null;
1013
+ ai_recommendation?: string | null;
1014
+ current_step?: string | null;
1015
+ degraded_steps?: string | null;
1016
+ error_code?: ("UPLOAD_FAILED" | "VALIDATION_OCR_FAILED" | "VALIDATION_LISTS_FAILED" | "VALIDATION_STEP_FAILED" | "VALIDATION_TIMEOUT" | "STALE_PROCESSING_TIMEOUT" | "VALIDATION_PIPELINE_CRASH") | null;
1017
+ error_message?: string | null;
1018
+ notes?: string | null;
1019
+ created_at: string;
1020
+ completed_at?: string | null;
1021
+ client_photo_url?: string | null;
1022
+ feic_data?: string | null;
1023
+ feic_source?: string | null;
1024
+ identity?: components["schemas"]["app__api__validations__IdentityResponse"] | null;
1025
+ score_factors: components["schemas"]["ScoreFactorResponse"][];
1026
+ computed_risk_level?: string | null;
1027
+ overrides_applied?: string | null;
1028
+ internet_summary?: string | null;
1029
+ internet_risk_alerts?: string | null;
1030
+ internet_relevant_count?: number | null;
1031
+ internet_negative_count?: number | null;
1032
+ list_results: components["schemas"]["ListResultResponse"][];
1033
+ internet_results: components["schemas"]["InternetResultResponse"][];
1034
+ ocr_data?: {
1035
+ [key: string]: unknown;
1036
+ } | null;
1037
+ renap_data?: {
1038
+ [key: string]: unknown;
1039
+ } | null;
1040
+ } | undefined>;
1041
+ report(id: string): Promise<Blob>;
1042
+ }
1043
+ declare class CreditsApi {
1044
+ private readonly deps;
1045
+ constructor(deps: SubApiDeps);
1046
+ balance(): Promise<{
1047
+ tenant_id: string;
1048
+ credit_balance: number;
1049
+ plan: string;
1050
+ } | undefined>;
1051
+ }
1052
+ declare class ApiKeysApi {
1053
+ private readonly deps;
1054
+ constructor(deps: SubApiDeps);
1055
+ list(tenantId: string): Promise<{
1056
+ items: components["schemas"]["ApiKeySummary"][];
1057
+ } | undefined>;
1058
+ }
1059
+
1060
+ /**
1061
+ * Errors thrown by the Verifiquemos SDK.
1062
+ *
1063
+ * `ApiError` is thrown for any HTTP 4xx/5xx response from the API.
1064
+ * `RateLimitError` is a specialization for 429 responses.
1065
+ * `NetworkError` wraps transport failures (DNS, timeout, connection reset).
1066
+ */
1067
+ declare class ApiError extends Error {
1068
+ readonly status: number;
1069
+ readonly body: unknown;
1070
+ constructor(status: number, message: string, body: unknown);
1071
+ isUnauthorized(): boolean;
1072
+ isPaymentRequired(): boolean;
1073
+ isNotFound(): boolean;
1074
+ isServerError(): boolean;
1075
+ }
1076
+ declare class RateLimitError extends ApiError {
1077
+ readonly retryAfterSeconds: number;
1078
+ constructor(retryAfterSeconds: number, body?: unknown);
1079
+ }
1080
+ declare class NetworkError extends Error {
1081
+ readonly cause?: Error;
1082
+ constructor(message: string, cause?: Error);
1083
+ }
1084
+
1085
+ /**
1086
+ * Re-export of the OpenAPI-derived types for SDK consumers.
1087
+ *
1088
+ * The full schema lives in ./generated.ts (auto-generated, ~3700 lines).
1089
+ * Consumers usually want a smaller surface: the request/response types
1090
+ * for the endpoints they hit. They can either:
1091
+ * - import { Validation } from "@verifiquemos/sdk" (re-export below), or
1092
+ * - import type { paths, components } from "@verifiquemos/sdk/generated"
1093
+ * for direct access to the full schema.
1094
+ */
1095
+
1096
+ type Validation = components["schemas"]["ValidationDetailResponse"];
1097
+ type ValidationCreatedResponse = components["schemas"]["ValidationCreatedResponse"];
1098
+ type CreditsBalance = components["schemas"]["BalanceResponse"];
1099
+ type ApiKeySummary = components["schemas"]["ApiKeySummary"];
1100
+ type MeResponse = components["schemas"]["MeResponse"];
1101
+
1102
+ export { ApiError, type ApiKeySummary, type CreditsBalance, type MeResponse, NetworkError, RateLimitError, type Validation, type ValidationCreatedResponse, VerifiquemosClient, type VerifiquemosClientOptions };