pinelabs-python 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 (626) hide show
  1. pinelabs/__init__.py +1679 -0
  2. pinelabs/_default_clients.py +30 -0
  3. pinelabs/affordability_suite/__init__.py +325 -0
  4. pinelabs/affordability_suite/client.py +1007 -0
  5. pinelabs/affordability_suite/raw_client.py +1095 -0
  6. pinelabs/affordability_suite/types/__init__.py +477 -0
  7. pinelabs/affordability_suite/types/downpayment_details_request_issuer.py +26 -0
  8. pinelabs/affordability_suite/types/imei_validation_request_request_type.py +5 -0
  9. pinelabs/affordability_suite/types/offer_discovery_cardless_request_payment_option.py +29 -0
  10. pinelabs/affordability_suite/types/offer_discovery_cardless_request_payment_option_cardless_details.py +31 -0
  11. pinelabs/affordability_suite/types/offer_discovery_request_cart_coupon_discount_amount.py +31 -0
  12. pinelabs/affordability_suite/types/offer_discovery_request_customer_details.py +26 -0
  13. pinelabs/affordability_suite/types/offer_discovery_request_downpayment_details.py +31 -0
  14. pinelabs/affordability_suite/types/offer_discovery_request_downpayment_details_downpayment_amount.py +31 -0
  15. pinelabs/affordability_suite/types/offer_discovery_request_issuer.py +42 -0
  16. pinelabs/affordability_suite/types/offer_discovery_request_issuer_issuer_type.py +10 -0
  17. pinelabs/affordability_suite/types/offer_discovery_request_order_amount.py +31 -0
  18. pinelabs/affordability_suite/types/offer_discovery_request_payment_options.py +37 -0
  19. pinelabs/affordability_suite/types/offer_discovery_request_payment_options_card_details.py +26 -0
  20. pinelabs/affordability_suite/types/offer_discovery_request_payment_options_card_token_details.py +31 -0
  21. pinelabs/affordability_suite/types/offer_discovery_request_product_details_item.py +40 -0
  22. pinelabs/affordability_suite/types/offer_discovery_request_product_details_item_product_amount.py +31 -0
  23. pinelabs/affordability_suite/types/offer_discovery_request_product_details_item_product_coupon_discount_amount.py +31 -0
  24. pinelabs/affordability_suite/types/offer_validation_request_customer_details.py +26 -0
  25. pinelabs/affordability_suite/types/offer_validation_request_offer_data.py +27 -0
  26. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details.py +52 -0
  27. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure.py +146 -0
  28. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_auth_amount.py +20 -0
  29. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_cart_coupon_discount_amount.py +20 -0
  30. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown.py +60 -0
  31. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown_additional_fee_amount.py +20 -0
  32. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown_applicable_fee_amount.py +20 -0
  33. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown_fee_amount.py +20 -0
  34. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown_fee_calculated_on_amount.py +20 -0
  35. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown_maximum_fee_amount.py +20 -0
  36. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown_subvented_fee_amount.py +20 -0
  37. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_convenience_fee_breakdown_tax_amount.py +20 -0
  38. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item.py +119 -0
  39. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_after_downpayment_reduced_product_amount.py +22 -0
  40. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_cart_coupon_discount_product_share.py +20 -0
  41. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount.py +48 -0
  42. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup.py +36 -0
  43. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_brand.py +24 -0
  44. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_brand_amount.py +20 -0
  45. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_dealer.py +24 -0
  46. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_dealer_amount.py +20 -0
  47. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_issuer.py +24 -0
  48. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_issuer_amount.py +20 -0
  49. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_merchant.py +24 -0
  50. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_breakup_merchant_amount.py +20 -0
  51. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_max_amount.py +20 -0
  52. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_discount_min_amount.py +20 -0
  53. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_downpayment_amount.py +20 -0
  54. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_interest_amount.py +20 -0
  55. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_product_amount.py +31 -0
  56. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_product_coupon_discount_amount.py +24 -0
  57. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_product_offer_parameters_item.py +32 -0
  58. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention.py +40 -0
  59. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_amount.py +20 -0
  60. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup.py +36 -0
  61. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_brand.py +24 -0
  62. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_brand_amount.py +20 -0
  63. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_dealer.py +24 -0
  64. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_dealer_amount.py +20 -0
  65. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_issuer.py +24 -0
  66. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_issuer_amount.py +20 -0
  67. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_merchant.py +24 -0
  68. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_breakup_merchant_amount.py +20 -0
  69. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_max_amount.py +20 -0
  70. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_details_item_subvention_min_amount.py +20 -0
  71. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount.py +40 -0
  72. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup.py +34 -0
  73. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_brand.py +22 -0
  74. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_brand_amount.py +20 -0
  75. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_dealer.py +22 -0
  76. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_dealer_amount.py +20 -0
  77. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_issuer.py +22 -0
  78. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_issuer_amount.py +20 -0
  79. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_merchant.py +22 -0
  80. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_breakup_merchant_amount.py +20 -0
  81. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_max_amount.py +20 -0
  82. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_discount_min_amount.py +20 -0
  83. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_downpayment_details.py +28 -0
  84. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_downpayment_details_downpayment_amount.py +20 -0
  85. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_interest_amount.py +20 -0
  86. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_loan_amount.py +20 -0
  87. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_monthly_emi_amount.py +20 -0
  88. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_net_payment_amount.py +20 -0
  89. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_processing_fee_amount.py +20 -0
  90. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_processing_fee_details.py +22 -0
  91. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_processing_fee_details_amount.py +20 -0
  92. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_split_emi_amount.py +20 -0
  93. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_total_coupon_discount.py +20 -0
  94. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_total_discount_amount.py +20 -0
  95. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_total_emi_amount.py +20 -0
  96. pinelabs/affordability_suite/types/offer_validation_request_offer_data_offer_details_tenure_total_subvention_amount.py +20 -0
  97. pinelabs/affordability_suite/types/offer_validation_request_order_amount.py +31 -0
  98. pinelabs/affordability_suite/types/offer_validation_request_payment_amount.py +31 -0
  99. pinelabs/affordability_suite/types/offer_validation_request_payment_option.py +43 -0
  100. pinelabs/affordability_suite/types/offer_validation_request_payment_option_card_details.py +31 -0
  101. pinelabs/affordability_suite/types/offer_validation_request_payment_option_card_token_details.py +46 -0
  102. pinelabs/affordability_suite/types/offer_validation_request_payment_option_cardless_details.py +31 -0
  103. pinelabs/apple_pay/__init__.py +49 -0
  104. pinelabs/apple_pay/client.py +190 -0
  105. pinelabs/apple_pay/raw_client.py +283 -0
  106. pinelabs/apple_pay/types/__init__.py +53 -0
  107. pinelabs/apple_pay/types/authorize_payment_request_decrypted_card_details.py +62 -0
  108. pinelabs/apple_pay/types/authorize_payment_request_decrypted_card_details_card_meta_data.py +37 -0
  109. pinelabs/apple_pay/types/authorize_payment_request_decrypted_card_details_card_meta_data_card_type.py +7 -0
  110. pinelabs/apple_pay/types/authorize_payment_request_decrypted_card_details_card_meta_data_network_name.py +7 -0
  111. pinelabs/authentication/__init__.py +4 -0
  112. pinelabs/authentication/client.py +155 -0
  113. pinelabs/authentication/raw_client.py +226 -0
  114. pinelabs/bnpl/__init__.py +46 -0
  115. pinelabs/bnpl/client.py +200 -0
  116. pinelabs/bnpl/raw_client.py +273 -0
  117. pinelabs/bnpl/types/__init__.py +46 -0
  118. pinelabs/bnpl/types/bnpl_check_eligibility_request_device_info.py +56 -0
  119. pinelabs/bnpl/types/bnpl_check_eligibility_request_device_info_operating_system.py +7 -0
  120. pinelabs/bnpl/types/bnpl_check_eligibility_request_pay_code.py +5 -0
  121. pinelabs/card_payments/__init__.py +4 -0
  122. pinelabs/card_payments/client.py +547 -0
  123. pinelabs/card_payments/raw_client.py +1085 -0
  124. pinelabs/checkout/__init__.py +37 -0
  125. pinelabs/checkout/client.py +225 -0
  126. pinelabs/checkout/raw_client.py +318 -0
  127. pinelabs/checkout/types/__init__.py +40 -0
  128. pinelabs/checkout/types/generate_checkout_link_request_allowed_payment_methods_item.py +7 -0
  129. pinelabs/checkout/types/generate_checkout_link_request_integration_mode.py +5 -0
  130. pinelabs/client.py +612 -0
  131. pinelabs/convenience_fee/__init__.py +4 -0
  132. pinelabs/convenience_fee/client.py +156 -0
  133. pinelabs/convenience_fee/raw_client.py +247 -0
  134. pinelabs/core/__init__.py +127 -0
  135. pinelabs/core/api_error.py +23 -0
  136. pinelabs/core/client_wrapper.py +132 -0
  137. pinelabs/core/datetime_utils.py +70 -0
  138. pinelabs/core/file.py +67 -0
  139. pinelabs/core/force_multipart.py +18 -0
  140. pinelabs/core/http_client.py +840 -0
  141. pinelabs/core/http_response.py +59 -0
  142. pinelabs/core/http_sse/__init__.py +42 -0
  143. pinelabs/core/http_sse/_api.py +112 -0
  144. pinelabs/core/http_sse/_decoders.py +61 -0
  145. pinelabs/core/http_sse/_exceptions.py +7 -0
  146. pinelabs/core/http_sse/_models.py +17 -0
  147. pinelabs/core/jsonable_encoder.py +120 -0
  148. pinelabs/core/logging.py +107 -0
  149. pinelabs/core/parse_error.py +36 -0
  150. pinelabs/core/pydantic_utilities.py +634 -0
  151. pinelabs/core/query_encoder.py +58 -0
  152. pinelabs/core/remove_none_from_dict.py +11 -0
  153. pinelabs/core/request_options.py +35 -0
  154. pinelabs/core/serialization.py +276 -0
  155. pinelabs/customers/__init__.py +34 -0
  156. pinelabs/customers/client.py +590 -0
  157. pinelabs/customers/raw_client.py +1061 -0
  158. pinelabs/customers/types/__init__.py +34 -0
  159. pinelabs/customers/types/update_customer_request_status.py +5 -0
  160. pinelabs/e_challans/__init__.py +55 -0
  161. pinelabs/e_challans/client.py +323 -0
  162. pinelabs/e_challans/raw_client.py +386 -0
  163. pinelabs/e_challans/types/__init__.py +63 -0
  164. pinelabs/e_challans/types/create_challan_request_convenience_fee_breakdown.py +67 -0
  165. pinelabs/e_challans/types/create_challan_request_convenience_fee_breakdown_additional_fee_amount.py +32 -0
  166. pinelabs/e_challans/types/create_challan_request_convenience_fee_breakdown_applicable_fee_amount.py +32 -0
  167. pinelabs/e_challans/types/create_challan_request_convenience_fee_breakdown_fee_amount.py +32 -0
  168. pinelabs/e_challans/types/create_challan_request_convenience_fee_breakdown_maximum_fee_amount.py +32 -0
  169. pinelabs/e_challans/types/create_challan_request_convenience_fee_breakdown_tax_amount.py +32 -0
  170. pinelabs/environment.py +7 -0
  171. pinelabs/errors/__init__.py +62 -0
  172. pinelabs/errors/bad_request_error.py +10 -0
  173. pinelabs/errors/conflict_error.py +11 -0
  174. pinelabs/errors/forbidden_error.py +11 -0
  175. pinelabs/errors/internal_server_error.py +11 -0
  176. pinelabs/errors/method_not_allowed_error.py +11 -0
  177. pinelabs/errors/not_found_error.py +11 -0
  178. pinelabs/errors/service_unavailable_error.py +11 -0
  179. pinelabs/errors/unauthorized_error.py +11 -0
  180. pinelabs/errors/unprocessable_entity_error.py +10 -0
  181. pinelabs/international_payments/__init__.py +4 -0
  182. pinelabs/international_payments/client.py +187 -0
  183. pinelabs/international_payments/raw_client.py +201 -0
  184. pinelabs/orders/__init__.py +37 -0
  185. pinelabs/orders/client.py +613 -0
  186. pinelabs/orders/raw_client.py +1132 -0
  187. pinelabs/orders/types/__init__.py +38 -0
  188. pinelabs/orders/types/create_order_request_allowed_payment_methods_item.py +8 -0
  189. pinelabs/orders/types/create_order_request_purchase_details.py +28 -0
  190. pinelabs/pay_by_points/__init__.py +49 -0
  191. pinelabs/pay_by_points/client.py +177 -0
  192. pinelabs/pay_by_points/raw_client.py +246 -0
  193. pinelabs/pay_by_points/types/__init__.py +49 -0
  194. pinelabs/pay_by_points/types/check_point_balance_request_order_details.py +27 -0
  195. pinelabs/pay_by_points/types/check_point_balance_request_order_details_order_amount.py +31 -0
  196. pinelabs/pay_by_points/types/check_point_balance_request_payment_option.py +26 -0
  197. pinelabs/pay_by_points/types/check_point_balance_request_payment_option_points_card_details.py +32 -0
  198. pinelabs/payment_links/__init__.py +34 -0
  199. pinelabs/payment_links/client.py +642 -0
  200. pinelabs/payment_links/raw_client.py +797 -0
  201. pinelabs/payment_links/types/__init__.py +38 -0
  202. pinelabs/payment_links/types/create_payment_link_request_allowed_payment_methods_item.py +7 -0
  203. pinelabs/payouts/__init__.py +38 -0
  204. pinelabs/payouts/client.py +810 -0
  205. pinelabs/payouts/raw_client.py +1427 -0
  206. pinelabs/payouts/types/__init__.py +40 -0
  207. pinelabs/payouts/types/create_payout_request_mode.py +5 -0
  208. pinelabs/payouts/types/list_payouts_request_mode.py +5 -0
  209. pinelabs/payouts/types/list_payouts_request_status.py +7 -0
  210. pinelabs/refunds/__init__.py +52 -0
  211. pinelabs/refunds/client.py +211 -0
  212. pinelabs/refunds/raw_client.py +324 -0
  213. pinelabs/refunds/types/__init__.py +52 -0
  214. pinelabs/refunds/types/create_refund_request_order_amount.py +31 -0
  215. pinelabs/refunds/types/create_refund_request_products_item.py +27 -0
  216. pinelabs/refunds/types/create_refund_request_split_info.py +29 -0
  217. pinelabs/refunds/types/create_refund_request_split_info_split_details_item.py +32 -0
  218. pinelabs/refunds/types/create_refund_request_split_info_split_details_item_amount.py +20 -0
  219. pinelabs/settlements/__init__.py +4 -0
  220. pinelabs/settlements/client.py +283 -0
  221. pinelabs/settlements/raw_client.py +421 -0
  222. pinelabs/split_settlements/__init__.py +34 -0
  223. pinelabs/split_settlements/client.py +254 -0
  224. pinelabs/split_settlements/raw_client.py +414 -0
  225. pinelabs/split_settlements/types/__init__.py +36 -0
  226. pinelabs/split_settlements/types/release_settlement_request_release_amount.py +31 -0
  227. pinelabs/subscriptions_plans/__init__.py +37 -0
  228. pinelabs/subscriptions_plans/client.py +872 -0
  229. pinelabs/subscriptions_plans/raw_client.py +1111 -0
  230. pinelabs/subscriptions_plans/types/__init__.py +38 -0
  231. pinelabs/subscriptions_plans/types/create_plan_request_frequency.py +10 -0
  232. pinelabs/subscriptions_plans/types/list_plans_request_amount_range.py +5 -0
  233. pinelabs/subscriptions_presentations/__init__.py +4 -0
  234. pinelabs/subscriptions_presentations/client.py +886 -0
  235. pinelabs/subscriptions_presentations/raw_client.py +1168 -0
  236. pinelabs/subscriptions_subscriptions/__init__.py +46 -0
  237. pinelabs/subscriptions_subscriptions/client.py +1014 -0
  238. pinelabs/subscriptions_subscriptions/raw_client.py +1281 -0
  239. pinelabs/subscriptions_subscriptions/types/__init__.py +46 -0
  240. pinelabs/subscriptions_subscriptions/types/create_subscription_request_allowed_payment_methods_item.py +7 -0
  241. pinelabs/subscriptions_subscriptions/types/create_subscription_request_integration_mode.py +5 -0
  242. pinelabs/subscriptions_subscriptions/types/list_subscriptions_request_amount_range.py +5 -0
  243. pinelabs/tokenization/__init__.py +37 -0
  244. pinelabs/tokenization/client.py +809 -0
  245. pinelabs/tokenization/raw_client.py +1643 -0
  246. pinelabs/tokenization/types/__init__.py +38 -0
  247. pinelabs/tokenization/types/generate_card_token_request_payment_method.py +5 -0
  248. pinelabs/tokenization/types/get_service_provider_token_response.py +8 -0
  249. pinelabs/types/__init__.py +1320 -0
  250. pinelabs/types/acquirer_data.py +41 -0
  251. pinelabs/types/address.py +72 -0
  252. pinelabs/types/address_address_category.py +5 -0
  253. pinelabs/types/amount.py +31 -0
  254. pinelabs/types/authorize_payment_response.py +24 -0
  255. pinelabs/types/authorize_payment_response_data.py +45 -0
  256. pinelabs/types/authorize_payment_response_data_integration_mode.py +5 -0
  257. pinelabs/types/authorize_payment_response_data_order_amount.py +20 -0
  258. pinelabs/types/authorize_payment_response_data_payments_item.py +41 -0
  259. pinelabs/types/authorize_payment_response_data_payments_item_acquirer_data.py +23 -0
  260. pinelabs/types/authorize_payment_response_data_payments_item_payment_amount.py +20 -0
  261. pinelabs/types/authorize_payment_response_data_payments_item_payment_method.py +7 -0
  262. pinelabs/types/authorize_payment_response_data_payments_item_payment_option.py +22 -0
  263. pinelabs/types/authorize_payment_response_data_payments_item_payment_option_wallet_data.py +25 -0
  264. pinelabs/types/authorize_payment_response_data_payments_item_payment_option_wallet_data_wallet_card_data.py +38 -0
  265. pinelabs/types/authorize_payment_response_data_payments_item_payment_option_wallet_data_wallet_card_data_card_type.py +7 -0
  266. pinelabs/types/authorize_payment_response_data_payments_item_payment_option_wallet_data_wallet_card_data_token_txn_type.py +7 -0
  267. pinelabs/types/authorize_payment_response_data_payments_item_status.py +7 -0
  268. pinelabs/types/authorize_payment_response_data_purchase_details.py +24 -0
  269. pinelabs/types/authorize_payment_response_data_purchase_details_customer.py +27 -0
  270. pinelabs/types/authorize_payment_response_data_status.py +18 -0
  271. pinelabs/types/authorize_payment_response_data_type.py +5 -0
  272. pinelabs/types/bank_account.py +36 -0
  273. pinelabs/types/bnpl_check_eligibility_response.py +32 -0
  274. pinelabs/types/bnpl_check_eligibility_response_metadata.py +36 -0
  275. pinelabs/types/bnpl_check_eligibility_response_metadata_installments_item.py +33 -0
  276. pinelabs/types/bnpl_resend_otp_response.py +37 -0
  277. pinelabs/types/bnpl_resend_otp_response_meta_data.py +26 -0
  278. pinelabs/types/bnpl_submit_otp_response.py +26 -0
  279. pinelabs/types/calculate_convenience_fee_response.py +27 -0
  280. pinelabs/types/calculate_convenience_fee_response_data_item.py +50 -0
  281. pinelabs/types/calculate_convenience_fee_response_data_item_convenience_fee_breakdown.py +28 -0
  282. pinelabs/types/calculate_convenience_fee_response_data_item_payment_method_metadata.py +31 -0
  283. pinelabs/types/capture_data_item.py +34 -0
  284. pinelabs/types/card_data.py +76 -0
  285. pinelabs/types/card_data_card_category.py +22 -0
  286. pinelabs/types/card_data_card_type.py +21 -0
  287. pinelabs/types/card_data_token_txn_type.py +5 -0
  288. pinelabs/types/card_detail_lookup_item.py +35 -0
  289. pinelabs/types/card_detail_lookup_item_payment_reference_type.py +7 -0
  290. pinelabs/types/card_payment_detail_item.py +66 -0
  291. pinelabs/types/card_token_response.py +49 -0
  292. pinelabs/types/cart_details.py +27 -0
  293. pinelabs/types/cart_item.py +66 -0
  294. pinelabs/types/challan_response.py +77 -0
  295. pinelabs/types/check_point_balance_response.py +43 -0
  296. pinelabs/types/check_point_balance_response_balance.py +28 -0
  297. pinelabs/types/check_point_balance_response_redeemable_amount.py +28 -0
  298. pinelabs/types/checkout_customer.py +55 -0
  299. pinelabs/types/checkout_product.py +29 -0
  300. pinelabs/types/checkout_purchase_details.py +29 -0
  301. pinelabs/types/create_bulk_payout_response.py +48 -0
  302. pinelabs/types/create_bulk_payout_response_status.py +7 -0
  303. pinelabs/types/create_debit_response.py +56 -0
  304. pinelabs/types/create_debit_response_status.py +7 -0
  305. pinelabs/types/create_payout_response.py +100 -0
  306. pinelabs/types/create_payout_response_mode.py +5 -0
  307. pinelabs/types/create_payout_response_status.py +7 -0
  308. pinelabs/types/create_presentation_response.py +58 -0
  309. pinelabs/types/create_presentation_response_status.py +10 -0
  310. pinelabs/types/create_subscription_response.py +146 -0
  311. pinelabs/types/create_subscription_response_allowed_payment_methods_item.py +7 -0
  312. pinelabs/types/create_subscription_response_integration_mode.py +5 -0
  313. pinelabs/types/create_subscription_response_payment_mode.py +5 -0
  314. pinelabs/types/create_subscription_response_status.py +23 -0
  315. pinelabs/types/cryptogram_response.py +39 -0
  316. pinelabs/types/currency_conversion_response.py +56 -0
  317. pinelabs/types/customer_details.py +59 -0
  318. pinelabs/types/customer_response.py +83 -0
  319. pinelabs/types/customer_response_status.py +5 -0
  320. pinelabs/types/customer_token_detail.py +74 -0
  321. pinelabs/types/customer_token_detail_payment_method.py +5 -0
  322. pinelabs/types/customer_tokens_response.py +48 -0
  323. pinelabs/types/delete_customer_token_response.py +41 -0
  324. pinelabs/types/delete_token_by_token_id_response.py +31 -0
  325. pinelabs/types/downpayment_details_response.py +27 -0
  326. pinelabs/types/downpayment_details_response_downpayment_details.py +47 -0
  327. pinelabs/types/downpayment_details_response_downpayment_details_allowed_payment_methods_item.py +7 -0
  328. pinelabs/types/downpayment_details_response_downpayment_details_amount_range.py +25 -0
  329. pinelabs/types/error_response.py +41 -0
  330. pinelabs/types/error_response_additional_error_details.py +36 -0
  331. pinelabs/types/generate_checkout_link_response.py +46 -0
  332. pinelabs/types/generate_token_response.py +32 -0
  333. pinelabs/types/get_account_balance_response.py +36 -0
  334. pinelabs/types/get_card_details_response.py +27 -0
  335. pinelabs/types/get_payouts_payment_item.py +98 -0
  336. pinelabs/types/get_payouts_payment_item_mode.py +5 -0
  337. pinelabs/types/get_payouts_payment_item_status.py +7 -0
  338. pinelabs/types/get_payouts_response.py +51 -0
  339. pinelabs/types/imei_product.py +41 -0
  340. pinelabs/types/imei_validation_response.py +37 -0
  341. pinelabs/types/imei_validation_response_products_item.py +57 -0
  342. pinelabs/types/imei_validation_response_products_item_product_brand_response.py +31 -0
  343. pinelabs/types/imei_validation_response_products_item_product_imei_status.py +5 -0
  344. pinelabs/types/issuer_offer.py +59 -0
  345. pinelabs/types/issuer_offer_issuer_data.py +79 -0
  346. pinelabs/types/issuer_offer_issuer_data_auth_type.py +5 -0
  347. pinelabs/types/issuer_offer_issuer_data_penny_transaction_amount.py +20 -0
  348. pinelabs/types/issuer_offer_issuer_type.py +10 -0
  349. pinelabs/types/list_plans_response.py +31 -0
  350. pinelabs/types/list_presentations_response.py +31 -0
  351. pinelabs/types/list_settlements_response.py +42 -0
  352. pinelabs/types/list_subscriptions_response.py +31 -0
  353. pinelabs/types/merchant_metadata.py +8 -0
  354. pinelabs/types/net_banking_data_response.py +32 -0
  355. pinelabs/types/net_banking_data_response_txn_mode.py +5 -0
  356. pinelabs/types/offer_discovery_error_response.py +34 -0
  357. pinelabs/types/offer_discovery_error_response_additional_error_details.py +22 -0
  358. pinelabs/types/offer_discovery_response.py +27 -0
  359. pinelabs/types/offer_validation_error_response.py +22 -0
  360. pinelabs/types/offer_validation_error_response_additional_error_details.py +22 -0
  361. pinelabs/types/offer_validation_response.py +24 -0
  362. pinelabs/types/order_response.py +24 -0
  363. pinelabs/types/order_response_data.py +127 -0
  364. pinelabs/types/order_response_data_integration_mode.py +5 -0
  365. pinelabs/types/order_response_data_purchase_details.py +26 -0
  366. pinelabs/types/order_response_data_status.py +18 -0
  367. pinelabs/types/order_response_data_type.py +5 -0
  368. pinelabs/types/otp_generate_response.py +33 -0
  369. pinelabs/types/otp_generate_response_meta_data.py +26 -0
  370. pinelabs/types/otp_generate_response_next_item.py +5 -0
  371. pinelabs/types/page_info.py +41 -0
  372. pinelabs/types/pagination_links.py +34 -0
  373. pinelabs/types/pagination_links_first.py +22 -0
  374. pinelabs/types/pagination_links_last.py +22 -0
  375. pinelabs/types/pagination_links_next.py +22 -0
  376. pinelabs/types/pagination_links_self.py +22 -0
  377. pinelabs/types/pagination_meta.py +41 -0
  378. pinelabs/types/payment_item.py +87 -0
  379. pinelabs/types/payment_item_error_detail.py +31 -0
  380. pinelabs/types/payment_item_payment_method.py +8 -0
  381. pinelabs/types/payment_item_payment_option.py +28 -0
  382. pinelabs/types/payment_item_status.py +7 -0
  383. pinelabs/types/payment_link_account_details.py +24 -0
  384. pinelabs/types/payment_link_address.py +56 -0
  385. pinelabs/types/payment_link_bank_details.py +36 -0
  386. pinelabs/types/payment_link_cart_details.py +27 -0
  387. pinelabs/types/payment_link_cart_item.py +29 -0
  388. pinelabs/types/payment_link_customer.py +64 -0
  389. pinelabs/types/payment_link_product_detail.py +30 -0
  390. pinelabs/types/payment_link_response.py +113 -0
  391. pinelabs/types/payment_link_response_allowed_payment_methods_item.py +7 -0
  392. pinelabs/types/payment_link_response_status.py +8 -0
  393. pinelabs/types/payment_link_split_detail.py +57 -0
  394. pinelabs/types/payment_link_split_detail_status.py +5 -0
  395. pinelabs/types/payment_link_split_info.py +32 -0
  396. pinelabs/types/payment_object.py +51 -0
  397. pinelabs/types/payment_object_acquirer_data.py +23 -0
  398. pinelabs/types/payment_object_payment_amount.py +20 -0
  399. pinelabs/types/payment_object_payment_method.py +5 -0
  400. pinelabs/types/payment_object_status.py +7 -0
  401. pinelabs/types/payment_request_item.py +54 -0
  402. pinelabs/types/payment_request_item_device_info.py +53 -0
  403. pinelabs/types/payment_request_item_device_info_operating_system.py +7 -0
  404. pinelabs/types/payment_request_item_offer_data.py +27 -0
  405. pinelabs/types/payment_request_item_offer_data_offer_details.py +52 -0
  406. pinelabs/types/payment_request_item_offer_data_offer_details_tenure.py +136 -0
  407. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_auth_amount.py +20 -0
  408. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_cart_coupon_discount_amount.py +20 -0
  409. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown.py +56 -0
  410. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown_additional_fee_amount.py +20 -0
  411. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown_applicable_fee_amount.py +20 -0
  412. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown_fee_amount.py +20 -0
  413. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown_fee_calculated_on_amount.py +20 -0
  414. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown_maximum_fee_amount.py +20 -0
  415. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown_subvented_fee_amount.py +20 -0
  416. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_convenience_fee_breakdown_tax_amount.py +20 -0
  417. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item.py +73 -0
  418. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_after_downpayment_reduced_product_amount.py +20 -0
  419. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_cart_coupon_discount_product_share.py +20 -0
  420. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount.py +36 -0
  421. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup.py +34 -0
  422. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_brand.py +22 -0
  423. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_brand_amount.py +20 -0
  424. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_dealer.py +22 -0
  425. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_dealer_amount.py +20 -0
  426. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_issuer.py +22 -0
  427. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_issuer_amount.py +20 -0
  428. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_merchant.py +24 -0
  429. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_breakup_merchant_amount.py +20 -0
  430. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_max_amount.py +20 -0
  431. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_discount_min_amount.py +20 -0
  432. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_downpayment_amount.py +20 -0
  433. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_interest_amount.py +20 -0
  434. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_product_amount.py +20 -0
  435. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_product_coupon_discount_amount.py +20 -0
  436. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_product_offer_parameters_item.py +21 -0
  437. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention.py +36 -0
  438. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_amount.py +20 -0
  439. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup.py +34 -0
  440. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_brand.py +22 -0
  441. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_brand_amount.py +20 -0
  442. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_dealer.py +24 -0
  443. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_dealer_amount.py +20 -0
  444. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_issuer.py +24 -0
  445. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_issuer_amount.py +20 -0
  446. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_merchant.py +24 -0
  447. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_breakup_merchant_amount.py +20 -0
  448. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_max_amount.py +20 -0
  449. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_details_item_subvention_min_amount.py +20 -0
  450. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_downpayment_details.py +28 -0
  451. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_downpayment_details_downpayment_amount.py +20 -0
  452. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_intrest_amount.py +20 -0
  453. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_loan_amount.py +20 -0
  454. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_monthly_emi_amount.py +20 -0
  455. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_net_payment_amount.py +20 -0
  456. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_processing_fee_details.py +22 -0
  457. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_processing_fee_details_amount.py +20 -0
  458. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_split_emi_amount.py +20 -0
  459. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_total_coupon_discount.py +20 -0
  460. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_total_discount_amount.py +20 -0
  461. pinelabs/types/payment_request_item_offer_data_offer_details_tenure_total_emi_amount.py +20 -0
  462. pinelabs/types/payment_request_item_payment_method.py +8 -0
  463. pinelabs/types/payment_request_item_payment_option.py +53 -0
  464. pinelabs/types/payment_request_item_payment_option_bnpl_details.py +34 -0
  465. pinelabs/types/payment_request_item_payment_option_bnpl_details_bnpl_pay_code.py +5 -0
  466. pinelabs/types/payment_request_item_payment_option_card_details.py +51 -0
  467. pinelabs/types/payment_request_item_payment_option_card_token_details.py +61 -0
  468. pinelabs/types/payment_request_item_payment_option_cardless_details.py +31 -0
  469. pinelabs/types/payment_request_item_payment_option_points_card_details.py +36 -0
  470. pinelabs/types/payout_amount.py +31 -0
  471. pinelabs/types/payout_detail.py +117 -0
  472. pinelabs/types/payout_detail_mode.py +5 -0
  473. pinelabs/types/payout_detail_status.py +7 -0
  474. pinelabs/types/payout_link.py +31 -0
  475. pinelabs/types/plan_response.py +96 -0
  476. pinelabs/types/plan_response_frequency.py +10 -0
  477. pinelabs/types/plan_response_status.py +5 -0
  478. pinelabs/types/presentation_detail.py +82 -0
  479. pinelabs/types/presentation_detail_pdn_status.py +7 -0
  480. pinelabs/types/presentation_detail_status.py +18 -0
  481. pinelabs/types/product_detail.py +38 -0
  482. pinelabs/types/refund_response.py +24 -0
  483. pinelabs/types/refund_response_data.py +77 -0
  484. pinelabs/types/refund_response_data_integration_mode.py +5 -0
  485. pinelabs/types/refund_response_data_order_amount.py +20 -0
  486. pinelabs/types/refund_response_data_purchase_details.py +24 -0
  487. pinelabs/types/refund_response_data_purchase_details_customer.py +31 -0
  488. pinelabs/types/refund_response_data_purchase_details_split_info.py +21 -0
  489. pinelabs/types/refund_response_data_status.py +5 -0
  490. pinelabs/types/refund_response_data_type.py +5 -0
  491. pinelabs/types/resend_otp_error_response.py +36 -0
  492. pinelabs/types/service_provider_token_response.py +62 -0
  493. pinelabs/types/service_provider_token_response_payment_method.py +5 -0
  494. pinelabs/types/service_provider_tokens_list_response.py +32 -0
  495. pinelabs/types/settlement_by_utr_response.py +146 -0
  496. pinelabs/types/settlement_by_utr_response_pagination.py +27 -0
  497. pinelabs/types/settlement_summary.py +76 -0
  498. pinelabs/types/settlement_transaction.py +96 -0
  499. pinelabs/types/simple_amount.py +31 -0
  500. pinelabs/types/split_detail.py +55 -0
  501. pinelabs/types/split_detail_refund.py +51 -0
  502. pinelabs/types/split_detail_refund_amount.py +20 -0
  503. pinelabs/types/split_detail_refund_status.py +5 -0
  504. pinelabs/types/split_detail_status.py +5 -0
  505. pinelabs/types/split_info.py +32 -0
  506. pinelabs/types/split_payment_object.py +49 -0
  507. pinelabs/types/split_payment_object_acquirer_data.py +22 -0
  508. pinelabs/types/split_payment_object_additional_detail.py +26 -0
  509. pinelabs/types/split_payment_object_capture_data_item.py +23 -0
  510. pinelabs/types/split_payment_object_capture_data_item_capture_amount.py +20 -0
  511. pinelabs/types/split_payment_object_payment_amount.py +20 -0
  512. pinelabs/types/split_payment_object_payment_method.py +7 -0
  513. pinelabs/types/split_payment_object_payment_option.py +20 -0
  514. pinelabs/types/split_payment_object_payment_option_card_data.py +40 -0
  515. pinelabs/types/split_payment_object_payment_option_card_data_card_type.py +5 -0
  516. pinelabs/types/split_payment_object_payment_option_card_data_token_txn_type.py +7 -0
  517. pinelabs/types/split_payment_object_status.py +7 -0
  518. pinelabs/types/split_settlement_detail.py +52 -0
  519. pinelabs/types/split_settlement_detail_amount.py +20 -0
  520. pinelabs/types/split_settlement_detail_release_amount.py +24 -0
  521. pinelabs/types/split_settlement_detail_status.py +5 -0
  522. pinelabs/types/split_settlement_response.py +24 -0
  523. pinelabs/types/split_settlement_response_data.py +43 -0
  524. pinelabs/types/split_settlement_response_data_allowed_payment_methods_item.py +7 -0
  525. pinelabs/types/split_settlement_response_data_integration_mode.py +5 -0
  526. pinelabs/types/split_settlement_response_data_order_amount.py +20 -0
  527. pinelabs/types/split_settlement_response_data_purchase_details.py +26 -0
  528. pinelabs/types/split_settlement_response_data_purchase_details_customer.py +28 -0
  529. pinelabs/types/split_settlement_response_data_purchase_details_split_info.py +21 -0
  530. pinelabs/types/split_settlement_response_data_status.py +18 -0
  531. pinelabs/types/split_settlement_response_data_type.py +5 -0
  532. pinelabs/types/submit_otp_error_response.py +42 -0
  533. pinelabs/types/submit_otp_error_response_meta_data.py +26 -0
  534. pinelabs/types/subscription_amount.py +31 -0
  535. pinelabs/types/subscription_detail.py +115 -0
  536. pinelabs/types/subscription_detail_allowed_payment_methods_item.py +7 -0
  537. pinelabs/types/subscription_detail_integration_mode.py +5 -0
  538. pinelabs/types/subscription_detail_payment_mode.py +5 -0
  539. pinelabs/types/subscription_detail_status.py +23 -0
  540. pinelabs/types/subscription_notification_response.py +56 -0
  541. pinelabs/types/subscription_notification_response_pdn_status.py +7 -0
  542. pinelabs/types/subscription_notification_response_status.py +10 -0
  543. pinelabs/types/tenure.py +127 -0
  544. pinelabs/types/tenure_auth_amount.py +20 -0
  545. pinelabs/types/tenure_cart_coupon_discount_amount.py +20 -0
  546. pinelabs/types/tenure_convenience_fee_breakdown.py +38 -0
  547. pinelabs/types/tenure_convenience_fee_breakdown_additional_fee_amount.py +20 -0
  548. pinelabs/types/tenure_convenience_fee_breakdown_applicable_fee_amount.py +20 -0
  549. pinelabs/types/tenure_convenience_fee_breakdown_fee_amount.py +20 -0
  550. pinelabs/types/tenure_convenience_fee_breakdown_fee_calculated_on_amount.py +20 -0
  551. pinelabs/types/tenure_convenience_fee_breakdown_maximum_fee_amount.py +20 -0
  552. pinelabs/types/tenure_convenience_fee_breakdown_subvented_fee_amount.py +20 -0
  553. pinelabs/types/tenure_convenience_fee_breakdown_tax_amount.py +20 -0
  554. pinelabs/types/tenure_details_item.py +49 -0
  555. pinelabs/types/tenure_details_item_after_downpayment_reduced_product_amount.py +20 -0
  556. pinelabs/types/tenure_details_item_cart_coupon_discount_product_share.py +20 -0
  557. pinelabs/types/tenure_details_item_discount.py +33 -0
  558. pinelabs/types/tenure_details_item_discount_amount.py +20 -0
  559. pinelabs/types/tenure_details_item_discount_breakup.py +22 -0
  560. pinelabs/types/tenure_details_item_discount_breakup_brand.py +20 -0
  561. pinelabs/types/tenure_details_item_discount_breakup_brand_amount.py +20 -0
  562. pinelabs/types/tenure_details_item_discount_breakup_merchant.py +20 -0
  563. pinelabs/types/tenure_details_item_discount_breakup_merchant_amount.py +20 -0
  564. pinelabs/types/tenure_details_item_discount_discount_deferred_duration_type.py +5 -0
  565. pinelabs/types/tenure_details_item_discount_discount_type.py +5 -0
  566. pinelabs/types/tenure_details_item_discount_max_amount.py +20 -0
  567. pinelabs/types/tenure_details_item_downpayment_amount.py +20 -0
  568. pinelabs/types/tenure_details_item_interest_amount.py +20 -0
  569. pinelabs/types/tenure_details_item_product_amount.py +20 -0
  570. pinelabs/types/tenure_details_item_product_coupon_discount_amount.py +20 -0
  571. pinelabs/types/tenure_details_item_product_offer_parameters_item.py +21 -0
  572. pinelabs/types/tenure_details_item_subvention.py +31 -0
  573. pinelabs/types/tenure_details_item_subvention_amount.py +20 -0
  574. pinelabs/types/tenure_details_item_subvention_breakup.py +20 -0
  575. pinelabs/types/tenure_details_item_subvention_breakup_brand.py +20 -0
  576. pinelabs/types/tenure_details_item_subvention_breakup_brand_amount.py +20 -0
  577. pinelabs/types/tenure_details_item_subvention_max_amount.py +20 -0
  578. pinelabs/types/tenure_details_item_subvention_min_amount.py +20 -0
  579. pinelabs/types/tenure_details_item_subvention_offer_type.py +5 -0
  580. pinelabs/types/tenure_details_item_subvention_subvention_type.py +5 -0
  581. pinelabs/types/tenure_discount.py +35 -0
  582. pinelabs/types/tenure_discount_amount.py +20 -0
  583. pinelabs/types/tenure_discount_breakup.py +26 -0
  584. pinelabs/types/tenure_discount_breakup_brand.py +20 -0
  585. pinelabs/types/tenure_discount_breakup_brand_amount.py +20 -0
  586. pinelabs/types/tenure_discount_breakup_dealer.py +20 -0
  587. pinelabs/types/tenure_discount_breakup_dealer_amount.py +20 -0
  588. pinelabs/types/tenure_discount_breakup_issuer.py +20 -0
  589. pinelabs/types/tenure_discount_breakup_issuer_amount.py +20 -0
  590. pinelabs/types/tenure_discount_breakup_merchant.py +20 -0
  591. pinelabs/types/tenure_discount_breakup_merchant_amount.py +20 -0
  592. pinelabs/types/tenure_discount_discount_deferred_duration_type.py +5 -0
  593. pinelabs/types/tenure_discount_discount_type.py +5 -0
  594. pinelabs/types/tenure_discount_max_amount.py +20 -0
  595. pinelabs/types/tenure_downpayment_details.py +24 -0
  596. pinelabs/types/tenure_downpayment_details_downpayment_amount.py +20 -0
  597. pinelabs/types/tenure_emi_type.py +5 -0
  598. pinelabs/types/tenure_interest_amount.py +20 -0
  599. pinelabs/types/tenure_issuer_offer_parameters_item.py +32 -0
  600. pinelabs/types/tenure_loan_amount.py +20 -0
  601. pinelabs/types/tenure_monthly_emi_amount.py +20 -0
  602. pinelabs/types/tenure_net_payment_amount.py +20 -0
  603. pinelabs/types/tenure_processing_fee_amount.py +20 -0
  604. pinelabs/types/tenure_processing_fee_details.py +25 -0
  605. pinelabs/types/tenure_processing_fee_details_amount.py +20 -0
  606. pinelabs/types/tenure_split_emi_amount.py +20 -0
  607. pinelabs/types/tenure_tenure_type.py +5 -0
  608. pinelabs/types/tenure_total_coupon_discount.py +20 -0
  609. pinelabs/types/tenure_total_discount_amount.py +20 -0
  610. pinelabs/types/tenure_total_down_payment_amount.py +20 -0
  611. pinelabs/types/tenure_total_emi_amount.py +20 -0
  612. pinelabs/types/tenure_total_subvention_amount.py +20 -0
  613. pinelabs/types/token_card_data.py +69 -0
  614. pinelabs/types/token_card_data_card_type.py +5 -0
  615. pinelabs/types/token_payment.py +27 -0
  616. pinelabs/types/token_payment_acquirer_data.py +41 -0
  617. pinelabs/types/token_payment_option.py +26 -0
  618. pinelabs/types/token_status.py +5 -0
  619. pinelabs/types/token_transactional_data.py +46 -0
  620. pinelabs/types/upi_details_response.py +30 -0
  621. pinelabs/types/upi_details_response_payer.py +22 -0
  622. pinelabs/types/upi_details_response_txn_mode.py +5 -0
  623. pinelabs_python-0.1.0.dist-info/METADATA +213 -0
  624. pinelabs_python-0.1.0.dist-info/RECORD +626 -0
  625. pinelabs_python-0.1.0.dist-info/WHEEL +4 -0
  626. pinelabs_python-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,872 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
7
+ from ..core.request_options import RequestOptions
8
+ from ..types.list_plans_response import ListPlansResponse
9
+ from ..types.plan_response import PlanResponse
10
+ from ..types.subscription_amount import SubscriptionAmount
11
+ from .raw_client import AsyncRawSubscriptionsPlansClient, RawSubscriptionsPlansClient
12
+ from .types.create_plan_request_frequency import CreatePlanRequestFrequency
13
+ from .types.list_plans_request_amount_range import ListPlansRequestAmountRange
14
+
15
+ # this is used as the default value for optional parameters
16
+ OMIT = typing.cast(typing.Any, ...)
17
+
18
+
19
+ class SubscriptionsPlansClient:
20
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
21
+ self._raw_client = RawSubscriptionsPlansClient(client_wrapper=client_wrapper)
22
+
23
+ @property
24
+ def with_raw_response(self) -> RawSubscriptionsPlansClient:
25
+ """
26
+ Retrieves a raw implementation of this client that returns raw responses.
27
+
28
+ Returns
29
+ -------
30
+ RawSubscriptionsPlansClient
31
+ """
32
+ return self._raw_client
33
+
34
+ def list_plans(
35
+ self,
36
+ *,
37
+ plan_id: typing.Optional[str] = None,
38
+ start_date: typing.Optional[dt.datetime] = None,
39
+ end_date: typing.Optional[dt.datetime] = None,
40
+ amount: typing.Optional[int] = None,
41
+ amount_range: typing.Optional[ListPlansRequestAmountRange] = None,
42
+ frequency: typing.Optional[str] = None,
43
+ size: typing.Optional[int] = None,
44
+ page: typing.Optional[int] = None,
45
+ sort: typing.Optional[str] = None,
46
+ request_options: typing.Optional[RequestOptions] = None,
47
+ ) -> ListPlansResponse:
48
+ """
49
+ Retrieves all subscription plans. Supports filtering by plan_id,
50
+ date range, amount, frequency, and pagination.
51
+
52
+ Parameters
53
+ ----------
54
+ plan_id : typing.Optional[str]
55
+ Filter by plan ID.
56
+
57
+ start_date : typing.Optional[dt.datetime]
58
+ Filter plans with start date after this value (ISO 8601 UTC).
59
+
60
+ end_date : typing.Optional[dt.datetime]
61
+ Filter plans with end date before this value (ISO 8601 UTC).
62
+
63
+ amount : typing.Optional[int]
64
+ Filter by amount value.
65
+
66
+ amount_range : typing.Optional[ListPlansRequestAmountRange]
67
+ Amount comparison operator.
68
+
69
+ frequency : typing.Optional[str]
70
+ Filter by billing frequency.
71
+
72
+ size : typing.Optional[int]
73
+ Number of items per page.
74
+
75
+ page : typing.Optional[int]
76
+ Page number.
77
+
78
+ sort : typing.Optional[str]
79
+ Sort field and direction.
80
+
81
+ request_options : typing.Optional[RequestOptions]
82
+ Request-specific configuration.
83
+
84
+ Returns
85
+ -------
86
+ ListPlansResponse
87
+ Plans retrieved successfully.
88
+
89
+ Examples
90
+ --------
91
+ import datetime
92
+
93
+ from pinelabs import PinelabsApi
94
+
95
+ client = PinelabsApi(
96
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
97
+ request_id="YOUR_REQUEST_ID",
98
+ token="YOUR_TOKEN",
99
+ )
100
+ client.subscriptions_plans.list_plans(
101
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
102
+ start_date=datetime.datetime.fromisoformat(
103
+ "2022-02-01 17:32:28+00:00",
104
+ ),
105
+ end_date=datetime.datetime.fromisoformat(
106
+ "2026-10-21 12:02:28+00:00",
107
+ ),
108
+ frequency="Month",
109
+ sort="id,asc",
110
+ )
111
+ """
112
+ _response = self._raw_client.list_plans(
113
+ plan_id=plan_id,
114
+ start_date=start_date,
115
+ end_date=end_date,
116
+ amount=amount,
117
+ amount_range=amount_range,
118
+ frequency=frequency,
119
+ size=size,
120
+ page=page,
121
+ sort=sort,
122
+ request_options=request_options,
123
+ )
124
+ return _response.data
125
+
126
+ def create_plan(
127
+ self,
128
+ *,
129
+ plan_name: str,
130
+ frequency: CreatePlanRequestFrequency,
131
+ amount: SubscriptionAmount,
132
+ max_limit_amount: SubscriptionAmount,
133
+ end_date: dt.datetime,
134
+ merchant_plan_reference: str,
135
+ plan_description: typing.Optional[str] = OMIT,
136
+ initial_debit_amount: typing.Optional[SubscriptionAmount] = OMIT,
137
+ trial_period_in_days: typing.Optional[int] = OMIT,
138
+ start_date: typing.Optional[dt.datetime] = OMIT,
139
+ merchant_metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
140
+ auto_debit_ot: typing.Optional[str] = OMIT,
141
+ request_options: typing.Optional[RequestOptions] = None,
142
+ ) -> PlanResponse:
143
+ """
144
+ Creates a new subscription plan that serves as a reusable template
145
+ defining the pricing structure, billing frequency, and payment terms.
146
+ Plans must be created before subscriptions can be set up.
147
+
148
+ Parameters
149
+ ----------
150
+ plan_name : str
151
+ Subscription plan name.
152
+
153
+ frequency : CreatePlanRequestFrequency
154
+ Frequency of recurring transactions for this particular plan.
155
+
156
+ amount : SubscriptionAmount
157
+
158
+ max_limit_amount : SubscriptionAmount
159
+
160
+ end_date : dt.datetime
161
+ The ISO 8601 UTC Timestamp when the subscription plan expires.
162
+
163
+ merchant_plan_reference : str
164
+ **Idempotency Key.** Unique identifier of the merchant plan reference. Duplicate requests with the same `merchant_plan_reference` will return the existing plan instead of creating a new one.
165
+
166
+ plan_description : typing.Optional[str]
167
+ Corresponding description for a plan.
168
+
169
+ initial_debit_amount : typing.Optional[SubscriptionAmount]
170
+
171
+ trial_period_in_days : typing.Optional[int]
172
+ Duration of the trial period in days.
173
+
174
+ start_date : typing.Optional[dt.datetime]
175
+ The ISO 8601 UTC Timestamp when the subscription plan is active and available for use.
176
+
177
+ merchant_metadata : typing.Optional[typing.Dict[str, str]]
178
+ Key-value pairs for additional information. Max 10 pairs, 256 chars each.
179
+
180
+ auto_debit_ot : typing.Optional[str]
181
+ Indicates whether auto-debit is enabled for one-time payments under the subscription plan.
182
+
183
+ request_options : typing.Optional[RequestOptions]
184
+ Request-specific configuration.
185
+
186
+ Returns
187
+ -------
188
+ PlanResponse
189
+ Plan created successfully.
190
+
191
+ Examples
192
+ --------
193
+ import datetime
194
+
195
+ from pinelabs import PinelabsApi, SubscriptionAmount
196
+
197
+ client = PinelabsApi(
198
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
199
+ request_id="YOUR_REQUEST_ID",
200
+ token="YOUR_TOKEN",
201
+ )
202
+ client.subscriptions_plans.create_plan(
203
+ plan_name="Monthly Plan 2025-06-12T06:16:37.364Z",
204
+ plan_description="Diwali dhammaka plan intended to attract customers on diwali time",
205
+ frequency="Month",
206
+ amount=SubscriptionAmount(
207
+ value=100,
208
+ currency="INR",
209
+ ),
210
+ max_limit_amount=SubscriptionAmount(
211
+ value=210,
212
+ currency="INR",
213
+ ),
214
+ initial_debit_amount=SubscriptionAmount(
215
+ value=110,
216
+ currency="INR",
217
+ ),
218
+ trial_period_in_days=0,
219
+ end_date=datetime.datetime.fromisoformat(
220
+ "2026-10-21 12:02:28+00:00",
221
+ ),
222
+ merchant_metadata={"key1": "DD"},
223
+ merchant_plan_reference="b41770ac-cd3a-48d3-9e93-7dc9246b4751",
224
+ auto_debit_ot="false",
225
+ )
226
+ """
227
+ _response = self._raw_client.create_plan(
228
+ plan_name=plan_name,
229
+ frequency=frequency,
230
+ amount=amount,
231
+ max_limit_amount=max_limit_amount,
232
+ end_date=end_date,
233
+ merchant_plan_reference=merchant_plan_reference,
234
+ plan_description=plan_description,
235
+ initial_debit_amount=initial_debit_amount,
236
+ trial_period_in_days=trial_period_in_days,
237
+ start_date=start_date,
238
+ merchant_metadata=merchant_metadata,
239
+ auto_debit_ot=auto_debit_ot,
240
+ request_options=request_options,
241
+ )
242
+ return _response.data
243
+
244
+ def get_plan_by_id(self, plan_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> PlanResponse:
245
+ """
246
+ Retrieves a specific subscription plan by its plan ID.
247
+
248
+ Parameters
249
+ ----------
250
+ plan_id : str
251
+ Unique identifier for the subscription plan.
252
+
253
+ request_options : typing.Optional[RequestOptions]
254
+ Request-specific configuration.
255
+
256
+ Returns
257
+ -------
258
+ PlanResponse
259
+ Plan retrieved successfully.
260
+
261
+ Examples
262
+ --------
263
+ from pinelabs import PinelabsApi
264
+
265
+ client = PinelabsApi(
266
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
267
+ request_id="YOUR_REQUEST_ID",
268
+ token="YOUR_TOKEN",
269
+ )
270
+ client.subscriptions_plans.get_plan_by_id(
271
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
272
+ )
273
+ """
274
+ _response = self._raw_client.get_plan_by_id(plan_id, request_options=request_options)
275
+ return _response.data
276
+
277
+ def delete_plan(self, plan_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
278
+ """
279
+ Deletes a subscription plan by its plan ID.
280
+
281
+ Parameters
282
+ ----------
283
+ plan_id : str
284
+ Unique identifier for the subscription plan.
285
+
286
+ request_options : typing.Optional[RequestOptions]
287
+ Request-specific configuration.
288
+
289
+ Returns
290
+ -------
291
+ None
292
+
293
+ Examples
294
+ --------
295
+ from pinelabs import PinelabsApi
296
+
297
+ client = PinelabsApi(
298
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
299
+ request_id="YOUR_REQUEST_ID",
300
+ token="YOUR_TOKEN",
301
+ )
302
+ client.subscriptions_plans.delete_plan(
303
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
304
+ )
305
+ """
306
+ _response = self._raw_client.delete_plan(plan_id, request_options=request_options)
307
+ return _response.data
308
+
309
+ def update_plan(
310
+ self,
311
+ plan_id: str,
312
+ *,
313
+ plan_name: typing.Optional[str] = OMIT,
314
+ plan_description: typing.Optional[str] = OMIT,
315
+ amount: typing.Optional[SubscriptionAmount] = OMIT,
316
+ max_limit_amount: typing.Optional[SubscriptionAmount] = OMIT,
317
+ trial_period_in_days: typing.Optional[int] = OMIT,
318
+ end_date: typing.Optional[dt.datetime] = OMIT,
319
+ merchant_metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
320
+ request_options: typing.Optional[RequestOptions] = None,
321
+ ) -> PlanResponse:
322
+ """
323
+ Updates an existing subscription plan. Existing subscriptions under
324
+ this plan will remain unaffected. The changes will apply only to
325
+ new subscriptions created under this plan.
326
+
327
+ Parameters
328
+ ----------
329
+ plan_id : str
330
+ Unique identifier for the subscription plan.
331
+
332
+ plan_name : typing.Optional[str]
333
+ Subscription plan name.
334
+
335
+ plan_description : typing.Optional[str]
336
+ Corresponding description for a plan.
337
+
338
+ amount : typing.Optional[SubscriptionAmount]
339
+
340
+ max_limit_amount : typing.Optional[SubscriptionAmount]
341
+
342
+ trial_period_in_days : typing.Optional[int]
343
+ Duration of the trial period in days.
344
+
345
+ end_date : typing.Optional[dt.datetime]
346
+ The ISO 8601 UTC Timestamp when the subscription plan expires.
347
+
348
+ merchant_metadata : typing.Optional[typing.Dict[str, str]]
349
+ Key-value pairs for additional information. Max 10 pairs, 256 chars each.
350
+
351
+ request_options : typing.Optional[RequestOptions]
352
+ Request-specific configuration.
353
+
354
+ Returns
355
+ -------
356
+ PlanResponse
357
+ Plan updated successfully.
358
+
359
+ Examples
360
+ --------
361
+ from pinelabs import PinelabsApi
362
+
363
+ client = PinelabsApi(
364
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
365
+ request_id="YOUR_REQUEST_ID",
366
+ token="YOUR_TOKEN",
367
+ )
368
+ client.subscriptions_plans.update_plan(
369
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
370
+ )
371
+ """
372
+ _response = self._raw_client.update_plan(
373
+ plan_id,
374
+ plan_name=plan_name,
375
+ plan_description=plan_description,
376
+ amount=amount,
377
+ max_limit_amount=max_limit_amount,
378
+ trial_period_in_days=trial_period_in_days,
379
+ end_date=end_date,
380
+ merchant_metadata=merchant_metadata,
381
+ request_options=request_options,
382
+ )
383
+ return _response.data
384
+
385
+ def get_plan_by_merchant_reference(
386
+ self, merchant_plan_reference: str, *, request_options: typing.Optional[RequestOptions] = None
387
+ ) -> PlanResponse:
388
+ """
389
+ Retrieves a specific subscription plan by the merchant plan reference.
390
+
391
+ Parameters
392
+ ----------
393
+ merchant_plan_reference : str
394
+ Unique identifier of the merchant plan reference.
395
+
396
+ request_options : typing.Optional[RequestOptions]
397
+ Request-specific configuration.
398
+
399
+ Returns
400
+ -------
401
+ PlanResponse
402
+ Plan retrieved successfully.
403
+
404
+ Examples
405
+ --------
406
+ from pinelabs import PinelabsApi
407
+
408
+ client = PinelabsApi(
409
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
410
+ request_id="YOUR_REQUEST_ID",
411
+ token="YOUR_TOKEN",
412
+ )
413
+ client.subscriptions_plans.get_plan_by_merchant_reference(
414
+ merchant_plan_reference="1234567890",
415
+ )
416
+ """
417
+ _response = self._raw_client.get_plan_by_merchant_reference(
418
+ merchant_plan_reference, request_options=request_options
419
+ )
420
+ return _response.data
421
+
422
+
423
+ class AsyncSubscriptionsPlansClient:
424
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
425
+ self._raw_client = AsyncRawSubscriptionsPlansClient(client_wrapper=client_wrapper)
426
+
427
+ @property
428
+ def with_raw_response(self) -> AsyncRawSubscriptionsPlansClient:
429
+ """
430
+ Retrieves a raw implementation of this client that returns raw responses.
431
+
432
+ Returns
433
+ -------
434
+ AsyncRawSubscriptionsPlansClient
435
+ """
436
+ return self._raw_client
437
+
438
+ async def list_plans(
439
+ self,
440
+ *,
441
+ plan_id: typing.Optional[str] = None,
442
+ start_date: typing.Optional[dt.datetime] = None,
443
+ end_date: typing.Optional[dt.datetime] = None,
444
+ amount: typing.Optional[int] = None,
445
+ amount_range: typing.Optional[ListPlansRequestAmountRange] = None,
446
+ frequency: typing.Optional[str] = None,
447
+ size: typing.Optional[int] = None,
448
+ page: typing.Optional[int] = None,
449
+ sort: typing.Optional[str] = None,
450
+ request_options: typing.Optional[RequestOptions] = None,
451
+ ) -> ListPlansResponse:
452
+ """
453
+ Retrieves all subscription plans. Supports filtering by plan_id,
454
+ date range, amount, frequency, and pagination.
455
+
456
+ Parameters
457
+ ----------
458
+ plan_id : typing.Optional[str]
459
+ Filter by plan ID.
460
+
461
+ start_date : typing.Optional[dt.datetime]
462
+ Filter plans with start date after this value (ISO 8601 UTC).
463
+
464
+ end_date : typing.Optional[dt.datetime]
465
+ Filter plans with end date before this value (ISO 8601 UTC).
466
+
467
+ amount : typing.Optional[int]
468
+ Filter by amount value.
469
+
470
+ amount_range : typing.Optional[ListPlansRequestAmountRange]
471
+ Amount comparison operator.
472
+
473
+ frequency : typing.Optional[str]
474
+ Filter by billing frequency.
475
+
476
+ size : typing.Optional[int]
477
+ Number of items per page.
478
+
479
+ page : typing.Optional[int]
480
+ Page number.
481
+
482
+ sort : typing.Optional[str]
483
+ Sort field and direction.
484
+
485
+ request_options : typing.Optional[RequestOptions]
486
+ Request-specific configuration.
487
+
488
+ Returns
489
+ -------
490
+ ListPlansResponse
491
+ Plans retrieved successfully.
492
+
493
+ Examples
494
+ --------
495
+ import asyncio
496
+ import datetime
497
+
498
+ from pinelabs import AsyncPinelabsApi
499
+
500
+ client = AsyncPinelabsApi(
501
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
502
+ request_id="YOUR_REQUEST_ID",
503
+ token="YOUR_TOKEN",
504
+ )
505
+
506
+
507
+ async def main() -> None:
508
+ await client.subscriptions_plans.list_plans(
509
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
510
+ start_date=datetime.datetime.fromisoformat(
511
+ "2022-02-01 17:32:28+00:00",
512
+ ),
513
+ end_date=datetime.datetime.fromisoformat(
514
+ "2026-10-21 12:02:28+00:00",
515
+ ),
516
+ frequency="Month",
517
+ sort="id,asc",
518
+ )
519
+
520
+
521
+ asyncio.run(main())
522
+ """
523
+ _response = await self._raw_client.list_plans(
524
+ plan_id=plan_id,
525
+ start_date=start_date,
526
+ end_date=end_date,
527
+ amount=amount,
528
+ amount_range=amount_range,
529
+ frequency=frequency,
530
+ size=size,
531
+ page=page,
532
+ sort=sort,
533
+ request_options=request_options,
534
+ )
535
+ return _response.data
536
+
537
+ async def create_plan(
538
+ self,
539
+ *,
540
+ plan_name: str,
541
+ frequency: CreatePlanRequestFrequency,
542
+ amount: SubscriptionAmount,
543
+ max_limit_amount: SubscriptionAmount,
544
+ end_date: dt.datetime,
545
+ merchant_plan_reference: str,
546
+ plan_description: typing.Optional[str] = OMIT,
547
+ initial_debit_amount: typing.Optional[SubscriptionAmount] = OMIT,
548
+ trial_period_in_days: typing.Optional[int] = OMIT,
549
+ start_date: typing.Optional[dt.datetime] = OMIT,
550
+ merchant_metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
551
+ auto_debit_ot: typing.Optional[str] = OMIT,
552
+ request_options: typing.Optional[RequestOptions] = None,
553
+ ) -> PlanResponse:
554
+ """
555
+ Creates a new subscription plan that serves as a reusable template
556
+ defining the pricing structure, billing frequency, and payment terms.
557
+ Plans must be created before subscriptions can be set up.
558
+
559
+ Parameters
560
+ ----------
561
+ plan_name : str
562
+ Subscription plan name.
563
+
564
+ frequency : CreatePlanRequestFrequency
565
+ Frequency of recurring transactions for this particular plan.
566
+
567
+ amount : SubscriptionAmount
568
+
569
+ max_limit_amount : SubscriptionAmount
570
+
571
+ end_date : dt.datetime
572
+ The ISO 8601 UTC Timestamp when the subscription plan expires.
573
+
574
+ merchant_plan_reference : str
575
+ **Idempotency Key.** Unique identifier of the merchant plan reference. Duplicate requests with the same `merchant_plan_reference` will return the existing plan instead of creating a new one.
576
+
577
+ plan_description : typing.Optional[str]
578
+ Corresponding description for a plan.
579
+
580
+ initial_debit_amount : typing.Optional[SubscriptionAmount]
581
+
582
+ trial_period_in_days : typing.Optional[int]
583
+ Duration of the trial period in days.
584
+
585
+ start_date : typing.Optional[dt.datetime]
586
+ The ISO 8601 UTC Timestamp when the subscription plan is active and available for use.
587
+
588
+ merchant_metadata : typing.Optional[typing.Dict[str, str]]
589
+ Key-value pairs for additional information. Max 10 pairs, 256 chars each.
590
+
591
+ auto_debit_ot : typing.Optional[str]
592
+ Indicates whether auto-debit is enabled for one-time payments under the subscription plan.
593
+
594
+ request_options : typing.Optional[RequestOptions]
595
+ Request-specific configuration.
596
+
597
+ Returns
598
+ -------
599
+ PlanResponse
600
+ Plan created successfully.
601
+
602
+ Examples
603
+ --------
604
+ import asyncio
605
+ import datetime
606
+
607
+ from pinelabs import AsyncPinelabsApi, SubscriptionAmount
608
+
609
+ client = AsyncPinelabsApi(
610
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
611
+ request_id="YOUR_REQUEST_ID",
612
+ token="YOUR_TOKEN",
613
+ )
614
+
615
+
616
+ async def main() -> None:
617
+ await client.subscriptions_plans.create_plan(
618
+ plan_name="Monthly Plan 2025-06-12T06:16:37.364Z",
619
+ plan_description="Diwali dhammaka plan intended to attract customers on diwali time",
620
+ frequency="Month",
621
+ amount=SubscriptionAmount(
622
+ value=100,
623
+ currency="INR",
624
+ ),
625
+ max_limit_amount=SubscriptionAmount(
626
+ value=210,
627
+ currency="INR",
628
+ ),
629
+ initial_debit_amount=SubscriptionAmount(
630
+ value=110,
631
+ currency="INR",
632
+ ),
633
+ trial_period_in_days=0,
634
+ end_date=datetime.datetime.fromisoformat(
635
+ "2026-10-21 12:02:28+00:00",
636
+ ),
637
+ merchant_metadata={"key1": "DD"},
638
+ merchant_plan_reference="b41770ac-cd3a-48d3-9e93-7dc9246b4751",
639
+ auto_debit_ot="false",
640
+ )
641
+
642
+
643
+ asyncio.run(main())
644
+ """
645
+ _response = await self._raw_client.create_plan(
646
+ plan_name=plan_name,
647
+ frequency=frequency,
648
+ amount=amount,
649
+ max_limit_amount=max_limit_amount,
650
+ end_date=end_date,
651
+ merchant_plan_reference=merchant_plan_reference,
652
+ plan_description=plan_description,
653
+ initial_debit_amount=initial_debit_amount,
654
+ trial_period_in_days=trial_period_in_days,
655
+ start_date=start_date,
656
+ merchant_metadata=merchant_metadata,
657
+ auto_debit_ot=auto_debit_ot,
658
+ request_options=request_options,
659
+ )
660
+ return _response.data
661
+
662
+ async def get_plan_by_id(
663
+ self, plan_id: str, *, request_options: typing.Optional[RequestOptions] = None
664
+ ) -> PlanResponse:
665
+ """
666
+ Retrieves a specific subscription plan by its plan ID.
667
+
668
+ Parameters
669
+ ----------
670
+ plan_id : str
671
+ Unique identifier for the subscription plan.
672
+
673
+ request_options : typing.Optional[RequestOptions]
674
+ Request-specific configuration.
675
+
676
+ Returns
677
+ -------
678
+ PlanResponse
679
+ Plan retrieved successfully.
680
+
681
+ Examples
682
+ --------
683
+ import asyncio
684
+
685
+ from pinelabs import AsyncPinelabsApi
686
+
687
+ client = AsyncPinelabsApi(
688
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
689
+ request_id="YOUR_REQUEST_ID",
690
+ token="YOUR_TOKEN",
691
+ )
692
+
693
+
694
+ async def main() -> None:
695
+ await client.subscriptions_plans.get_plan_by_id(
696
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
697
+ )
698
+
699
+
700
+ asyncio.run(main())
701
+ """
702
+ _response = await self._raw_client.get_plan_by_id(plan_id, request_options=request_options)
703
+ return _response.data
704
+
705
+ async def delete_plan(self, plan_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
706
+ """
707
+ Deletes a subscription plan by its plan ID.
708
+
709
+ Parameters
710
+ ----------
711
+ plan_id : str
712
+ Unique identifier for the subscription plan.
713
+
714
+ request_options : typing.Optional[RequestOptions]
715
+ Request-specific configuration.
716
+
717
+ Returns
718
+ -------
719
+ None
720
+
721
+ Examples
722
+ --------
723
+ import asyncio
724
+
725
+ from pinelabs import AsyncPinelabsApi
726
+
727
+ client = AsyncPinelabsApi(
728
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
729
+ request_id="YOUR_REQUEST_ID",
730
+ token="YOUR_TOKEN",
731
+ )
732
+
733
+
734
+ async def main() -> None:
735
+ await client.subscriptions_plans.delete_plan(
736
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
737
+ )
738
+
739
+
740
+ asyncio.run(main())
741
+ """
742
+ _response = await self._raw_client.delete_plan(plan_id, request_options=request_options)
743
+ return _response.data
744
+
745
+ async def update_plan(
746
+ self,
747
+ plan_id: str,
748
+ *,
749
+ plan_name: typing.Optional[str] = OMIT,
750
+ plan_description: typing.Optional[str] = OMIT,
751
+ amount: typing.Optional[SubscriptionAmount] = OMIT,
752
+ max_limit_amount: typing.Optional[SubscriptionAmount] = OMIT,
753
+ trial_period_in_days: typing.Optional[int] = OMIT,
754
+ end_date: typing.Optional[dt.datetime] = OMIT,
755
+ merchant_metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
756
+ request_options: typing.Optional[RequestOptions] = None,
757
+ ) -> PlanResponse:
758
+ """
759
+ Updates an existing subscription plan. Existing subscriptions under
760
+ this plan will remain unaffected. The changes will apply only to
761
+ new subscriptions created under this plan.
762
+
763
+ Parameters
764
+ ----------
765
+ plan_id : str
766
+ Unique identifier for the subscription plan.
767
+
768
+ plan_name : typing.Optional[str]
769
+ Subscription plan name.
770
+
771
+ plan_description : typing.Optional[str]
772
+ Corresponding description for a plan.
773
+
774
+ amount : typing.Optional[SubscriptionAmount]
775
+
776
+ max_limit_amount : typing.Optional[SubscriptionAmount]
777
+
778
+ trial_period_in_days : typing.Optional[int]
779
+ Duration of the trial period in days.
780
+
781
+ end_date : typing.Optional[dt.datetime]
782
+ The ISO 8601 UTC Timestamp when the subscription plan expires.
783
+
784
+ merchant_metadata : typing.Optional[typing.Dict[str, str]]
785
+ Key-value pairs for additional information. Max 10 pairs, 256 chars each.
786
+
787
+ request_options : typing.Optional[RequestOptions]
788
+ Request-specific configuration.
789
+
790
+ Returns
791
+ -------
792
+ PlanResponse
793
+ Plan updated successfully.
794
+
795
+ Examples
796
+ --------
797
+ import asyncio
798
+
799
+ from pinelabs import AsyncPinelabsApi
800
+
801
+ client = AsyncPinelabsApi(
802
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
803
+ request_id="YOUR_REQUEST_ID",
804
+ token="YOUR_TOKEN",
805
+ )
806
+
807
+
808
+ async def main() -> None:
809
+ await client.subscriptions_plans.update_plan(
810
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
811
+ )
812
+
813
+
814
+ asyncio.run(main())
815
+ """
816
+ _response = await self._raw_client.update_plan(
817
+ plan_id,
818
+ plan_name=plan_name,
819
+ plan_description=plan_description,
820
+ amount=amount,
821
+ max_limit_amount=max_limit_amount,
822
+ trial_period_in_days=trial_period_in_days,
823
+ end_date=end_date,
824
+ merchant_metadata=merchant_metadata,
825
+ request_options=request_options,
826
+ )
827
+ return _response.data
828
+
829
+ async def get_plan_by_merchant_reference(
830
+ self, merchant_plan_reference: str, *, request_options: typing.Optional[RequestOptions] = None
831
+ ) -> PlanResponse:
832
+ """
833
+ Retrieves a specific subscription plan by the merchant plan reference.
834
+
835
+ Parameters
836
+ ----------
837
+ merchant_plan_reference : str
838
+ Unique identifier of the merchant plan reference.
839
+
840
+ request_options : typing.Optional[RequestOptions]
841
+ Request-specific configuration.
842
+
843
+ Returns
844
+ -------
845
+ PlanResponse
846
+ Plan retrieved successfully.
847
+
848
+ Examples
849
+ --------
850
+ import asyncio
851
+
852
+ from pinelabs import AsyncPinelabsApi
853
+
854
+ client = AsyncPinelabsApi(
855
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
856
+ request_id="YOUR_REQUEST_ID",
857
+ token="YOUR_TOKEN",
858
+ )
859
+
860
+
861
+ async def main() -> None:
862
+ await client.subscriptions_plans.get_plan_by_merchant_reference(
863
+ merchant_plan_reference="1234567890",
864
+ )
865
+
866
+
867
+ asyncio.run(main())
868
+ """
869
+ _response = await self._raw_client.get_plan_by_merchant_reference(
870
+ merchant_plan_reference, request_options=request_options
871
+ )
872
+ return _response.data