33from typing_extensions import TypedDict
44
55from ..._internal .api_client import InternalApiClient , InternalApiClientSync
6- from ...types import AccountClass , BankAccountType , BlindpayApiResponse , Country , Rail , SpeiProtocol
6+ from ...types import (
7+ AccountClass ,
8+ BankAccountType ,
9+ BlindpayApiResponse ,
10+ Country ,
11+ Rail ,
12+ RecipientRelationship ,
13+ SpeiProtocol ,
14+ )
715
816ArgentinaTransfers = Literal ["CVU" , "CBU" , "ALIAS" ]
917AchCopDocument = Literal ["CC" , "CE" , "NIT" , "PASS" , "PEP" ]
1624WireType = Literal ["wire" ]
1725InternationalSwiftType = Literal ["international_swift" ]
1826RtpType = Literal ["rtp" ]
27+ PixSafeType = Literal ["pix_safe" ]
1928
2029
2130class OfframpWallet (TypedDict ):
@@ -177,14 +186,28 @@ class CreateColombiaAchResponse(TypedDict):
177186 created_at : str
178187
179188
180- class CreateAchInput (TypedDict ):
189+ class _CreateAchInputRequired (TypedDict ):
181190 receiver_id : str
191+
192+
193+ class CreateAchInput (_CreateAchInputRequired , total = False ):
182194 name : str
183195 account_class : AccountClass
184196 account_number : str
185197 account_type : BankAccountType
186198 beneficiary_name : str
187199 routing_number : str
200+ recipient_relationship : RecipientRelationship
201+ address_line_1 : str
202+ city : str
203+ state_province_region : str
204+ country : Country
205+ postal_code : str
206+ address_line_2 : Optional [str ]
207+ business_industry : Optional [str ]
208+ phone_number : Optional [str ]
209+ tax_id : Optional [str ]
210+ date_of_birth : Optional [str ]
188211
189212
190213class CreateAchResponse (TypedDict ):
@@ -212,18 +235,27 @@ class CreateAchResponse(TypedDict):
212235 created_at : str
213236
214237
215- class CreateWireInput (TypedDict ):
238+ class _CreateWireInputRequired (TypedDict ):
216239 receiver_id : str
240+
241+
242+ class CreateWireInput (_CreateWireInputRequired , total = False ):
217243 name : str
218244 account_number : str
245+ account_class : AccountClass
219246 beneficiary_name : str
220247 routing_number : str
248+ recipient_relationship : RecipientRelationship
221249 address_line_1 : str
222250 address_line_2 : Optional [str ]
223251 city : str
224252 state_province_region : str
225253 country : Country
226254 postal_code : str
255+ business_industry : Optional [str ]
256+ phone_number : Optional [str ]
257+ tax_id : Optional [str ]
258+ date_of_birth : Optional [str ]
227259
228260
229261class CreateWireResponse (TypedDict ):
@@ -242,9 +274,14 @@ class CreateWireResponse(TypedDict):
242274 created_at : str
243275
244276
245- class CreateInternationalSwiftInput (TypedDict ):
277+ class _CreateInternationalSwiftInputRequired (TypedDict ):
246278 receiver_id : str
279+
280+
281+ class CreateInternationalSwiftInput (_CreateInternationalSwiftInputRequired , total = False ):
247282 name : str
283+ account_class : AccountClass
284+ recipient_relationship : RecipientRelationship
248285 swift_account_holder_name : str
249286 swift_account_number_iban : str
250287 swift_bank_address_line_1 : str
@@ -265,6 +302,11 @@ class CreateInternationalSwiftInput(TypedDict):
265302 swift_intermediary_bank_country : Optional [Country ]
266303 swift_intermediary_bank_name : Optional [str ]
267304 swift_intermediary_bank_swift_code_bic : Optional [str ]
305+ swift_payment_code : Optional [str ]
306+ business_industry : Optional [str ]
307+ phone_number : Optional [str ]
308+ tax_id : Optional [str ]
309+ date_of_birth : Optional [str ]
268310
269311
270312class CreateInternationalSwiftResponse (TypedDict ):
@@ -301,18 +343,27 @@ class CreateInternationalSwiftResponse(TypedDict):
301343 created_at : str
302344
303345
304- class CreateRtpInput (TypedDict ):
346+ class _CreateRtpInputRequired (TypedDict ):
305347 receiver_id : str
348+
349+
350+ class CreateRtpInput (_CreateRtpInputRequired , total = False ):
306351 name : str
352+ account_class : AccountClass
307353 beneficiary_name : str
308354 routing_number : str
309355 account_number : str
356+ recipient_relationship : RecipientRelationship
310357 address_line_1 : str
311358 address_line_2 : Optional [str ]
312359 city : str
313360 state_province_region : str
314361 country : Country
315362 postal_code : str
363+ business_industry : Optional [str ]
364+ phone_number : Optional [str ]
365+ tax_id : Optional [str ]
366+ date_of_birth : Optional [str ]
316367
317368
318369class CreateRtpResponse (TypedDict ):
@@ -331,6 +382,28 @@ class CreateRtpResponse(TypedDict):
331382 created_at : str
332383
333384
385+ class CreatePixSafeInput (TypedDict ):
386+ receiver_id : str
387+ name : str
388+ account_number : str
389+ account_type : BankAccountType
390+ pix_safe_bank_code : str
391+ pix_safe_branch_code : str
392+ pix_safe_cpf_cnpj : str
393+
394+
395+ class CreatePixSafeResponse (TypedDict ):
396+ id : str
397+ type : PixSafeType
398+ name : str
399+ account_number : str
400+ account_type : BankAccountType
401+ pix_safe_bank_code : str
402+ pix_safe_branch_code : str
403+ pix_safe_cpf_cnpj : str
404+ created_at : str
405+
406+
334407class BankAccountsResource :
335408 def __init__ (self , instance_id : str , client : InternalApiClient ):
336409 self ._instance_id = instance_id
@@ -397,6 +470,12 @@ async def create_rtp(self, data: CreateRtpInput) -> BlindpayApiResponse[CreateRt
397470 payload ["type" ] = "rtp"
398471 return await self ._client .post (f"/instances/{ self ._instance_id } /receivers/{ receiver_id } /bank-accounts" , payload )
399472
473+ async def create_pix_safe (self , data : CreatePixSafeInput ) -> BlindpayApiResponse [CreatePixSafeResponse ]:
474+ receiver_id = data ["receiver_id" ]
475+ payload = {k : v for k , v in data .items () if k != "receiver_id" }
476+ payload ["type" ] = "pix_safe"
477+ return await self ._client .post (f"/instances/{ self ._instance_id } /receivers/{ receiver_id } /bank-accounts" , payload )
478+
400479
401480class BankAccountsResourceSync :
402481 def __init__ (self , instance_id : str , client : InternalApiClientSync ):
@@ -464,6 +543,12 @@ def create_rtp(self, data: CreateRtpInput) -> BlindpayApiResponse[CreateRtpRespo
464543 payload ["type" ] = "rtp"
465544 return self ._client .post (f"/instances/{ self ._instance_id } /receivers/{ receiver_id } /bank-accounts" , payload )
466545
546+ def create_pix_safe (self , data : CreatePixSafeInput ) -> BlindpayApiResponse [CreatePixSafeResponse ]:
547+ receiver_id = data ["receiver_id" ]
548+ payload = {k : v for k , v in data .items () if k != "receiver_id" }
549+ payload ["type" ] = "pix_safe"
550+ return self ._client .post (f"/instances/{ self ._instance_id } /receivers/{ receiver_id } /bank-accounts" , payload )
551+
467552
468553def create_bank_accounts_resource (instance_id : str , client : InternalApiClient ) -> BankAccountsResource :
469554 return BankAccountsResource (instance_id , client )
0 commit comments