blindpay 2.3.0__tar.gz → 2.4.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.
- {blindpay-2.3.0 → blindpay-2.4.0}/PKG-INFO +1 -1
- {blindpay-2.3.0 → blindpay-2.4.0}/pyproject.toml +1 -1
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/__init__.py +1 -1
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/client.py +58 -12
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/bank_accounts/__init__.py +4 -2
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/bank_accounts/bank_accounts.py +138 -87
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/custodial_wallets/custodial_wallets.py +20 -20
- blindpay-2.4.0/src/blindpay/resources/customers/__init__.py +104 -0
- blindpay-2.4.0/src/blindpay/resources/customers/customers.py +859 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/instances/__init__.py +4 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/instances/instances.py +18 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/payins/__init__.py +2 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/payins/payins.py +2 -1
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/virtual_accounts/virtual_accounts.py +19 -19
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/wallets/blockchain.py +33 -33
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/wallets/offramp.py +23 -25
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/types.py +2 -0
- blindpay-2.3.0/src/blindpay/resources/customers/__init__.py +0 -47
- blindpay-2.3.0/src/blindpay/resources/customers/customers.py +0 -314
- {blindpay-2.3.0 → blindpay-2.4.0}/.gitignore +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/LICENSE +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/README.md +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/py.typed +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/_internal/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/_internal/api_client.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/_internal/exceptions.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/api_keys/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/api_keys/api_keys.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/available/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/available/available.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/custodial_wallets/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/fees/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/fees/fees.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/limits/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/limits/limits.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/ownership/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/ownership/ownership.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/partner_fees/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/partner_fees/partner_fees.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/payins/quotes.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/payouts/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/payouts/payouts.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/quotes/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/quotes/quotes.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/receivers/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/receivers/receivers.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/terms_of_service/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/terms_of_service/terms_of_service.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/transfers/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/transfers/transfers.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/upload/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/upload/upload.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/virtual_accounts/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/wallets/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/webhooks/__init__.py +0 -0
- {blindpay-2.3.0 → blindpay-2.4.0}/src/blindpay/resources/webhooks/webhooks.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: blindpay
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: Official Python SDK for the Blindpay API — Global payments infrastructure
|
|
5
5
|
Project-URL: Homepage, https://github.com/blindpaylabs/blindpay-python
|
|
6
6
|
Project-URL: Repository, https://github.com/blindpaylabs/blindpay-python
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import base64
|
|
2
2
|
import hashlib
|
|
3
3
|
import hmac
|
|
4
|
+
import warnings
|
|
4
5
|
from functools import cached_property
|
|
5
6
|
from typing import TYPE_CHECKING, Any, Dict, Literal, Mapping, Optional, TypeVar
|
|
6
7
|
|
|
@@ -44,6 +45,11 @@ if TYPE_CHECKING:
|
|
|
44
45
|
|
|
45
46
|
__version__ = "2.3.0"
|
|
46
47
|
|
|
48
|
+
_RECEIVERS_DEPRECATION_MESSAGE = (
|
|
49
|
+
"Use 'customers' instead. 'receivers' is deprecated and will be removed in "
|
|
50
|
+
"v3.0.0. See https://www.blindpay.com/changelog/2026-06-04-customers-rename"
|
|
51
|
+
)
|
|
52
|
+
|
|
47
53
|
T = TypeVar("T")
|
|
48
54
|
|
|
49
55
|
|
|
@@ -206,6 +212,27 @@ class _PayinsNamespace:
|
|
|
206
212
|
return getattr(self._base, name)
|
|
207
213
|
|
|
208
214
|
|
|
215
|
+
class _CustomersNamespace:
|
|
216
|
+
def __init__(self, instance_id: str, api_client: ApiClientImpl) -> None:
|
|
217
|
+
self._instance_id = instance_id
|
|
218
|
+
self._api = api_client
|
|
219
|
+
|
|
220
|
+
@cached_property
|
|
221
|
+
def _base(self) -> "CustomersResource":
|
|
222
|
+
from blindpay.resources.customers.customers import create_customers_resource
|
|
223
|
+
|
|
224
|
+
return create_customers_resource(self._instance_id, self._api)
|
|
225
|
+
|
|
226
|
+
@cached_property
|
|
227
|
+
def bank_accounts(self) -> "BankAccountsResource":
|
|
228
|
+
from blindpay.resources.bank_accounts.bank_accounts import create_bank_accounts_resource
|
|
229
|
+
|
|
230
|
+
return create_bank_accounts_resource(self._instance_id, self._api)
|
|
231
|
+
|
|
232
|
+
def __getattr__(self, name: str) -> Any:
|
|
233
|
+
return getattr(self._base, name)
|
|
234
|
+
|
|
235
|
+
|
|
209
236
|
class _ReceiversNamespace:
|
|
210
237
|
def __init__(self, instance_id: str, api_client: ApiClientImpl) -> None:
|
|
211
238
|
self._instance_id = instance_id
|
|
@@ -314,8 +341,13 @@ class BlindPay:
|
|
|
314
341
|
|
|
315
342
|
return create_payouts_resource(self._instance_id, self._api)
|
|
316
343
|
|
|
344
|
+
@cached_property
|
|
345
|
+
def customers(self) -> _CustomersNamespace:
|
|
346
|
+
return _CustomersNamespace(self._instance_id, self._api)
|
|
347
|
+
|
|
317
348
|
@cached_property
|
|
318
349
|
def receivers(self) -> _ReceiversNamespace:
|
|
350
|
+
warnings.warn(_RECEIVERS_DEPRECATION_MESSAGE, DeprecationWarning, stacklevel=2)
|
|
319
351
|
return _ReceiversNamespace(self._instance_id, self._api)
|
|
320
352
|
|
|
321
353
|
@cached_property
|
|
@@ -334,12 +366,6 @@ class BlindPay:
|
|
|
334
366
|
|
|
335
367
|
return create_transfers_resource(self._instance_id, self._api)
|
|
336
368
|
|
|
337
|
-
@cached_property
|
|
338
|
-
def customers(self) -> "CustomersResource":
|
|
339
|
-
from blindpay.resources.customers import create_customers_resource
|
|
340
|
-
|
|
341
|
-
return create_customers_resource(self._instance_id, self._api)
|
|
342
|
-
|
|
343
369
|
@cached_property
|
|
344
370
|
def fees(self) -> "FeesResource":
|
|
345
371
|
from blindpay.resources.fees import create_fees_resource
|
|
@@ -454,6 +480,27 @@ class _PayinsNamespaceSync:
|
|
|
454
480
|
return getattr(self._base, name)
|
|
455
481
|
|
|
456
482
|
|
|
483
|
+
class _CustomersNamespaceSync:
|
|
484
|
+
def __init__(self, instance_id: str, api_client: ApiClientImplSync) -> None:
|
|
485
|
+
self._instance_id = instance_id
|
|
486
|
+
self._api = api_client
|
|
487
|
+
|
|
488
|
+
@cached_property
|
|
489
|
+
def _base(self) -> "CustomersResourceSync":
|
|
490
|
+
from blindpay.resources.customers.customers import create_customers_resource_sync
|
|
491
|
+
|
|
492
|
+
return create_customers_resource_sync(self._instance_id, self._api)
|
|
493
|
+
|
|
494
|
+
@cached_property
|
|
495
|
+
def bank_accounts(self) -> "BankAccountsResourceSync":
|
|
496
|
+
from blindpay.resources.bank_accounts.bank_accounts import create_bank_accounts_resource_sync
|
|
497
|
+
|
|
498
|
+
return create_bank_accounts_resource_sync(self._instance_id, self._api)
|
|
499
|
+
|
|
500
|
+
def __getattr__(self, name: str) -> Any:
|
|
501
|
+
return getattr(self._base, name)
|
|
502
|
+
|
|
503
|
+
|
|
457
504
|
class _ReceiversNamespaceSync:
|
|
458
505
|
def __init__(self, instance_id: str, api_client: ApiClientImplSync) -> None:
|
|
459
506
|
self._instance_id = instance_id
|
|
@@ -562,8 +609,13 @@ class BlindPaySync:
|
|
|
562
609
|
|
|
563
610
|
return create_payouts_resource_sync(self._instance_id, self._api)
|
|
564
611
|
|
|
612
|
+
@cached_property
|
|
613
|
+
def customers(self) -> _CustomersNamespaceSync:
|
|
614
|
+
return _CustomersNamespaceSync(self._instance_id, self._api)
|
|
615
|
+
|
|
565
616
|
@cached_property
|
|
566
617
|
def receivers(self) -> _ReceiversNamespaceSync:
|
|
618
|
+
warnings.warn(_RECEIVERS_DEPRECATION_MESSAGE, DeprecationWarning, stacklevel=2)
|
|
567
619
|
return _ReceiversNamespaceSync(self._instance_id, self._api)
|
|
568
620
|
|
|
569
621
|
@cached_property
|
|
@@ -582,12 +634,6 @@ class BlindPaySync:
|
|
|
582
634
|
|
|
583
635
|
return create_transfers_resource_sync(self._instance_id, self._api)
|
|
584
636
|
|
|
585
|
-
@cached_property
|
|
586
|
-
def customers(self) -> "CustomersResourceSync":
|
|
587
|
-
from blindpay.resources.customers import create_customers_resource_sync
|
|
588
|
-
|
|
589
|
-
return create_customers_resource_sync(self._instance_id, self._api)
|
|
590
|
-
|
|
591
637
|
@cached_property
|
|
592
638
|
def fees(self) -> "FeesResourceSync":
|
|
593
639
|
from blindpay.resources.fees import create_fees_resource_sync
|
|
@@ -19,6 +19,8 @@ from .bank_accounts import (
|
|
|
19
19
|
CreatePixSafeResponse,
|
|
20
20
|
CreateRtpInput,
|
|
21
21
|
CreateRtpResponse,
|
|
22
|
+
CreateSepaInput,
|
|
23
|
+
CreateSepaResponse,
|
|
22
24
|
CreateSpeiInput,
|
|
23
25
|
CreateSpeiResponse,
|
|
24
26
|
CreateTedInput,
|
|
@@ -27,7 +29,6 @@ from .bank_accounts import (
|
|
|
27
29
|
CreateWireResponse,
|
|
28
30
|
GetBankAccountResponse,
|
|
29
31
|
ListBankAccountsResponse,
|
|
30
|
-
OfframpNetwork,
|
|
31
32
|
PixSafeType,
|
|
32
33
|
PixType,
|
|
33
34
|
RtpType,
|
|
@@ -53,12 +54,12 @@ __all__ = [
|
|
|
53
54
|
"CreateWireInput",
|
|
54
55
|
"CreateInternationalSwiftInput",
|
|
55
56
|
"CreateRtpInput",
|
|
57
|
+
"CreateSepaInput",
|
|
56
58
|
"CreateTedInput",
|
|
57
59
|
"AchCopBitsoType",
|
|
58
60
|
"AchCopDocument",
|
|
59
61
|
"AchType",
|
|
60
62
|
"ArgentinaTransfers",
|
|
61
|
-
"OfframpNetwork",
|
|
62
63
|
"PixType",
|
|
63
64
|
"PixSafeType",
|
|
64
65
|
"TransfersBitsoType",
|
|
@@ -75,6 +76,7 @@ __all__ = [
|
|
|
75
76
|
"CreatePixResponse",
|
|
76
77
|
"CreatePixSafeResponse",
|
|
77
78
|
"CreateRtpResponse",
|
|
79
|
+
"CreateSepaResponse",
|
|
78
80
|
"CreateSpeiResponse",
|
|
79
81
|
"CreateTedResponse",
|
|
80
82
|
"CreateWireResponse",
|
|
@@ -8,6 +8,7 @@ from ...types import (
|
|
|
8
8
|
BankAccountType,
|
|
9
9
|
BlindpayApiResponse,
|
|
10
10
|
Country,
|
|
11
|
+
Network,
|
|
11
12
|
Rail,
|
|
12
13
|
RecipientRelationship,
|
|
13
14
|
SpeiProtocol,
|
|
@@ -15,7 +16,6 @@ from ...types import (
|
|
|
15
16
|
|
|
16
17
|
ArgentinaTransfers = Literal["CVU", "CBU", "ALIAS"]
|
|
17
18
|
AchCopDocument = Literal["CC", "CE", "NIT", "PASS", "PEP"]
|
|
18
|
-
OfframpNetwork = Literal["tron"]
|
|
19
19
|
PixType = Literal["pix"]
|
|
20
20
|
TransfersBitsoType = Literal["transfers_bitso"]
|
|
21
21
|
SpeiBitsoType = Literal["spei_bitso"]
|
|
@@ -31,7 +31,7 @@ TedType = Literal["ted"]
|
|
|
31
31
|
class OfframpWallet(TypedDict):
|
|
32
32
|
address: str
|
|
33
33
|
id: str
|
|
34
|
-
network:
|
|
34
|
+
network: Network
|
|
35
35
|
external_id: str
|
|
36
36
|
|
|
37
37
|
|
|
@@ -54,6 +54,7 @@ class BankAccount(TypedDict):
|
|
|
54
54
|
spei_protocol: Optional[str]
|
|
55
55
|
spei_institution_code: Optional[str]
|
|
56
56
|
spei_clabe: Optional[str]
|
|
57
|
+
sepa_beneficiary_bic: Optional[str]
|
|
57
58
|
transfers_type: Optional[ArgentinaTransfers]
|
|
58
59
|
transfers_account: Optional[str]
|
|
59
60
|
ach_cop_beneficiary_first_name: Optional[str]
|
|
@@ -91,13 +92,12 @@ class BankAccount(TypedDict):
|
|
|
91
92
|
ted_cpf_cnpj: Optional[str]
|
|
92
93
|
|
|
93
94
|
|
|
94
|
-
|
|
95
|
-
data: List[BankAccount]
|
|
95
|
+
ListBankAccountsResponse = List[BankAccount]
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
class GetBankAccountResponse(TypedDict):
|
|
99
99
|
id: str
|
|
100
|
-
|
|
100
|
+
customer_id: str
|
|
101
101
|
account_holder_name: str
|
|
102
102
|
account_number: str
|
|
103
103
|
routing_number: str
|
|
@@ -105,13 +105,14 @@ class GetBankAccountResponse(TypedDict):
|
|
|
105
105
|
bank_name: str
|
|
106
106
|
swift_code: Optional[str]
|
|
107
107
|
iban: Optional[str]
|
|
108
|
+
sepa_beneficiary_bic: Optional[str]
|
|
108
109
|
is_primary: bool
|
|
109
110
|
created_at: str
|
|
110
111
|
updated_at: str
|
|
111
112
|
|
|
112
113
|
|
|
113
114
|
class CreatePixInput(TypedDict):
|
|
114
|
-
|
|
115
|
+
customer_id: str
|
|
115
116
|
name: str
|
|
116
117
|
pix_key: str
|
|
117
118
|
|
|
@@ -125,7 +126,7 @@ class CreatePixResponse(TypedDict):
|
|
|
125
126
|
|
|
126
127
|
|
|
127
128
|
class CreateArgentinaTransfersInput(TypedDict):
|
|
128
|
-
|
|
129
|
+
customer_id: str
|
|
129
130
|
name: str
|
|
130
131
|
beneficiary_name: str
|
|
131
132
|
transfers_account: str
|
|
@@ -143,7 +144,7 @@ class CreateArgentinaTransfersResponse(TypedDict):
|
|
|
143
144
|
|
|
144
145
|
|
|
145
146
|
class CreateSpeiInput(TypedDict):
|
|
146
|
-
|
|
147
|
+
customer_id: str
|
|
147
148
|
beneficiary_name: str
|
|
148
149
|
name: str
|
|
149
150
|
spei_clabe: str
|
|
@@ -163,7 +164,7 @@ class CreateSpeiResponse(TypedDict):
|
|
|
163
164
|
|
|
164
165
|
|
|
165
166
|
class CreateColombiaAchInput(TypedDict):
|
|
166
|
-
|
|
167
|
+
customer_id: str
|
|
167
168
|
name: str
|
|
168
169
|
account_type: BankAccountType
|
|
169
170
|
ach_cop_beneficiary_first_name: str
|
|
@@ -191,7 +192,7 @@ class CreateColombiaAchResponse(TypedDict):
|
|
|
191
192
|
|
|
192
193
|
|
|
193
194
|
class _CreateAchInputRequired(TypedDict):
|
|
194
|
-
|
|
195
|
+
customer_id: str
|
|
195
196
|
|
|
196
197
|
|
|
197
198
|
class CreateAchInput(_CreateAchInputRequired, total=False):
|
|
@@ -240,7 +241,7 @@ class CreateAchResponse(TypedDict):
|
|
|
240
241
|
|
|
241
242
|
|
|
242
243
|
class _CreateWireInputRequired(TypedDict):
|
|
243
|
-
|
|
244
|
+
customer_id: str
|
|
244
245
|
|
|
245
246
|
|
|
246
247
|
class CreateWireInput(_CreateWireInputRequired, total=False):
|
|
@@ -279,7 +280,7 @@ class CreateWireResponse(TypedDict):
|
|
|
279
280
|
|
|
280
281
|
|
|
281
282
|
class _CreateInternationalSwiftInputRequired(TypedDict):
|
|
282
|
-
|
|
283
|
+
customer_id: str
|
|
283
284
|
|
|
284
285
|
|
|
285
286
|
class CreateInternationalSwiftInput(_CreateInternationalSwiftInputRequired, total=False):
|
|
@@ -302,6 +303,7 @@ class CreateInternationalSwiftInput(_CreateInternationalSwiftInputRequired, tota
|
|
|
302
303
|
swift_beneficiary_postal_code: str
|
|
303
304
|
swift_beneficiary_state_province_region: str
|
|
304
305
|
swift_code_bic: str
|
|
306
|
+
sepa_beneficiary_bic: Optional[str]
|
|
305
307
|
swift_intermediary_bank_account_number_iban: Optional[str]
|
|
306
308
|
swift_intermediary_bank_country: Optional[Country]
|
|
307
309
|
swift_intermediary_bank_name: Optional[str]
|
|
@@ -340,6 +342,7 @@ class CreateInternationalSwiftResponse(TypedDict):
|
|
|
340
342
|
swift_bank_city: str
|
|
341
343
|
swift_bank_state_province_region: str
|
|
342
344
|
swift_bank_postal_code: str
|
|
345
|
+
sepa_beneficiary_bic: Optional[str]
|
|
343
346
|
swift_intermediary_bank_swift_code_bic: Optional[str]
|
|
344
347
|
swift_intermediary_bank_account_number_iban: Optional[str]
|
|
345
348
|
swift_intermediary_bank_name: Optional[str]
|
|
@@ -348,7 +351,7 @@ class CreateInternationalSwiftResponse(TypedDict):
|
|
|
348
351
|
|
|
349
352
|
|
|
350
353
|
class _CreateRtpInputRequired(TypedDict):
|
|
351
|
-
|
|
354
|
+
customer_id: str
|
|
352
355
|
|
|
353
356
|
|
|
354
357
|
class CreateRtpInput(_CreateRtpInputRequired, total=False):
|
|
@@ -386,8 +389,44 @@ class CreateRtpResponse(TypedDict):
|
|
|
386
389
|
created_at: str
|
|
387
390
|
|
|
388
391
|
|
|
392
|
+
class _CreateSepaInputRequired(TypedDict):
|
|
393
|
+
customer_id: str
|
|
394
|
+
name: str
|
|
395
|
+
account_class: AccountClass
|
|
396
|
+
sepa_iban: str
|
|
397
|
+
sepa_beneficiary_bic: str
|
|
398
|
+
sepa_beneficiary_legal_name: str
|
|
399
|
+
sepa_beneficiary_address_line_1: str
|
|
400
|
+
sepa_beneficiary_city: str
|
|
401
|
+
sepa_beneficiary_postal_code: str
|
|
402
|
+
sepa_beneficiary_country: Country
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
class CreateSepaInput(_CreateSepaInputRequired, total=False):
|
|
406
|
+
sepa_beneficiary_address_line_2: Optional[str]
|
|
407
|
+
sepa_beneficiary_state_province_region: Optional[str]
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
class CreateSepaResponse(TypedDict):
|
|
411
|
+
id: str
|
|
412
|
+
type: Literal["sepa"]
|
|
413
|
+
name: str
|
|
414
|
+
account_class: AccountClass
|
|
415
|
+
recipient_relationship: Optional[RecipientRelationship]
|
|
416
|
+
sepa_iban: str
|
|
417
|
+
sepa_beneficiary_bic: str
|
|
418
|
+
sepa_beneficiary_legal_name: str
|
|
419
|
+
sepa_beneficiary_address_line_1: str
|
|
420
|
+
sepa_beneficiary_address_line_2: Optional[str]
|
|
421
|
+
sepa_beneficiary_city: str
|
|
422
|
+
sepa_beneficiary_state_province_region: Optional[str]
|
|
423
|
+
sepa_beneficiary_postal_code: str
|
|
424
|
+
sepa_beneficiary_country: Country
|
|
425
|
+
created_at: str
|
|
426
|
+
|
|
427
|
+
|
|
389
428
|
class CreatePixSafeInput(TypedDict):
|
|
390
|
-
|
|
429
|
+
customer_id: str
|
|
391
430
|
name: str
|
|
392
431
|
account_number: str
|
|
393
432
|
account_type: BankAccountType
|
|
@@ -409,7 +448,7 @@ class CreatePixSafeResponse(TypedDict):
|
|
|
409
448
|
|
|
410
449
|
|
|
411
450
|
class CreateTedInput(TypedDict):
|
|
412
|
-
|
|
451
|
+
customer_id: str
|
|
413
452
|
name: str
|
|
414
453
|
account_number: str
|
|
415
454
|
account_type: BankAccountType
|
|
@@ -435,78 +474,84 @@ class BankAccountsResource:
|
|
|
435
474
|
self._instance_id = instance_id
|
|
436
475
|
self._client = client
|
|
437
476
|
|
|
438
|
-
async def list(self,
|
|
439
|
-
return await self._client.get(f"/instances/{self._instance_id}/
|
|
477
|
+
async def list(self, customer_id: str) -> BlindpayApiResponse[ListBankAccountsResponse]:
|
|
478
|
+
return await self._client.get(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts")
|
|
440
479
|
|
|
441
|
-
async def get(self,
|
|
442
|
-
return await self._client.get(f"/instances/{self._instance_id}/
|
|
480
|
+
async def get(self, customer_id: str, id: str) -> BlindpayApiResponse[GetBankAccountResponse]:
|
|
481
|
+
return await self._client.get(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts/{id}")
|
|
443
482
|
|
|
444
|
-
async def delete(self,
|
|
445
|
-
return await self._client.delete(f"/instances/{self._instance_id}/
|
|
483
|
+
async def delete(self, customer_id: str, id: str) -> BlindpayApiResponse[None]:
|
|
484
|
+
return await self._client.delete(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts/{id}")
|
|
446
485
|
|
|
447
486
|
async def create_pix(self, data: CreatePixInput) -> BlindpayApiResponse[CreatePixResponse]:
|
|
448
|
-
|
|
449
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
487
|
+
customer_id = data["customer_id"]
|
|
488
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
450
489
|
payload["type"] = "pix"
|
|
451
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
490
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
452
491
|
|
|
453
492
|
async def create_argentina_transfers(
|
|
454
493
|
self, data: CreateArgentinaTransfersInput
|
|
455
494
|
) -> BlindpayApiResponse[CreateArgentinaTransfersResponse]:
|
|
456
|
-
|
|
457
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
495
|
+
customer_id = data["customer_id"]
|
|
496
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
458
497
|
payload["type"] = "transfers_bitso"
|
|
459
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
498
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
460
499
|
|
|
461
500
|
async def create_spei(self, data: CreateSpeiInput) -> BlindpayApiResponse[CreateSpeiResponse]:
|
|
462
|
-
|
|
463
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
501
|
+
customer_id = data["customer_id"]
|
|
502
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
464
503
|
payload["type"] = "spei_bitso"
|
|
465
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
504
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
466
505
|
|
|
467
506
|
async def create_colombia_ach(self, data: CreateColombiaAchInput) -> BlindpayApiResponse[CreateColombiaAchResponse]:
|
|
468
|
-
|
|
469
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
507
|
+
customer_id = data["customer_id"]
|
|
508
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
470
509
|
payload["type"] = "ach_cop_bitso"
|
|
471
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
510
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
472
511
|
|
|
473
512
|
async def create_ach(self, data: CreateAchInput) -> BlindpayApiResponse[CreateAchResponse]:
|
|
474
|
-
|
|
475
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
513
|
+
customer_id = data["customer_id"]
|
|
514
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
476
515
|
payload["type"] = "ach"
|
|
477
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
516
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
478
517
|
|
|
479
518
|
async def create_wire(self, data: CreateWireInput) -> BlindpayApiResponse[CreateWireResponse]:
|
|
480
|
-
|
|
481
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
519
|
+
customer_id = data["customer_id"]
|
|
520
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
482
521
|
payload["type"] = "wire"
|
|
483
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
522
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
484
523
|
|
|
485
524
|
async def create_international_swift(
|
|
486
525
|
self, data: CreateInternationalSwiftInput
|
|
487
526
|
) -> BlindpayApiResponse[CreateInternationalSwiftResponse]:
|
|
488
|
-
|
|
489
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
527
|
+
customer_id = data["customer_id"]
|
|
528
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
490
529
|
payload["type"] = "international_swift"
|
|
491
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
530
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
492
531
|
|
|
493
532
|
async def create_rtp(self, data: CreateRtpInput) -> BlindpayApiResponse[CreateRtpResponse]:
|
|
494
|
-
|
|
495
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
533
|
+
customer_id = data["customer_id"]
|
|
534
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
496
535
|
payload["type"] = "rtp"
|
|
497
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
536
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
498
537
|
|
|
499
538
|
async def create_pix_safe(self, data: CreatePixSafeInput) -> BlindpayApiResponse[CreatePixSafeResponse]:
|
|
500
|
-
|
|
501
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
539
|
+
customer_id = data["customer_id"]
|
|
540
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
502
541
|
payload["type"] = "pix_safe"
|
|
503
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
542
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
504
543
|
|
|
505
544
|
async def create_ted(self, data: CreateTedInput) -> BlindpayApiResponse[CreateTedResponse]:
|
|
506
|
-
|
|
507
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
545
|
+
customer_id = data["customer_id"]
|
|
546
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
508
547
|
payload["type"] = "ted"
|
|
509
|
-
return await self._client.post(f"/instances/{self._instance_id}/
|
|
548
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
549
|
+
|
|
550
|
+
async def create_sepa(self, data: CreateSepaInput) -> BlindpayApiResponse[CreateSepaResponse]:
|
|
551
|
+
customer_id = data["customer_id"]
|
|
552
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
553
|
+
payload["type"] = "sepa"
|
|
554
|
+
return await self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
510
555
|
|
|
511
556
|
|
|
512
557
|
class BankAccountsResourceSync:
|
|
@@ -514,78 +559,84 @@ class BankAccountsResourceSync:
|
|
|
514
559
|
self._instance_id = instance_id
|
|
515
560
|
self._client = client
|
|
516
561
|
|
|
517
|
-
def list(self,
|
|
518
|
-
return self._client.get(f"/instances/{self._instance_id}/
|
|
562
|
+
def list(self, customer_id: str) -> BlindpayApiResponse[ListBankAccountsResponse]:
|
|
563
|
+
return self._client.get(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts")
|
|
519
564
|
|
|
520
|
-
def get(self,
|
|
521
|
-
return self._client.get(f"/instances/{self._instance_id}/
|
|
565
|
+
def get(self, customer_id: str, id: str) -> BlindpayApiResponse[GetBankAccountResponse]:
|
|
566
|
+
return self._client.get(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts/{id}")
|
|
522
567
|
|
|
523
|
-
def delete(self,
|
|
524
|
-
return self._client.delete(f"/instances/{self._instance_id}/
|
|
568
|
+
def delete(self, customer_id: str, id: str) -> BlindpayApiResponse[None]:
|
|
569
|
+
return self._client.delete(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts/{id}")
|
|
525
570
|
|
|
526
571
|
def create_pix(self, data: CreatePixInput) -> BlindpayApiResponse[CreatePixResponse]:
|
|
527
|
-
|
|
528
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
572
|
+
customer_id = data["customer_id"]
|
|
573
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
529
574
|
payload["type"] = "pix"
|
|
530
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
575
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
531
576
|
|
|
532
577
|
def create_argentina_transfers(
|
|
533
578
|
self, data: CreateArgentinaTransfersInput
|
|
534
579
|
) -> BlindpayApiResponse[CreateArgentinaTransfersResponse]:
|
|
535
|
-
|
|
536
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
580
|
+
customer_id = data["customer_id"]
|
|
581
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
537
582
|
payload["type"] = "transfers_bitso"
|
|
538
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
583
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
539
584
|
|
|
540
585
|
def create_spei(self, data: CreateSpeiInput) -> BlindpayApiResponse[CreateSpeiResponse]:
|
|
541
|
-
|
|
542
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
586
|
+
customer_id = data["customer_id"]
|
|
587
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
543
588
|
payload["type"] = "spei_bitso"
|
|
544
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
589
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
545
590
|
|
|
546
591
|
def create_colombia_ach(self, data: CreateColombiaAchInput) -> BlindpayApiResponse[CreateColombiaAchResponse]:
|
|
547
|
-
|
|
548
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
592
|
+
customer_id = data["customer_id"]
|
|
593
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
549
594
|
payload["type"] = "ach_cop_bitso"
|
|
550
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
595
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
551
596
|
|
|
552
597
|
def create_ach(self, data: CreateAchInput) -> BlindpayApiResponse[CreateAchResponse]:
|
|
553
|
-
|
|
554
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
598
|
+
customer_id = data["customer_id"]
|
|
599
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
555
600
|
payload["type"] = "ach"
|
|
556
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
601
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
557
602
|
|
|
558
603
|
def create_wire(self, data: CreateWireInput) -> BlindpayApiResponse[CreateWireResponse]:
|
|
559
|
-
|
|
560
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
604
|
+
customer_id = data["customer_id"]
|
|
605
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
561
606
|
payload["type"] = "wire"
|
|
562
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
607
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
563
608
|
|
|
564
609
|
def create_international_swift(
|
|
565
610
|
self, data: CreateInternationalSwiftInput
|
|
566
611
|
) -> BlindpayApiResponse[CreateInternationalSwiftResponse]:
|
|
567
|
-
|
|
568
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
612
|
+
customer_id = data["customer_id"]
|
|
613
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
569
614
|
payload["type"] = "international_swift"
|
|
570
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
615
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
571
616
|
|
|
572
617
|
def create_rtp(self, data: CreateRtpInput) -> BlindpayApiResponse[CreateRtpResponse]:
|
|
573
|
-
|
|
574
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
618
|
+
customer_id = data["customer_id"]
|
|
619
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
575
620
|
payload["type"] = "rtp"
|
|
576
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
621
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
577
622
|
|
|
578
623
|
def create_pix_safe(self, data: CreatePixSafeInput) -> BlindpayApiResponse[CreatePixSafeResponse]:
|
|
579
|
-
|
|
580
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
624
|
+
customer_id = data["customer_id"]
|
|
625
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
581
626
|
payload["type"] = "pix_safe"
|
|
582
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
627
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
583
628
|
|
|
584
629
|
def create_ted(self, data: CreateTedInput) -> BlindpayApiResponse[CreateTedResponse]:
|
|
585
|
-
|
|
586
|
-
payload = {k: v for k, v in data.items() if k != "
|
|
630
|
+
customer_id = data["customer_id"]
|
|
631
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
587
632
|
payload["type"] = "ted"
|
|
588
|
-
return self._client.post(f"/instances/{self._instance_id}/
|
|
633
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
634
|
+
|
|
635
|
+
def create_sepa(self, data: CreateSepaInput) -> BlindpayApiResponse[CreateSepaResponse]:
|
|
636
|
+
customer_id = data["customer_id"]
|
|
637
|
+
payload = {k: v for k, v in data.items() if k != "customer_id"}
|
|
638
|
+
payload["type"] = "sepa"
|
|
639
|
+
return self._client.post(f"/instances/{self._instance_id}/customers/{customer_id}/bank-accounts", payload)
|
|
589
640
|
|
|
590
641
|
|
|
591
642
|
def create_bank_accounts_resource(instance_id: str, client: InternalApiClient) -> BankAccountsResource:
|