mangopay4-python-sdk 3.58.0__tar.gz → 3.60.0__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.
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/PKG-INFO +1 -1
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/constants.py +11 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/fields.py +51 -1
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/resources.py +46 -1
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/utils.py +76 -4
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay4_python_sdk.egg-info/PKG-INFO +1 -1
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/setup.py +1 -1
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_base.py +5 -1
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_identity_verification.py +38 -1
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_payins.py +25 -4
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_users.py +9 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/DESCRIPTION.md +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/LICENSE +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/MANIFEST.in +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/Makefile +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/README.md +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/__init__.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/api.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/auth.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/base.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/compat.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/exceptions.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/page.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/query.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/ratelimit.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay/signals.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay4_python_sdk.egg-info/SOURCES.txt +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay4_python_sdk.egg-info/dependency_links.txt +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay4_python_sdk.egg-info/entry_points.txt +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay4_python_sdk.egg-info/requires.txt +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/mangopay4_python_sdk.egg-info/top_level.txt +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/setup.cfg +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/__init__.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/card.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/cardregistrations.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/cardregistrations_update.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/declarative_user.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/legal_user.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/legal_user_wallet.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/legal_user_wallet_89.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/legal_user_wallet_99.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/list_ubo_declarations.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/natural_user.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/natural_user_wallet.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/natural_user_wallet_9.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/ubo.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/ubo_declaration.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/ubo_declaration_submit.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/ubo_update.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_2_per_page.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_2_per_page_page1.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_3_per_page_page2.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_full.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_page1.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_wallet.json +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/images/image.jpg +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/mocks.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/resources/TestKycPageFile.png +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/resources/settlement_sample.csv +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/resources/settlement_sample_bad_footer.csv +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/resources/settlement_sample_bad_line.csv +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/resources.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/settings.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_acquiring.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_bankaccounts.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_banking_aliases.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_cards.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_client_wallets.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_clients.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_conversion.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_country_authorizations.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_deposits.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_disputes.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_documentconsult.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_emoney.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_idempotency.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_kyc_document.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_kycs.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_mandates.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_notifications.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_payouts.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_preauthorizations.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_rate_limit.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_recipients.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_refunds.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_reports.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_reports_v2.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_repudiations.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_settlements.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_tokens.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_transactions.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_transfers.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_ubos.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_utils.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_virtual_account.py +0 -0
- {mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_wallets.py +0 -0
|
@@ -223,6 +223,17 @@ EVENT_TYPE_CHOICES = Choices(
|
|
|
223
223
|
('IDENTITY_VERIFICATION_OUTDATED', 'identity_verification_outdated', 'Identity Verification Outdated'),
|
|
224
224
|
('IDENTITY_VERIFICATION_TIMEOUT', 'identity_verification_timeout', 'Identity Verification Timeout'),
|
|
225
225
|
('IDENTITY_VERIFICATION_PENDING', 'identity_verification_pending', 'Identity Verification Pending'),
|
|
226
|
+
('IDENTITY_VERIFICATION_EXPIRED', 'identity_verification_expired', 'Identity Verification Expired'),
|
|
227
|
+
('IDENTITY_VERIFICATION_PENDING_PSC_ACTION', 'identity_verification_pending_psc_action',
|
|
228
|
+
'Identity Verification Pending PSC Action'),
|
|
229
|
+
('IDENTITY_VERIFICATION_PSC_PENDING', 'identity_verification_psc_pending',
|
|
230
|
+
'Identity Verification PSC Pending'),
|
|
231
|
+
('IDENTITY_VERIFICATION_PSC_VALIDATED', 'identity_verification_psc_validated',
|
|
232
|
+
'Identity Verification PSC Validated'),
|
|
233
|
+
('IDENTITY_VERIFICATION_PSC_REJECTED', 'identity_verification_psc_rejected',
|
|
234
|
+
'Identity Verification PSC Rejected'),
|
|
235
|
+
('IDENTITY_VERIFICATION_PSC_ABANDONED', 'identity_verification_psc_abandoned',
|
|
236
|
+
'Identity Verification PSC Abandoned'),
|
|
226
237
|
|
|
227
238
|
('RECIPIENT_ACTIVE', 'recipient_active', 'Recipient Active'),
|
|
228
239
|
('RECIPIENT_CANCELED', 'recipient_canceled', 'Recipient Canceled'),
|
|
@@ -16,7 +16,7 @@ from .utils import timestamp_from_datetime, timestamp_from_date, Money, DebitedB
|
|
|
16
16
|
CompanyNumberValidation, ReportFilter, PayInIntentExternalData, PayInIntentBuyer, SupportedBank, \
|
|
17
17
|
VerificationOfPayee, PayInIntentRefund, PayInIntentCapture, PayInIntentDispute, CustomFees, MarginsResponse, \
|
|
18
18
|
UserMargin, ConsentScope, AuthenticationResult, FlowDescriptor, SettlementFooterError, SettlementLineError, \
|
|
19
|
-
SettlementLineErrorDetail
|
|
19
|
+
SettlementLineErrorDetail, AccountFunding, AccountFundingSender, KycInformation
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class FieldDescriptor(object):
|
|
@@ -840,6 +840,26 @@ class ScopeBlockedField(Field):
|
|
|
840
840
|
return value
|
|
841
841
|
|
|
842
842
|
|
|
843
|
+
class KycInformationField(Field):
|
|
844
|
+
def python_value(self, value):
|
|
845
|
+
if value is not None:
|
|
846
|
+
return KycInformation(last_kyc_date=value['LastKycDate'],
|
|
847
|
+
kyc_renewal_deadline=value['KycRenewalDeadline'])
|
|
848
|
+
|
|
849
|
+
return value
|
|
850
|
+
|
|
851
|
+
def api_value(self, value):
|
|
852
|
+
value = super(KycInformationField, self).api_value(value)
|
|
853
|
+
|
|
854
|
+
if isinstance(value, KycInformation):
|
|
855
|
+
value = {
|
|
856
|
+
'LastKycDate': value.last_kyc_date,
|
|
857
|
+
'KycRenewalDeadline': value.kyc_renewal_deadline,
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
return value
|
|
861
|
+
|
|
862
|
+
|
|
843
863
|
class ShippingField(Field):
|
|
844
864
|
def python_value(self, value):
|
|
845
865
|
if value is not None:
|
|
@@ -1599,4 +1619,34 @@ class SettlementLinesErrorsField(Field):
|
|
|
1599
1619
|
|
|
1600
1620
|
return value
|
|
1601
1621
|
|
|
1622
|
+
|
|
1623
|
+
class AccountFundingField(Field):
|
|
1624
|
+
def python_value(self, value):
|
|
1625
|
+
if isinstance(value, dict):
|
|
1626
|
+
return AccountFunding(sender=self._to_sender(value.get('Sender', None)),
|
|
1627
|
+
purpose=value.get('Purpose', None),
|
|
1628
|
+
type=value.get('Type', None))
|
|
1629
|
+
|
|
1630
|
+
return value
|
|
1631
|
+
|
|
1632
|
+
@staticmethod
|
|
1633
|
+
def _to_sender(value):
|
|
1634
|
+
if isinstance(value, dict):
|
|
1635
|
+
return AccountFundingSender(first_name=value.get('FirstName', None),
|
|
1636
|
+
last_name=value.get('LastName', None),
|
|
1637
|
+
address=value.get('Address', None),
|
|
1638
|
+
email=value.get('Email', None),
|
|
1639
|
+
birthday=value.get('Birthday', None),
|
|
1640
|
+
nationality=value.get('Nationality', None),
|
|
1641
|
+
occupation=value.get('Occupation', None),
|
|
1642
|
+
birth_country=value.get('BirthCountry', None))
|
|
1643
|
+
|
|
1644
|
+
return value
|
|
1645
|
+
|
|
1646
|
+
def api_value(self, value):
|
|
1647
|
+
value = super(AccountFundingField, self).api_value(value)
|
|
1648
|
+
|
|
1649
|
+
if isinstance(value, AccountFunding):
|
|
1650
|
+
return value.to_api_json()
|
|
1651
|
+
|
|
1602
1652
|
return value
|
|
@@ -22,7 +22,8 @@ from .fields import (PrimaryKeyField, EmailField, CharField,
|
|
|
22
22
|
PayInIntentExternalDataField, PayInIntentBuyerField, SupportedBanksField, VerificationOfPayeeField,
|
|
23
23
|
PayInIntentRefundField, PayInIntentCaptureField, PayInIntentDisputeField, CustomFeesField,
|
|
24
24
|
UserMarginField, MarginsResponseField, ConsentScopeField, AuthenticationResultField,
|
|
25
|
-
FlowDescriptorField, SettlementFooterErrorsField, SettlementLinesErrorsField
|
|
25
|
+
FlowDescriptorField, SettlementFooterErrorsField, SettlementLinesErrorsField,
|
|
26
|
+
AccountFundingField, KycInformationField)
|
|
26
27
|
from .query import InsertQuery, UpdateQuery, SelectQuery, ActionQuery, DeleteQuery
|
|
27
28
|
|
|
28
29
|
|
|
@@ -1341,6 +1342,7 @@ class DirectPayIn(PayIn):
|
|
|
1341
1342
|
preferred_card_network = CharField(api_name='PreferredCardNetwork')
|
|
1342
1343
|
card_info = CardInfoField(api_name='CardInfo')
|
|
1343
1344
|
payment_category = CharField(api_name='PaymentCategory')
|
|
1345
|
+
account_funding = AccountFundingField(api_name='AccountFunding')
|
|
1344
1346
|
|
|
1345
1347
|
class Meta:
|
|
1346
1348
|
verbose_name = 'payin'
|
|
@@ -3036,6 +3038,7 @@ class Ubo(BaseModel):
|
|
|
3036
3038
|
class UserBlockStatus(BaseModel):
|
|
3037
3039
|
scope_blocked = ScopeBlockedField(api_name='ScopeBlocked', required=True)
|
|
3038
3040
|
action_code = CharField(api_name='ActionCode', required=True)
|
|
3041
|
+
kyc_information = KycInformationField(api_name='KycInformation')
|
|
3039
3042
|
|
|
3040
3043
|
class Meta:
|
|
3041
3044
|
verbose_name = 'userblockstatus'
|
|
@@ -3302,6 +3305,7 @@ class IdentityVerification(BaseModel):
|
|
|
3302
3305
|
last_update = DateTimeField(api_name='UpdateDate')
|
|
3303
3306
|
user_id = CharField(api_name='UserId')
|
|
3304
3307
|
checks = ListField(api_name='Checks')
|
|
3308
|
+
pscs = ListField(api_name='PSCs')
|
|
3305
3309
|
|
|
3306
3310
|
class Meta:
|
|
3307
3311
|
verbose_name = 'identity_verification'
|
|
@@ -3327,6 +3331,40 @@ class IdentityVerification(BaseModel):
|
|
|
3327
3331
|
return select.all(*args, **kwargs)
|
|
3328
3332
|
|
|
3329
3333
|
|
|
3334
|
+
class Psc(BaseModel):
|
|
3335
|
+
first_name = CharField(api_name='FirstName')
|
|
3336
|
+
last_name = CharField(api_name='LastName')
|
|
3337
|
+
email = CharField(api_name='Email')
|
|
3338
|
+
date_of_birth = DateField(api_name='DateOfBirth')
|
|
3339
|
+
country = CharField(api_name='Country')
|
|
3340
|
+
nationality = CharField(api_name='Nationality')
|
|
3341
|
+
psc_type = CharField(api_name='PscType')
|
|
3342
|
+
status = CharField(api_name='Status')
|
|
3343
|
+
validation_date = DateTimeField(api_name='ValidationDate')
|
|
3344
|
+
hosted_url = CharField(api_name='HostedUrl')
|
|
3345
|
+
data = ListField(api_name='Data')
|
|
3346
|
+
last_update = DateTimeField(api_name='LastUpdate')
|
|
3347
|
+
|
|
3348
|
+
class Meta:
|
|
3349
|
+
verbose_name = 'psc'
|
|
3350
|
+
verbose_name_plural = 'pscs'
|
|
3351
|
+
|
|
3352
|
+
url = {
|
|
3353
|
+
'RETRY': '/identity-verifications/%(identity_verification_id)s/pscs/%(psc_id)s/retry'
|
|
3354
|
+
}
|
|
3355
|
+
|
|
3356
|
+
@classmethod
|
|
3357
|
+
def retry(cls, identity_verification_id, psc_id, **kwargs):
|
|
3358
|
+
"""Request the retry of a PSC session.
|
|
3359
|
+
|
|
3360
|
+
The keyword arguments can be empty or contain the values to be updated.
|
|
3361
|
+
"""
|
|
3362
|
+
path_params = {'identity_verification_id': identity_verification_id, 'psc_id': psc_id}
|
|
3363
|
+
update = UpdateQuery(Psc, None, path_params, **kwargs)
|
|
3364
|
+
update.identifier = 'RETRY'
|
|
3365
|
+
return update.execute()
|
|
3366
|
+
|
|
3367
|
+
|
|
3330
3368
|
class RecipientSchema(BaseModel):
|
|
3331
3369
|
display_name = RecipientPropertySchemaField(api_name='DisplayName')
|
|
3332
3370
|
payout_method_type = RecipientPropertySchemaField(api_name='PayoutMethodType')
|
|
@@ -3425,6 +3463,7 @@ class PayInIntent(BaseModel):
|
|
|
3425
3463
|
'REVERSE_REFUND': '/payins/intents/%(intent_id)s/refunds/%(refund_id)s/reverse',
|
|
3426
3464
|
'CREATE_DISPUTE': '/payins/intents/%(intent_id)s/captures/%(capture_id)s/disputes',
|
|
3427
3465
|
'UPDATE_DISPUTE_OUTCOME': '/payins/intents/%(intent_id)s/captures/%(capture_id)s/disputes/%(dispute_id)s/decision',
|
|
3466
|
+
'GET_EXTERNAL_PROVIDERS_LIST': '/payins/intents/external-providers',
|
|
3428
3467
|
}
|
|
3429
3468
|
|
|
3430
3469
|
def create_authorization(self, idempotency_key=None, **kwargs):
|
|
@@ -3481,6 +3520,12 @@ class PayInIntent(BaseModel):
|
|
|
3481
3520
|
update.identifier = 'UPDATE_DISPUTE_OUTCOME'
|
|
3482
3521
|
return update.execute(is_v3=True)
|
|
3483
3522
|
|
|
3523
|
+
@classmethod
|
|
3524
|
+
def get_external_providers_list(cls, *args, **kwargs):
|
|
3525
|
+
select = SelectQuery(PayInIntent, *args, **kwargs)
|
|
3526
|
+
select.identifier = 'GET_EXTERNAL_PROVIDERS_LIST'
|
|
3527
|
+
return select.get("", is_v3=True, strict_dict_parsing=False, *args, **kwargs)
|
|
3528
|
+
|
|
3484
3529
|
|
|
3485
3530
|
class Settlement(BaseModel):
|
|
3486
3531
|
settlement_id = CharField(api_name='SettlementId')
|
|
@@ -570,6 +570,53 @@ class Shipping(object):
|
|
|
570
570
|
(self.first_name, self.last_name, self.address)
|
|
571
571
|
|
|
572
572
|
|
|
573
|
+
@add_camelcase_aliases
|
|
574
|
+
class AccountFundingSender(object):
|
|
575
|
+
def __init__(self, first_name=None, last_name=None, address=None, email=None, birthday=None,
|
|
576
|
+
nationality=None, occupation=None, birth_country=None):
|
|
577
|
+
self.first_name = first_name
|
|
578
|
+
self.last_name = last_name
|
|
579
|
+
self.address = address
|
|
580
|
+
self.email = email
|
|
581
|
+
self.birthday = birthday
|
|
582
|
+
self.nationality = nationality
|
|
583
|
+
self.occupation = occupation
|
|
584
|
+
self.birth_country = birth_country
|
|
585
|
+
|
|
586
|
+
def __str__(self):
|
|
587
|
+
return 'AccountFundingSender: %s %s' % (self.first_name, self.last_name)
|
|
588
|
+
|
|
589
|
+
def to_api_json(self):
|
|
590
|
+
return {
|
|
591
|
+
'FirstName': self.first_name,
|
|
592
|
+
'LastName': self.last_name,
|
|
593
|
+
'Address': self.address,
|
|
594
|
+
'Email': self.email,
|
|
595
|
+
'Birthday': self.birthday,
|
|
596
|
+
'Nationality': self.nationality,
|
|
597
|
+
'Occupation': self.occupation,
|
|
598
|
+
'BirthCountry': self.birth_country
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
@add_camelcase_aliases
|
|
603
|
+
class AccountFunding(object):
|
|
604
|
+
def __init__(self, sender=None, purpose=None, type=None):
|
|
605
|
+
self.sender = sender
|
|
606
|
+
self.purpose = purpose
|
|
607
|
+
self.type = type
|
|
608
|
+
|
|
609
|
+
def __str__(self):
|
|
610
|
+
return 'AccountFunding: %s, %s' % (self.purpose, self.type)
|
|
611
|
+
|
|
612
|
+
def to_api_json(self):
|
|
613
|
+
return {
|
|
614
|
+
'Sender': self.sender,
|
|
615
|
+
'Purpose': self.purpose,
|
|
616
|
+
'Type': self.type
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
|
|
573
620
|
@add_camelcase_aliases
|
|
574
621
|
class CurrentState(object):
|
|
575
622
|
def __init__(self, payins_linked=None, cumulated_debited_amount=None, cumulated_debited_fees=None,
|
|
@@ -607,6 +654,29 @@ class ScopeBlocked(object):
|
|
|
607
654
|
}
|
|
608
655
|
|
|
609
656
|
|
|
657
|
+
@add_camelcase_aliases
|
|
658
|
+
class KycInformation(object):
|
|
659
|
+
def __init__(self, last_kyc_date=None, kyc_renewal_deadline=None):
|
|
660
|
+
self.last_kyc_date = last_kyc_date
|
|
661
|
+
self.kyc_renewal_deadline = kyc_renewal_deadline
|
|
662
|
+
|
|
663
|
+
def __str__(self):
|
|
664
|
+
return 'KycInformation: %s, %s' % (self.last_kyc_date, self.kyc_renewal_deadline)
|
|
665
|
+
|
|
666
|
+
def __eq__(self, other):
|
|
667
|
+
if isinstance(other, KycInformation):
|
|
668
|
+
stat = ((self.last_kyc_date == other.last_kyc_date) and
|
|
669
|
+
(self.kyc_renewal_deadline == other.kyc_renewal_deadline))
|
|
670
|
+
return stat
|
|
671
|
+
return False
|
|
672
|
+
|
|
673
|
+
def to_api_json(self):
|
|
674
|
+
return {
|
|
675
|
+
"LastKycDate": self.last_kyc_date,
|
|
676
|
+
"KycRenewalDeadline": self.kyc_renewal_deadline,
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
|
|
610
680
|
# This code belongs to https://github.com/carljm/django-model-utils
|
|
611
681
|
class Choices(object):
|
|
612
682
|
"""
|
|
@@ -1521,7 +1591,7 @@ class PayInIntentSeller(object):
|
|
|
1521
1591
|
@add_camelcase_aliases
|
|
1522
1592
|
class IntentSplit(object):
|
|
1523
1593
|
def __init__(self, line_item_id=None, wallet_id=None, seller_id=None, split_amount=None, fees_amount=None,
|
|
1524
|
-
transfer_date=None, description=None, status=None):
|
|
1594
|
+
transfer_date=None, description=None, status=None, tag=None):
|
|
1525
1595
|
self.line_item_id = line_item_id
|
|
1526
1596
|
self.wallet_id = wallet_id
|
|
1527
1597
|
self.seller_id = seller_id
|
|
@@ -1530,11 +1600,12 @@ class IntentSplit(object):
|
|
|
1530
1600
|
self.description = description
|
|
1531
1601
|
self.status = status
|
|
1532
1602
|
self.transfer_date = transfer_date
|
|
1603
|
+
self.tag = tag
|
|
1533
1604
|
|
|
1534
1605
|
def __str__(self):
|
|
1535
|
-
return 'PayInIntentSplit: %s %s %s %s %s %s %s %s' % \
|
|
1606
|
+
return 'PayInIntentSplit: %s %s %s %s %s %s %s %s %s' % \
|
|
1536
1607
|
(self.line_item_id, self.wallet_id, self.seller_id, self.split_amount, self.fees_amount, self.description,
|
|
1537
|
-
self.status, self.transfer_date)
|
|
1608
|
+
self.status, self.transfer_date, self.tag)
|
|
1538
1609
|
|
|
1539
1610
|
def to_api_json(self):
|
|
1540
1611
|
return {
|
|
@@ -1545,7 +1616,8 @@ class IntentSplit(object):
|
|
|
1545
1616
|
"FeesAmount": self.fees_amount,
|
|
1546
1617
|
"Description": self.description,
|
|
1547
1618
|
"Status": self.status,
|
|
1548
|
-
"TransferDate": self.transfer_date
|
|
1619
|
+
"TransferDate": self.transfer_date,
|
|
1620
|
+
"Tag": self.tag
|
|
1549
1621
|
}
|
|
1550
1622
|
|
|
1551
1623
|
|
|
@@ -10,7 +10,7 @@ with open(path.join(here, 'DESCRIPTION.md'), encoding='utf-8') as f:
|
|
|
10
10
|
|
|
11
11
|
setup(
|
|
12
12
|
name='mangopay4-python-sdk',
|
|
13
|
-
version='3.
|
|
13
|
+
version='3.60.0',
|
|
14
14
|
description='A client library written in python to work with mangopay v2 api',
|
|
15
15
|
long_description='This SDK is a client library for interacting with the Mangopay API.',
|
|
16
16
|
url='https://github.com/Mangopay/mangopay2-python-sdk',
|
|
@@ -873,6 +873,7 @@ class BaseTestLive(unittest.TestCase):
|
|
|
873
873
|
intent_authorization.external_data = external_data
|
|
874
874
|
intent_authorization.line_items = line_items
|
|
875
875
|
intent_authorization.buyer = buyer
|
|
876
|
+
intent_authorization.tag = 'Intent tag'
|
|
876
877
|
return PayInIntent(**intent_authorization.create_authorization())
|
|
877
878
|
|
|
878
879
|
@staticmethod
|
|
@@ -908,11 +909,13 @@ class BaseTestLive(unittest.TestCase):
|
|
|
908
909
|
intent_authorization.external_data = external_data
|
|
909
910
|
intent_authorization.line_items = line_items
|
|
910
911
|
intent_authorization.buyer = buyer
|
|
912
|
+
intent_authorization.tag = 'Intent tag'
|
|
911
913
|
|
|
912
914
|
intent = PayInIntent(**intent_authorization.create_authorization())
|
|
913
915
|
|
|
914
916
|
full_capture = PayInIntent()
|
|
915
917
|
full_capture.external_data = external_data
|
|
918
|
+
full_capture.tag = 'Intent tag'
|
|
916
919
|
|
|
917
920
|
return PayInIntent(**full_capture.create_capture(intent.id))
|
|
918
921
|
|
|
@@ -928,7 +931,8 @@ class BaseTestLive(unittest.TestCase):
|
|
|
928
931
|
external_data.external_provider_payment_method = 'PAYPAL'
|
|
929
932
|
|
|
930
933
|
refund_dto = {
|
|
931
|
-
'external_data': external_data
|
|
934
|
+
'external_data': external_data,
|
|
935
|
+
'tag': 'Intent tag'
|
|
932
936
|
}
|
|
933
937
|
return PayInIntent(**PayInIntent.create_refund(full_capture.id, **refund_dto))
|
|
934
938
|
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_identity_verification.py
RENAMED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import unittest
|
|
2
|
+
import uuid
|
|
3
|
+
|
|
4
|
+
from mangopay.resources import IdentityVerification, Psc
|
|
2
5
|
from tests.test_base import BaseTestLive
|
|
3
6
|
|
|
4
7
|
|
|
5
8
|
class IdentityVerificationTest(BaseTestLive):
|
|
6
9
|
_identity_verification = None
|
|
10
|
+
_idv_id_with_pscs = 'idnver_01KZXBHDH1DWC887PW6T46NVTV'
|
|
11
|
+
_psc_id = 'psc_x_01KZXBT5F8FGGSK9JXGCYMNWRP'
|
|
7
12
|
|
|
8
13
|
def test_create_identity_verification(self):
|
|
9
14
|
self.create_new_identity_verification()
|
|
@@ -30,6 +35,38 @@ class IdentityVerificationTest(BaseTestLive):
|
|
|
30
35
|
self.assertIsInstance(fetched.data, list)
|
|
31
36
|
self.assertTrue(len(fetched.data) > 0)
|
|
32
37
|
|
|
38
|
+
def test_get_identity_verification_with_pscs(self):
|
|
39
|
+
fetched = IdentityVerification.get(IdentityVerificationTest._idv_id_with_pscs)
|
|
40
|
+
|
|
41
|
+
self.assertIsNotNone(fetched)
|
|
42
|
+
self.assertIsNotNone(fetched.pscs)
|
|
43
|
+
self.assertTrue(len(fetched.pscs) > 0)
|
|
44
|
+
self.assertTrue(len(fetched.pscs[0]['Data']) > 0)
|
|
45
|
+
|
|
46
|
+
@unittest.skip("PSC must be manually invalidated before testing")
|
|
47
|
+
def test_retry_psc_without_update_params(self):
|
|
48
|
+
psc = Psc(**Psc.retry(IdentityVerificationTest._idv_id_with_pscs, IdentityVerificationTest._psc_id))
|
|
49
|
+
|
|
50
|
+
self.assertIsNotNone(psc)
|
|
51
|
+
self.assertIsNotNone(psc.hosted_url)
|
|
52
|
+
self.assertEqual('PENDING_VALIDATION', psc.status)
|
|
53
|
+
|
|
54
|
+
@unittest.skip("PSC must be manually invalidated before testing")
|
|
55
|
+
def test_retry_psc_with_update_params(self):
|
|
56
|
+
first_name = str(uuid.uuid4())
|
|
57
|
+
last_name = str(uuid.uuid4())
|
|
58
|
+
|
|
59
|
+
psc = Psc(**Psc.retry(IdentityVerificationTest._idv_id_with_pscs,
|
|
60
|
+
IdentityVerificationTest._psc_id,
|
|
61
|
+
first_name=first_name,
|
|
62
|
+
last_name=last_name))
|
|
63
|
+
|
|
64
|
+
self.assertIsNotNone(psc)
|
|
65
|
+
self.assertIsNotNone(psc.hosted_url)
|
|
66
|
+
self.assertEqual('PENDING_VALIDATION', psc.status)
|
|
67
|
+
self.assertEqual(first_name, psc.first_name)
|
|
68
|
+
self.assertEqual(last_name, psc.last_name)
|
|
69
|
+
|
|
33
70
|
@staticmethod
|
|
34
71
|
def create_new_identity_verification():
|
|
35
72
|
if IdentityVerificationTest._identity_verification is None:
|
|
@@ -738,6 +738,7 @@ def create_new_splits(intent):
|
|
|
738
738
|
split = IntentSplit()
|
|
739
739
|
split.line_item_id = intent.line_items[0]['Id']
|
|
740
740
|
split.split_amount = 10
|
|
741
|
+
split.tag = 'custom tag'
|
|
741
742
|
|
|
742
743
|
intent_splits = PayInIntentSplits()
|
|
743
744
|
intent_splits.splits = [split]
|
|
@@ -2343,16 +2344,19 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2343
2344
|
self.assertEqual('AUTHORIZED', created.status)
|
|
2344
2345
|
self.assertIsNotNone(created.unfunded_amount)
|
|
2345
2346
|
self.assertIsNotNone(created.line_items[0]['UnfundedSellerAmount'])
|
|
2347
|
+
self.assertEqual('Intent tag', created.tag)
|
|
2346
2348
|
|
|
2347
2349
|
def test_create_pay_in_intent_full_capture(self):
|
|
2348
2350
|
created = BaseTestLive.create_new_pay_in_intent_full_capture()
|
|
2349
2351
|
|
|
2350
2352
|
self.assertIsNotNone(created)
|
|
2351
2353
|
self.assertEqual('CAPTURED', created.status)
|
|
2354
|
+
self.assertEqual('Intent tag', created.tag)
|
|
2352
2355
|
|
|
2353
2356
|
def test_create_full_pay_in_intent_refund(self):
|
|
2354
2357
|
refund = BaseTestLive.create_new_full_pay_in_intent_refund()
|
|
2355
2358
|
self.assertEqual('REFUNDED', refund.status)
|
|
2359
|
+
self.assertEqual('Intent tag', refund.tag)
|
|
2356
2360
|
|
|
2357
2361
|
def test_create_partial_pay_in_intent_refund(self):
|
|
2358
2362
|
full_capture = BaseTestLive.create_new_pay_in_intent_full_capture()
|
|
@@ -2367,6 +2371,7 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2367
2371
|
refund_dto = {
|
|
2368
2372
|
'external_data': external_data,
|
|
2369
2373
|
'amount': 1000,
|
|
2374
|
+
'tag': 'Intent tag',
|
|
2370
2375
|
'line_items': [
|
|
2371
2376
|
{
|
|
2372
2377
|
'id': full_capture.line_items[0]['Id'],
|
|
@@ -2376,6 +2381,7 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2376
2381
|
}
|
|
2377
2382
|
refund = PayInIntent(**PayInIntent.create_refund(full_capture.id, **refund_dto))
|
|
2378
2383
|
self.assertEqual('REFUNDED', refund.status)
|
|
2384
|
+
self.assertEqual('Intent tag', refund.tag)
|
|
2379
2385
|
|
|
2380
2386
|
def test_fully_reverse_pay_in_intent_refund(self):
|
|
2381
2387
|
refund = BaseTestLive.create_new_full_pay_in_intent_refund()
|
|
@@ -2426,9 +2432,9 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2426
2432
|
external_data = PayInIntentExternalData()
|
|
2427
2433
|
external_data.external_processing_date = '01-10-2026'
|
|
2428
2434
|
external_data.external_provider_reference = ''.join(random.choices(string.ascii_letters + string.digits, k=10))
|
|
2429
|
-
external_data.external_merchant_reference = 'Order-xyz-35e8490e-2ec9-4c82-978e-c712a3f5ba16'
|
|
2435
|
+
# external_data.external_merchant_reference = 'Order-xyz-35e8490e-2ec9-4c82-978e-c712a3f5ba16'
|
|
2430
2436
|
external_data.external_provider_name = 'Stripe'
|
|
2431
|
-
external_data.external_provider_payment_method = 'PAYPAL'
|
|
2437
|
+
# external_data.external_provider_payment_method = 'PAYPAL'
|
|
2432
2438
|
|
|
2433
2439
|
line_item = PayInIntentLineItem()
|
|
2434
2440
|
line_item.id = intent.line_items[0]['Id']
|
|
@@ -2452,6 +2458,7 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2452
2458
|
fetched = PayInIntent.get(intent.id)
|
|
2453
2459
|
self.assertIsNotNone(fetched)
|
|
2454
2460
|
self.assertEqual(fetched.status, intent.status)
|
|
2461
|
+
self.assertEqual(intent.tag, fetched.tag)
|
|
2455
2462
|
|
|
2456
2463
|
def test_cancel_pay_in_intent(self):
|
|
2457
2464
|
intent = BaseTestLive.create_new_pay_in_intent_authorization()
|
|
@@ -2464,12 +2471,19 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2464
2471
|
cancelled = PayInIntent(**PayInIntent.cancel(intent.id, **cancel_details))
|
|
2465
2472
|
self.assertEqual(cancelled.status, 'CANCELLED')
|
|
2466
2473
|
|
|
2474
|
+
def test_get_external_providers_list(self):
|
|
2475
|
+
providers = PayInIntent.get_external_providers_list()
|
|
2476
|
+
self.assertIsNotNone(providers)
|
|
2477
|
+
self.assertTrue(len(providers) > 0)
|
|
2478
|
+
self.assertIn('Mangopay', providers)
|
|
2479
|
+
|
|
2467
2480
|
def test_create_pay_in_intent_splits(self):
|
|
2468
2481
|
intent = BaseTestLive.create_new_pay_in_intent_authorization()
|
|
2469
2482
|
created_splits = create_new_splits(intent)
|
|
2470
2483
|
|
|
2471
2484
|
self.assertIsNotNone(created_splits)
|
|
2472
2485
|
self.assertEqual('CREATED', created_splits.splits[0]['Status'])
|
|
2486
|
+
self.assertIsNotNone(created_splits.splits[0]['Tag'])
|
|
2473
2487
|
|
|
2474
2488
|
def test_execute_split(self):
|
|
2475
2489
|
intent = BaseTestLive.create_new_pay_in_intent_authorization()
|
|
@@ -2494,6 +2508,7 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2494
2508
|
created_splits = create_new_splits(intent)
|
|
2495
2509
|
fetched = PayInIntentSplit.get(intent.id, created_splits.splits[0]['Id'])
|
|
2496
2510
|
self.assertEqual('CREATED', fetched.status)
|
|
2511
|
+
self.assertIsNotNone(fetched.tag)
|
|
2497
2512
|
|
|
2498
2513
|
def test_update_split(self):
|
|
2499
2514
|
intent = BaseTestLive.create_new_pay_in_intent_authorization()
|
|
@@ -2503,10 +2518,12 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2503
2518
|
created_splits.splits[0]['Id'],
|
|
2504
2519
|
**{
|
|
2505
2520
|
'description': 'updated description',
|
|
2506
|
-
'line_item_id': created_splits.splits[0]['LineItemId']
|
|
2521
|
+
'line_item_id': created_splits.splits[0]['LineItemId'],
|
|
2522
|
+
'tag': 'updated tag'
|
|
2507
2523
|
}
|
|
2508
2524
|
)
|
|
2509
2525
|
self.assertEqual('updated description', updated['description'])
|
|
2526
|
+
self.assertEqual('updated tag', updated['tag'])
|
|
2510
2527
|
|
|
2511
2528
|
def test_create_client_bank_wire_direct_payin(self):
|
|
2512
2529
|
pay_in = ClientBankWireDirectPayIn()
|
|
@@ -2575,10 +2592,12 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2575
2592
|
external_data.external_provider_payment_method = 'PAYPAL'
|
|
2576
2593
|
|
|
2577
2594
|
create_dto = {
|
|
2578
|
-
'external_data': external_data
|
|
2595
|
+
'external_data': external_data,
|
|
2596
|
+
'tag': 'Intent tag'
|
|
2579
2597
|
}
|
|
2580
2598
|
dispute = PayInIntent(**PayInIntent.create_dispute(full_capture.id, full_capture.capture.id, **create_dto))
|
|
2581
2599
|
self.assertEqual('DISPUTED', dispute.status)
|
|
2600
|
+
self.assertEqual('Intent tag', dispute.tag)
|
|
2582
2601
|
|
|
2583
2602
|
def test_create_partial_pay_in_intent_dispute(self):
|
|
2584
2603
|
full_capture = BaseTestLive.create_new_pay_in_intent_full_capture()
|
|
@@ -2593,6 +2612,7 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2593
2612
|
create_dto = {
|
|
2594
2613
|
'external_data': external_data,
|
|
2595
2614
|
'amount': 1000,
|
|
2615
|
+
'tag': 'Intent tag',
|
|
2596
2616
|
'line_items': [
|
|
2597
2617
|
{
|
|
2598
2618
|
'id': full_capture.line_items[0]['Id'],
|
|
@@ -2602,6 +2622,7 @@ class PayInsTestLive(BaseTestLive):
|
|
|
2602
2622
|
}
|
|
2603
2623
|
dispute = PayInIntent(**PayInIntent.create_dispute(full_capture.id, full_capture.capture.id, **create_dto))
|
|
2604
2624
|
self.assertEqual('DISPUTED', dispute.status)
|
|
2625
|
+
self.assertEqual('Intent tag', dispute.tag)
|
|
2605
2626
|
|
|
2606
2627
|
def test_update_intent_dispute_outcome(self):
|
|
2607
2628
|
full_capture = BaseTestLive.create_new_pay_in_intent_full_capture()
|
|
@@ -918,6 +918,15 @@ class PayInsTestLive(BaseTestLive):
|
|
|
918
918
|
|
|
919
919
|
self.assertIsNotNone(regulatory)
|
|
920
920
|
|
|
921
|
+
def test_User_get_regulatory_with_kyc_information(self):
|
|
922
|
+
user = NaturalUser.get('user_m_01M114G394FJCE0QZJP97QADYZ')
|
|
923
|
+
regulatory = user.get_regulatory()
|
|
924
|
+
|
|
925
|
+
self.assertIsNotNone(regulatory)
|
|
926
|
+
self.assertIsNotNone(regulatory.kyc_information)
|
|
927
|
+
self.assertIsNotNone(regulatory.kyc_information.last_kyc_date)
|
|
928
|
+
self.assertIsNotNone(regulatory.kyc_information.kyc_renewal_deadline)
|
|
929
|
+
|
|
921
930
|
def test_Users_CloseNatural(self):
|
|
922
931
|
user = BaseTestLive.get_john_instance()
|
|
923
932
|
NaturalUser(**user.save())
|
|
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
|
|
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
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/cardregistrations.json
RENAMED
|
File without changes
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/declarative_user.json
RENAMED
|
File without changes
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/legal_user_wallet.json
RENAMED
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/legal_user_wallet_89.json
RENAMED
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/legal_user_wallet_99.json
RENAMED
|
File without changes
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/natural_user.json
RENAMED
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/natural_user_wallet.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/ubo_declaration.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_2_per_page.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_full.json
RENAMED
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/fixtures/user_list_page1.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/resources/TestKycPageFile.png
RENAMED
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/resources/settlement_sample.csv
RENAMED
|
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
|
|
File without changes
|
{mangopay4_python_sdk-3.58.0 → mangopay4_python_sdk-3.60.0}/tests/test_country_authorizations.py
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|