cuenca 2.1.1.dev0__tar.gz → 2.1.2__tar.gz

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.
Files changed (111) hide show
  1. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/PKG-INFO +1 -1
  2. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/__init__.py +2 -0
  3. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/__init__.py +3 -0
  4. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/kyc_validations.py +1 -7
  5. cuenca-2.1.2/cuenca/resources/kyc_verifications.py +53 -0
  6. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/user_lists_validation.py +12 -0
  7. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/version.py +1 -1
  8. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca.egg-info/PKG-INFO +1 -1
  9. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca.egg-info/SOURCES.txt +2 -0
  10. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_kyc_validations.py +1 -5
  11. cuenca-2.1.2/tests/resources/test_kyc_verifications.py +25 -0
  12. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_user_lists_validation.py +14 -0
  13. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/LICENSE +0 -0
  14. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/README.md +0 -0
  15. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/exc.py +0 -0
  16. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/http/__init__.py +0 -0
  17. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/http/client.py +0 -0
  18. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/jwt.py +0 -0
  19. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/py.typed +0 -0
  20. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/accounts.py +0 -0
  21. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/api_keys.py +0 -0
  22. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/arpc.py +0 -0
  23. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/balance_entries.py +0 -0
  24. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/base.py +0 -0
  25. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/bill_payments.py +0 -0
  26. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/card_activations.py +0 -0
  27. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/card_transactions.py +0 -0
  28. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/card_validations.py +0 -0
  29. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/cards.py +0 -0
  30. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/cash_references.py +0 -0
  31. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/clabes.py +0 -0
  32. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/commissions.py +0 -0
  33. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/curp_validations.py +0 -0
  34. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/deposits.py +0 -0
  35. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/endpoints.py +0 -0
  36. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/file_batches.py +0 -0
  37. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/files.py +0 -0
  38. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/identities.py +0 -0
  39. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/identity_events.py +0 -0
  40. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/jwt_tokens.py +0 -0
  41. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/limited_wallets.py +0 -0
  42. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/login_tokens.py +0 -0
  43. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/otps.py +0 -0
  44. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/platforms.py +0 -0
  45. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/questionnaires.py +0 -0
  46. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/resources.py +0 -0
  47. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/savings.py +0 -0
  48. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/service_providers.py +0 -0
  49. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/sessions.py +0 -0
  50. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/statements.py +0 -0
  51. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/transfers.py +0 -0
  52. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/user_credentials.py +0 -0
  53. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/user_events.py +0 -0
  54. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/user_logins.py +0 -0
  55. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/users.py +0 -0
  56. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/verifications.py +0 -0
  57. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/wallet_transactions.py +0 -0
  58. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/webhooks.py +0 -0
  59. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca/resources/whatsapp_transfers.py +0 -0
  60. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca.egg-info/dependency_links.txt +0 -0
  61. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca.egg-info/requires.txt +0 -0
  62. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/cuenca.egg-info/top_level.txt +0 -0
  63. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/setup.cfg +0 -0
  64. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/setup.py +0 -0
  65. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/__init__.py +0 -0
  66. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/conftest.py +0 -0
  67. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/http/__init__.py +0 -0
  68. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/http/conftest.py +0 -0
  69. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/http/test_client.py +0 -0
  70. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/__init__.py +0 -0
  71. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_accounts.py +0 -0
  72. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_api_keys.py +0 -0
  73. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_arpc.py +0 -0
  74. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_balance_entries.py +0 -0
  75. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_bill_payments.py +0 -0
  76. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_card_activations.py +0 -0
  77. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_card_transactions.py +0 -0
  78. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_card_validations.py +0 -0
  79. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_cards.py +0 -0
  80. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_cash_references.py +0 -0
  81. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_clabes.py +0 -0
  82. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_commissions.py +0 -0
  83. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_curp_validations.py +0 -0
  84. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_deposits.py +0 -0
  85. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_endpoints.py +0 -0
  86. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_file_batches.py +0 -0
  87. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_files.py +0 -0
  88. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_identities.py +0 -0
  89. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_identity_events.py +0 -0
  90. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_jwt_tokens.py +0 -0
  91. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_limited_wallets.py +0 -0
  92. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_login_tokens.py +0 -0
  93. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_otps.py +0 -0
  94. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_platforms.py +0 -0
  95. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_questionnaires.py +0 -0
  96. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_resources.py +0 -0
  97. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_savings.py +0 -0
  98. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_service_providers.py +0 -0
  99. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_sessions.py +0 -0
  100. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_statements.py +0 -0
  101. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_transfers.py +0 -0
  102. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_user_credentials.py +0 -0
  103. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_user_events.py +0 -0
  104. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_user_logins.py +0 -0
  105. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_users.py +0 -0
  106. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_verifications.py +0 -0
  107. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_wallet_transactions.py +0 -0
  108. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_webhooks.py +0 -0
  109. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/resources/test_whatsapp_transfers.py +0 -0
  110. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/test_cuenca.py +0 -0
  111. {cuenca-2.1.1.dev0 → cuenca-2.1.2}/tests/test_jwt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cuenca
3
- Version: 2.1.1.dev0
3
+ Version: 2.1.2
4
4
  Summary: Cuenca API Client
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-python
6
6
  Author: Cuenca
@@ -20,6 +20,7 @@ __all__ = [
20
20
  'Identity',
21
21
  'IdentityEvent',
22
22
  'KYCValidation',
23
+ 'KYCVerification',
23
24
  'LimitedWallet',
24
25
  'LoginToken',
25
26
  'Otp',
@@ -67,6 +68,7 @@ from .resources import (
67
68
  IdentityEvent,
68
69
  JwtToken,
69
70
  KYCValidation,
71
+ KYCVerification,
70
72
  LimitedWallet,
71
73
  LoginToken,
72
74
  Otp,
@@ -19,6 +19,7 @@ __all__ = [
19
19
  'Identity',
20
20
  'IdentityEvent',
21
21
  'KYCValidation',
22
+ 'KYCVerification',
22
23
  'LimitedWallet',
23
24
  'LoginToken',
24
25
  'Otp',
@@ -61,6 +62,7 @@ from .identities import Identity
61
62
  from .identity_events import IdentityEvent
62
63
  from .jwt_tokens import JwtToken
63
64
  from .kyc_validations import KYCValidation
65
+ from .kyc_verifications import KYCVerification
64
66
  from .limited_wallets import LimitedWallet
65
67
  from .login_tokens import LoginToken
66
68
  from .otps import Otp
@@ -104,6 +106,7 @@ resource_classes = [
104
106
  Identity,
105
107
  IdentityEvent,
106
108
  KYCValidation,
109
+ KYCVerification,
107
110
  LimitedWallet,
108
111
  LoginToken,
109
112
  Questionnaires,
@@ -1,10 +1,6 @@
1
1
  from typing import ClassVar, Optional
2
2
 
3
- from cuenca_validations.types import (
4
- KYCFile,
5
- KYCValidationRequest,
6
- KYCValidationType,
7
- )
3
+ from cuenca_validations.types import KYCFile, KYCValidationRequest
8
4
  from pydantic import ConfigDict
9
5
 
10
6
  from ..http import Session, session as global_session
@@ -35,7 +31,6 @@ class KYCValidation(Creatable, Retrievable, Queryable):
35
31
  def create(
36
32
  cls,
37
33
  user_id: str,
38
- validation_type: KYCValidationType,
39
34
  force: bool = False,
40
35
  documents: list[KYCFile] = [],
41
36
  session: Session = global_session,
@@ -44,6 +39,5 @@ class KYCValidation(Creatable, Retrievable, Queryable):
44
39
  user_id=user_id,
45
40
  force=force,
46
41
  documents=documents,
47
- validation_type=validation_type,
48
42
  )
49
43
  return cls._create(**req.model_dump(), session=session)
@@ -0,0 +1,53 @@
1
+ import datetime as dt
2
+ from typing import ClassVar, Optional
3
+
4
+ from cuenca_validations.types import (
5
+ Address,
6
+ Curp,
7
+ KYCVerificationUpdateRequest,
8
+ Rfc,
9
+ )
10
+ from pydantic import ConfigDict
11
+
12
+ from ..http import Session, session as global_session
13
+ from .base import Creatable, Retrievable, Updateable
14
+
15
+
16
+ class KYCVerification(Creatable, Retrievable, Updateable):
17
+ _resource: ClassVar = 'kyc_verifications'
18
+
19
+ platform_id: str
20
+ created_at: dt.datetime
21
+ deactivated_at: Optional[dt.datetime] = None
22
+ verification_id: Optional[str] = None
23
+ curp: Optional[Curp] = None
24
+ rfc: Optional[Rfc] = None
25
+ address: Optional[Address] = None
26
+
27
+ model_config = ConfigDict(
28
+ json_schema_extra={
29
+ 'example': {
30
+ 'id': 'KVNEUInh69SuKXXmK95sROwQ',
31
+ 'updated_at': '2020-05-24T14:15:22Z',
32
+ 'platform_id': 'PT8UEv02zBTcymd4Kd3MO6pg',
33
+ 'created_at': '2020-05-24T14:15:22Z',
34
+ 'verification_id': 'string',
35
+ 'curp': 'GOCG650418HVZNML08',
36
+ 'rfc': 'GOCG650418123',
37
+ 'address': Address.schema().get('example'),
38
+ }
39
+ }
40
+ )
41
+
42
+ @classmethod
43
+ def create(cls, session: Session = global_session) -> 'KYCVerification':
44
+ return cls._create(session=session)
45
+
46
+ @classmethod
47
+ def update(
48
+ cls,
49
+ kyc_id: str,
50
+ curp: Optional[Curp] = None,
51
+ ) -> 'KYCVerification':
52
+ req = KYCVerificationUpdateRequest(curp=curp)
53
+ return cls._update(id=kyc_id, **req.model_dump())
@@ -17,6 +17,18 @@ class UserListsValidation(Creatable, Retrievable):
17
17
  curp: Optional[Curp] = None
18
18
  account_number: Optional[str] = None
19
19
  status: Optional[VerificationStatus] = None
20
+ response: Optional[dict] = None
21
+
22
+ @property
23
+ def ppe_matches(self) -> list[dict]:
24
+ if not self.response or 'persons' not in self.response:
25
+ return []
26
+
27
+ return [
28
+ person
29
+ for person in self.response['persons']
30
+ if person.get('lista') == 'PPE'
31
+ ]
20
32
 
21
33
  @classmethod
22
34
  def create(
@@ -1,3 +1,3 @@
1
- __version__ = '2.1.1.dev0'
1
+ __version__ = '2.1.2'
2
2
  CLIENT_VERSION = __version__
3
3
  API_VERSION = '2020-03-19'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cuenca
3
- Version: 2.1.1.dev0
3
+ Version: 2.1.2
4
4
  Summary: Cuenca API Client
5
5
  Home-page: https://github.com/cuenca-mx/cuenca-python
6
6
  Author: Cuenca
@@ -37,6 +37,7 @@ cuenca/resources/identities.py
37
37
  cuenca/resources/identity_events.py
38
38
  cuenca/resources/jwt_tokens.py
39
39
  cuenca/resources/kyc_validations.py
40
+ cuenca/resources/kyc_verifications.py
40
41
  cuenca/resources/limited_wallets.py
41
42
  cuenca/resources/login_tokens.py
42
43
  cuenca/resources/otps.py
@@ -86,6 +87,7 @@ tests/resources/test_identities.py
86
87
  tests/resources/test_identity_events.py
87
88
  tests/resources/test_jwt_tokens.py
88
89
  tests/resources/test_kyc_validations.py
90
+ tests/resources/test_kyc_verifications.py
89
91
  tests/resources/test_limited_wallets.py
90
92
  tests/resources/test_login_tokens.py
91
93
  tests/resources/test_otps.py
@@ -1,15 +1,11 @@
1
1
  import pytest
2
- from cuenca_validations.types import KYCValidationType
3
2
 
4
3
  from cuenca import KYCValidation
5
4
 
6
5
 
7
6
  @pytest.mark.vcr
8
7
  def test_validation_create():
9
- kyc_validation: KYCValidation = KYCValidation.create(
10
- user_id="USFOOBAR",
11
- validation_type=KYCValidationType.background,
12
- )
8
+ kyc_validation: KYCValidation = KYCValidation.create(user_id="USFOOBAR")
13
9
  assert kyc_validation.id
14
10
  assert kyc_validation.verification_id
15
11
 
@@ -0,0 +1,25 @@
1
+ import pytest
2
+
3
+ from cuenca import KYCVerification
4
+
5
+
6
+ @pytest.mark.vcr
7
+ def test_kyc_verification_create():
8
+ kyc_verification: KYCVerification = KYCVerification.create()
9
+ assert kyc_verification.id
10
+
11
+
12
+ @pytest.mark.vcr
13
+ def test_kyc_verification_retrieve():
14
+ kyc_verification = KYCVerification.retrieve('KYC01')
15
+ assert kyc_verification.id
16
+
17
+
18
+ @pytest.mark.vcr
19
+ def test_kyc_verification_update():
20
+ kyc_id = 'KYC01'
21
+ changes = dict(curp='HEMA921130HNERNN05')
22
+ kyc_verification = KYCVerification.update(kyc_id, **changes)
23
+ assert all(
24
+ item in kyc_verification.to_dict().items() for item in changes.items()
25
+ )
@@ -5,10 +5,24 @@ from cuenca.exc import CuencaResponseException
5
5
  from cuenca.resources import UserListsValidation
6
6
 
7
7
 
8
+ @pytest.mark.vcr
9
+ def test_create_user_validation_with_response():
10
+ user_validation = UserListsValidation.create(
11
+ curp='LOBR810330HTCPLM05',
12
+ names='José Ramón',
13
+ first_surname='López',
14
+ second_surname='Beltrán',
15
+ )
16
+ assert user_validation.status == VerificationStatus.rejected
17
+ assert len(user_validation.ppe_matches) == 1
18
+ assert user_validation.ppe_matches[0]['parentesco'] == 'HIJO'
19
+
20
+
8
21
  @pytest.mark.vcr
9
22
  def test_create_user_validation(user_lists_request):
10
23
  user_validation = UserListsValidation.create(**user_lists_request)
11
24
  assert user_validation.status == VerificationStatus.succeeded
25
+ assert len(user_validation.ppe_matches) == 0
12
26
  assert user_validation.id
13
27
 
14
28
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes