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,886 @@
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.create_debit_response import CreateDebitResponse
9
+ from ..types.create_presentation_response import CreatePresentationResponse
10
+ from ..types.list_presentations_response import ListPresentationsResponse
11
+ from ..types.presentation_detail import PresentationDetail
12
+ from ..types.subscription_amount import SubscriptionAmount
13
+ from ..types.subscription_notification_response import SubscriptionNotificationResponse
14
+ from .raw_client import AsyncRawSubscriptionsPresentationsClient, RawSubscriptionsPresentationsClient
15
+
16
+ # this is used as the default value for optional parameters
17
+ OMIT = typing.cast(typing.Any, ...)
18
+
19
+
20
+ class SubscriptionsPresentationsClient:
21
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
22
+ self._raw_client = RawSubscriptionsPresentationsClient(client_wrapper=client_wrapper)
23
+
24
+ @property
25
+ def with_raw_response(self) -> RawSubscriptionsPresentationsClient:
26
+ """
27
+ Retrieves a raw implementation of this client that returns raw responses.
28
+
29
+ Returns
30
+ -------
31
+ RawSubscriptionsPresentationsClient
32
+ """
33
+ return self._raw_client
34
+
35
+ def list_presentations_by_subscription(
36
+ self,
37
+ subscription_id: str,
38
+ *,
39
+ size: typing.Optional[str] = None,
40
+ page: typing.Optional[str] = None,
41
+ sort: typing.Optional[str] = None,
42
+ request_options: typing.Optional[RequestOptions] = None,
43
+ ) -> ListPresentationsResponse:
44
+ """
45
+ Retrieves all presentations associated with a specific subscription.
46
+ Supports pagination.
47
+
48
+ Parameters
49
+ ----------
50
+ subscription_id : str
51
+ Unique identifier for the subscription.
52
+
53
+ size : typing.Optional[str]
54
+ Number of items per page.
55
+
56
+ page : typing.Optional[str]
57
+ Page number.
58
+
59
+ sort : typing.Optional[str]
60
+ Sort field and direction.
61
+
62
+ request_options : typing.Optional[RequestOptions]
63
+ Request-specific configuration.
64
+
65
+ Returns
66
+ -------
67
+ ListPresentationsResponse
68
+ Presentations retrieved successfully.
69
+
70
+ Examples
71
+ --------
72
+ from pinelabs import PinelabsApi
73
+
74
+ client = PinelabsApi(
75
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
76
+ request_id="YOUR_REQUEST_ID",
77
+ token="YOUR_TOKEN",
78
+ )
79
+ client.subscriptions_presentations.list_presentations_by_subscription(
80
+ subscription_id="v1-sub-250916121532-aa-lKR1S1",
81
+ size="10",
82
+ page="1",
83
+ sort="cycleId,desc",
84
+ )
85
+ """
86
+ _response = self._raw_client.list_presentations_by_subscription(
87
+ subscription_id, size=size, page=page, sort=sort, request_options=request_options
88
+ )
89
+ return _response.data
90
+
91
+ def create_presentation(
92
+ self,
93
+ subscription_id: str,
94
+ *,
95
+ due_date: typing.Optional[dt.datetime] = OMIT,
96
+ amount: typing.Optional[SubscriptionAmount] = OMIT,
97
+ merchant_presentation_reference: typing.Optional[str] = OMIT,
98
+ request_options: typing.Optional[RequestOptions] = None,
99
+ ) -> CreatePresentationResponse:
100
+ """
101
+ Creates a new presentation (mandate debit request) against an
102
+ active subscription. Presentations represent scheduled debit
103
+ requests raised against a customer mandate.
104
+
105
+ Parameters
106
+ ----------
107
+ subscription_id : str
108
+ Unique identifier for the subscription.
109
+
110
+ due_date : typing.Optional[dt.datetime]
111
+ The ISO 8601 UTC Timestamp when the payment is due.
112
+
113
+ amount : typing.Optional[SubscriptionAmount]
114
+
115
+ merchant_presentation_reference : typing.Optional[str]
116
+ Unique identifier of the merchant presentation reference.
117
+
118
+ request_options : typing.Optional[RequestOptions]
119
+ Request-specific configuration.
120
+
121
+ Returns
122
+ -------
123
+ CreatePresentationResponse
124
+ Presentation created successfully.
125
+
126
+ Examples
127
+ --------
128
+ from pinelabs import PinelabsApi
129
+
130
+ client = PinelabsApi(
131
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
132
+ request_id="YOUR_REQUEST_ID",
133
+ token="YOUR_TOKEN",
134
+ )
135
+ client.subscriptions_presentations.create_presentation(
136
+ subscription_id="v1-sub-250612062122-aa-3HLXL5",
137
+ )
138
+ """
139
+ _response = self._raw_client.create_presentation(
140
+ subscription_id,
141
+ due_date=due_date,
142
+ amount=amount,
143
+ merchant_presentation_reference=merchant_presentation_reference,
144
+ request_options=request_options,
145
+ )
146
+ return _response.data
147
+
148
+ def get_presentation_by_id(
149
+ self, presentation_id: str, *, request_options: typing.Optional[RequestOptions] = None
150
+ ) -> PresentationDetail:
151
+ """
152
+ Retrieves a specific presentation by its presentation ID.
153
+
154
+ Parameters
155
+ ----------
156
+ presentation_id : str
157
+ Unique identifier for the presentation.
158
+
159
+ request_options : typing.Optional[RequestOptions]
160
+ Request-specific configuration.
161
+
162
+ Returns
163
+ -------
164
+ PresentationDetail
165
+ Presentation retrieved successfully.
166
+
167
+ Examples
168
+ --------
169
+ from pinelabs import PinelabsApi
170
+
171
+ client = PinelabsApi(
172
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
173
+ request_id="YOUR_REQUEST_ID",
174
+ token="YOUR_TOKEN",
175
+ )
176
+ client.subscriptions_presentations.get_presentation_by_id(
177
+ presentation_id="v1-bil-250911093822-aa-i37gSm",
178
+ )
179
+ """
180
+ _response = self._raw_client.get_presentation_by_id(presentation_id, request_options=request_options)
181
+ return _response.data
182
+
183
+ def delete_presentation(
184
+ self, presentation_id: str, *, request_options: typing.Optional[RequestOptions] = None
185
+ ) -> None:
186
+ """
187
+ Deletes a presentation by its presentation ID.
188
+
189
+ Parameters
190
+ ----------
191
+ presentation_id : str
192
+ Unique identifier for the presentation.
193
+
194
+ request_options : typing.Optional[RequestOptions]
195
+ Request-specific configuration.
196
+
197
+ Returns
198
+ -------
199
+ None
200
+
201
+ Examples
202
+ --------
203
+ from pinelabs import PinelabsApi
204
+
205
+ client = PinelabsApi(
206
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
207
+ request_id="YOUR_REQUEST_ID",
208
+ token="YOUR_TOKEN",
209
+ )
210
+ client.subscriptions_presentations.delete_presentation(
211
+ presentation_id="v1-bil-250911093822-aa-i37gSm",
212
+ )
213
+ """
214
+ _response = self._raw_client.delete_presentation(presentation_id, request_options=request_options)
215
+ return _response.data
216
+
217
+ def get_presentation_by_merchant_reference(
218
+ self, merchant_presentation_reference: str, *, request_options: typing.Optional[RequestOptions] = None
219
+ ) -> PresentationDetail:
220
+ """
221
+ Retrieves a specific presentation by the merchant presentation reference.
222
+
223
+ Parameters
224
+ ----------
225
+ merchant_presentation_reference : str
226
+ Unique identifier of the merchant presentation reference.
227
+
228
+ request_options : typing.Optional[RequestOptions]
229
+ Request-specific configuration.
230
+
231
+ Returns
232
+ -------
233
+ PresentationDetail
234
+ Presentation retrieved successfully.
235
+
236
+ Examples
237
+ --------
238
+ from pinelabs import PinelabsApi
239
+
240
+ client = PinelabsApi(
241
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
242
+ request_id="YOUR_REQUEST_ID",
243
+ token="YOUR_TOKEN",
244
+ )
245
+ client.subscriptions_presentations.get_presentation_by_merchant_reference(
246
+ merchant_presentation_reference="z1B3pu003",
247
+ )
248
+ """
249
+ _response = self._raw_client.get_presentation_by_merchant_reference(
250
+ merchant_presentation_reference, request_options=request_options
251
+ )
252
+ return _response.data
253
+
254
+ def send_subscription_notification(
255
+ self,
256
+ *,
257
+ subscription_id: str,
258
+ due_date: dt.datetime,
259
+ amount: SubscriptionAmount,
260
+ merchant_presentation_reference: str,
261
+ is_merchant_retry: typing.Optional[bool] = OMIT,
262
+ request_options: typing.Optional[RequestOptions] = None,
263
+ ) -> SubscriptionNotificationResponse:
264
+ """
265
+ Sends a pre-debit notification for a subscription. This is used
266
+ when the merchant controls the PDN (Pre-Debit Notification) process.
267
+
268
+ Parameters
269
+ ----------
270
+ subscription_id : str
271
+ Unique identifier for the subscription.
272
+
273
+ due_date : dt.datetime
274
+ The ISO 8601 UTC Timestamp when the payment is due.
275
+
276
+ amount : SubscriptionAmount
277
+
278
+ merchant_presentation_reference : str
279
+ **Idempotency Key.** Unique identifier of the merchant presentation reference. Duplicate requests with the same `merchant_presentation_reference` will return the existing presentation instead of creating a new one.
280
+
281
+ is_merchant_retry : typing.Optional[bool]
282
+ Indicates whether the merchant controls the retry process.
283
+
284
+ request_options : typing.Optional[RequestOptions]
285
+ Request-specific configuration.
286
+
287
+ Returns
288
+ -------
289
+ SubscriptionNotificationResponse
290
+ Notification sent successfully.
291
+
292
+ Examples
293
+ --------
294
+ import datetime
295
+
296
+ from pinelabs import PinelabsApi, SubscriptionAmount
297
+
298
+ client = PinelabsApi(
299
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
300
+ request_id="YOUR_REQUEST_ID",
301
+ token="YOUR_TOKEN",
302
+ )
303
+ client.subscriptions_presentations.send_subscription_notification(
304
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
305
+ due_date=datetime.datetime.fromisoformat(
306
+ "2024-03-15 10:30:00+00:00",
307
+ ),
308
+ amount=SubscriptionAmount(
309
+ value=1000,
310
+ currency="INR",
311
+ ),
312
+ merchant_presentation_reference="1234567890",
313
+ )
314
+ """
315
+ _response = self._raw_client.send_subscription_notification(
316
+ subscription_id=subscription_id,
317
+ due_date=due_date,
318
+ amount=amount,
319
+ merchant_presentation_reference=merchant_presentation_reference,
320
+ is_merchant_retry=is_merchant_retry,
321
+ request_options=request_options,
322
+ )
323
+ return _response.data
324
+
325
+ def create_debit(
326
+ self,
327
+ *,
328
+ presentation_id: typing.Optional[str] = OMIT,
329
+ merchant_presentation_reference: typing.Optional[str] = OMIT,
330
+ is_merchant_retry: typing.Optional[str] = OMIT,
331
+ request_options: typing.Optional[RequestOptions] = None,
332
+ ) -> CreateDebitResponse:
333
+ """
334
+ Executes a debit (payment collection) against a subscription.
335
+ Use this when the PDN (Pre-Debit Notification) is controlled by you.
336
+
337
+ Parameters
338
+ ----------
339
+ presentation_id : typing.Optional[str]
340
+ Presentation ID from Pine Labs.
341
+
342
+ merchant_presentation_reference : typing.Optional[str]
343
+ Merchant presentation reference.
344
+
345
+ is_merchant_retry : typing.Optional[str]
346
+ Set to true to control retry process yourself.
347
+
348
+ request_options : typing.Optional[RequestOptions]
349
+ Request-specific configuration.
350
+
351
+ Returns
352
+ -------
353
+ CreateDebitResponse
354
+ Debit created successfully.
355
+
356
+ Examples
357
+ --------
358
+ from pinelabs import PinelabsApi
359
+
360
+ client = PinelabsApi(
361
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
362
+ request_id="YOUR_REQUEST_ID",
363
+ token="YOUR_TOKEN",
364
+ )
365
+ client.subscriptions_presentations.create_debit()
366
+ """
367
+ _response = self._raw_client.create_debit(
368
+ presentation_id=presentation_id,
369
+ merchant_presentation_reference=merchant_presentation_reference,
370
+ is_merchant_retry=is_merchant_retry,
371
+ request_options=request_options,
372
+ )
373
+ return _response.data
374
+
375
+ def create_merchant_retry(
376
+ self,
377
+ *,
378
+ presentation_id: typing.Optional[str] = OMIT,
379
+ merchant_presentation_reference: typing.Optional[str] = OMIT,
380
+ request_options: typing.Optional[RequestOptions] = None,
381
+ ) -> CreateDebitResponse:
382
+ """
383
+ Retries mandate execution for a subscription when it is in
384
+ DEBIT FAILED stage. Up to 3 retry attempts are allowed.
385
+ Retries can be made only if is_merchant_retry is set to true
386
+ in the Create Debit API.
387
+
388
+ Parameters
389
+ ----------
390
+ presentation_id : typing.Optional[str]
391
+ Presentation ID from Pine Labs.
392
+
393
+ merchant_presentation_reference : typing.Optional[str]
394
+ Merchant presentation reference.
395
+
396
+ request_options : typing.Optional[RequestOptions]
397
+ Request-specific configuration.
398
+
399
+ Returns
400
+ -------
401
+ CreateDebitResponse
402
+ Retry initiated 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_presentations.create_merchant_retry()
414
+ """
415
+ _response = self._raw_client.create_merchant_retry(
416
+ presentation_id=presentation_id,
417
+ merchant_presentation_reference=merchant_presentation_reference,
418
+ request_options=request_options,
419
+ )
420
+ return _response.data
421
+
422
+
423
+ class AsyncSubscriptionsPresentationsClient:
424
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
425
+ self._raw_client = AsyncRawSubscriptionsPresentationsClient(client_wrapper=client_wrapper)
426
+
427
+ @property
428
+ def with_raw_response(self) -> AsyncRawSubscriptionsPresentationsClient:
429
+ """
430
+ Retrieves a raw implementation of this client that returns raw responses.
431
+
432
+ Returns
433
+ -------
434
+ AsyncRawSubscriptionsPresentationsClient
435
+ """
436
+ return self._raw_client
437
+
438
+ async def list_presentations_by_subscription(
439
+ self,
440
+ subscription_id: str,
441
+ *,
442
+ size: typing.Optional[str] = None,
443
+ page: typing.Optional[str] = None,
444
+ sort: typing.Optional[str] = None,
445
+ request_options: typing.Optional[RequestOptions] = None,
446
+ ) -> ListPresentationsResponse:
447
+ """
448
+ Retrieves all presentations associated with a specific subscription.
449
+ Supports pagination.
450
+
451
+ Parameters
452
+ ----------
453
+ subscription_id : str
454
+ Unique identifier for the subscription.
455
+
456
+ size : typing.Optional[str]
457
+ Number of items per page.
458
+
459
+ page : typing.Optional[str]
460
+ Page number.
461
+
462
+ sort : typing.Optional[str]
463
+ Sort field and direction.
464
+
465
+ request_options : typing.Optional[RequestOptions]
466
+ Request-specific configuration.
467
+
468
+ Returns
469
+ -------
470
+ ListPresentationsResponse
471
+ Presentations retrieved successfully.
472
+
473
+ Examples
474
+ --------
475
+ import asyncio
476
+
477
+ from pinelabs import AsyncPinelabsApi
478
+
479
+ client = AsyncPinelabsApi(
480
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
481
+ request_id="YOUR_REQUEST_ID",
482
+ token="YOUR_TOKEN",
483
+ )
484
+
485
+
486
+ async def main() -> None:
487
+ await client.subscriptions_presentations.list_presentations_by_subscription(
488
+ subscription_id="v1-sub-250916121532-aa-lKR1S1",
489
+ size="10",
490
+ page="1",
491
+ sort="cycleId,desc",
492
+ )
493
+
494
+
495
+ asyncio.run(main())
496
+ """
497
+ _response = await self._raw_client.list_presentations_by_subscription(
498
+ subscription_id, size=size, page=page, sort=sort, request_options=request_options
499
+ )
500
+ return _response.data
501
+
502
+ async def create_presentation(
503
+ self,
504
+ subscription_id: str,
505
+ *,
506
+ due_date: typing.Optional[dt.datetime] = OMIT,
507
+ amount: typing.Optional[SubscriptionAmount] = OMIT,
508
+ merchant_presentation_reference: typing.Optional[str] = OMIT,
509
+ request_options: typing.Optional[RequestOptions] = None,
510
+ ) -> CreatePresentationResponse:
511
+ """
512
+ Creates a new presentation (mandate debit request) against an
513
+ active subscription. Presentations represent scheduled debit
514
+ requests raised against a customer mandate.
515
+
516
+ Parameters
517
+ ----------
518
+ subscription_id : str
519
+ Unique identifier for the subscription.
520
+
521
+ due_date : typing.Optional[dt.datetime]
522
+ The ISO 8601 UTC Timestamp when the payment is due.
523
+
524
+ amount : typing.Optional[SubscriptionAmount]
525
+
526
+ merchant_presentation_reference : typing.Optional[str]
527
+ Unique identifier of the merchant presentation reference.
528
+
529
+ request_options : typing.Optional[RequestOptions]
530
+ Request-specific configuration.
531
+
532
+ Returns
533
+ -------
534
+ CreatePresentationResponse
535
+ Presentation created successfully.
536
+
537
+ Examples
538
+ --------
539
+ import asyncio
540
+
541
+ from pinelabs import AsyncPinelabsApi
542
+
543
+ client = AsyncPinelabsApi(
544
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
545
+ request_id="YOUR_REQUEST_ID",
546
+ token="YOUR_TOKEN",
547
+ )
548
+
549
+
550
+ async def main() -> None:
551
+ await client.subscriptions_presentations.create_presentation(
552
+ subscription_id="v1-sub-250612062122-aa-3HLXL5",
553
+ )
554
+
555
+
556
+ asyncio.run(main())
557
+ """
558
+ _response = await self._raw_client.create_presentation(
559
+ subscription_id,
560
+ due_date=due_date,
561
+ amount=amount,
562
+ merchant_presentation_reference=merchant_presentation_reference,
563
+ request_options=request_options,
564
+ )
565
+ return _response.data
566
+
567
+ async def get_presentation_by_id(
568
+ self, presentation_id: str, *, request_options: typing.Optional[RequestOptions] = None
569
+ ) -> PresentationDetail:
570
+ """
571
+ Retrieves a specific presentation by its presentation ID.
572
+
573
+ Parameters
574
+ ----------
575
+ presentation_id : str
576
+ Unique identifier for the presentation.
577
+
578
+ request_options : typing.Optional[RequestOptions]
579
+ Request-specific configuration.
580
+
581
+ Returns
582
+ -------
583
+ PresentationDetail
584
+ Presentation retrieved successfully.
585
+
586
+ Examples
587
+ --------
588
+ import asyncio
589
+
590
+ from pinelabs import AsyncPinelabsApi
591
+
592
+ client = AsyncPinelabsApi(
593
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
594
+ request_id="YOUR_REQUEST_ID",
595
+ token="YOUR_TOKEN",
596
+ )
597
+
598
+
599
+ async def main() -> None:
600
+ await client.subscriptions_presentations.get_presentation_by_id(
601
+ presentation_id="v1-bil-250911093822-aa-i37gSm",
602
+ )
603
+
604
+
605
+ asyncio.run(main())
606
+ """
607
+ _response = await self._raw_client.get_presentation_by_id(presentation_id, request_options=request_options)
608
+ return _response.data
609
+
610
+ async def delete_presentation(
611
+ self, presentation_id: str, *, request_options: typing.Optional[RequestOptions] = None
612
+ ) -> None:
613
+ """
614
+ Deletes a presentation by its presentation ID.
615
+
616
+ Parameters
617
+ ----------
618
+ presentation_id : str
619
+ Unique identifier for the presentation.
620
+
621
+ request_options : typing.Optional[RequestOptions]
622
+ Request-specific configuration.
623
+
624
+ Returns
625
+ -------
626
+ None
627
+
628
+ Examples
629
+ --------
630
+ import asyncio
631
+
632
+ from pinelabs import AsyncPinelabsApi
633
+
634
+ client = AsyncPinelabsApi(
635
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
636
+ request_id="YOUR_REQUEST_ID",
637
+ token="YOUR_TOKEN",
638
+ )
639
+
640
+
641
+ async def main() -> None:
642
+ await client.subscriptions_presentations.delete_presentation(
643
+ presentation_id="v1-bil-250911093822-aa-i37gSm",
644
+ )
645
+
646
+
647
+ asyncio.run(main())
648
+ """
649
+ _response = await self._raw_client.delete_presentation(presentation_id, request_options=request_options)
650
+ return _response.data
651
+
652
+ async def get_presentation_by_merchant_reference(
653
+ self, merchant_presentation_reference: str, *, request_options: typing.Optional[RequestOptions] = None
654
+ ) -> PresentationDetail:
655
+ """
656
+ Retrieves a specific presentation by the merchant presentation reference.
657
+
658
+ Parameters
659
+ ----------
660
+ merchant_presentation_reference : str
661
+ Unique identifier of the merchant presentation reference.
662
+
663
+ request_options : typing.Optional[RequestOptions]
664
+ Request-specific configuration.
665
+
666
+ Returns
667
+ -------
668
+ PresentationDetail
669
+ Presentation retrieved successfully.
670
+
671
+ Examples
672
+ --------
673
+ import asyncio
674
+
675
+ from pinelabs import AsyncPinelabsApi
676
+
677
+ client = AsyncPinelabsApi(
678
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
679
+ request_id="YOUR_REQUEST_ID",
680
+ token="YOUR_TOKEN",
681
+ )
682
+
683
+
684
+ async def main() -> None:
685
+ await client.subscriptions_presentations.get_presentation_by_merchant_reference(
686
+ merchant_presentation_reference="z1B3pu003",
687
+ )
688
+
689
+
690
+ asyncio.run(main())
691
+ """
692
+ _response = await self._raw_client.get_presentation_by_merchant_reference(
693
+ merchant_presentation_reference, request_options=request_options
694
+ )
695
+ return _response.data
696
+
697
+ async def send_subscription_notification(
698
+ self,
699
+ *,
700
+ subscription_id: str,
701
+ due_date: dt.datetime,
702
+ amount: SubscriptionAmount,
703
+ merchant_presentation_reference: str,
704
+ is_merchant_retry: typing.Optional[bool] = OMIT,
705
+ request_options: typing.Optional[RequestOptions] = None,
706
+ ) -> SubscriptionNotificationResponse:
707
+ """
708
+ Sends a pre-debit notification for a subscription. This is used
709
+ when the merchant controls the PDN (Pre-Debit Notification) process.
710
+
711
+ Parameters
712
+ ----------
713
+ subscription_id : str
714
+ Unique identifier for the subscription.
715
+
716
+ due_date : dt.datetime
717
+ The ISO 8601 UTC Timestamp when the payment is due.
718
+
719
+ amount : SubscriptionAmount
720
+
721
+ merchant_presentation_reference : str
722
+ **Idempotency Key.** Unique identifier of the merchant presentation reference. Duplicate requests with the same `merchant_presentation_reference` will return the existing presentation instead of creating a new one.
723
+
724
+ is_merchant_retry : typing.Optional[bool]
725
+ Indicates whether the merchant controls the retry process.
726
+
727
+ request_options : typing.Optional[RequestOptions]
728
+ Request-specific configuration.
729
+
730
+ Returns
731
+ -------
732
+ SubscriptionNotificationResponse
733
+ Notification sent successfully.
734
+
735
+ Examples
736
+ --------
737
+ import asyncio
738
+ import datetime
739
+
740
+ from pinelabs import AsyncPinelabsApi, SubscriptionAmount
741
+
742
+ client = AsyncPinelabsApi(
743
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
744
+ request_id="YOUR_REQUEST_ID",
745
+ token="YOUR_TOKEN",
746
+ )
747
+
748
+
749
+ async def main() -> None:
750
+ await client.subscriptions_presentations.send_subscription_notification(
751
+ subscription_id="v1-sub-4405071524-aa-qlAtAf",
752
+ due_date=datetime.datetime.fromisoformat(
753
+ "2024-03-15 10:30:00+00:00",
754
+ ),
755
+ amount=SubscriptionAmount(
756
+ value=1000,
757
+ currency="INR",
758
+ ),
759
+ merchant_presentation_reference="1234567890",
760
+ )
761
+
762
+
763
+ asyncio.run(main())
764
+ """
765
+ _response = await self._raw_client.send_subscription_notification(
766
+ subscription_id=subscription_id,
767
+ due_date=due_date,
768
+ amount=amount,
769
+ merchant_presentation_reference=merchant_presentation_reference,
770
+ is_merchant_retry=is_merchant_retry,
771
+ request_options=request_options,
772
+ )
773
+ return _response.data
774
+
775
+ async def create_debit(
776
+ self,
777
+ *,
778
+ presentation_id: typing.Optional[str] = OMIT,
779
+ merchant_presentation_reference: typing.Optional[str] = OMIT,
780
+ is_merchant_retry: typing.Optional[str] = OMIT,
781
+ request_options: typing.Optional[RequestOptions] = None,
782
+ ) -> CreateDebitResponse:
783
+ """
784
+ Executes a debit (payment collection) against a subscription.
785
+ Use this when the PDN (Pre-Debit Notification) is controlled by you.
786
+
787
+ Parameters
788
+ ----------
789
+ presentation_id : typing.Optional[str]
790
+ Presentation ID from Pine Labs.
791
+
792
+ merchant_presentation_reference : typing.Optional[str]
793
+ Merchant presentation reference.
794
+
795
+ is_merchant_retry : typing.Optional[str]
796
+ Set to true to control retry process yourself.
797
+
798
+ request_options : typing.Optional[RequestOptions]
799
+ Request-specific configuration.
800
+
801
+ Returns
802
+ -------
803
+ CreateDebitResponse
804
+ Debit created successfully.
805
+
806
+ Examples
807
+ --------
808
+ import asyncio
809
+
810
+ from pinelabs import AsyncPinelabsApi
811
+
812
+ client = AsyncPinelabsApi(
813
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
814
+ request_id="YOUR_REQUEST_ID",
815
+ token="YOUR_TOKEN",
816
+ )
817
+
818
+
819
+ async def main() -> None:
820
+ await client.subscriptions_presentations.create_debit()
821
+
822
+
823
+ asyncio.run(main())
824
+ """
825
+ _response = await self._raw_client.create_debit(
826
+ presentation_id=presentation_id,
827
+ merchant_presentation_reference=merchant_presentation_reference,
828
+ is_merchant_retry=is_merchant_retry,
829
+ request_options=request_options,
830
+ )
831
+ return _response.data
832
+
833
+ async def create_merchant_retry(
834
+ self,
835
+ *,
836
+ presentation_id: typing.Optional[str] = OMIT,
837
+ merchant_presentation_reference: typing.Optional[str] = OMIT,
838
+ request_options: typing.Optional[RequestOptions] = None,
839
+ ) -> CreateDebitResponse:
840
+ """
841
+ Retries mandate execution for a subscription when it is in
842
+ DEBIT FAILED stage. Up to 3 retry attempts are allowed.
843
+ Retries can be made only if is_merchant_retry is set to true
844
+ in the Create Debit API.
845
+
846
+ Parameters
847
+ ----------
848
+ presentation_id : typing.Optional[str]
849
+ Presentation ID from Pine Labs.
850
+
851
+ merchant_presentation_reference : typing.Optional[str]
852
+ Merchant presentation reference.
853
+
854
+ request_options : typing.Optional[RequestOptions]
855
+ Request-specific configuration.
856
+
857
+ Returns
858
+ -------
859
+ CreateDebitResponse
860
+ Retry initiated successfully.
861
+
862
+ Examples
863
+ --------
864
+ import asyncio
865
+
866
+ from pinelabs import AsyncPinelabsApi
867
+
868
+ client = AsyncPinelabsApi(
869
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
870
+ request_id="YOUR_REQUEST_ID",
871
+ token="YOUR_TOKEN",
872
+ )
873
+
874
+
875
+ async def main() -> None:
876
+ await client.subscriptions_presentations.create_merchant_retry()
877
+
878
+
879
+ asyncio.run(main())
880
+ """
881
+ _response = await self._raw_client.create_merchant_retry(
882
+ presentation_id=presentation_id,
883
+ merchant_presentation_reference=merchant_presentation_reference,
884
+ request_options=request_options,
885
+ )
886
+ return _response.data