Skip to content

Commit 2b3648d

Browse files
feat: Added support for Korean local payment methods (#106)
1 parent ed34780 commit 2b3648d

28 files changed

+279
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Check our main [developer changelog](https://developer.paddle.com/?utm_source=dx
1010

1111
### Added
1212

13+
- Added support for Korean local payment methods, see [related changelog](https://developer.paddle.com/changelog/2024/korean-payment-methods?utm_source=dx&utm_medium=paddle-python-sdk).
1314
- Added support for `balance` reports, see [related changelog](https://developer.paddle.com/changelog/2025/balance-reports?utm_source=dx&utm_medium=paddle-python-sdk).
1415
- Added support for API key events, see [related changelog](https://developer.paddle.com/changelog/2025/api-key-improvements?utm_source=dx&utm_medium=paddle-python-sdk).
1516
- Added support for discount mode

paddle_billing/Entities/PaymentMethod.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from paddle_billing.Entities.Entity import Entity
77
from paddle_billing.Entities.Shared import (
88
Card,
9+
PaymentMethodUnderlyingDetails,
910
Paypal,
1011
SavedPaymentMethodOrigin,
1112
SavedPaymentMethodType,
@@ -23,6 +24,7 @@ class PaymentMethod(Entity):
2324
origin: SavedPaymentMethodOrigin
2425
saved_at: datetime
2526
updated_at: datetime
27+
underlying_details: PaymentMethodUnderlyingDetails | None
2628

2729
@staticmethod
2830
def from_dict(data: dict[str, Any]) -> PaymentMethod:
@@ -33,6 +35,11 @@ def from_dict(data: dict[str, Any]) -> PaymentMethod:
3335
type=SavedPaymentMethodType(data["type"]),
3436
card=Card.from_dict(data["card"]) if data.get("card") else None,
3537
paypal=Paypal.from_dict(data["paypal"]) if data.get("paypal") else None,
38+
underlying_details=(
39+
PaymentMethodUnderlyingDetails.from_dict(data["underlying_details"])
40+
if data.get("underlying_details")
41+
else None
42+
),
3643
origin=SavedPaymentMethodOrigin(data["origin"]),
3744
saved_at=datetime.fromisoformat(data["saved_at"]),
3845
updated_at=datetime.fromisoformat(data["updated_at"]),
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from paddle_billing.PaddleStrEnum import PaddleStrEnum, PaddleStrEnumMeta
2+
3+
4+
class KoreaLocalPaymentMethodType(PaddleStrEnum, metaclass=PaddleStrEnumMeta):
5+
BC: "KoreaLocalPaymentMethodType" = "bc"
6+
Citi: "KoreaLocalPaymentMethodType" = "citi"
7+
Hana: "KoreaLocalPaymentMethodType" = "hana"
8+
Hyundai: "KoreaLocalPaymentMethodType" = "hyundai"
9+
Jeju: "KoreaLocalPaymentMethodType" = "jeju"
10+
Jeonbuk: "KoreaLocalPaymentMethodType" = "jeonbuk"
11+
KakaoBank: "KoreaLocalPaymentMethodType" = "kakaobank"
12+
KakaoPay: "KoreaLocalPaymentMethodType" = "kakaopay"
13+
KBank: "KoreaLocalPaymentMethodType" = "kbank"
14+
KDBBank: "KoreaLocalPaymentMethodType" = "kdbbank"
15+
Kookmin: "KoreaLocalPaymentMethodType" = "kookmin"
16+
Kwangju: "KoreaLocalPaymentMethodType" = "kwangju"
17+
Lotte: "KoreaLocalPaymentMethodType" = "lotte"
18+
MG: "KoreaLocalPaymentMethodType" = "mg"
19+
NaverPayCard: "KoreaLocalPaymentMethodType" = "naverpaycard"
20+
NaverPayPoint: "KoreaLocalPaymentMethodType" = "naverpaypoint"
21+
NH: "KoreaLocalPaymentMethodType" = "nh"
22+
PayCo: "KoreaLocalPaymentMethodType" = "payco"
23+
Post: "KoreaLocalPaymentMethodType" = "post"
24+
Samsung: "KoreaLocalPaymentMethodType" = "samsung"
25+
SamsungPay: "KoreaLocalPaymentMethodType" = "samsungpay"
26+
SavingsBank: "KoreaLocalPaymentMethodType" = "savingsbank"
27+
Shinhan: "KoreaLocalPaymentMethodType" = "shinhan"
28+
Shinhyup: "KoreaLocalPaymentMethodType" = "shinhyup"
29+
Suhyup: "KoreaLocalPaymentMethodType" = "suhyup"
30+
TossBank: "KoreaLocalPaymentMethodType" = "tossbank"
31+
Unknown: "KoreaLocalPaymentMethodType" = "unknown"
32+
Woori: "KoreaLocalPaymentMethodType" = "woori"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import annotations
2+
from dataclasses import dataclass
3+
from typing import Any
4+
5+
from paddle_billing.Entities.Shared.KoreaLocalPaymentMethodType import KoreaLocalPaymentMethodType
6+
7+
8+
@dataclass
9+
class KoreaLocalUnderlyingDetails:
10+
type: KoreaLocalPaymentMethodType
11+
12+
@staticmethod
13+
def from_dict(data: dict[str, Any]) -> KoreaLocalUnderlyingDetails:
14+
return KoreaLocalUnderlyingDetails(
15+
type=KoreaLocalPaymentMethodType(data["type"]),
16+
)

paddle_billing/Entities/Shared/MethodDetails.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,23 @@
44

55
from paddle_billing.Entities.Shared.Card import Card
66
from paddle_billing.Entities.Shared.PaymentMethodType import PaymentMethodType
7+
from paddle_billing.Entities.Shared.PaymentMethodUnderlyingDetails import PaymentMethodUnderlyingDetails
78

89

910
@dataclass
1011
class MethodDetails:
1112
type: PaymentMethodType
1213
card: Card | None
14+
underlying_details: PaymentMethodUnderlyingDetails | None
1315

1416
@staticmethod
1517
def from_dict(data: dict[str, Any]) -> MethodDetails:
1618
return MethodDetails(
1719
PaymentMethodType(data["type"]),
1820
Card.from_dict(data["card"]) if data.get("card") else None,
21+
(
22+
PaymentMethodUnderlyingDetails.from_dict(data["underlying_details"])
23+
if data.get("underlying_details")
24+
else None
25+
),
1926
)

paddle_billing/Entities/Shared/PaymentMethodType.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class PaymentMethodType(PaddleStrEnum, metaclass=PaddleStrEnumMeta):
88
Card: "PaymentMethodType" = "card"
99
GooglePay: "PaymentMethodType" = "google_pay"
1010
Ideal: "PaymentMethodType" = "ideal"
11+
KoreaLocal: "PaymentMethodType" = "korea_local"
1112
Offline: "PaymentMethodType" = "offline"
1213
Paypal: "PaymentMethodType" = "paypal"
1314
Unknown: "PaymentMethodType" = "unknown"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from __future__ import annotations
2+
from dataclasses import dataclass
3+
from typing import Any
4+
5+
from paddle_billing.Entities.Shared.KoreaLocalUnderlyingDetails import KoreaLocalUnderlyingDetails
6+
7+
8+
@dataclass
9+
class PaymentMethodUnderlyingDetails:
10+
korea_local: KoreaLocalUnderlyingDetails
11+
12+
@staticmethod
13+
def from_dict(data: dict[str, Any]) -> PaymentMethodUnderlyingDetails:
14+
return PaymentMethodUnderlyingDetails(
15+
korea_local=KoreaLocalUnderlyingDetails.from_dict(data["korea_local"]),
16+
)

paddle_billing/Entities/Shared/SavedPaymentMethodType.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ class SavedPaymentMethodType(PaddleStrEnum, metaclass=PaddleStrEnumMeta):
66
ApplePay: "SavedPaymentMethodType" = "apple_pay"
77
Card: "SavedPaymentMethodType" = "card"
88
GooglePay: "SavedPaymentMethodType" = "google_pay"
9+
KoreaLocal: "SavedPaymentMethodType" = "korea_local"
910
Paypal: "SavedPaymentMethodType" = "paypal"

paddle_billing/Entities/Shared/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
from paddle_billing.Entities.Shared.ErrorCode import ErrorCode
2525
from paddle_billing.Entities.Shared.ImportMeta import ImportMeta
2626
from paddle_billing.Entities.Shared.Interval import Interval
27+
from paddle_billing.Entities.Shared.KoreaLocalPaymentMethodType import KoreaLocalPaymentMethodType
28+
from paddle_billing.Entities.Shared.KoreaLocalUnderlyingDetails import KoreaLocalUnderlyingDetails
2729
from paddle_billing.Entities.Shared.Meta import Meta
2830
from paddle_billing.Entities.Shared.MetaPaginated import MetaPaginated
2931
from paddle_billing.Entities.Shared.MethodDetails import MethodDetails
@@ -32,6 +34,7 @@
3234
from paddle_billing.Entities.Shared.Pagination import Pagination
3335
from paddle_billing.Entities.Shared.PaymentAttemptStatus import PaymentAttemptStatus
3436
from paddle_billing.Entities.Shared.PaymentMethodType import PaymentMethodType
37+
from paddle_billing.Entities.Shared.PaymentMethodUnderlyingDetails import PaymentMethodUnderlyingDetails
3538
from paddle_billing.Entities.Shared.PayoutTotalsAdjustment import PayoutTotalsAdjustment
3639
from paddle_billing.Entities.Shared.Paypal import Paypal
3740
from paddle_billing.Entities.Shared.PriceQuantity import PriceQuantity
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from paddle_billing.PaddleStrEnum import PaddleStrEnum, PaddleStrEnumMeta
2+
3+
4+
class KoreaLocalPaymentMethodType(PaddleStrEnum, metaclass=PaddleStrEnumMeta):
5+
BC: "KoreaLocalPaymentMethodType" = "bc"
6+
Citi: "KoreaLocalPaymentMethodType" = "citi"
7+
Hana: "KoreaLocalPaymentMethodType" = "hana"
8+
Hyundai: "KoreaLocalPaymentMethodType" = "hyundai"
9+
Jeju: "KoreaLocalPaymentMethodType" = "jeju"
10+
Jeonbuk: "KoreaLocalPaymentMethodType" = "jeonbuk"
11+
KakaoBank: "KoreaLocalPaymentMethodType" = "kakaobank"
12+
KakaoPay: "KoreaLocalPaymentMethodType" = "kakaopay"
13+
KBank: "KoreaLocalPaymentMethodType" = "kbank"
14+
KDBBank: "KoreaLocalPaymentMethodType" = "kdbbank"
15+
Kookmin: "KoreaLocalPaymentMethodType" = "kookmin"
16+
Kwangju: "KoreaLocalPaymentMethodType" = "kwangju"
17+
Lotte: "KoreaLocalPaymentMethodType" = "lotte"
18+
MG: "KoreaLocalPaymentMethodType" = "mg"
19+
NaverPayCard: "KoreaLocalPaymentMethodType" = "naverpaycard"
20+
NaverPayPoint: "KoreaLocalPaymentMethodType" = "naverpaypoint"
21+
NH: "KoreaLocalPaymentMethodType" = "nh"
22+
PayCo: "KoreaLocalPaymentMethodType" = "payco"
23+
Post: "KoreaLocalPaymentMethodType" = "post"
24+
Samsung: "KoreaLocalPaymentMethodType" = "samsung"
25+
SamsungPay: "KoreaLocalPaymentMethodType" = "samsungpay"
26+
SavingsBank: "KoreaLocalPaymentMethodType" = "savingsbank"
27+
Shinhan: "KoreaLocalPaymentMethodType" = "shinhan"
28+
Shinhyup: "KoreaLocalPaymentMethodType" = "shinhyup"
29+
Suhyup: "KoreaLocalPaymentMethodType" = "suhyup"
30+
TossBank: "KoreaLocalPaymentMethodType" = "tossbank"
31+
Unknown: "KoreaLocalPaymentMethodType" = "unknown"
32+
Woori: "KoreaLocalPaymentMethodType" = "woori"

0 commit comments

Comments
 (0)