Skip to content

Commit db405c1

Browse files
feat: sync SDK with API changes
1 parent e4db01a commit db405c1

9 files changed

Lines changed: 96 additions & 6 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "blindpay"
3-
version = "2.1.0"
3+
version = "2.2.0"
44
description = "Official Python SDK for the Blindpay API — Global payments infrastructure"
55
readme = "README.md"
66
authors = [{ name = "Blindpay", email = "[email protected]" }]

src/blindpay/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "2.1.0"
1+
__version__ = "2.2.0"
22

33
from ._internal.exceptions import BlindPayError
44
from .client import BlindPay, BlindPaySync

src/blindpay/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
from blindpay.resources.wallets.offramp import OfframpWalletsResource, OfframpWalletsResourceSync
4040
from blindpay.resources.webhooks.webhooks import WebhookEndpointsResource, WebhookEndpointsResourceSync
4141

42-
__version__ = "2.1.0"
42+
__version__ = "2.2.0"
4343

4444
T = TypeVar("T")
4545

src/blindpay/resources/bank_accounts/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,25 @@
1515
CreateInternationalSwiftResponse,
1616
CreatePixInput,
1717
CreatePixResponse,
18+
CreatePixSafeInput,
19+
CreatePixSafeResponse,
1820
CreateRtpInput,
1921
CreateRtpResponse,
2022
CreateSpeiInput,
2123
CreateSpeiResponse,
24+
CreateTedInput,
25+
CreateTedResponse,
2226
CreateWireInput,
2327
CreateWireResponse,
2428
GetBankAccountResponse,
29+
InternationalSwiftType,
2530
ListBankAccountsResponse,
2631
OfframpNetwork,
32+
PixSafeType,
2733
PixType,
2834
RtpType,
2935
SpeiBitsoType,
36+
TedType,
3037
TransfersBitsoType,
3138
WireType,
3239
create_bank_accounts_resource,
@@ -46,14 +53,19 @@
4653
"CreateWireInput",
4754
"CreateInternationalSwiftInput",
4855
"CreateRtpInput",
56+
"CreatePixSafeInput",
57+
"CreateTedInput",
4958
"AchCopBitsoType",
5059
"AchCopDocument",
5160
"AchType",
5261
"ArgentinaTransfers",
62+
"InternationalSwiftType",
5363
"OfframpNetwork",
5464
"PixType",
65+
"PixSafeType",
5566
"TransfersBitsoType",
5667
"SpeiBitsoType",
68+
"TedType",
5769
"WireType",
5870
"RtpType",
5971
"GetBankAccountResponse",
@@ -63,7 +75,9 @@
6375
"CreateColombiaAchResponse",
6476
"CreateInternationalSwiftResponse",
6577
"CreatePixResponse",
78+
"CreatePixSafeResponse",
6679
"CreateRtpResponse",
6780
"CreateSpeiResponse",
81+
"CreateTedResponse",
6882
"CreateWireResponse",
6983
]

src/blindpay/resources/bank_accounts/bank_accounts.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
InternationalSwiftType = Literal["international_swift"]
2626
RtpType = Literal["rtp"]
2727
PixSafeType = Literal["pix_safe"]
28+
TedType = Literal["ted"]
2829

2930

3031
class OfframpWallet(TypedDict):
@@ -84,6 +85,9 @@ class BankAccount(TypedDict):
8485
swift_intermediary_bank_country: Optional[Country]
8586
tron_wallet_hash: Optional[str]
8687
offramp_wallets: Optional[List[OfframpWallet]]
88+
ted_bank_code: Optional[str]
89+
ted_branch_code: Optional[str]
90+
ted_cpf_cnpj: Optional[str]
8791
created_at: str
8892

8993

@@ -404,6 +408,24 @@ class CreatePixSafeResponse(TypedDict):
404408
created_at: str
405409

406410

411+
class CreateTedInput(TypedDict):
412+
receiver_id: str
413+
name: str
414+
ted_bank_code: str
415+
ted_branch_code: str
416+
ted_cpf_cnpj: str
417+
418+
419+
class CreateTedResponse(TypedDict):
420+
id: str
421+
type: TedType
422+
name: str
423+
ted_bank_code: str
424+
ted_branch_code: str
425+
ted_cpf_cnpj: str
426+
created_at: str
427+
428+
407429
class BankAccountsResource:
408430
def __init__(self, instance_id: str, client: InternalApiClient):
409431
self._instance_id = instance_id
@@ -476,6 +498,12 @@ async def create_pix_safe(self, data: CreatePixSafeInput) -> BlindpayApiResponse
476498
payload["type"] = "pix_safe"
477499
return await self._client.post(f"/instances/{self._instance_id}/receivers/{receiver_id}/bank-accounts", payload)
478500

501+
async def create_ted(self, data: CreateTedInput) -> BlindpayApiResponse[CreateTedResponse]:
502+
receiver_id = data["receiver_id"]
503+
payload = {k: v for k, v in data.items() if k != "receiver_id"}
504+
payload["type"] = "ted"
505+
return await self._client.post(f"/instances/{self._instance_id}/receivers/{receiver_id}/bank-accounts", payload)
506+
479507

480508
class BankAccountsResourceSync:
481509
def __init__(self, instance_id: str, client: InternalApiClientSync):
@@ -549,6 +577,12 @@ def create_pix_safe(self, data: CreatePixSafeInput) -> BlindpayApiResponse[Creat
549577
payload["type"] = "pix_safe"
550578
return self._client.post(f"/instances/{self._instance_id}/receivers/{receiver_id}/bank-accounts", payload)
551579

580+
def create_ted(self, data: CreateTedInput) -> BlindpayApiResponse[CreateTedResponse]:
581+
receiver_id = data["receiver_id"]
582+
payload = {k: v for k, v in data.items() if k != "receiver_id"}
583+
payload["type"] = "ted"
584+
return self._client.post(f"/instances/{self._instance_id}/receivers/{receiver_id}/bank-accounts", payload)
585+
552586

553587
def create_bank_accounts_resource(instance_id: str, client: InternalApiClient) -> BankAccountsResource:
554588
return BankAccountsResource(instance_id, client)

src/blindpay/resources/fees/fees.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class FeesResponse(TypedDict):
1818
domestic_wire: Optional[FeeOptions]
1919
pix: Optional[FeeOptions]
2020
solana: Optional[FeeOptions]
21+
ted: Optional[FeeOptions]
2122

2223

2324
class FeesResource:

src/blindpay/resources/payins/payins.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class Payin(TypedDict):
6868
tracking_payment: Optional[TrackingPayment]
6969
tracking_complete: Optional[TrackingComplete]
7070
tracking_partner_fee: Optional[TrackingPartnerFee]
71+
partner_fee_id: Optional[str]
7172
created_at: str
7273
updated_at: str
7374
image_url: Optional[str]
@@ -144,6 +145,7 @@ class GetPayinTrackResponse(TypedDict):
144145
tracking_payment: TrackingPayment
145146
tracking_complete: TrackingComplete
146147
tracking_partner_fee: TrackingPartnerFee
148+
partner_fee_id: Optional[str]
147149
created_at: str
148150
updated_at: str
149151
image_url: str

src/blindpay/resources/payouts/payouts.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class Payout(TypedDict):
4141
tracking_liquidity: TrackingLiquidity
4242
tracking_complete: TrackingComplete
4343
tracking_partner_fee: TrackingPartnerFee
44+
partner_fee_id: Optional[str]
4445
created_at: str
4546
updated_at: str
4647
image_url: str
@@ -91,6 +92,9 @@ class Payout(TypedDict):
9192
swift_account_number_iban: Optional[str]
9293
transfers_account: Optional[str]
9394
transfers_type: ArgentinaTransfers
95+
ted_bank_code: Optional[str]
96+
ted_branch_code: Optional[str]
97+
ted_cpf_cnpj: Optional[str]
9498
has_virtual_account: bool
9599

96100

src/blindpay/types.py

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Generic, Literal, TypeVar, Union
1+
from typing import Dict, Generic, Literal, Optional, TypeVar, Union
22

33
from typing_extensions import TypedDict
44

@@ -47,7 +47,7 @@ class BlindpaySuccessResponse(TypedDict, Generic[T]):
4747

4848
BankAccountType = Literal["checking", "savings"]
4949

50-
Currency = Literal["USDC", "USDT", "USDB", "BRL", "USD", "MXN", "COP", "ARS"]
50+
Currency = Literal["USDB", "BRL", "USD", "MXN", "COP", "ARS"]
5151

5252
Rail = Literal[
5353
"wire", "ach", "pix", "pix_safe", "spei_bitso", "transfers_bitso", "ach_cop_bitso", "international_swift", "rtp"
@@ -380,4 +380,39 @@ class TrackingPartnerFee(TypedDict):
380380

381381
BankingPartner = Literal["cfsb", "citi", "hsbc", "jpmorgan"]
382382

383-
PaymentMethod = Literal["ach", "wire", "pix", "spei", "transfers", "pse", "international_swift"]
383+
PaymentMethod = Literal["ach", "wire", "pix", "spei", "transfers", "pse", "international_swift", "rtp"]
384+
385+
ActorType = Literal["api_key", "user"]
386+
387+
Operation = Literal["create", "delete", "update"]
388+
389+
390+
class AuditActor(TypedDict):
391+
id: str
392+
type: ActorType
393+
name: Optional[str]
394+
email: Optional[str]
395+
396+
397+
class AuditLog(TypedDict):
398+
id: str
399+
instance_id: str
400+
actor: AuditActor
401+
operation: Operation
402+
resource_type: str
403+
resource_id: str
404+
resource_name: Optional[str]
405+
details: Optional[Dict[str, str]]
406+
ip_address: Optional[str]
407+
user_agent: Optional[str]
408+
timestamp: str
409+
created_at: str
410+
updated_at: str
411+
context: Optional[Dict[str, str]]
412+
metadata: Optional[Dict[str, str]]
413+
success: bool
414+
error_message: Optional[str]
415+
416+
417+
class AuditLogOut(TypedDict):
418+
pass

0 commit comments

Comments
 (0)