diff --git a/cuenca/__init__.py b/cuenca/__init__.py index 6bb845d0..d10d5f64 100644 --- a/cuenca/__init__.py +++ b/cuenca/__init__.py @@ -4,6 +4,7 @@ 'Account', 'Arpc', 'BalanceEntry', + 'BankAccountValidations', 'BillPayment', 'Card', 'CardActivation', @@ -49,6 +50,7 @@ ApiKey, Arpc, BalanceEntry, + BankAccountValidations, BillPayment, Card, CardActivation, diff --git a/cuenca/resources/__init__.py b/cuenca/resources/__init__.py index 3e4af59c..65b57513 100644 --- a/cuenca/resources/__init__.py +++ b/cuenca/resources/__init__.py @@ -2,6 +2,7 @@ 'ApiKey', 'Account', 'Arpc', + 'BankAccountValidations', 'BalanceEntry', 'BillPayment', 'Card', @@ -41,6 +42,7 @@ from .api_keys import ApiKey from .arpc import Arpc from .balance_entries import BalanceEntry +from .bank_account_validations import BankAccountValidations from .bill_payments import BillPayment from .card_activations import CardActivation from .card_transactions import CardTransaction @@ -82,6 +84,7 @@ Account, Arpc, BalanceEntry, + BankAccountValidations, BillPayment, Card, CardActivation, diff --git a/cuenca/resources/bank_account_validation.py b/cuenca/resources/bank_account_validation.py new file mode 100644 index 00000000..1811b972 --- /dev/null +++ b/cuenca/resources/bank_account_validation.py @@ -0,0 +1,73 @@ +import datetime as dt +from typing import ClassVar, Optional, cast + +from clabe import Clabe +from cuenca_validations.types import ( + BankAccountStatus, + BankAccountValidationQuery, + BankAccountValidationRequest, + Country, + CurpField, + Gender, + Rfc, + State, +) + +from ..http import Session, session as global_session +from .base import Creatable, Queryable, Retrievable + + +class BankAccountValidation(Creatable, Retrievable, Queryable): + _resource: ClassVar = 'bank_account_validations' + _query_params: ClassVar = BankAccountValidationQuery + + updated_at: dt.datetime + status: BankAccountStatus + platform_id: str + clabe: Clabe + transfer_id: str + names: Optional[str] = None + first_surname: Optional[str] = None + second_surname: Optional[str] = None + curp: Optional[CurpField] = None + rfc: Optional[Rfc] = None + gender: Optional[Gender] = None + date_of_birth: Optional[dt.date] = None + state_of_birth: Optional[State] = None + nationality: Optional[Country] = None + country_of_birth: Optional[Country] = None + + class Config: + schema_extra = { + 'example': { + 'id': 'BAbUFjZTUbR3Oqj3vvzHcwBg', + 'created_at': '2022-11-16T17:15:35.288128', + 'updated_at': '2022-11-16T17:15:35.288128', + 'status': 'succeeded', + 'platform_id': 'PT-123', + 'clabe': '127841000000000003', + 'transfer_id': 'TR-123', + 'names': 'José', + 'first_surname': 'López', + 'second_surname': 'Pérez', + 'curp': 'LOPJ900101HDFPRS04', + 'rfc': 'LOPJ9001016S5', + 'gender': 'male', + 'date_of_birth': '1990-01-01', + 'state_of_birth': 'DF', + 'nationality': 'MX', + 'country_of_birth': 'MX', + } + } + + @classmethod + def create( + cls, + clabe: Clabe, + session: Session = global_session, + ) -> 'BankAccountValidation': + req = BankAccountValidationRequest(clabe=clabe) + return cast( + 'BankAccountValidation', + cls._create(session=session, **req.dict()), + ) diff --git a/cuenca/version.py b/cuenca/version.py index 2767bf41..3afd6383 100644 --- a/cuenca/version.py +++ b/cuenca/version.py @@ -1,3 +1,3 @@ -__version__ = '0.15.4' +__version__ = '0.15.5.dev0' CLIENT_VERSION = __version__ API_VERSION = '2020-03-19' diff --git a/requirements.txt b/requirements.txt index 95312c7c..17945b23 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ requests==2.27.1 -cuenca-validations==0.11.11 +cuenca-validations==0.11.12.dev2 dataclasses>=0.7;python_version<"3.7"