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,1014 @@
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.bank_account import BankAccount
9
+ from ..types.create_subscription_response import CreateSubscriptionResponse
10
+ from ..types.list_subscriptions_response import ListSubscriptionsResponse
11
+ from ..types.subscription_detail import SubscriptionDetail
12
+ from .raw_client import AsyncRawSubscriptionsSubscriptionsClient, RawSubscriptionsSubscriptionsClient
13
+ from .types.create_subscription_request_allowed_payment_methods_item import (
14
+ CreateSubscriptionRequestAllowedPaymentMethodsItem,
15
+ )
16
+ from .types.create_subscription_request_integration_mode import CreateSubscriptionRequestIntegrationMode
17
+ from .types.list_subscriptions_request_amount_range import ListSubscriptionsRequestAmountRange
18
+
19
+ # this is used as the default value for optional parameters
20
+ OMIT = typing.cast(typing.Any, ...)
21
+
22
+
23
+ class SubscriptionsSubscriptionsClient:
24
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
25
+ self._raw_client = RawSubscriptionsSubscriptionsClient(client_wrapper=client_wrapper)
26
+
27
+ @property
28
+ def with_raw_response(self) -> RawSubscriptionsSubscriptionsClient:
29
+ """
30
+ Retrieves a raw implementation of this client that returns raw responses.
31
+
32
+ Returns
33
+ -------
34
+ RawSubscriptionsSubscriptionsClient
35
+ """
36
+ return self._raw_client
37
+
38
+ def list_subscriptions(
39
+ self,
40
+ *,
41
+ plan_id: typing.Optional[str] = None,
42
+ status: typing.Optional[str] = None,
43
+ amount: typing.Optional[int] = None,
44
+ amount_range: typing.Optional[ListSubscriptionsRequestAmountRange] = None,
45
+ start_date: typing.Optional[dt.datetime] = None,
46
+ end_date: typing.Optional[dt.datetime] = None,
47
+ size: typing.Optional[int] = None,
48
+ page: typing.Optional[int] = None,
49
+ sort: typing.Optional[str] = None,
50
+ frequency: typing.Optional[str] = None,
51
+ request_options: typing.Optional[RequestOptions] = None,
52
+ ) -> ListSubscriptionsResponse:
53
+ """
54
+ Retrieves all subscriptions. Supports filtering by plan_id, status,
55
+ amount, date range, frequency, and pagination.
56
+
57
+ Parameters
58
+ ----------
59
+ plan_id : typing.Optional[str]
60
+ Filter by plan ID.
61
+
62
+ status : typing.Optional[str]
63
+ Filter by subscription status.
64
+
65
+ amount : typing.Optional[int]
66
+ Filter by amount value.
67
+
68
+ amount_range : typing.Optional[ListSubscriptionsRequestAmountRange]
69
+ Amount comparison operator.
70
+
71
+ start_date : typing.Optional[dt.datetime]
72
+ Filter subscriptions with start date after this value.
73
+
74
+ end_date : typing.Optional[dt.datetime]
75
+ Filter subscriptions with end date before this value.
76
+
77
+ size : typing.Optional[int]
78
+ Number of items per page.
79
+
80
+ page : typing.Optional[int]
81
+ Page number.
82
+
83
+ sort : typing.Optional[str]
84
+ Sort field and direction.
85
+
86
+ frequency : typing.Optional[str]
87
+ Filter by billing frequency.
88
+
89
+ request_options : typing.Optional[RequestOptions]
90
+ Request-specific configuration.
91
+
92
+ Returns
93
+ -------
94
+ ListSubscriptionsResponse
95
+ Subscriptions retrieved successfully.
96
+
97
+ Examples
98
+ --------
99
+ import datetime
100
+
101
+ from pinelabs import PinelabsApi
102
+
103
+ client = PinelabsApi(
104
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
105
+ request_id="YOUR_REQUEST_ID",
106
+ token="YOUR_TOKEN",
107
+ )
108
+ client.subscriptions_subscriptions.list_subscriptions(
109
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
110
+ status="ACTIVE",
111
+ start_date=datetime.datetime.fromisoformat(
112
+ "2022-02-01 17:32:28+00:00",
113
+ ),
114
+ end_date=datetime.datetime.fromisoformat(
115
+ "2025-12-31 23:59:59+00:00",
116
+ ),
117
+ sort="id,asc",
118
+ frequency="Month",
119
+ )
120
+ """
121
+ _response = self._raw_client.list_subscriptions(
122
+ plan_id=plan_id,
123
+ status=status,
124
+ amount=amount,
125
+ amount_range=amount_range,
126
+ start_date=start_date,
127
+ end_date=end_date,
128
+ size=size,
129
+ page=page,
130
+ sort=sort,
131
+ frequency=frequency,
132
+ request_options=request_options,
133
+ )
134
+ return _response.data
135
+
136
+ def create_subscription(
137
+ self,
138
+ *,
139
+ merchant_subscription_reference: str,
140
+ plan_id: str,
141
+ start_date: dt.datetime,
142
+ end_date: dt.datetime,
143
+ customer_id: str,
144
+ integration_mode: CreateSubscriptionRequestIntegrationMode,
145
+ enable_notification: typing.Optional[bool] = OMIT,
146
+ allowed_payment_methods: typing.Optional[
147
+ typing.Sequence[CreateSubscriptionRequestAllowedPaymentMethodsItem]
148
+ ] = OMIT,
149
+ merchant_metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
150
+ is_tpv_enabled: typing.Optional[bool] = OMIT,
151
+ bank_account: typing.Optional[BankAccount] = OMIT,
152
+ callback_url: typing.Optional[str] = OMIT,
153
+ failure_callback_url: typing.Optional[str] = OMIT,
154
+ request_options: typing.Optional[RequestOptions] = None,
155
+ ) -> CreateSubscriptionResponse:
156
+ """
157
+ Creates a new subscription against an existing plan. The subscription
158
+ defines the recurring billing cycle for a customer based on the
159
+ selected plan's pricing and frequency.
160
+
161
+ Parameters
162
+ ----------
163
+ merchant_subscription_reference : str
164
+ **Idempotency Key.** Unique identifier of the merchant subscription reference. Duplicate requests with the same `merchant_subscription_reference` will return the existing subscription instead of creating a new one.
165
+
166
+ plan_id : str
167
+ Unique identifier for the subscription plan.
168
+
169
+ start_date : dt.datetime
170
+ The ISO 8601 UTC Timestamp when the subscription starts.
171
+
172
+ end_date : dt.datetime
173
+ The ISO 8601 UTC Timestamp when the subscription expires.
174
+
175
+ customer_id : str
176
+ Unique identifier of the customer in the Pine Labs Online database.
177
+
178
+ integration_mode : CreateSubscriptionRequestIntegrationMode
179
+ Type of integration.
180
+
181
+ enable_notification : typing.Optional[bool]
182
+ Indicates if notifications are enabled.
183
+
184
+ allowed_payment_methods : typing.Optional[typing.Sequence[CreateSubscriptionRequestAllowedPaymentMethodsItem]]
185
+ The type of payment methods you want to offer customers.
186
+
187
+ merchant_metadata : typing.Optional[typing.Dict[str, str]]
188
+ Key-value pairs for additional information. Max 10 pairs, 256 chars each.
189
+
190
+ is_tpv_enabled : typing.Optional[bool]
191
+ Indicates if Third-Party Validation (TPV) is enabled.
192
+
193
+ bank_account : typing.Optional[BankAccount]
194
+
195
+ callback_url : typing.Optional[str]
196
+ URL to redirect customers to specific success or failure pages.
197
+
198
+ failure_callback_url : typing.Optional[str]
199
+ URL specifically used to redirect customers to a failure page.
200
+
201
+ request_options : typing.Optional[RequestOptions]
202
+ Request-specific configuration.
203
+
204
+ Returns
205
+ -------
206
+ CreateSubscriptionResponse
207
+ Subscription created successfully.
208
+
209
+ Examples
210
+ --------
211
+ import datetime
212
+
213
+ from pinelabs import PinelabsApi
214
+
215
+ client = PinelabsApi(
216
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
217
+ request_id="YOUR_REQUEST_ID",
218
+ token="YOUR_TOKEN",
219
+ )
220
+ client.subscriptions_subscriptions.create_subscription(
221
+ merchant_subscription_reference="f5d77ef9-fa11-4f58-a9f4-543e4a7022c5",
222
+ plan_id="v1-pla-250612061639-aa-666Zge",
223
+ start_date=datetime.datetime.fromisoformat(
224
+ "2025-06-12 06:22:21+00:00",
225
+ ),
226
+ end_date=datetime.datetime.fromisoformat(
227
+ "2025-06-21 17:32:28+00:00",
228
+ ),
229
+ customer_id="cust-v1-250519171901-aa-dPF6mg",
230
+ integration_mode="SEAMLESS",
231
+ )
232
+ """
233
+ _response = self._raw_client.create_subscription(
234
+ merchant_subscription_reference=merchant_subscription_reference,
235
+ plan_id=plan_id,
236
+ start_date=start_date,
237
+ end_date=end_date,
238
+ customer_id=customer_id,
239
+ integration_mode=integration_mode,
240
+ enable_notification=enable_notification,
241
+ allowed_payment_methods=allowed_payment_methods,
242
+ merchant_metadata=merchant_metadata,
243
+ is_tpv_enabled=is_tpv_enabled,
244
+ bank_account=bank_account,
245
+ callback_url=callback_url,
246
+ failure_callback_url=failure_callback_url,
247
+ request_options=request_options,
248
+ )
249
+ return _response.data
250
+
251
+ def get_subscription_by_id(
252
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
253
+ ) -> SubscriptionDetail:
254
+ """
255
+ Retrieves a specific subscription by its subscription ID.
256
+
257
+ Parameters
258
+ ----------
259
+ subscription_id : str
260
+ Unique identifier for the subscription.
261
+
262
+ request_options : typing.Optional[RequestOptions]
263
+ Request-specific configuration.
264
+
265
+ Returns
266
+ -------
267
+ SubscriptionDetail
268
+ Subscription retrieved successfully.
269
+
270
+ Examples
271
+ --------
272
+ from pinelabs import PinelabsApi
273
+
274
+ client = PinelabsApi(
275
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
276
+ request_id="YOUR_REQUEST_ID",
277
+ token="YOUR_TOKEN",
278
+ )
279
+ client.subscriptions_subscriptions.get_subscription_by_id(
280
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
281
+ )
282
+ """
283
+ _response = self._raw_client.get_subscription_by_id(subscription_id, request_options=request_options)
284
+ return _response.data
285
+
286
+ def update_subscription(
287
+ self,
288
+ subscription_id: str,
289
+ *,
290
+ reason: str,
291
+ new_plan_id: typing.Optional[str] = OMIT,
292
+ new_end_date: typing.Optional[dt.datetime] = OMIT,
293
+ request_options: typing.Optional[RequestOptions] = None,
294
+ ) -> SubscriptionDetail:
295
+ """
296
+ Updates an existing subscription. You can switch to a new plan
297
+ or update the end date. A reason is required.
298
+
299
+ Parameters
300
+ ----------
301
+ subscription_id : str
302
+ Unique identifier for the subscription.
303
+
304
+ reason : str
305
+ Reason for the update.
306
+
307
+ new_plan_id : typing.Optional[str]
308
+ New plan ID to switch the subscription to.
309
+
310
+ new_end_date : typing.Optional[dt.datetime]
311
+ New end date in ISO 8601 UTC.
312
+
313
+ request_options : typing.Optional[RequestOptions]
314
+ Request-specific configuration.
315
+
316
+ Returns
317
+ -------
318
+ SubscriptionDetail
319
+ Subscription updated successfully.
320
+
321
+ Examples
322
+ --------
323
+ from pinelabs import PinelabsApi
324
+
325
+ client = PinelabsApi(
326
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
327
+ request_id="YOUR_REQUEST_ID",
328
+ token="YOUR_TOKEN",
329
+ )
330
+ client.subscriptions_subscriptions.update_subscription(
331
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
332
+ reason="Switching to annual plan",
333
+ )
334
+ """
335
+ _response = self._raw_client.update_subscription(
336
+ subscription_id,
337
+ reason=reason,
338
+ new_plan_id=new_plan_id,
339
+ new_end_date=new_end_date,
340
+ request_options=request_options,
341
+ )
342
+ return _response.data
343
+
344
+ def get_subscription_by_merchant_reference(
345
+ self, merchant_subscription_reference: str, *, request_options: typing.Optional[RequestOptions] = None
346
+ ) -> SubscriptionDetail:
347
+ """
348
+ Retrieves a specific subscription by the merchant subscription reference.
349
+
350
+ Parameters
351
+ ----------
352
+ merchant_subscription_reference : str
353
+ Unique identifier of the merchant subscription reference.
354
+
355
+ request_options : typing.Optional[RequestOptions]
356
+ Request-specific configuration.
357
+
358
+ Returns
359
+ -------
360
+ SubscriptionDetail
361
+ Subscription retrieved successfully.
362
+
363
+ Examples
364
+ --------
365
+ from pinelabs import PinelabsApi
366
+
367
+ client = PinelabsApi(
368
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
369
+ request_id="YOUR_REQUEST_ID",
370
+ token="YOUR_TOKEN",
371
+ )
372
+ client.subscriptions_subscriptions.get_subscription_by_merchant_reference(
373
+ merchant_subscription_reference="1234567890",
374
+ )
375
+ """
376
+ _response = self._raw_client.get_subscription_by_merchant_reference(
377
+ merchant_subscription_reference, request_options=request_options
378
+ )
379
+ return _response.data
380
+
381
+ def cancel_subscription(
382
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
383
+ ) -> SubscriptionDetail:
384
+ """
385
+ Cancels an active subscription. Once cancelled, the subscription
386
+ can no longer process recurring payments.
387
+
388
+ Parameters
389
+ ----------
390
+ subscription_id : str
391
+ Unique identifier for the subscription.
392
+
393
+ request_options : typing.Optional[RequestOptions]
394
+ Request-specific configuration.
395
+
396
+ Returns
397
+ -------
398
+ SubscriptionDetail
399
+ Subscription cancelled successfully.
400
+
401
+ Examples
402
+ --------
403
+ from pinelabs import PinelabsApi
404
+
405
+ client = PinelabsApi(
406
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
407
+ request_id="YOUR_REQUEST_ID",
408
+ token="YOUR_TOKEN",
409
+ )
410
+ client.subscriptions_subscriptions.cancel_subscription(
411
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
412
+ )
413
+ """
414
+ _response = self._raw_client.cancel_subscription(subscription_id, request_options=request_options)
415
+ return _response.data
416
+
417
+ def pause_subscription(
418
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
419
+ ) -> SubscriptionDetail:
420
+ """
421
+ Pauses an active subscription. The subscription must be in an
422
+ active, inactive, trial, or resumed state to be paused.
423
+
424
+ Parameters
425
+ ----------
426
+ subscription_id : str
427
+ Unique identifier for the subscription.
428
+
429
+ request_options : typing.Optional[RequestOptions]
430
+ Request-specific configuration.
431
+
432
+ Returns
433
+ -------
434
+ SubscriptionDetail
435
+ Subscription paused successfully.
436
+
437
+ Examples
438
+ --------
439
+ from pinelabs import PinelabsApi
440
+
441
+ client = PinelabsApi(
442
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
443
+ request_id="YOUR_REQUEST_ID",
444
+ token="YOUR_TOKEN",
445
+ )
446
+ client.subscriptions_subscriptions.pause_subscription(
447
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
448
+ )
449
+ """
450
+ _response = self._raw_client.pause_subscription(subscription_id, request_options=request_options)
451
+ return _response.data
452
+
453
+ def resume_subscription(
454
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
455
+ ) -> SubscriptionDetail:
456
+ """
457
+ Resumes a paused or halted subscription.
458
+
459
+ Parameters
460
+ ----------
461
+ subscription_id : str
462
+ Unique identifier for the subscription.
463
+
464
+ request_options : typing.Optional[RequestOptions]
465
+ Request-specific configuration.
466
+
467
+ Returns
468
+ -------
469
+ SubscriptionDetail
470
+ Subscription resumed successfully.
471
+
472
+ Examples
473
+ --------
474
+ from pinelabs import PinelabsApi
475
+
476
+ client = PinelabsApi(
477
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
478
+ request_id="YOUR_REQUEST_ID",
479
+ token="YOUR_TOKEN",
480
+ )
481
+ client.subscriptions_subscriptions.resume_subscription(
482
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
483
+ )
484
+ """
485
+ _response = self._raw_client.resume_subscription(subscription_id, request_options=request_options)
486
+ return _response.data
487
+
488
+
489
+ class AsyncSubscriptionsSubscriptionsClient:
490
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
491
+ self._raw_client = AsyncRawSubscriptionsSubscriptionsClient(client_wrapper=client_wrapper)
492
+
493
+ @property
494
+ def with_raw_response(self) -> AsyncRawSubscriptionsSubscriptionsClient:
495
+ """
496
+ Retrieves a raw implementation of this client that returns raw responses.
497
+
498
+ Returns
499
+ -------
500
+ AsyncRawSubscriptionsSubscriptionsClient
501
+ """
502
+ return self._raw_client
503
+
504
+ async def list_subscriptions(
505
+ self,
506
+ *,
507
+ plan_id: typing.Optional[str] = None,
508
+ status: typing.Optional[str] = None,
509
+ amount: typing.Optional[int] = None,
510
+ amount_range: typing.Optional[ListSubscriptionsRequestAmountRange] = None,
511
+ start_date: typing.Optional[dt.datetime] = None,
512
+ end_date: typing.Optional[dt.datetime] = None,
513
+ size: typing.Optional[int] = None,
514
+ page: typing.Optional[int] = None,
515
+ sort: typing.Optional[str] = None,
516
+ frequency: typing.Optional[str] = None,
517
+ request_options: typing.Optional[RequestOptions] = None,
518
+ ) -> ListSubscriptionsResponse:
519
+ """
520
+ Retrieves all subscriptions. Supports filtering by plan_id, status,
521
+ amount, date range, frequency, and pagination.
522
+
523
+ Parameters
524
+ ----------
525
+ plan_id : typing.Optional[str]
526
+ Filter by plan ID.
527
+
528
+ status : typing.Optional[str]
529
+ Filter by subscription status.
530
+
531
+ amount : typing.Optional[int]
532
+ Filter by amount value.
533
+
534
+ amount_range : typing.Optional[ListSubscriptionsRequestAmountRange]
535
+ Amount comparison operator.
536
+
537
+ start_date : typing.Optional[dt.datetime]
538
+ Filter subscriptions with start date after this value.
539
+
540
+ end_date : typing.Optional[dt.datetime]
541
+ Filter subscriptions with end date before this value.
542
+
543
+ size : typing.Optional[int]
544
+ Number of items per page.
545
+
546
+ page : typing.Optional[int]
547
+ Page number.
548
+
549
+ sort : typing.Optional[str]
550
+ Sort field and direction.
551
+
552
+ frequency : typing.Optional[str]
553
+ Filter by billing frequency.
554
+
555
+ request_options : typing.Optional[RequestOptions]
556
+ Request-specific configuration.
557
+
558
+ Returns
559
+ -------
560
+ ListSubscriptionsResponse
561
+ Subscriptions retrieved successfully.
562
+
563
+ Examples
564
+ --------
565
+ import asyncio
566
+ import datetime
567
+
568
+ from pinelabs import AsyncPinelabsApi
569
+
570
+ client = AsyncPinelabsApi(
571
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
572
+ request_id="YOUR_REQUEST_ID",
573
+ token="YOUR_TOKEN",
574
+ )
575
+
576
+
577
+ async def main() -> None:
578
+ await client.subscriptions_subscriptions.list_subscriptions(
579
+ plan_id="v1-plan-4405071524-aa-qlAtAf",
580
+ status="ACTIVE",
581
+ start_date=datetime.datetime.fromisoformat(
582
+ "2022-02-01 17:32:28+00:00",
583
+ ),
584
+ end_date=datetime.datetime.fromisoformat(
585
+ "2025-12-31 23:59:59+00:00",
586
+ ),
587
+ sort="id,asc",
588
+ frequency="Month",
589
+ )
590
+
591
+
592
+ asyncio.run(main())
593
+ """
594
+ _response = await self._raw_client.list_subscriptions(
595
+ plan_id=plan_id,
596
+ status=status,
597
+ amount=amount,
598
+ amount_range=amount_range,
599
+ start_date=start_date,
600
+ end_date=end_date,
601
+ size=size,
602
+ page=page,
603
+ sort=sort,
604
+ frequency=frequency,
605
+ request_options=request_options,
606
+ )
607
+ return _response.data
608
+
609
+ async def create_subscription(
610
+ self,
611
+ *,
612
+ merchant_subscription_reference: str,
613
+ plan_id: str,
614
+ start_date: dt.datetime,
615
+ end_date: dt.datetime,
616
+ customer_id: str,
617
+ integration_mode: CreateSubscriptionRequestIntegrationMode,
618
+ enable_notification: typing.Optional[bool] = OMIT,
619
+ allowed_payment_methods: typing.Optional[
620
+ typing.Sequence[CreateSubscriptionRequestAllowedPaymentMethodsItem]
621
+ ] = OMIT,
622
+ merchant_metadata: typing.Optional[typing.Dict[str, str]] = OMIT,
623
+ is_tpv_enabled: typing.Optional[bool] = OMIT,
624
+ bank_account: typing.Optional[BankAccount] = OMIT,
625
+ callback_url: typing.Optional[str] = OMIT,
626
+ failure_callback_url: typing.Optional[str] = OMIT,
627
+ request_options: typing.Optional[RequestOptions] = None,
628
+ ) -> CreateSubscriptionResponse:
629
+ """
630
+ Creates a new subscription against an existing plan. The subscription
631
+ defines the recurring billing cycle for a customer based on the
632
+ selected plan's pricing and frequency.
633
+
634
+ Parameters
635
+ ----------
636
+ merchant_subscription_reference : str
637
+ **Idempotency Key.** Unique identifier of the merchant subscription reference. Duplicate requests with the same `merchant_subscription_reference` will return the existing subscription instead of creating a new one.
638
+
639
+ plan_id : str
640
+ Unique identifier for the subscription plan.
641
+
642
+ start_date : dt.datetime
643
+ The ISO 8601 UTC Timestamp when the subscription starts.
644
+
645
+ end_date : dt.datetime
646
+ The ISO 8601 UTC Timestamp when the subscription expires.
647
+
648
+ customer_id : str
649
+ Unique identifier of the customer in the Pine Labs Online database.
650
+
651
+ integration_mode : CreateSubscriptionRequestIntegrationMode
652
+ Type of integration.
653
+
654
+ enable_notification : typing.Optional[bool]
655
+ Indicates if notifications are enabled.
656
+
657
+ allowed_payment_methods : typing.Optional[typing.Sequence[CreateSubscriptionRequestAllowedPaymentMethodsItem]]
658
+ The type of payment methods you want to offer customers.
659
+
660
+ merchant_metadata : typing.Optional[typing.Dict[str, str]]
661
+ Key-value pairs for additional information. Max 10 pairs, 256 chars each.
662
+
663
+ is_tpv_enabled : typing.Optional[bool]
664
+ Indicates if Third-Party Validation (TPV) is enabled.
665
+
666
+ bank_account : typing.Optional[BankAccount]
667
+
668
+ callback_url : typing.Optional[str]
669
+ URL to redirect customers to specific success or failure pages.
670
+
671
+ failure_callback_url : typing.Optional[str]
672
+ URL specifically used to redirect customers to a failure page.
673
+
674
+ request_options : typing.Optional[RequestOptions]
675
+ Request-specific configuration.
676
+
677
+ Returns
678
+ -------
679
+ CreateSubscriptionResponse
680
+ Subscription created successfully.
681
+
682
+ Examples
683
+ --------
684
+ import asyncio
685
+ import datetime
686
+
687
+ from pinelabs import AsyncPinelabsApi
688
+
689
+ client = AsyncPinelabsApi(
690
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
691
+ request_id="YOUR_REQUEST_ID",
692
+ token="YOUR_TOKEN",
693
+ )
694
+
695
+
696
+ async def main() -> None:
697
+ await client.subscriptions_subscriptions.create_subscription(
698
+ merchant_subscription_reference="f5d77ef9-fa11-4f58-a9f4-543e4a7022c5",
699
+ plan_id="v1-pla-250612061639-aa-666Zge",
700
+ start_date=datetime.datetime.fromisoformat(
701
+ "2025-06-12 06:22:21+00:00",
702
+ ),
703
+ end_date=datetime.datetime.fromisoformat(
704
+ "2025-06-21 17:32:28+00:00",
705
+ ),
706
+ customer_id="cust-v1-250519171901-aa-dPF6mg",
707
+ integration_mode="SEAMLESS",
708
+ )
709
+
710
+
711
+ asyncio.run(main())
712
+ """
713
+ _response = await self._raw_client.create_subscription(
714
+ merchant_subscription_reference=merchant_subscription_reference,
715
+ plan_id=plan_id,
716
+ start_date=start_date,
717
+ end_date=end_date,
718
+ customer_id=customer_id,
719
+ integration_mode=integration_mode,
720
+ enable_notification=enable_notification,
721
+ allowed_payment_methods=allowed_payment_methods,
722
+ merchant_metadata=merchant_metadata,
723
+ is_tpv_enabled=is_tpv_enabled,
724
+ bank_account=bank_account,
725
+ callback_url=callback_url,
726
+ failure_callback_url=failure_callback_url,
727
+ request_options=request_options,
728
+ )
729
+ return _response.data
730
+
731
+ async def get_subscription_by_id(
732
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
733
+ ) -> SubscriptionDetail:
734
+ """
735
+ Retrieves a specific subscription by its subscription ID.
736
+
737
+ Parameters
738
+ ----------
739
+ subscription_id : str
740
+ Unique identifier for the subscription.
741
+
742
+ request_options : typing.Optional[RequestOptions]
743
+ Request-specific configuration.
744
+
745
+ Returns
746
+ -------
747
+ SubscriptionDetail
748
+ Subscription retrieved successfully.
749
+
750
+ Examples
751
+ --------
752
+ import asyncio
753
+
754
+ from pinelabs import AsyncPinelabsApi
755
+
756
+ client = AsyncPinelabsApi(
757
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
758
+ request_id="YOUR_REQUEST_ID",
759
+ token="YOUR_TOKEN",
760
+ )
761
+
762
+
763
+ async def main() -> None:
764
+ await client.subscriptions_subscriptions.get_subscription_by_id(
765
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
766
+ )
767
+
768
+
769
+ asyncio.run(main())
770
+ """
771
+ _response = await self._raw_client.get_subscription_by_id(subscription_id, request_options=request_options)
772
+ return _response.data
773
+
774
+ async def update_subscription(
775
+ self,
776
+ subscription_id: str,
777
+ *,
778
+ reason: str,
779
+ new_plan_id: typing.Optional[str] = OMIT,
780
+ new_end_date: typing.Optional[dt.datetime] = OMIT,
781
+ request_options: typing.Optional[RequestOptions] = None,
782
+ ) -> SubscriptionDetail:
783
+ """
784
+ Updates an existing subscription. You can switch to a new plan
785
+ or update the end date. A reason is required.
786
+
787
+ Parameters
788
+ ----------
789
+ subscription_id : str
790
+ Unique identifier for the subscription.
791
+
792
+ reason : str
793
+ Reason for the update.
794
+
795
+ new_plan_id : typing.Optional[str]
796
+ New plan ID to switch the subscription to.
797
+
798
+ new_end_date : typing.Optional[dt.datetime]
799
+ New end date in ISO 8601 UTC.
800
+
801
+ request_options : typing.Optional[RequestOptions]
802
+ Request-specific configuration.
803
+
804
+ Returns
805
+ -------
806
+ SubscriptionDetail
807
+ Subscription updated successfully.
808
+
809
+ Examples
810
+ --------
811
+ import asyncio
812
+
813
+ from pinelabs import AsyncPinelabsApi
814
+
815
+ client = AsyncPinelabsApi(
816
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
817
+ request_id="YOUR_REQUEST_ID",
818
+ token="YOUR_TOKEN",
819
+ )
820
+
821
+
822
+ async def main() -> None:
823
+ await client.subscriptions_subscriptions.update_subscription(
824
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
825
+ reason="Switching to annual plan",
826
+ )
827
+
828
+
829
+ asyncio.run(main())
830
+ """
831
+ _response = await self._raw_client.update_subscription(
832
+ subscription_id,
833
+ reason=reason,
834
+ new_plan_id=new_plan_id,
835
+ new_end_date=new_end_date,
836
+ request_options=request_options,
837
+ )
838
+ return _response.data
839
+
840
+ async def get_subscription_by_merchant_reference(
841
+ self, merchant_subscription_reference: str, *, request_options: typing.Optional[RequestOptions] = None
842
+ ) -> SubscriptionDetail:
843
+ """
844
+ Retrieves a specific subscription by the merchant subscription reference.
845
+
846
+ Parameters
847
+ ----------
848
+ merchant_subscription_reference : str
849
+ Unique identifier of the merchant subscription reference.
850
+
851
+ request_options : typing.Optional[RequestOptions]
852
+ Request-specific configuration.
853
+
854
+ Returns
855
+ -------
856
+ SubscriptionDetail
857
+ Subscription retrieved successfully.
858
+
859
+ Examples
860
+ --------
861
+ import asyncio
862
+
863
+ from pinelabs import AsyncPinelabsApi
864
+
865
+ client = AsyncPinelabsApi(
866
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
867
+ request_id="YOUR_REQUEST_ID",
868
+ token="YOUR_TOKEN",
869
+ )
870
+
871
+
872
+ async def main() -> None:
873
+ await client.subscriptions_subscriptions.get_subscription_by_merchant_reference(
874
+ merchant_subscription_reference="1234567890",
875
+ )
876
+
877
+
878
+ asyncio.run(main())
879
+ """
880
+ _response = await self._raw_client.get_subscription_by_merchant_reference(
881
+ merchant_subscription_reference, request_options=request_options
882
+ )
883
+ return _response.data
884
+
885
+ async def cancel_subscription(
886
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
887
+ ) -> SubscriptionDetail:
888
+ """
889
+ Cancels an active subscription. Once cancelled, the subscription
890
+ can no longer process recurring payments.
891
+
892
+ Parameters
893
+ ----------
894
+ subscription_id : str
895
+ Unique identifier for the subscription.
896
+
897
+ request_options : typing.Optional[RequestOptions]
898
+ Request-specific configuration.
899
+
900
+ Returns
901
+ -------
902
+ SubscriptionDetail
903
+ Subscription cancelled successfully.
904
+
905
+ Examples
906
+ --------
907
+ import asyncio
908
+
909
+ from pinelabs import AsyncPinelabsApi
910
+
911
+ client = AsyncPinelabsApi(
912
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
913
+ request_id="YOUR_REQUEST_ID",
914
+ token="YOUR_TOKEN",
915
+ )
916
+
917
+
918
+ async def main() -> None:
919
+ await client.subscriptions_subscriptions.cancel_subscription(
920
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
921
+ )
922
+
923
+
924
+ asyncio.run(main())
925
+ """
926
+ _response = await self._raw_client.cancel_subscription(subscription_id, request_options=request_options)
927
+ return _response.data
928
+
929
+ async def pause_subscription(
930
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
931
+ ) -> SubscriptionDetail:
932
+ """
933
+ Pauses an active subscription. The subscription must be in an
934
+ active, inactive, trial, or resumed state to be paused.
935
+
936
+ Parameters
937
+ ----------
938
+ subscription_id : str
939
+ Unique identifier for the subscription.
940
+
941
+ request_options : typing.Optional[RequestOptions]
942
+ Request-specific configuration.
943
+
944
+ Returns
945
+ -------
946
+ SubscriptionDetail
947
+ Subscription paused successfully.
948
+
949
+ Examples
950
+ --------
951
+ import asyncio
952
+
953
+ from pinelabs import AsyncPinelabsApi
954
+
955
+ client = AsyncPinelabsApi(
956
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
957
+ request_id="YOUR_REQUEST_ID",
958
+ token="YOUR_TOKEN",
959
+ )
960
+
961
+
962
+ async def main() -> None:
963
+ await client.subscriptions_subscriptions.pause_subscription(
964
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
965
+ )
966
+
967
+
968
+ asyncio.run(main())
969
+ """
970
+ _response = await self._raw_client.pause_subscription(subscription_id, request_options=request_options)
971
+ return _response.data
972
+
973
+ async def resume_subscription(
974
+ self, subscription_id: str, *, request_options: typing.Optional[RequestOptions] = None
975
+ ) -> SubscriptionDetail:
976
+ """
977
+ Resumes a paused or halted subscription.
978
+
979
+ Parameters
980
+ ----------
981
+ subscription_id : str
982
+ Unique identifier for the subscription.
983
+
984
+ request_options : typing.Optional[RequestOptions]
985
+ Request-specific configuration.
986
+
987
+ Returns
988
+ -------
989
+ SubscriptionDetail
990
+ Subscription resumed successfully.
991
+
992
+ Examples
993
+ --------
994
+ import asyncio
995
+
996
+ from pinelabs import AsyncPinelabsApi
997
+
998
+ client = AsyncPinelabsApi(
999
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
1000
+ request_id="YOUR_REQUEST_ID",
1001
+ token="YOUR_TOKEN",
1002
+ )
1003
+
1004
+
1005
+ async def main() -> None:
1006
+ await client.subscriptions_subscriptions.resume_subscription(
1007
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
1008
+ )
1009
+
1010
+
1011
+ asyncio.run(main())
1012
+ """
1013
+ _response = await self._raw_client.resume_subscription(subscription_id, request_options=request_options)
1014
+ return _response.data