paddle-python-sdk 0.1.0__py3-none-any.whl

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.
Files changed (517) hide show
  1. examples/__init__.py +0 -0
  2. examples/catalog_management.py +166 -0
  3. examples/event_polling.py +56 -0
  4. examples/get_products.py +46 -0
  5. examples/logger.py +31 -0
  6. paddle_billing/Client.py +201 -0
  7. paddle_billing/ConditionallyRemoveImportMeta.py +14 -0
  8. paddle_billing/Entities/Address.py +44 -0
  9. paddle_billing/Entities/Adjustment.py +45 -0
  10. paddle_billing/Entities/Adjustments/AdjustmentCustomerBalance.py +18 -0
  11. paddle_billing/Entities/Adjustments/AdjustmentItem.py +26 -0
  12. paddle_billing/Entities/Adjustments/__init__.py +2 -0
  13. paddle_billing/Entities/Business.py +38 -0
  14. paddle_billing/Entities/Collections/AddressCollection.py +18 -0
  15. paddle_billing/Entities/Collections/AdjustmentCollection.py +18 -0
  16. paddle_billing/Entities/Collections/BusinessCollection.py +18 -0
  17. paddle_billing/Entities/Collections/Collection.py +47 -0
  18. paddle_billing/Entities/Collections/CreditBalanceCollection.py +18 -0
  19. paddle_billing/Entities/Collections/CustomerCollection.py +18 -0
  20. paddle_billing/Entities/Collections/DiscountCollection.py +18 -0
  21. paddle_billing/Entities/Collections/EventCollection.py +18 -0
  22. paddle_billing/Entities/Collections/EventTypeCollection.py +18 -0
  23. paddle_billing/Entities/Collections/NotificationCollection.py +18 -0
  24. paddle_billing/Entities/Collections/NotificationLogCollection.py +18 -0
  25. paddle_billing/Entities/Collections/NotificationSettingCollection.py +18 -0
  26. paddle_billing/Entities/Collections/Paginator.py +29 -0
  27. paddle_billing/Entities/Collections/PriceCollection.py +18 -0
  28. paddle_billing/Entities/Collections/ProductCollection.py +18 -0
  29. paddle_billing/Entities/Collections/ReportCollection.py +18 -0
  30. paddle_billing/Entities/Collections/SubscriptionCollection.py +18 -0
  31. paddle_billing/Entities/Collections/SubscriptionPreviewCollection.py +18 -0
  32. paddle_billing/Entities/Collections/TransactionCollection.py +18 -0
  33. paddle_billing/Entities/Collections/TransactionPreviewCollection.py +18 -0
  34. paddle_billing/Entities/Collections/TransactionsDataCollection.py +18 -0
  35. paddle_billing/Entities/Collections/__init__.py +21 -0
  36. paddle_billing/Entities/CreditBalance.py +22 -0
  37. paddle_billing/Entities/Customer.py +36 -0
  38. paddle_billing/Entities/DateTime.py +43 -0
  39. paddle_billing/Entities/Discount.py +51 -0
  40. paddle_billing/Entities/Discounts/DiscountStatus.py +8 -0
  41. paddle_billing/Entities/Discounts/DiscountType.py +7 -0
  42. paddle_billing/Entities/Discounts/__init__.py +2 -0
  43. paddle_billing/Entities/Entity.py +12 -0
  44. paddle_billing/Entities/Event.py +51 -0
  45. paddle_billing/Entities/EventType.py +23 -0
  46. paddle_billing/Entities/Events/EventTypeName.py +52 -0
  47. paddle_billing/Entities/Events/__init__.py +1 -0
  48. paddle_billing/Entities/Notification.py +42 -0
  49. paddle_billing/Entities/NotificationLog.py +25 -0
  50. paddle_billing/Entities/NotificationSetting.py +34 -0
  51. paddle_billing/Entities/NotificationSettings/NotificationSettingType.py +6 -0
  52. paddle_billing/Entities/NotificationSettings/__init__.py +1 -0
  53. paddle_billing/Entities/Notifications/NotificationOrigin.py +6 -0
  54. paddle_billing/Entities/Notifications/NotificationPayout.py +24 -0
  55. paddle_billing/Entities/Notifications/NotificationPayoutStatus.py +6 -0
  56. paddle_billing/Entities/Notifications/NotificationStatus.py +8 -0
  57. paddle_billing/Entities/Notifications/__init__.py +4 -0
  58. paddle_billing/Entities/Price.py +68 -0
  59. paddle_billing/Entities/PricePreview.py +34 -0
  60. paddle_billing/Entities/PricingPreviews/PricePreviewDetails.py +15 -0
  61. paddle_billing/Entities/PricingPreviews/PricePreviewDiscounts.py +20 -0
  62. paddle_billing/Entities/PricingPreviews/PricePreviewItem.py +16 -0
  63. paddle_billing/Entities/PricingPreviews/PricePreviewLineItem.py +38 -0
  64. paddle_billing/Entities/PricingPreviews/PricePreviewTotalsFormatted.py +20 -0
  65. paddle_billing/Entities/PricingPreviews/PricePreviewUnitTotalsFormatted.py +20 -0
  66. paddle_billing/Entities/PricingPreviews/__init__.py +6 -0
  67. paddle_billing/Entities/Product.py +45 -0
  68. paddle_billing/Entities/Report.py +32 -0
  69. paddle_billing/Entities/ReportCSV.py +13 -0
  70. paddle_billing/Entities/Reports/ReportFilter.py +20 -0
  71. paddle_billing/Entities/Reports/ReportFilterName.py +17 -0
  72. paddle_billing/Entities/Reports/ReportFilterOperator.py +6 -0
  73. paddle_billing/Entities/Reports/ReportStatus.py +8 -0
  74. paddle_billing/Entities/Reports/ReportType.py +10 -0
  75. paddle_billing/Entities/Reports/__init__.py +5 -0
  76. paddle_billing/Entities/Shared/Action.py +10 -0
  77. paddle_billing/Entities/Shared/AddressPreview.py +18 -0
  78. paddle_billing/Entities/Shared/AdjustmentItemTotals.py +18 -0
  79. paddle_billing/Entities/Shared/AdjustmentProration.py +18 -0
  80. paddle_billing/Entities/Shared/AdjustmentStatus.py +8 -0
  81. paddle_billing/Entities/Shared/AdjustmentTimePeriod.py +17 -0
  82. paddle_billing/Entities/Shared/AdjustmentTotals.py +26 -0
  83. paddle_billing/Entities/Shared/AdjustmentType.py +8 -0
  84. paddle_billing/Entities/Shared/AvailablePaymentMethods.py +11 -0
  85. paddle_billing/Entities/Shared/BillingDetails.py +22 -0
  86. paddle_billing/Entities/Shared/BillingDetailsUpdate.py +22 -0
  87. paddle_billing/Entities/Shared/Card.py +24 -0
  88. paddle_billing/Entities/Shared/CatalogType.py +6 -0
  89. paddle_billing/Entities/Shared/ChargebackFee.py +18 -0
  90. paddle_billing/Entities/Shared/Checkout.py +12 -0
  91. paddle_billing/Entities/Shared/CollectionMode.py +6 -0
  92. paddle_billing/Entities/Shared/Contacts.py +16 -0
  93. paddle_billing/Entities/Shared/CountryCode.py +233 -0
  94. paddle_billing/Entities/Shared/CurrencyCode.py +34 -0
  95. paddle_billing/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
  96. paddle_billing/Entities/Shared/CurrencyCodePayouts.py +17 -0
  97. paddle_billing/Entities/Shared/CustomData.py +10 -0
  98. paddle_billing/Entities/Shared/Data.py +9 -0
  99. paddle_billing/Entities/Shared/ErrorCode.py +21 -0
  100. paddle_billing/Entities/Shared/ImportMeta.py +16 -0
  101. paddle_billing/Entities/Shared/Interval.py +8 -0
  102. paddle_billing/Entities/Shared/Meta.py +7 -0
  103. paddle_billing/Entities/Shared/MetaPaginated.py +18 -0
  104. paddle_billing/Entities/Shared/MethodDetails.py +19 -0
  105. paddle_billing/Entities/Shared/Money.py +28 -0
  106. paddle_billing/Entities/Shared/Original.py +18 -0
  107. paddle_billing/Entities/Shared/Pagination.py +20 -0
  108. paddle_billing/Entities/Shared/PaymentAttemptStatus.py +13 -0
  109. paddle_billing/Entities/Shared/PaymentMethodType.py +14 -0
  110. paddle_billing/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
  111. paddle_billing/Entities/Shared/PriceQuantity.py +16 -0
  112. paddle_billing/Entities/Shared/Status.py +6 -0
  113. paddle_billing/Entities/Shared/TaxCategory.py +13 -0
  114. paddle_billing/Entities/Shared/TaxMode.py +7 -0
  115. paddle_billing/Entities/Shared/TaxRatesUsed.py +18 -0
  116. paddle_billing/Entities/Shared/TimePeriod.py +18 -0
  117. paddle_billing/Entities/Shared/Totals.py +20 -0
  118. paddle_billing/Entities/Shared/TransactionDetailsPreview.py +22 -0
  119. paddle_billing/Entities/Shared/TransactionLineItemPreview.py +28 -0
  120. paddle_billing/Entities/Shared/TransactionOrigin.py +10 -0
  121. paddle_billing/Entities/Shared/TransactionPaymentAttempt.py +35 -0
  122. paddle_billing/Entities/Shared/TransactionPayoutTotals.py +36 -0
  123. paddle_billing/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
  124. paddle_billing/Entities/Shared/TransactionStatus.py +11 -0
  125. paddle_billing/Entities/Shared/TransactionTotals.py +36 -0
  126. paddle_billing/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
  127. paddle_billing/Entities/Shared/UnitPriceOverride.py +19 -0
  128. paddle_billing/Entities/Shared/UnitTotals.py +20 -0
  129. paddle_billing/Entities/Shared/__init__.py +56 -0
  130. paddle_billing/Entities/Subscription.py +86 -0
  131. paddle_billing/Entities/SubscriptionPreview.py +79 -0
  132. paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
  133. paddle_billing/Entities/Subscriptions/SubscriptionAdjustmentPreview.py +22 -0
  134. paddle_billing/Entities/Subscriptions/SubscriptionCharge.py +18 -0
  135. paddle_billing/Entities/Subscriptions/SubscriptionCredit.py +18 -0
  136. paddle_billing/Entities/Subscriptions/SubscriptionDetails.py +34 -0
  137. paddle_billing/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
  138. paddle_billing/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
  139. paddle_billing/Entities/Subscriptions/SubscriptionItem.py +35 -0
  140. paddle_billing/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
  141. paddle_billing/Entities/Subscriptions/SubscriptionItems.py +20 -0
  142. paddle_billing/Entities/Subscriptions/SubscriptionItemsWithPrice.py +19 -0
  143. paddle_billing/Entities/Subscriptions/SubscriptionManagementUrls.py +16 -0
  144. paddle_billing/Entities/Subscriptions/SubscriptionNextTransaction.py +23 -0
  145. paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPrice.py +30 -0
  146. paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogPriceWithProduct.py +32 -0
  147. paddle_billing/Entities/Subscriptions/SubscriptionNonCatalogProduct.py +26 -0
  148. paddle_billing/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
  149. paddle_billing/Entities/Subscriptions/SubscriptionPreviewSubscriptionUpdateSummary.py +22 -0
  150. paddle_billing/Entities/Subscriptions/SubscriptionPrice.py +28 -0
  151. paddle_billing/Entities/Subscriptions/SubscriptionProration.py +18 -0
  152. paddle_billing/Entities/Subscriptions/SubscriptionProrationBillingMode.py +9 -0
  153. paddle_billing/Entities/Subscriptions/SubscriptionResult.py +22 -0
  154. paddle_billing/Entities/Subscriptions/SubscriptionResultAction.py +6 -0
  155. paddle_billing/Entities/Subscriptions/SubscriptionResumeEffectiveFrom.py +5 -0
  156. paddle_billing/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
  157. paddle_billing/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
  158. paddle_billing/Entities/Subscriptions/SubscriptionStatus.py +10 -0
  159. paddle_billing/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
  160. paddle_billing/Entities/Subscriptions/SubscriptionTransactionItem.py +23 -0
  161. paddle_billing/Entities/Subscriptions/SubscriptionTransactionLineItem.py +33 -0
  162. paddle_billing/Entities/Subscriptions/SubscriptionUpdateItem.py +16 -0
  163. paddle_billing/Entities/Subscriptions/__init__.py +31 -0
  164. paddle_billing/Entities/Transaction.py +98 -0
  165. paddle_billing/Entities/TransactionData.py +15 -0
  166. paddle_billing/Entities/TransactionPreview.py +40 -0
  167. paddle_billing/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
  168. paddle_billing/Entities/Transactions/TransactionBreakdown.py +18 -0
  169. paddle_billing/Entities/Transactions/TransactionCardType.py +14 -0
  170. paddle_billing/Entities/Transactions/TransactionCreateItem.py +16 -0
  171. paddle_billing/Entities/Transactions/TransactionCreateItemWithPrice.py +11 -0
  172. paddle_billing/Entities/Transactions/TransactionDetails.py +32 -0
  173. paddle_billing/Entities/Transactions/TransactionItem.py +24 -0
  174. paddle_billing/Entities/Transactions/TransactionItemPreviewWithNonCatalogPrice.py +21 -0
  175. paddle_billing/Entities/Transactions/TransactionItemPreviewWithPrice.py +24 -0
  176. paddle_billing/Entities/Transactions/TransactionItemPreviewWithPriceId.py +18 -0
  177. paddle_billing/Entities/Transactions/TransactionLineItem.py +35 -0
  178. paddle_billing/Entities/Transactions/TransactionNonCatalogPrice.py +39 -0
  179. paddle_billing/Entities/Transactions/TransactionNonCatalogPriceWithProduct.py +41 -0
  180. paddle_billing/Entities/Transactions/TransactionNonCatalogProduct.py +25 -0
  181. paddle_billing/Entities/Transactions/TransactionProration.py +18 -0
  182. paddle_billing/Entities/Transactions/TransactionTimePeriod.py +17 -0
  183. paddle_billing/Entities/Transactions/TransactionUpdateTransactionItem.py +8 -0
  184. paddle_billing/Entities/Transactions/__init__.py +20 -0
  185. paddle_billing/Entities/__init__.py +0 -0
  186. paddle_billing/EnumStringify.py +2 -0
  187. paddle_billing/Environment.py +14 -0
  188. paddle_billing/Exceptions/ApiError.py +28 -0
  189. paddle_billing/Exceptions/ApiErrors/AddressApiError.py +5 -0
  190. paddle_billing/Exceptions/ApiErrors/AdjustmentApiError.py +5 -0
  191. paddle_billing/Exceptions/ApiErrors/BusinessApiError.py +5 -0
  192. paddle_billing/Exceptions/ApiErrors/CustomerApiError.py +5 -0
  193. paddle_billing/Exceptions/ApiErrors/DiscountApiError.py +5 -0
  194. paddle_billing/Exceptions/ApiErrors/PriceApiError.py +5 -0
  195. paddle_billing/Exceptions/ApiErrors/ProductApiError.py +5 -0
  196. paddle_billing/Exceptions/ApiErrors/SubscriptionApiError.py +5 -0
  197. paddle_billing/Exceptions/ApiErrors/TransactionApiError.py +5 -0
  198. paddle_billing/Exceptions/ApiErrors/__init__.py +0 -0
  199. paddle_billing/Exceptions/FieldError.py +8 -0
  200. paddle_billing/Exceptions/SdkException.py +2 -0
  201. paddle_billing/Exceptions/SdkExceptions/InvalidArgumentException.py +8 -0
  202. paddle_billing/Exceptions/SdkExceptions/MalformedResponse.py +7 -0
  203. paddle_billing/Exceptions/SdkExceptions/__init__.py +0 -0
  204. paddle_billing/Exceptions/__init__.py +0 -0
  205. paddle_billing/FiltersNone.py +8 -0
  206. paddle_billing/FiltersUndefined.py +11 -0
  207. paddle_billing/HasParameters.py +11 -0
  208. paddle_billing/Logger/Formatter.py +18 -0
  209. paddle_billing/Logger/NullHandler.py +6 -0
  210. paddle_billing/Logger/__init__.py +30 -0
  211. paddle_billing/Notifications/Entities/Address.py +44 -0
  212. paddle_billing/Notifications/Entities/Adjustment.py +45 -0
  213. paddle_billing/Notifications/Entities/Adjustments/AdjustmentItem.py +26 -0
  214. paddle_billing/Notifications/Entities/Adjustments/__init__.py +1 -0
  215. paddle_billing/Notifications/Entities/Business.py +39 -0
  216. paddle_billing/Notifications/Entities/Businesses/BusinessesContacts.py +16 -0
  217. paddle_billing/Notifications/Entities/Businesses/__init__.py +1 -0
  218. paddle_billing/Notifications/Entities/Customer.py +36 -0
  219. paddle_billing/Notifications/Entities/DateTime.py +43 -0
  220. paddle_billing/Notifications/Entities/Discount.py +51 -0
  221. paddle_billing/Notifications/Entities/Discounts/DiscountStatus.py +8 -0
  222. paddle_billing/Notifications/Entities/Discounts/DiscountType.py +7 -0
  223. paddle_billing/Notifications/Entities/Discounts/__init__.py +2 -0
  224. paddle_billing/Notifications/Entities/Entity.py +12 -0
  225. paddle_billing/Notifications/Entities/Payout.py +24 -0
  226. paddle_billing/Notifications/Entities/Payouts/PayoutStatus.py +6 -0
  227. paddle_billing/Notifications/Entities/Payouts/__init__.py +1 -0
  228. paddle_billing/Notifications/Entities/Price.py +66 -0
  229. paddle_billing/Notifications/Entities/Product.py +45 -0
  230. paddle_billing/Notifications/Entities/Report.py +32 -0
  231. paddle_billing/Notifications/Entities/Reports/ReportFilter.py +20 -0
  232. paddle_billing/Notifications/Entities/Reports/ReportFilterName.py +17 -0
  233. paddle_billing/Notifications/Entities/Reports/ReportFilterOperator.py +6 -0
  234. paddle_billing/Notifications/Entities/Reports/ReportStatus.py +8 -0
  235. paddle_billing/Notifications/Entities/Reports/ReportType.py +10 -0
  236. paddle_billing/Notifications/Entities/Reports/__init__.py +5 -0
  237. paddle_billing/Notifications/Entities/Shared/Action.py +10 -0
  238. paddle_billing/Notifications/Entities/Shared/AddressPreview.py +18 -0
  239. paddle_billing/Notifications/Entities/Shared/AdjustmentItemTotals.py +18 -0
  240. paddle_billing/Notifications/Entities/Shared/AdjustmentProration.py +18 -0
  241. paddle_billing/Notifications/Entities/Shared/AdjustmentStatus.py +8 -0
  242. paddle_billing/Notifications/Entities/Shared/AdjustmentTimePeriod.py +17 -0
  243. paddle_billing/Notifications/Entities/Shared/AdjustmentTotals.py +26 -0
  244. paddle_billing/Notifications/Entities/Shared/AdjustmentType.py +8 -0
  245. paddle_billing/Notifications/Entities/Shared/AvailablePaymentMethods.py +11 -0
  246. paddle_billing/Notifications/Entities/Shared/BillingDetails.py +22 -0
  247. paddle_billing/Notifications/Entities/Shared/Card.py +24 -0
  248. paddle_billing/Notifications/Entities/Shared/CatalogType.py +6 -0
  249. paddle_billing/Notifications/Entities/Shared/ChargebackFee.py +18 -0
  250. paddle_billing/Notifications/Entities/Shared/Checkout.py +12 -0
  251. paddle_billing/Notifications/Entities/Shared/CollectionMode.py +6 -0
  252. paddle_billing/Notifications/Entities/Shared/CountryCode.py +233 -0
  253. paddle_billing/Notifications/Entities/Shared/CurrencyCode.py +34 -0
  254. paddle_billing/Notifications/Entities/Shared/CurrencyCodeAdjustments.py +7 -0
  255. paddle_billing/Notifications/Entities/Shared/CurrencyCodePayouts.py +17 -0
  256. paddle_billing/Notifications/Entities/Shared/CustomData.py +10 -0
  257. paddle_billing/Notifications/Entities/Shared/Data.py +9 -0
  258. paddle_billing/Notifications/Entities/Shared/ErrorCode.py +21 -0
  259. paddle_billing/Notifications/Entities/Shared/ImportMeta.py +16 -0
  260. paddle_billing/Notifications/Entities/Shared/Interval.py +8 -0
  261. paddle_billing/Notifications/Entities/Shared/MethodDetails.py +19 -0
  262. paddle_billing/Notifications/Entities/Shared/Money.py +28 -0
  263. paddle_billing/Notifications/Entities/Shared/Original.py +18 -0
  264. paddle_billing/Notifications/Entities/Shared/PaymentAttemptStatus.py +13 -0
  265. paddle_billing/Notifications/Entities/Shared/PaymentMethodType.py +15 -0
  266. paddle_billing/Notifications/Entities/Shared/PayoutTotalsAdjustment.py +29 -0
  267. paddle_billing/Notifications/Entities/Shared/PriceQuantity.py +16 -0
  268. paddle_billing/Notifications/Entities/Shared/Status.py +6 -0
  269. paddle_billing/Notifications/Entities/Shared/TaxCategory.py +13 -0
  270. paddle_billing/Notifications/Entities/Shared/TaxMode.py +7 -0
  271. paddle_billing/Notifications/Entities/Shared/TaxRatesUsed.py +18 -0
  272. paddle_billing/Notifications/Entities/Shared/TimePeriod.py +18 -0
  273. paddle_billing/Notifications/Entities/Shared/Totals.py +20 -0
  274. paddle_billing/Notifications/Entities/Shared/TransactionOrigin.py +10 -0
  275. paddle_billing/Notifications/Entities/Shared/TransactionPaymentAttempt.py +35 -0
  276. paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotals.py +36 -0
  277. paddle_billing/Notifications/Entities/Shared/TransactionPayoutTotalsAdjusted.py +29 -0
  278. paddle_billing/Notifications/Entities/Shared/TransactionStatus.py +11 -0
  279. paddle_billing/Notifications/Entities/Shared/TransactionTotals.py +36 -0
  280. paddle_billing/Notifications/Entities/Shared/TransactionTotalsAdjusted.py +28 -0
  281. paddle_billing/Notifications/Entities/Shared/UnitPriceOverride.py +19 -0
  282. paddle_billing/Notifications/Entities/Shared/UnitTotals.py +20 -0
  283. paddle_billing/Notifications/Entities/Shared/__init__.py +46 -0
  284. paddle_billing/Notifications/Entities/Subscription.py +76 -0
  285. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionAdjustmentItem.py +24 -0
  286. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCharge.py +18 -0
  287. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionCredit.py +18 -0
  288. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionDiscount.py +19 -0
  289. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionEffectiveFrom.py +6 -0
  290. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItem.py +35 -0
  291. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionItemStatus.py +7 -0
  292. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionOnPaymentFailure.py +6 -0
  293. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionPrice.py +28 -0
  294. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChange.py +21 -0
  295. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionScheduledChangeAction.py +7 -0
  296. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionStatus.py +10 -0
  297. paddle_billing/Notifications/Entities/Subscriptions/SubscriptionTimePeriod.py +17 -0
  298. paddle_billing/Notifications/Entities/Subscriptions/__init__.py +13 -0
  299. paddle_billing/Notifications/Entities/Transaction.py +75 -0
  300. paddle_billing/Notifications/Entities/Transactions/TransactionAdjustmentsTotals.py +30 -0
  301. paddle_billing/Notifications/Entities/Transactions/TransactionBreakdown.py +18 -0
  302. paddle_billing/Notifications/Entities/Transactions/TransactionCardType.py +14 -0
  303. paddle_billing/Notifications/Entities/Transactions/TransactionDetails.py +32 -0
  304. paddle_billing/Notifications/Entities/Transactions/TransactionItem.py +24 -0
  305. paddle_billing/Notifications/Entities/Transactions/TransactionLineItem.py +35 -0
  306. paddle_billing/Notifications/Entities/Transactions/TransactionProration.py +18 -0
  307. paddle_billing/Notifications/Entities/Transactions/TransactionTimePeriod.py +17 -0
  308. paddle_billing/Notifications/Entities/Transactions/__init__.py +11 -0
  309. paddle_billing/Notifications/Entities/__init__.py +0 -0
  310. paddle_billing/Notifications/Events/AddressCreated.py +17 -0
  311. paddle_billing/Notifications/Events/AddressUpdated.py +17 -0
  312. paddle_billing/Notifications/Events/AdjustmentCreated.py +17 -0
  313. paddle_billing/Notifications/Events/AdjustmentUpdated.py +17 -0
  314. paddle_billing/Notifications/Events/BusinessCreated.py +17 -0
  315. paddle_billing/Notifications/Events/BusinessUpdated.py +17 -0
  316. paddle_billing/Notifications/Events/CustomerCreated.py +17 -0
  317. paddle_billing/Notifications/Events/CustomerUpdated.py +17 -0
  318. paddle_billing/Notifications/Events/DiscountCreated.py +17 -0
  319. paddle_billing/Notifications/Events/DiscountImported.py +17 -0
  320. paddle_billing/Notifications/Events/DiscountUpdated.py +17 -0
  321. paddle_billing/Notifications/Events/PayoutCreated.py +17 -0
  322. paddle_billing/Notifications/Events/PayoutPaid.py +17 -0
  323. paddle_billing/Notifications/Events/PriceCreated.py +17 -0
  324. paddle_billing/Notifications/Events/PriceUpdated.py +17 -0
  325. paddle_billing/Notifications/Events/ProductCreated.py +17 -0
  326. paddle_billing/Notifications/Events/ProductUpdated.py +17 -0
  327. paddle_billing/Notifications/Events/ReportCreated.py +17 -0
  328. paddle_billing/Notifications/Events/ReportUpdated.py +17 -0
  329. paddle_billing/Notifications/Events/SubscriptionActivated.py +17 -0
  330. paddle_billing/Notifications/Events/SubscriptionCanceled.py +17 -0
  331. paddle_billing/Notifications/Events/SubscriptionCreated.py +17 -0
  332. paddle_billing/Notifications/Events/SubscriptionImported.py +17 -0
  333. paddle_billing/Notifications/Events/SubscriptionPastDue.py +17 -0
  334. paddle_billing/Notifications/Events/SubscriptionPaused.py +17 -0
  335. paddle_billing/Notifications/Events/SubscriptionResumed.py +17 -0
  336. paddle_billing/Notifications/Events/SubscriptionTrialing.py +17 -0
  337. paddle_billing/Notifications/Events/SubscriptionUpdated.py +17 -0
  338. paddle_billing/Notifications/Events/TransactionBilled.py +17 -0
  339. paddle_billing/Notifications/Events/TransactionCanceled.py +17 -0
  340. paddle_billing/Notifications/Events/TransactionCompleted.py +16 -0
  341. paddle_billing/Notifications/Events/TransactionCreated.py +17 -0
  342. paddle_billing/Notifications/Events/TransactionPaid.py +17 -0
  343. paddle_billing/Notifications/Events/TransactionPastDue.py +17 -0
  344. paddle_billing/Notifications/Events/TransactionPaymentFailed.py +17 -0
  345. paddle_billing/Notifications/Events/TransactionReady.py +17 -0
  346. paddle_billing/Notifications/Events/TransactionUpdated.py +17 -0
  347. paddle_billing/Notifications/Events/__init__.py +0 -0
  348. paddle_billing/Notifications/PaddleSignature.py +128 -0
  349. paddle_billing/Notifications/Secret.py +8 -0
  350. paddle_billing/Notifications/Verifier.py +55 -0
  351. paddle_billing/Notifications/__init__.py +3 -0
  352. paddle_billing/Options.py +10 -0
  353. paddle_billing/PaddleStrEnum.py +44 -0
  354. paddle_billing/RecursivelyRemoveKey.py +14 -0
  355. paddle_billing/Resources/Addresses/AddressesClient.py +58 -0
  356. paddle_billing/Resources/Addresses/Operations/CreateAddress.py +20 -0
  357. paddle_billing/Resources/Addresses/Operations/ListAddresses.py +42 -0
  358. paddle_billing/Resources/Addresses/Operations/UpdateAddress.py +21 -0
  359. paddle_billing/Resources/Addresses/Operations/__init__.py +3 -0
  360. paddle_billing/Resources/Addresses/__init__.py +0 -0
  361. paddle_billing/Resources/Adjustments/AdjustmentsClient.py +36 -0
  362. paddle_billing/Resources/Adjustments/Operations/Create/AdjustmentItem.py +11 -0
  363. paddle_billing/Resources/Adjustments/Operations/Create/__init__.py +0 -0
  364. paddle_billing/Resources/Adjustments/Operations/CreateAdjustment.py +28 -0
  365. paddle_billing/Resources/Adjustments/Operations/ListAdjustments.py +60 -0
  366. paddle_billing/Resources/Adjustments/Operations/__init__.py +3 -0
  367. paddle_billing/Resources/Adjustments/__init__.py +0 -0
  368. paddle_billing/Resources/Businesses/BusinessesClient.py +58 -0
  369. paddle_billing/Resources/Businesses/Operations/CreateBusiness.py +17 -0
  370. paddle_billing/Resources/Businesses/Operations/ListBusinesses.py +45 -0
  371. paddle_billing/Resources/Businesses/Operations/UpdateBusiness.py +18 -0
  372. paddle_billing/Resources/Businesses/Operations/__init__.py +3 -0
  373. paddle_billing/Resources/Businesses/__init__.py +0 -0
  374. paddle_billing/Resources/Customers/CustomersClient.py +65 -0
  375. paddle_billing/Resources/Customers/Operations/CreateCustomer.py +16 -0
  376. paddle_billing/Resources/Customers/Operations/ListCreditBalances.py +28 -0
  377. paddle_billing/Resources/Customers/Operations/ListCustomers.py +50 -0
  378. paddle_billing/Resources/Customers/Operations/UpdateCustomer.py +17 -0
  379. paddle_billing/Resources/Customers/Operations/__init__.py +4 -0
  380. paddle_billing/Resources/Customers/__init__.py +0 -0
  381. paddle_billing/Resources/Discounts/DiscountsClient.py +55 -0
  382. paddle_billing/Resources/Discounts/Operations/CreateDiscount.py +24 -0
  383. paddle_billing/Resources/Discounts/Operations/ListDiscounts.py +46 -0
  384. paddle_billing/Resources/Discounts/Operations/UpdateDiscount.py +25 -0
  385. paddle_billing/Resources/Discounts/Operations/__init__.py +3 -0
  386. paddle_billing/Resources/Discounts/__init__.py +0 -0
  387. paddle_billing/Resources/EventTypes/EventTypesClient.py +22 -0
  388. paddle_billing/Resources/EventTypes/__init__.py +0 -0
  389. paddle_billing/Resources/Events/EventsClient.py +26 -0
  390. paddle_billing/Resources/Events/Operations/ListEvents.py +12 -0
  391. paddle_billing/Resources/Events/Operations/__init__.py +1 -0
  392. paddle_billing/Resources/Events/__init__.py +0 -0
  393. paddle_billing/Resources/NotificationLogs/NotificationLogsClient.py +26 -0
  394. paddle_billing/Resources/NotificationLogs/Operations/ListNotificationLogs.py +11 -0
  395. paddle_billing/Resources/NotificationLogs/Operations/__init__.py +1 -0
  396. paddle_billing/Resources/NotificationLogs/__init__.py +0 -0
  397. paddle_billing/Resources/NotificationSettings/NotificationSettingsClient.py +54 -0
  398. paddle_billing/Resources/NotificationSettings/Operations/CreateNotificationSetting.py +21 -0
  399. paddle_billing/Resources/NotificationSettings/Operations/UpdateNotificationSetting.py +20 -0
  400. paddle_billing/Resources/NotificationSettings/Operations/__init__.py +2 -0
  401. paddle_billing/Resources/NotificationSettings/__init__.py +0 -0
  402. paddle_billing/Resources/Notifications/NotificationsClient.py +44 -0
  403. paddle_billing/Resources/Notifications/Operations/ListNotifications.py +58 -0
  404. paddle_billing/Resources/Notifications/Operations/__init__.py +1 -0
  405. paddle_billing/Resources/Notifications/__init__.py +0 -0
  406. paddle_billing/Resources/Prices/Operations/CreatePrice.py +23 -0
  407. paddle_billing/Resources/Prices/Operations/List/Includes.py +5 -0
  408. paddle_billing/Resources/Prices/Operations/List/__init__.py +0 -0
  409. paddle_billing/Resources/Prices/Operations/ListPrices.py +62 -0
  410. paddle_billing/Resources/Prices/Operations/UpdatePrice.py +23 -0
  411. paddle_billing/Resources/Prices/Operations/__init__.py +4 -0
  412. paddle_billing/Resources/Prices/PricesClient.py +65 -0
  413. paddle_billing/Resources/Prices/__init__.py +0 -0
  414. paddle_billing/Resources/PricingPreviews/Operations/PreviewPrice.py +20 -0
  415. paddle_billing/Resources/PricingPreviews/Operations/__init__.py +1 -0
  416. paddle_billing/Resources/PricingPreviews/PricingPreviewsClient.py +20 -0
  417. paddle_billing/Resources/PricingPreviews/__init__.py +0 -0
  418. paddle_billing/Resources/Products/Operations/CreateProduct.py +18 -0
  419. paddle_billing/Resources/Products/Operations/List/Includes.py +5 -0
  420. paddle_billing/Resources/Products/Operations/List/__init__.py +0 -0
  421. paddle_billing/Resources/Products/Operations/ListProducts.py +59 -0
  422. paddle_billing/Resources/Products/Operations/UpdateProduct.py +19 -0
  423. paddle_billing/Resources/Products/Operations/__init__.py +4 -0
  424. paddle_billing/Resources/Products/ProductsClient.py +70 -0
  425. paddle_billing/Resources/Products/__init__.py +0 -0
  426. paddle_billing/Resources/Reports/Operations/CreateReport.py +27 -0
  427. paddle_billing/Resources/Reports/Operations/ListReports.py +35 -0
  428. paddle_billing/Resources/Reports/Operations/__init__.py +2 -0
  429. paddle_billing/Resources/Reports/ReportsClient.py +51 -0
  430. paddle_billing/Resources/Reports/__init__.py +0 -0
  431. paddle_billing/Resources/Shared/Operations/List/Comparator.py +8 -0
  432. paddle_billing/Resources/Shared/Operations/List/DateComparison.py +31 -0
  433. paddle_billing/Resources/Shared/Operations/List/OrderBy.py +21 -0
  434. paddle_billing/Resources/Shared/Operations/List/Pager.py +24 -0
  435. paddle_billing/Resources/Shared/Operations/List/__init__.py +0 -0
  436. paddle_billing/Resources/Shared/Operations/__init__.py +4 -0
  437. paddle_billing/Resources/Shared/__init__.py +0 -0
  438. paddle_billing/Resources/Subscriptions/Operations/CancelSubscription.py +12 -0
  439. paddle_billing/Resources/Subscriptions/Operations/CreateOneTimeCharge.py +22 -0
  440. paddle_billing/Resources/Subscriptions/Operations/Get/Includes.py +6 -0
  441. paddle_billing/Resources/Subscriptions/Operations/Get/__init__.py +0 -0
  442. paddle_billing/Resources/Subscriptions/Operations/ListSubscriptions.py +59 -0
  443. paddle_billing/Resources/Subscriptions/Operations/PauseSubscription.py +19 -0
  444. paddle_billing/Resources/Subscriptions/Operations/PreviewOneTimeCharge.py +22 -0
  445. paddle_billing/Resources/Subscriptions/Operations/PreviewUpdateSubscription.py +37 -0
  446. paddle_billing/Resources/Subscriptions/Operations/ResumeSubscription.py +17 -0
  447. paddle_billing/Resources/Subscriptions/Operations/Update/SubscriptionDiscount.py +9 -0
  448. paddle_billing/Resources/Subscriptions/Operations/Update/__init__.py +0 -0
  449. paddle_billing/Resources/Subscriptions/Operations/UpdateSubscription.py +37 -0
  450. paddle_billing/Resources/Subscriptions/Operations/__init__.py +10 -0
  451. paddle_billing/Resources/Subscriptions/SubscriptionsClient.py +121 -0
  452. paddle_billing/Resources/Subscriptions/__init__.py +0 -0
  453. paddle_billing/Resources/Transactions/Operations/CreateTransaction.py +25 -0
  454. paddle_billing/Resources/Transactions/Operations/List/Includes.py +11 -0
  455. paddle_billing/Resources/Transactions/Operations/List/Origin.py +10 -0
  456. paddle_billing/Resources/Transactions/Operations/List/__init__.py +0 -0
  457. paddle_billing/Resources/Transactions/Operations/ListTransactions.py +86 -0
  458. paddle_billing/Resources/Transactions/Operations/PreviewTransaction.py +24 -0
  459. paddle_billing/Resources/Transactions/Operations/UpdateTransaction.py +25 -0
  460. paddle_billing/Resources/Transactions/Operations/__init__.py +6 -0
  461. paddle_billing/Resources/Transactions/TransactionsClient.py +90 -0
  462. paddle_billing/Resources/Transactions/__init__.py +0 -0
  463. paddle_billing/Resources/__init__.py +0 -0
  464. paddle_billing/ResponseParser.py +65 -0
  465. paddle_billing/Undefined.py +2 -0
  466. paddle_billing/__init__.py +4 -0
  467. paddle_python_sdk-0.1.0.dist-info/LICENSE +190 -0
  468. paddle_python_sdk-0.1.0.dist-info/METADATA +184 -0
  469. paddle_python_sdk-0.1.0.dist-info/RECORD +517 -0
  470. paddle_python_sdk-0.1.0.dist-info/WHEEL +5 -0
  471. paddle_python_sdk-0.1.0.dist-info/top_level.txt +3 -0
  472. tests/Functional/Resources/Addresses/__init__.py +0 -0
  473. tests/Functional/Resources/Addresses/test_AddressesClient.py +274 -0
  474. tests/Functional/Resources/Adjustments/__init__.py +0 -0
  475. tests/Functional/Resources/Adjustments/test_AdjustmentsClient.py +188 -0
  476. tests/Functional/Resources/Businesses/__init__.py +0 -0
  477. tests/Functional/Resources/Businesses/test_BusinessesClient.py +279 -0
  478. tests/Functional/Resources/Customers/__init__.py +0 -0
  479. tests/Functional/Resources/Customers/test_CustomersClient.py +291 -0
  480. tests/Functional/Resources/Discounts/__init__.py +0 -0
  481. tests/Functional/Resources/Discounts/test_DiscountsClient.py +280 -0
  482. tests/Functional/Resources/EventTypes/__init__.py +0 -0
  483. tests/Functional/Resources/EventTypes/test_EventTypesClient.py +43 -0
  484. tests/Functional/Resources/Events/__init__.py +0 -0
  485. tests/Functional/Resources/Events/test_EventsClient.py +64 -0
  486. tests/Functional/Resources/NotificationLogs/__init__.py +0 -0
  487. tests/Functional/Resources/NotificationLogs/test_NotificationLogsClient.py +68 -0
  488. tests/Functional/Resources/NotificationSettings/__init__.py +0 -0
  489. tests/Functional/Resources/NotificationSettings/test_NotificationSettingsClient.py +287 -0
  490. tests/Functional/Resources/Notifications/__init__.py +0 -0
  491. tests/Functional/Resources/Notifications/test_NotificationsClient.py +202 -0
  492. tests/Functional/Resources/Prices/__init__.py +0 -0
  493. tests/Functional/Resources/Prices/test_PricesClient.py +307 -0
  494. tests/Functional/Resources/PricingPreviews/__init__.py +0 -0
  495. tests/Functional/Resources/PricingPreviews/test_PricingPreviewsClient.py +92 -0
  496. tests/Functional/Resources/Products/__init__.py +0 -0
  497. tests/Functional/Resources/Products/test_ProductsClient.py +271 -0
  498. tests/Functional/Resources/Reports/__init__.py +0 -0
  499. tests/Functional/Resources/Reports/test_ReportsClient.py +197 -0
  500. tests/Functional/Resources/Subscriptions/__init__.py +0 -0
  501. tests/Functional/Resources/Subscriptions/test_SubscriptionsClient.py +758 -0
  502. tests/Functional/Resources/Transactions/__init__.py +0 -0
  503. tests/Functional/Resources/Transactions/test_TransactionsClient.py +585 -0
  504. tests/Functional/Resources/__init__.py +0 -0
  505. tests/Functional/__init__.py +0 -0
  506. tests/Unit/Logger/__init__.py +0 -0
  507. tests/Unit/Logger/test_Logger.py +10 -0
  508. tests/Unit/Notification/__init__.py +0 -0
  509. tests/Unit/Notification/test_Verifier.py +63 -0
  510. tests/Unit/PaddleStrEnum/__init__.py +0 -0
  511. tests/Unit/PaddleStrEnum/test_PaddleStrEnum.py +52 -0
  512. tests/Unit/__init__.py +0 -0
  513. tests/Utils/FakeResponse.py +6 -0
  514. tests/Utils/ReadsFixture.py +33 -0
  515. tests/Utils/TestClient.py +48 -0
  516. tests/Utils/__init__.py +1 -0
  517. tests/__init__.py +0 -0
@@ -0,0 +1,36 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts
5
+
6
+
7
+ @dataclass
8
+ class TransactionPayoutTotals:
9
+ subtotal: str
10
+ discount: str
11
+ tax: str
12
+ total: str
13
+ credit: str
14
+ balance: str
15
+ grand_total: str
16
+ fee: str | None
17
+ earnings: str | None
18
+ currency_code: CurrencyCodePayouts
19
+ credit_to_balance: str
20
+
21
+
22
+ @staticmethod
23
+ def from_dict(data: dict) -> TransactionPayoutTotals:
24
+ return TransactionPayoutTotals(
25
+ subtotal = data['subtotal'],
26
+ discount = data['discount'],
27
+ tax = data['tax'],
28
+ total = data['total'],
29
+ credit = data['credit'],
30
+ balance = data['balance'],
31
+ grand_total = data['grand_total'],
32
+ fee = data.get('fee'),
33
+ earnings = data.get('earnings'),
34
+ currency_code = CurrencyCodePayouts(data['currency_code']),
35
+ credit_to_balance = data['credit_to_balance'],
36
+ )
@@ -0,0 +1,29 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared.ChargebackFee import ChargebackFee
5
+ from paddle_billing.Notifications.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts
6
+
7
+
8
+ @dataclass
9
+ class TransactionPayoutTotalsAdjusted:
10
+ subtotal: str
11
+ tax: str
12
+ total: str
13
+ fee: str
14
+ chargeback_fee: ChargebackFee
15
+ earnings: str
16
+ currency_code: CurrencyCodePayouts
17
+
18
+
19
+ @staticmethod
20
+ def from_dict(data: dict) -> TransactionPayoutTotalsAdjusted:
21
+ return TransactionPayoutTotalsAdjusted(
22
+ subtotal = data['subtotal'],
23
+ tax = data['tax'],
24
+ total = data['total'],
25
+ fee = data['fee'],
26
+ chargeback_fee = ChargebackFee.from_dict(data['chargeback_fee']),
27
+ earnings = data['earnings'],
28
+ currency_code = CurrencyCodePayouts(data['currency_code']),
29
+ )
@@ -0,0 +1,11 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class TransactionStatus(PaddleStrEnum):
5
+ Draft = 'draft'
6
+ Ready = 'ready'
7
+ Billed = 'billed'
8
+ Paid = 'paid'
9
+ Completed = 'completed'
10
+ Canceled = 'canceled'
11
+ PastDue = 'past_due'
@@ -0,0 +1,36 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode
5
+
6
+
7
+ @dataclass
8
+ class TransactionTotals:
9
+ subtotal: str
10
+ discount: str
11
+ tax: str
12
+ total: str
13
+ credit: str
14
+ balance: str
15
+ grand_total: str | None
16
+ fee: str | None
17
+ earnings: str | None
18
+ currency_code: CurrencyCode
19
+ credit_to_balance: str
20
+
21
+
22
+ @staticmethod
23
+ def from_dict(data: dict) -> TransactionTotals:
24
+ return TransactionTotals(
25
+ subtotal = data['subtotal'],
26
+ discount = data['discount'],
27
+ tax = data['tax'],
28
+ total = data['total'],
29
+ credit = data['credit'],
30
+ balance = data['balance'],
31
+ grand_total = data.get('grand_total'),
32
+ fee = data.get('fee'),
33
+ earnings = data.get('earnings'),
34
+ currency_code = CurrencyCode(data['currency_code']),
35
+ credit_to_balance = data['credit_to_balance'],
36
+ )
@@ -0,0 +1,28 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode
5
+
6
+
7
+ @dataclass
8
+ class TransactionTotalsAdjusted:
9
+ subtotal: str
10
+ tax: str
11
+ total: str
12
+ grand_total: str
13
+ fee: str | None
14
+ earnings: str | None
15
+ currency_code: CurrencyCode
16
+
17
+
18
+ @staticmethod
19
+ def from_dict(data: dict) -> TransactionTotalsAdjusted:
20
+ return TransactionTotalsAdjusted(
21
+ subtotal = data['subtotal'],
22
+ tax = data['tax'],
23
+ total = data['total'],
24
+ grand_total = data['grand_total'],
25
+ fee = data.get('fee'),
26
+ earnings = data.get('earnings'),
27
+ currency_code = CurrencyCode(data['currency_code']),
28
+ )
@@ -0,0 +1,19 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared.CountryCode import CountryCode
5
+ from paddle_billing.Notifications.Entities.Shared.Money import Money
6
+
7
+
8
+ @dataclass
9
+ class UnitPriceOverride:
10
+ country_codes: list[CountryCode]
11
+ unit_price: Money
12
+
13
+
14
+ @staticmethod
15
+ def from_dict(data: dict) -> UnitPriceOverride:
16
+ return UnitPriceOverride(
17
+ country_codes = [CountryCode(code) for code in data['country_codes']],
18
+ unit_price = Money.from_dict(data['unit_price'])
19
+ )
@@ -0,0 +1,20 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+
5
+ @dataclass
6
+ class UnitTotals:
7
+ subtotal: str
8
+ discount: str
9
+ tax: str
10
+ total: str
11
+
12
+
13
+ @staticmethod
14
+ def from_dict(data: dict) -> UnitTotals:
15
+ return UnitTotals(
16
+ subtotal = data['subtotal'],
17
+ discount = data['discount'],
18
+ tax = data['tax'],
19
+ total = data['total'],
20
+ )
@@ -0,0 +1,46 @@
1
+ from paddle_billing.Notifications.Entities.Shared.Action import Action
2
+ from paddle_billing.Notifications.Entities.Shared.AddressPreview import AddressPreview
3
+ from paddle_billing.Notifications.Entities.Shared.AdjustmentItemTotals import AdjustmentItemTotals
4
+ from paddle_billing.Notifications.Entities.Shared.AdjustmentProration import AdjustmentProration
5
+ from paddle_billing.Notifications.Entities.Shared.AdjustmentStatus import AdjustmentStatus
6
+ from paddle_billing.Notifications.Entities.Shared.AdjustmentTimePeriod import AdjustmentTimePeriod
7
+ from paddle_billing.Notifications.Entities.Shared.AdjustmentTotals import AdjustmentTotals
8
+ from paddle_billing.Notifications.Entities.Shared.AdjustmentType import AdjustmentType
9
+ from paddle_billing.Notifications.Entities.Shared.AvailablePaymentMethods import AvailablePaymentMethods
10
+ from paddle_billing.Notifications.Entities.Shared.BillingDetails import BillingDetails
11
+ from paddle_billing.Notifications.Entities.Shared.Card import Card
12
+ from paddle_billing.Notifications.Entities.Shared.CatalogType import CatalogType
13
+ from paddle_billing.Notifications.Entities.Shared.ChargebackFee import ChargebackFee
14
+ from paddle_billing.Notifications.Entities.Shared.Checkout import Checkout
15
+ from paddle_billing.Notifications.Entities.Shared.CollectionMode import CollectionMode
16
+ from paddle_billing.Notifications.Entities.Shared.CountryCode import CountryCode
17
+ from paddle_billing.Notifications.Entities.Shared.CurrencyCode import CurrencyCode
18
+ from paddle_billing.Notifications.Entities.Shared.CurrencyCodeAdjustments import CurrencyCodeAdjustments
19
+ from paddle_billing.Notifications.Entities.Shared.CurrencyCodePayouts import CurrencyCodePayouts
20
+ from paddle_billing.Notifications.Entities.Shared.CustomData import CustomData
21
+ from paddle_billing.Notifications.Entities.Shared.Data import Data
22
+ from paddle_billing.Notifications.Entities.Shared.ErrorCode import ErrorCode
23
+ from paddle_billing.Notifications.Entities.Shared.ImportMeta import ImportMeta
24
+ from paddle_billing.Notifications.Entities.Shared.Interval import Interval
25
+ from paddle_billing.Notifications.Entities.Shared.MethodDetails import MethodDetails
26
+ from paddle_billing.Notifications.Entities.Shared.Money import Money
27
+ from paddle_billing.Notifications.Entities.Shared.Original import Original
28
+ from paddle_billing.Notifications.Entities.Shared.PaymentAttemptStatus import PaymentAttemptStatus
29
+ from paddle_billing.Notifications.Entities.Shared.PaymentMethodType import PaymentMethodType
30
+ from paddle_billing.Notifications.Entities.Shared.PayoutTotalsAdjustment import PayoutTotalsAdjustment
31
+ from paddle_billing.Notifications.Entities.Shared.PriceQuantity import PriceQuantity
32
+ from paddle_billing.Notifications.Entities.Shared.Status import Status
33
+ from paddle_billing.Notifications.Entities.Shared.TransactionStatus import TransactionStatus
34
+ from paddle_billing.Notifications.Entities.Shared.TaxCategory import TaxCategory
35
+ from paddle_billing.Notifications.Entities.Shared.TaxMode import TaxMode
36
+ from paddle_billing.Notifications.Entities.Shared.TaxRatesUsed import TaxRatesUsed
37
+ from paddle_billing.Notifications.Entities.Shared.TimePeriod import TimePeriod
38
+ from paddle_billing.Notifications.Entities.Shared.Totals import Totals
39
+ from paddle_billing.Notifications.Entities.Shared.TransactionOrigin import TransactionOrigin
40
+ from paddle_billing.Notifications.Entities.Shared.TransactionPaymentAttempt import TransactionPaymentAttempt
41
+ from paddle_billing.Notifications.Entities.Shared.TransactionPayoutTotals import TransactionPayoutTotals
42
+ from paddle_billing.Notifications.Entities.Shared.TransactionPayoutTotalsAdjusted import TransactionPayoutTotalsAdjusted
43
+ from paddle_billing.Notifications.Entities.Shared.TransactionTotals import TransactionTotals
44
+ from paddle_billing.Notifications.Entities.Shared.TransactionTotalsAdjusted import TransactionTotalsAdjusted
45
+ from paddle_billing.Notifications.Entities.Shared.UnitPriceOverride import UnitPriceOverride
46
+ from paddle_billing.Notifications.Entities.Shared.UnitTotals import UnitTotals
@@ -0,0 +1,76 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+ from paddle_billing.Notifications.Entities.Entity import Entity
6
+ from paddle_billing.Notifications.Entities.Shared import (
7
+ BillingDetails,
8
+ CollectionMode,
9
+ CurrencyCode,
10
+ CustomData,
11
+ ImportMeta,
12
+ TimePeriod
13
+ )
14
+ from paddle_billing.Notifications.Entities.Subscriptions import (
15
+ SubscriptionDiscount,
16
+ SubscriptionItem,
17
+ SubscriptionScheduledChange,
18
+ SubscriptionStatus,
19
+ SubscriptionTimePeriod,
20
+ )
21
+
22
+
23
+ @dataclass
24
+ class Subscription(Entity):
25
+ address_id: str
26
+ billing_cycle: TimePeriod
27
+ collection_mode: CollectionMode
28
+ created_at: datetime
29
+ currency_code: CurrencyCode
30
+ customer_id: str
31
+ id: str
32
+ items: list[SubscriptionItem]
33
+ status: SubscriptionStatus
34
+ updated_at: datetime
35
+ billing_details: BillingDetails | None = None
36
+ business_id: str | None = None
37
+ canceled_at: datetime | None = None
38
+ current_billing_period: SubscriptionTimePeriod | None = None
39
+ custom_data: CustomData | None = None
40
+ discount: SubscriptionDiscount | None = None
41
+ import_meta: ImportMeta | None = None
42
+ first_billed_at: datetime | None = None
43
+ next_billed_at: datetime | None = None
44
+ paused_at: datetime | None = None
45
+ scheduled_change: SubscriptionScheduledChange | None = None
46
+ started_at: datetime | None = None
47
+ transaction_id: str | None = None # Only provided by subscription.created
48
+
49
+
50
+ @classmethod
51
+ def from_dict(cls, data: dict) -> Subscription:
52
+ return Subscription(
53
+ id = data['id'],
54
+ transaction_id = data.get('transaction_id'),
55
+ status = SubscriptionStatus(data['status']),
56
+ customer_id = data['customer_id'],
57
+ address_id = data['address_id'],
58
+ business_id = data.get('business_id'),
59
+ currency_code = CurrencyCode(data['currency_code']),
60
+ created_at = datetime.fromisoformat(data['created_at']),
61
+ updated_at = datetime.fromisoformat(data['updated_at']),
62
+ collection_mode = CollectionMode(data['collection_mode']),
63
+ billing_cycle = TimePeriod.from_dict(data['billing_cycle']),
64
+ items = [SubscriptionItem.from_dict(item) for item in data['items']],
65
+ billing_details = BillingDetails.from_dict(data['billing_details']) if data.get('billing_details') else None,
66
+ canceled_at = datetime.fromisoformat(data['canceled_at']) if data.get('canceled_at') else None,
67
+ custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
68
+ discount = SubscriptionDiscount.from_dict(data['discount']) if data.get('discount') else None,
69
+ first_billed_at = datetime.fromisoformat(data['first_billed_at']) if data.get('first_billed_at') else None,
70
+ import_meta = ImportMeta.from_dict(data['import_meta']) if data.get('import_meta') else None,
71
+ next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
72
+ paused_at = datetime.fromisoformat(data['paused_at']) if data.get('paused_at') else None,
73
+ started_at = datetime.fromisoformat(data['started_at']) if data.get('started_at') else None,
74
+ current_billing_period = SubscriptionTimePeriod.from_dict(data['current_billing_period']) if data.get('billing_details') else None,
75
+ scheduled_change = SubscriptionScheduledChange.from_dict(data['scheduled_change']) if data.get('scheduled_change') else None,
76
+ )
@@ -0,0 +1,24 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared import AdjustmentItemTotals, AdjustmentProration, AdjustmentType
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionAdjustmentItem:
9
+ item_id: str
10
+ type: AdjustmentType
11
+ amount: str | None
12
+ proration: AdjustmentProration
13
+ totals: AdjustmentItemTotals
14
+
15
+
16
+ @staticmethod
17
+ def from_dict(data: dict) -> SubscriptionAdjustmentItem:
18
+ return SubscriptionAdjustmentItem(
19
+ item_id = data['item_id'],
20
+ type = AdjustmentType(data['type']),
21
+ amount = data.get('amount'),
22
+ proration = AdjustmentProration.from_dict(data['proration']),
23
+ totals = AdjustmentItemTotals.from_dict(data['totals']),
24
+ )
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared import CurrencyCode
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionCharge:
9
+ amount: str
10
+ currency_code: CurrencyCode
11
+
12
+
13
+ @staticmethod
14
+ def from_dict(data: dict) -> SubscriptionCharge:
15
+ return SubscriptionCharge(
16
+ amount = data['amount'],
17
+ currency_code = CurrencyCode(data['currency_code']),
18
+ )
@@ -0,0 +1,18 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared import CurrencyCode
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionCredit:
9
+ amount: str
10
+ currency_code: CurrencyCode
11
+
12
+
13
+ @staticmethod
14
+ def from_dict(data: dict) -> SubscriptionCredit:
15
+ return SubscriptionCredit(
16
+ amount = data['amount'],
17
+ currency_code = CurrencyCode(data['currency_code']),
18
+ )
@@ -0,0 +1,19 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+
6
+ @dataclass
7
+ class SubscriptionDiscount:
8
+ id: str
9
+ starts_at: datetime
10
+ ends_at: datetime
11
+
12
+
13
+ @staticmethod
14
+ def from_dict(data: dict) -> SubscriptionDiscount:
15
+ return SubscriptionDiscount(
16
+ id = data['id'],
17
+ starts_at = datetime.fromisoformat(data['starts_at']),
18
+ ends_at = datetime.fromisoformat(data['ends_at']) if data.get('ends_at') else None,
19
+ )
@@ -0,0 +1,6 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionEffectiveFrom(PaddleStrEnum):
5
+ NextBillingPeriod = 'next_billing_period'
6
+ Immediately = 'immediately'
@@ -0,0 +1,35 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionItemStatus import SubscriptionItemStatus
6
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionPrice import SubscriptionPrice
7
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionTimePeriod import SubscriptionTimePeriod
8
+
9
+
10
+ @dataclass
11
+ class SubscriptionItem:
12
+ status: SubscriptionItemStatus
13
+ quantity: int
14
+ recurring: bool
15
+ created_at: datetime
16
+ updated_at: datetime
17
+ previously_billed_at: datetime | None
18
+ next_billed_at: datetime | None
19
+ trial_dates: SubscriptionTimePeriod | None
20
+ price: SubscriptionPrice
21
+
22
+
23
+ @staticmethod
24
+ def from_dict(data: dict) -> SubscriptionItem:
25
+ return SubscriptionItem(
26
+ status = SubscriptionItemStatus(data['status']),
27
+ quantity = data['quantity'],
28
+ recurring = data['recurring'],
29
+ created_at = datetime.fromisoformat(data['created_at']),
30
+ updated_at = datetime.fromisoformat(data['updated_at']),
31
+ price = SubscriptionPrice.from_dict(data['price']),
32
+ previously_billed_at = datetime.fromisoformat(data['previously_billed_at']) if data.get('previously_billed_at') else None,
33
+ next_billed_at = datetime.fromisoformat(data['next_billed_at']) if data.get('next_billed_at') else None,
34
+ trial_dates = SubscriptionTimePeriod.from_dict(data['trial_dates']) if data.get('trial_dates') else None,
35
+ )
@@ -0,0 +1,7 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionItemStatus(PaddleStrEnum):
5
+ Active = 'active'
6
+ Inactive = 'inactive'
7
+ Trialing = 'trialing'
@@ -0,0 +1,6 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionOnPaymentFailure(PaddleStrEnum):
5
+ PreventChange = 'prevent_change'
6
+ ApplyChange = 'apply_change'
@@ -0,0 +1,28 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+
4
+ from paddle_billing.Notifications.Entities.Shared import Money, TaxMode, TimePeriod
5
+
6
+
7
+ @dataclass
8
+ class SubscriptionPrice:
9
+ id: str
10
+ description: str
11
+ product_id: str
12
+ billing_cycle: TimePeriod | None
13
+ trial_period: TimePeriod | None
14
+ tax_mode: TaxMode
15
+ unit_price: Money
16
+
17
+
18
+ @staticmethod
19
+ def from_dict(data: dict) -> SubscriptionPrice:
20
+ return SubscriptionPrice(
21
+ id = data['id'],
22
+ description = data['description'],
23
+ product_id = data['product_id'],
24
+ tax_mode = TaxMode(data['tax_mode']),
25
+ unit_price = Money.from_dict(data['unit_price']),
26
+ billing_cycle = TimePeriod.from_dict(data['billing_cycle']) if data.get('billing_cycle') else None,
27
+ trial_period = TimePeriod.from_dict(data['trial_period']) if data.get('trial_period') else None,
28
+ )
@@ -0,0 +1,21 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionScheduledChangeAction import SubscriptionScheduledChangeAction
6
+
7
+
8
+ @dataclass
9
+ class SubscriptionScheduledChange:
10
+ action: SubscriptionScheduledChangeAction
11
+ effective_at: datetime
12
+ resume_at: datetime | None
13
+
14
+
15
+ @staticmethod
16
+ def from_dict(data: dict) -> SubscriptionScheduledChange:
17
+ return SubscriptionScheduledChange(
18
+ action = SubscriptionScheduledChangeAction(data['action']),
19
+ effective_at = datetime.fromisoformat(data['effective_at']),
20
+ resume_at = datetime.fromisoformat(data['resume_at']) if data.get('resume_at') else None,
21
+ )
@@ -0,0 +1,7 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionScheduledChangeAction(PaddleStrEnum):
5
+ Cancel = 'cancel'
6
+ Pause = 'pause'
7
+ Resume = 'resume'
@@ -0,0 +1,10 @@
1
+ from paddle_billing.PaddleStrEnum import PaddleStrEnum
2
+
3
+
4
+ class SubscriptionStatus(PaddleStrEnum):
5
+ Active = 'active'
6
+ Canceled = 'canceled'
7
+ PastDue = 'past_due'
8
+ Paused = 'paused'
9
+ Trialing = 'trialing'
10
+ Inactive = 'inactive'
@@ -0,0 +1,17 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+
6
+ @dataclass
7
+ class SubscriptionTimePeriod:
8
+ starts_at: datetime
9
+ ends_at: datetime
10
+
11
+
12
+ @staticmethod
13
+ def from_dict(data: dict) -> SubscriptionTimePeriod:
14
+ return SubscriptionTimePeriod(
15
+ starts_at = datetime.fromisoformat(data['starts_at']),
16
+ ends_at = datetime.fromisoformat(data['ends_at']),
17
+ )
@@ -0,0 +1,13 @@
1
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionAdjustmentItem import SubscriptionAdjustmentItem
2
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionCharge import SubscriptionCharge
3
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionCredit import SubscriptionCredit
4
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionDiscount import SubscriptionDiscount
5
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionEffectiveFrom import SubscriptionEffectiveFrom
6
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionItem import SubscriptionItem
7
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionItemStatus import SubscriptionItemStatus
8
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionOnPaymentFailure import SubscriptionOnPaymentFailure
9
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionPrice import SubscriptionPrice
10
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionScheduledChange import SubscriptionScheduledChange
11
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionScheduledChangeAction import SubscriptionScheduledChangeAction
12
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionStatus import SubscriptionStatus
13
+ from paddle_billing.Notifications.Entities.Subscriptions.SubscriptionTimePeriod import SubscriptionTimePeriod
@@ -0,0 +1,75 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ from datetime import datetime
4
+
5
+ from paddle_billing.Notifications.Entities.Entity import Entity
6
+ from paddle_billing.Notifications.Entities.Shared import (
7
+ BillingDetails,
8
+ Checkout,
9
+ CollectionMode,
10
+ CurrencyCode,
11
+ CustomData,
12
+ TransactionOrigin,
13
+ TransactionPaymentAttempt,
14
+ TransactionStatus,
15
+ )
16
+
17
+ from paddle_billing.Notifications.Entities.Transactions.TransactionDetails import TransactionDetails
18
+ from paddle_billing.Notifications.Entities.Transactions.TransactionItem import TransactionItem
19
+ from paddle_billing.Notifications.Entities.Transactions.TransactionTimePeriod import TransactionTimePeriod
20
+
21
+
22
+ @dataclass
23
+ class Transaction(Entity):
24
+ id: str
25
+ status: TransactionStatus
26
+ customer_id: str | None
27
+ address_id: str | None
28
+ business_id: str | None
29
+ custom_data: CustomData | None
30
+ currency_code: CurrencyCode
31
+ origin: TransactionOrigin
32
+ subscription_id: str | None
33
+ invoice_id: str | None
34
+ invoice_number: str | None
35
+ collection_mode: CollectionMode
36
+ discount_id: str | None
37
+ billing_details: BillingDetails | None
38
+ billing_period: TransactionTimePeriod | None
39
+ items: list[TransactionItem]
40
+ details: TransactionDetails
41
+ payments: list[TransactionPaymentAttempt]
42
+ checkout: Checkout | None
43
+ created_at: datetime
44
+ updated_at: datetime
45
+ billed_at: datetime | None
46
+ receipt_data: str | None = None
47
+
48
+
49
+ @classmethod
50
+ def from_dict(cls, data: dict) -> Transaction:
51
+ return Transaction(
52
+ address_id = data.get('address_id'),
53
+ business_id = data.get('business_id'),
54
+ collection_mode = CollectionMode(data['collection_mode']),
55
+ created_at = datetime.fromisoformat(data['created_at']),
56
+ currency_code = CurrencyCode(data['currency_code']),
57
+ customer_id = data.get('customer_id'),
58
+ details = TransactionDetails.from_dict(data['details']),
59
+ discount_id = data.get('discount_id'),
60
+ id = data['id'],
61
+ invoice_id = data.get('invoice_id'),
62
+ invoice_number = data.get('invoice_number'),
63
+ origin = TransactionOrigin(data['origin']),
64
+ receipt_data = data.get('receipt_data'),
65
+ status = TransactionStatus(data['status']),
66
+ subscription_id = data.get('subscription_id'),
67
+ updated_at = datetime.fromisoformat(data['updated_at']),
68
+ items = [TransactionItem.from_dict(item) for item in data.get('items', [])],
69
+ payments = [TransactionPaymentAttempt.from_dict(item) for item in data.get('payments', [])],
70
+ billed_at = datetime.fromisoformat(data['billed_at']) if data.get('billed_at') else None,
71
+ billing_details = BillingDetails.from_dict(data['billing_details']) if data.get('billing_details') else None,
72
+ billing_period = TransactionTimePeriod.from_dict(data['billing_period']) if data.get('billing_period') else None,
73
+ custom_data = CustomData(data['custom_data']) if data.get('custom_data') else None,
74
+ checkout = Checkout.from_dict(data['checkout']) if data.get('checkout') else None,
75
+ )