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,1007 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
+ from ..core.request_options import RequestOptions
7
+ from ..types.amount import Amount
8
+ from ..types.downpayment_details_response import DownpaymentDetailsResponse
9
+ from ..types.imei_product import ImeiProduct
10
+ from ..types.offer_discovery_response import OfferDiscoveryResponse
11
+ from ..types.offer_validation_response import OfferValidationResponse
12
+ from ..types.product_detail import ProductDetail
13
+ from .raw_client import AsyncRawAffordabilitySuiteClient, RawAffordabilitySuiteClient
14
+ from .types.downpayment_details_request_issuer import DownpaymentDetailsRequestIssuer
15
+ from .types.imei_validation_request_request_type import ImeiValidationRequestRequestType
16
+ from .types.offer_discovery_cardless_request_payment_option import OfferDiscoveryCardlessRequestPaymentOption
17
+ from .types.offer_discovery_request_cart_coupon_discount_amount import OfferDiscoveryRequestCartCouponDiscountAmount
18
+ from .types.offer_discovery_request_customer_details import OfferDiscoveryRequestCustomerDetails
19
+ from .types.offer_discovery_request_downpayment_details import OfferDiscoveryRequestDownpaymentDetails
20
+ from .types.offer_discovery_request_issuer import OfferDiscoveryRequestIssuer
21
+ from .types.offer_discovery_request_order_amount import OfferDiscoveryRequestOrderAmount
22
+ from .types.offer_discovery_request_payment_options import OfferDiscoveryRequestPaymentOptions
23
+ from .types.offer_discovery_request_product_details_item import OfferDiscoveryRequestProductDetailsItem
24
+ from .types.offer_validation_request_customer_details import OfferValidationRequestCustomerDetails
25
+ from .types.offer_validation_request_offer_data import OfferValidationRequestOfferData
26
+ from .types.offer_validation_request_order_amount import OfferValidationRequestOrderAmount
27
+ from .types.offer_validation_request_payment_amount import OfferValidationRequestPaymentAmount
28
+ from .types.offer_validation_request_payment_option import OfferValidationRequestPaymentOption
29
+
30
+ # this is used as the default value for optional parameters
31
+ OMIT = typing.cast(typing.Any, ...)
32
+
33
+
34
+ class AffordabilitySuiteClient:
35
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
36
+ self._raw_client = RawAffordabilitySuiteClient(client_wrapper=client_wrapper)
37
+
38
+ @property
39
+ def with_raw_response(self) -> RawAffordabilitySuiteClient:
40
+ """
41
+ Retrieves a raw implementation of this client that returns raw responses.
42
+
43
+ Returns
44
+ -------
45
+ RawAffordabilitySuiteClient
46
+ """
47
+ return self._raw_client
48
+
49
+ def create_offer_discovery(
50
+ self,
51
+ *,
52
+ order_amount: OfferDiscoveryRequestOrderAmount,
53
+ accept_encoding: typing.Optional[str] = None,
54
+ product_details: typing.Optional[typing.Sequence[OfferDiscoveryRequestProductDetailsItem]] = OMIT,
55
+ cart_coupon_discount_amount: typing.Optional[OfferDiscoveryRequestCartCouponDiscountAmount] = OMIT,
56
+ issuer: typing.Optional[OfferDiscoveryRequestIssuer] = OMIT,
57
+ downpayment_details: typing.Optional[OfferDiscoveryRequestDownpaymentDetails] = OMIT,
58
+ payment_options: typing.Optional[OfferDiscoveryRequestPaymentOptions] = OMIT,
59
+ customer_details: typing.Optional[OfferDiscoveryRequestCustomerDetails] = OMIT,
60
+ request_options: typing.Optional[RequestOptions] = None,
61
+ ) -> OfferDiscoveryResponse:
62
+ """
63
+ Use this API to discover offers available on cart amount or product and calculate the EMI.
64
+
65
+ Parameters
66
+ ----------
67
+ order_amount : OfferDiscoveryRequestOrderAmount
68
+ An object that contains the transaction amount details.
69
+
70
+ accept_encoding : typing.Optional[str]
71
+ Type of content-encoding supported. Accepted value: `gzip`
72
+
73
+ product_details : typing.Optional[typing.Sequence[OfferDiscoveryRequestProductDetailsItem]]
74
+ Mandatory for Brand EMI. An object that contains product details.
75
+
76
+ cart_coupon_discount_amount : typing.Optional[OfferDiscoveryRequestCartCouponDiscountAmount]
77
+ An object that contains the cart coupon discount amount details.
78
+
79
+ issuer : typing.Optional[OfferDiscoveryRequestIssuer]
80
+ An object that contains the issuer details.
81
+
82
+ downpayment_details : typing.Optional[OfferDiscoveryRequestDownpaymentDetails]
83
+ Mandatory for EMI with Downpayment. An object that contains the downpayment amount details.
84
+
85
+ payment_options : typing.Optional[OfferDiscoveryRequestPaymentOptions]
86
+ An object that contains the details of the payment options. You can use either `card_details` or `card_token_details` as a payment option.
87
+
88
+ customer_details : typing.Optional[OfferDiscoveryRequestCustomerDetails]
89
+ An object that contains the customer details.
90
+
91
+ request_options : typing.Optional[RequestOptions]
92
+ Request-specific configuration.
93
+
94
+ Returns
95
+ -------
96
+ OfferDiscoveryResponse
97
+ 200
98
+
99
+ Examples
100
+ --------
101
+ from pinelabs import PinelabsApi
102
+ from pinelabs.affordability_suite import (
103
+ OfferDiscoveryRequestIssuer,
104
+ OfferDiscoveryRequestOrderAmount,
105
+ )
106
+
107
+ client = PinelabsApi(
108
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
109
+ request_id="YOUR_REQUEST_ID",
110
+ token="YOUR_TOKEN",
111
+ )
112
+ client.affordability_suite.create_offer_discovery(
113
+ order_amount=OfferDiscoveryRequestOrderAmount(
114
+ value=1200000,
115
+ currency="INR",
116
+ ),
117
+ issuer=OfferDiscoveryRequestIssuer(
118
+ bin="60100000",
119
+ ),
120
+ )
121
+ """
122
+ _response = self._raw_client.create_offer_discovery(
123
+ order_amount=order_amount,
124
+ accept_encoding=accept_encoding,
125
+ product_details=product_details,
126
+ cart_coupon_discount_amount=cart_coupon_discount_amount,
127
+ issuer=issuer,
128
+ downpayment_details=downpayment_details,
129
+ payment_options=payment_options,
130
+ customer_details=customer_details,
131
+ request_options=request_options,
132
+ )
133
+ return _response.data
134
+
135
+ def create_cardless_offer_discovery(
136
+ self,
137
+ *,
138
+ order_amount: Amount,
139
+ payment_option: OfferDiscoveryCardlessRequestPaymentOption,
140
+ product_details: typing.Optional[typing.Sequence[ProductDetail]] = OMIT,
141
+ cart_coupon_discount_amount: typing.Optional[Amount] = OMIT,
142
+ request_options: typing.Optional[RequestOptions] = None,
143
+ ) -> OfferDiscoveryResponse:
144
+ """
145
+ Discover available cardless EMI offers for a given order amount and product.
146
+ Used when customer does not use a card for EMI (e.g. BNPL-style cardless EMI).
147
+
148
+ Parameters
149
+ ----------
150
+ order_amount : Amount
151
+
152
+ payment_option : OfferDiscoveryCardlessRequestPaymentOption
153
+ An object that contains details related to the payment option.
154
+
155
+ product_details : typing.Optional[typing.Sequence[ProductDetail]]
156
+ Mandatory for Brand EMI. Contains product details.
157
+
158
+ cart_coupon_discount_amount : typing.Optional[Amount]
159
+
160
+ request_options : typing.Optional[RequestOptions]
161
+ Request-specific configuration.
162
+
163
+ Returns
164
+ -------
165
+ OfferDiscoveryResponse
166
+ Cardless offers discovered successfully.
167
+
168
+ Examples
169
+ --------
170
+ from pinelabs import Amount, PinelabsApi
171
+ from pinelabs.affordability_suite import (
172
+ OfferDiscoveryCardlessRequestPaymentOption,
173
+ OfferDiscoveryCardlessRequestPaymentOptionCardlessDetails,
174
+ )
175
+
176
+ client = PinelabsApi(
177
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
178
+ request_id="YOUR_REQUEST_ID",
179
+ token="YOUR_TOKEN",
180
+ )
181
+ client.affordability_suite.create_cardless_offer_discovery(
182
+ order_amount=Amount(
183
+ value=50000,
184
+ currency="INR",
185
+ ),
186
+ payment_option=OfferDiscoveryCardlessRequestPaymentOption(
187
+ cardless_details=OfferDiscoveryCardlessRequestPaymentOptionCardlessDetails(
188
+ pan_number="234A123883",
189
+ registered_mobile_number="9876543210",
190
+ ),
191
+ ),
192
+ )
193
+ """
194
+ _response = self._raw_client.create_cardless_offer_discovery(
195
+ order_amount=order_amount,
196
+ payment_option=payment_option,
197
+ product_details=product_details,
198
+ cart_coupon_discount_amount=cart_coupon_discount_amount,
199
+ request_options=request_options,
200
+ )
201
+ return _response.data
202
+
203
+ def create_down_payment_details(
204
+ self,
205
+ *,
206
+ order_amount: Amount,
207
+ product_details: typing.Optional[typing.Sequence[ProductDetail]] = OMIT,
208
+ cart_coupon_discount_amount: typing.Optional[Amount] = OMIT,
209
+ issuer: typing.Optional[DownpaymentDetailsRequestIssuer] = OMIT,
210
+ request_options: typing.Optional[RequestOptions] = None,
211
+ ) -> DownpaymentDetailsResponse:
212
+ """
213
+ Retrieve applicable down payment range and EMI repayment details
214
+ based on order amount and issuer BIN.
215
+
216
+ Parameters
217
+ ----------
218
+ order_amount : Amount
219
+
220
+ product_details : typing.Optional[typing.Sequence[ProductDetail]]
221
+ Mandatory for Brand EMI. Contains product details.
222
+
223
+ cart_coupon_discount_amount : typing.Optional[Amount]
224
+
225
+ issuer : typing.Optional[DownpaymentDetailsRequestIssuer]
226
+ Issuer identification details.
227
+
228
+ request_options : typing.Optional[RequestOptions]
229
+ Request-specific configuration.
230
+
231
+ Returns
232
+ -------
233
+ DownpaymentDetailsResponse
234
+ Down payment details retrieved successfully.
235
+
236
+ Examples
237
+ --------
238
+ from pinelabs import Amount, PinelabsApi
239
+
240
+ client = PinelabsApi(
241
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
242
+ request_id="YOUR_REQUEST_ID",
243
+ token="YOUR_TOKEN",
244
+ )
245
+ client.affordability_suite.create_down_payment_details(
246
+ order_amount=Amount(
247
+ value=50000,
248
+ currency="INR",
249
+ ),
250
+ )
251
+ """
252
+ _response = self._raw_client.create_down_payment_details(
253
+ order_amount=order_amount,
254
+ product_details=product_details,
255
+ cart_coupon_discount_amount=cart_coupon_discount_amount,
256
+ issuer=issuer,
257
+ request_options=request_options,
258
+ )
259
+ return _response.data
260
+
261
+ def offer_validation_create(
262
+ self,
263
+ *,
264
+ payment_method: str,
265
+ order_amount: OfferValidationRequestOrderAmount,
266
+ payment_amount: OfferValidationRequestPaymentAmount,
267
+ payment_option: OfferValidationRequestPaymentOption,
268
+ offer_data: OfferValidationRequestOfferData,
269
+ accept_encoding: typing.Optional[str] = None,
270
+ customer_details: typing.Optional[OfferValidationRequestCustomerDetails] = OMIT,
271
+ request_options: typing.Optional[RequestOptions] = None,
272
+ ) -> OfferValidationResponse:
273
+ """
274
+ Use this API for validating applied offers.
275
+
276
+ Parameters
277
+ ----------
278
+ payment_method : str
279
+ Type of payment method you want to use to accept a payment.<br><br>Accepted values:<ul><li>`CREDIT_EMI`</li><li>`DEBIT_EMI`</li><li>`CARDLESS_EMI`</ul></li>
280
+
281
+ order_amount : OfferValidationRequestOrderAmount
282
+ An object that contains order amount.
283
+
284
+ payment_amount : OfferValidationRequestPaymentAmount
285
+ An object that contains the payment amount details after the offer has been applied.<br><br>**Note**: Ensure you pass the `auth_amount` details. This `auth_amount` detail is returned through our Offer Discovery API response.
286
+
287
+ payment_option : OfferValidationRequestPaymentOption
288
+ An object that contains the details of the payment options.<br><br>You can use either `card_details` or `card_token_details` or `cardless_details` as a payment option. One object is mandatory to process the request.
289
+
290
+ offer_data : OfferValidationRequestOfferData
291
+ An object that contains details related to the offer.
292
+
293
+ accept_encoding : typing.Optional[str]
294
+ Type of content-encoding supported.<br><br>Accepted value: `gzip`
295
+
296
+ customer_details : typing.Optional[OfferValidationRequestCustomerDetails]
297
+ An object that contains details related to the customer.
298
+
299
+ request_options : typing.Optional[RequestOptions]
300
+ Request-specific configuration.
301
+
302
+ Returns
303
+ -------
304
+ OfferValidationResponse
305
+ 200
306
+
307
+ Examples
308
+ --------
309
+ from pinelabs import PinelabsApi
310
+ from pinelabs.affordability_suite import (
311
+ OfferValidationRequestOfferData,
312
+ OfferValidationRequestOfferDataOfferDetails,
313
+ OfferValidationRequestOfferDataOfferDetailsTenure,
314
+ OfferValidationRequestOfferDataOfferDetailsTenureAuthAmount,
315
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItem,
316
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemAfterDownpaymentReducedProductAmount,
317
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemDownpaymentAmount,
318
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemInterestAmount,
319
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemProductAmount,
320
+ OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetails,
321
+ OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetailsDownpaymentAmount,
322
+ OfferValidationRequestOfferDataOfferDetailsTenureInterestAmount,
323
+ OfferValidationRequestOfferDataOfferDetailsTenureLoanAmount,
324
+ OfferValidationRequestOfferDataOfferDetailsTenureMonthlyEmiAmount,
325
+ OfferValidationRequestOfferDataOfferDetailsTenureNetPaymentAmount,
326
+ OfferValidationRequestOfferDataOfferDetailsTenureTotalEmiAmount,
327
+ OfferValidationRequestOrderAmount,
328
+ OfferValidationRequestPaymentAmount,
329
+ OfferValidationRequestPaymentOption,
330
+ OfferValidationRequestPaymentOptionCardDetails,
331
+ )
332
+
333
+ client = PinelabsApi(
334
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
335
+ request_id="YOUR_REQUEST_ID",
336
+ token="YOUR_TOKEN",
337
+ )
338
+ client.affordability_suite.offer_validation_create(
339
+ payment_method="CREDIT_EMI",
340
+ order_amount=OfferValidationRequestOrderAmount(
341
+ value="value",
342
+ currency="INR",
343
+ ),
344
+ payment_amount=OfferValidationRequestPaymentAmount(
345
+ value="value",
346
+ currency="INR",
347
+ ),
348
+ payment_option=OfferValidationRequestPaymentOption(
349
+ card_details=OfferValidationRequestPaymentOptionCardDetails(
350
+ card_number="4000000040001000",
351
+ registered_mobile_number="9914152866",
352
+ ),
353
+ ),
354
+ offer_data=OfferValidationRequestOfferData(
355
+ offer_details=OfferValidationRequestOfferDataOfferDetails(
356
+ id="6",
357
+ name="HDFC CC",
358
+ display_name="HDFC BANK",
359
+ issuer_type="CC_BANK",
360
+ priority="priority",
361
+ tenure=OfferValidationRequestOfferDataOfferDetailsTenure(
362
+ tenure_id="6",
363
+ name="24 Months",
364
+ tenure_type="MONTH",
365
+ tenure_value=24,
366
+ issuer_offer_parameters="issuer_offer_parameters",
367
+ details=[
368
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItem(
369
+ product_code="xyz",
370
+ product_display_name="Redmi Note 13 5G",
371
+ product_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemProductAmount(
372
+ value="value",
373
+ currency="INR",
374
+ ),
375
+ brand_name="Xiaomi",
376
+ interest_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemInterestAmount(
377
+ value="value",
378
+ currency="INR",
379
+ ),
380
+ downpayment_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemDownpaymentAmount(
381
+ value="value",
382
+ currency="INR",
383
+ ),
384
+ after_downpayment_reduced_product_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemAfterDownpaymentReducedProductAmount(
385
+ value="value",
386
+ currency="INR",
387
+ ),
388
+ interest_rate="interest_rate",
389
+ bundle_id="BUNDLE_002_OE3",
390
+ )
391
+ ],
392
+ auth_amount=OfferValidationRequestOfferDataOfferDetailsTenureAuthAmount(
393
+ value="value",
394
+ currency="INR",
395
+ ),
396
+ loan_amount=OfferValidationRequestOfferDataOfferDetailsTenureLoanAmount(
397
+ value="value",
398
+ currency="INR",
399
+ ),
400
+ net_payment_amount=OfferValidationRequestOfferDataOfferDetailsTenureNetPaymentAmount(
401
+ value="value",
402
+ currency="INR",
403
+ ),
404
+ monthly_emi_amount=OfferValidationRequestOfferDataOfferDetailsTenureMonthlyEmiAmount(
405
+ value="value",
406
+ currency="INR",
407
+ ),
408
+ total_emi_amount=OfferValidationRequestOfferDataOfferDetailsTenureTotalEmiAmount(
409
+ value="value",
410
+ currency="INR",
411
+ ),
412
+ interest_amount=OfferValidationRequestOfferDataOfferDetailsTenureInterestAmount(
413
+ value="value",
414
+ currency="INR",
415
+ ),
416
+ interest_rate_percentage=16.0,
417
+ emi_type="STANDARD",
418
+ split_emi_display_name="Apple Live",
419
+ downpayment_details=OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetails(
420
+ downpayment_amount=OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetailsDownpaymentAmount(
421
+ value="value",
422
+ currency="INR",
423
+ ),
424
+ ),
425
+ ),
426
+ ),
427
+ ),
428
+ )
429
+ """
430
+ _response = self._raw_client.offer_validation_create(
431
+ payment_method=payment_method,
432
+ order_amount=order_amount,
433
+ payment_amount=payment_amount,
434
+ payment_option=payment_option,
435
+ offer_data=offer_data,
436
+ accept_encoding=accept_encoding,
437
+ customer_details=customer_details,
438
+ request_options=request_options,
439
+ )
440
+ return _response.data
441
+
442
+ def create_imei_validation(
443
+ self,
444
+ order_id: str,
445
+ *,
446
+ merchant_product_imei_reference: str,
447
+ request_type: ImeiValidationRequestRequestType,
448
+ products: typing.Sequence[ImeiProduct],
449
+ request_options: typing.Optional[RequestOptions] = None,
450
+ ) -> None:
451
+ """
452
+ Validate or block/unblock IMEI numbers for Brand EMI transactions.
453
+ Used to confirm the device is eligible for the selected EMI program.
454
+
455
+ Parameters
456
+ ----------
457
+ order_id : str
458
+ Unique Pine Labs order identifier.
459
+
460
+ merchant_product_imei_reference : str
461
+ **Idempotency Key.** Merchant product IMEI reference. Duplicate requests with the same `merchant_product_imei_reference` will return the existing result instead of creating a new one.
462
+
463
+ request_type : ImeiValidationRequestRequestType
464
+ IMEI request type.
465
+
466
+ products : typing.Sequence[ImeiProduct]
467
+ Array of product details for IMEI validation.
468
+
469
+ request_options : typing.Optional[RequestOptions]
470
+ Request-specific configuration.
471
+
472
+ Returns
473
+ -------
474
+ None
475
+
476
+ Examples
477
+ --------
478
+ from pinelabs import ImeiProduct, PinelabsApi
479
+
480
+ client = PinelabsApi(
481
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
482
+ request_id="YOUR_REQUEST_ID",
483
+ token="YOUR_TOKEN",
484
+ )
485
+ client.affordability_suite.create_imei_validation(
486
+ order_id="v1-5757575757-aa-hU1rUd",
487
+ merchant_product_imei_reference="merchant-ref-786",
488
+ request_type="BLOCKING",
489
+ products=[ImeiProduct()],
490
+ )
491
+ """
492
+ _response = self._raw_client.create_imei_validation(
493
+ order_id,
494
+ merchant_product_imei_reference=merchant_product_imei_reference,
495
+ request_type=request_type,
496
+ products=products,
497
+ request_options=request_options,
498
+ )
499
+ return _response.data
500
+
501
+
502
+ class AsyncAffordabilitySuiteClient:
503
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
504
+ self._raw_client = AsyncRawAffordabilitySuiteClient(client_wrapper=client_wrapper)
505
+
506
+ @property
507
+ def with_raw_response(self) -> AsyncRawAffordabilitySuiteClient:
508
+ """
509
+ Retrieves a raw implementation of this client that returns raw responses.
510
+
511
+ Returns
512
+ -------
513
+ AsyncRawAffordabilitySuiteClient
514
+ """
515
+ return self._raw_client
516
+
517
+ async def create_offer_discovery(
518
+ self,
519
+ *,
520
+ order_amount: OfferDiscoveryRequestOrderAmount,
521
+ accept_encoding: typing.Optional[str] = None,
522
+ product_details: typing.Optional[typing.Sequence[OfferDiscoveryRequestProductDetailsItem]] = OMIT,
523
+ cart_coupon_discount_amount: typing.Optional[OfferDiscoveryRequestCartCouponDiscountAmount] = OMIT,
524
+ issuer: typing.Optional[OfferDiscoveryRequestIssuer] = OMIT,
525
+ downpayment_details: typing.Optional[OfferDiscoveryRequestDownpaymentDetails] = OMIT,
526
+ payment_options: typing.Optional[OfferDiscoveryRequestPaymentOptions] = OMIT,
527
+ customer_details: typing.Optional[OfferDiscoveryRequestCustomerDetails] = OMIT,
528
+ request_options: typing.Optional[RequestOptions] = None,
529
+ ) -> OfferDiscoveryResponse:
530
+ """
531
+ Use this API to discover offers available on cart amount or product and calculate the EMI.
532
+
533
+ Parameters
534
+ ----------
535
+ order_amount : OfferDiscoveryRequestOrderAmount
536
+ An object that contains the transaction amount details.
537
+
538
+ accept_encoding : typing.Optional[str]
539
+ Type of content-encoding supported. Accepted value: `gzip`
540
+
541
+ product_details : typing.Optional[typing.Sequence[OfferDiscoveryRequestProductDetailsItem]]
542
+ Mandatory for Brand EMI. An object that contains product details.
543
+
544
+ cart_coupon_discount_amount : typing.Optional[OfferDiscoveryRequestCartCouponDiscountAmount]
545
+ An object that contains the cart coupon discount amount details.
546
+
547
+ issuer : typing.Optional[OfferDiscoveryRequestIssuer]
548
+ An object that contains the issuer details.
549
+
550
+ downpayment_details : typing.Optional[OfferDiscoveryRequestDownpaymentDetails]
551
+ Mandatory for EMI with Downpayment. An object that contains the downpayment amount details.
552
+
553
+ payment_options : typing.Optional[OfferDiscoveryRequestPaymentOptions]
554
+ An object that contains the details of the payment options. You can use either `card_details` or `card_token_details` as a payment option.
555
+
556
+ customer_details : typing.Optional[OfferDiscoveryRequestCustomerDetails]
557
+ An object that contains the customer details.
558
+
559
+ request_options : typing.Optional[RequestOptions]
560
+ Request-specific configuration.
561
+
562
+ Returns
563
+ -------
564
+ OfferDiscoveryResponse
565
+ 200
566
+
567
+ Examples
568
+ --------
569
+ import asyncio
570
+
571
+ from pinelabs import AsyncPinelabsApi
572
+ from pinelabs.affordability_suite import (
573
+ OfferDiscoveryRequestIssuer,
574
+ OfferDiscoveryRequestOrderAmount,
575
+ )
576
+
577
+ client = AsyncPinelabsApi(
578
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
579
+ request_id="YOUR_REQUEST_ID",
580
+ token="YOUR_TOKEN",
581
+ )
582
+
583
+
584
+ async def main() -> None:
585
+ await client.affordability_suite.create_offer_discovery(
586
+ order_amount=OfferDiscoveryRequestOrderAmount(
587
+ value=1200000,
588
+ currency="INR",
589
+ ),
590
+ issuer=OfferDiscoveryRequestIssuer(
591
+ bin="60100000",
592
+ ),
593
+ )
594
+
595
+
596
+ asyncio.run(main())
597
+ """
598
+ _response = await self._raw_client.create_offer_discovery(
599
+ order_amount=order_amount,
600
+ accept_encoding=accept_encoding,
601
+ product_details=product_details,
602
+ cart_coupon_discount_amount=cart_coupon_discount_amount,
603
+ issuer=issuer,
604
+ downpayment_details=downpayment_details,
605
+ payment_options=payment_options,
606
+ customer_details=customer_details,
607
+ request_options=request_options,
608
+ )
609
+ return _response.data
610
+
611
+ async def create_cardless_offer_discovery(
612
+ self,
613
+ *,
614
+ order_amount: Amount,
615
+ payment_option: OfferDiscoveryCardlessRequestPaymentOption,
616
+ product_details: typing.Optional[typing.Sequence[ProductDetail]] = OMIT,
617
+ cart_coupon_discount_amount: typing.Optional[Amount] = OMIT,
618
+ request_options: typing.Optional[RequestOptions] = None,
619
+ ) -> OfferDiscoveryResponse:
620
+ """
621
+ Discover available cardless EMI offers for a given order amount and product.
622
+ Used when customer does not use a card for EMI (e.g. BNPL-style cardless EMI).
623
+
624
+ Parameters
625
+ ----------
626
+ order_amount : Amount
627
+
628
+ payment_option : OfferDiscoveryCardlessRequestPaymentOption
629
+ An object that contains details related to the payment option.
630
+
631
+ product_details : typing.Optional[typing.Sequence[ProductDetail]]
632
+ Mandatory for Brand EMI. Contains product details.
633
+
634
+ cart_coupon_discount_amount : typing.Optional[Amount]
635
+
636
+ request_options : typing.Optional[RequestOptions]
637
+ Request-specific configuration.
638
+
639
+ Returns
640
+ -------
641
+ OfferDiscoveryResponse
642
+ Cardless offers discovered successfully.
643
+
644
+ Examples
645
+ --------
646
+ import asyncio
647
+
648
+ from pinelabs import Amount, AsyncPinelabsApi
649
+ from pinelabs.affordability_suite import (
650
+ OfferDiscoveryCardlessRequestPaymentOption,
651
+ OfferDiscoveryCardlessRequestPaymentOptionCardlessDetails,
652
+ )
653
+
654
+ client = AsyncPinelabsApi(
655
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
656
+ request_id="YOUR_REQUEST_ID",
657
+ token="YOUR_TOKEN",
658
+ )
659
+
660
+
661
+ async def main() -> None:
662
+ await client.affordability_suite.create_cardless_offer_discovery(
663
+ order_amount=Amount(
664
+ value=50000,
665
+ currency="INR",
666
+ ),
667
+ payment_option=OfferDiscoveryCardlessRequestPaymentOption(
668
+ cardless_details=OfferDiscoveryCardlessRequestPaymentOptionCardlessDetails(
669
+ pan_number="234A123883",
670
+ registered_mobile_number="9876543210",
671
+ ),
672
+ ),
673
+ )
674
+
675
+
676
+ asyncio.run(main())
677
+ """
678
+ _response = await self._raw_client.create_cardless_offer_discovery(
679
+ order_amount=order_amount,
680
+ payment_option=payment_option,
681
+ product_details=product_details,
682
+ cart_coupon_discount_amount=cart_coupon_discount_amount,
683
+ request_options=request_options,
684
+ )
685
+ return _response.data
686
+
687
+ async def create_down_payment_details(
688
+ self,
689
+ *,
690
+ order_amount: Amount,
691
+ product_details: typing.Optional[typing.Sequence[ProductDetail]] = OMIT,
692
+ cart_coupon_discount_amount: typing.Optional[Amount] = OMIT,
693
+ issuer: typing.Optional[DownpaymentDetailsRequestIssuer] = OMIT,
694
+ request_options: typing.Optional[RequestOptions] = None,
695
+ ) -> DownpaymentDetailsResponse:
696
+ """
697
+ Retrieve applicable down payment range and EMI repayment details
698
+ based on order amount and issuer BIN.
699
+
700
+ Parameters
701
+ ----------
702
+ order_amount : Amount
703
+
704
+ product_details : typing.Optional[typing.Sequence[ProductDetail]]
705
+ Mandatory for Brand EMI. Contains product details.
706
+
707
+ cart_coupon_discount_amount : typing.Optional[Amount]
708
+
709
+ issuer : typing.Optional[DownpaymentDetailsRequestIssuer]
710
+ Issuer identification details.
711
+
712
+ request_options : typing.Optional[RequestOptions]
713
+ Request-specific configuration.
714
+
715
+ Returns
716
+ -------
717
+ DownpaymentDetailsResponse
718
+ Down payment details retrieved successfully.
719
+
720
+ Examples
721
+ --------
722
+ import asyncio
723
+
724
+ from pinelabs import Amount, AsyncPinelabsApi
725
+
726
+ client = AsyncPinelabsApi(
727
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
728
+ request_id="YOUR_REQUEST_ID",
729
+ token="YOUR_TOKEN",
730
+ )
731
+
732
+
733
+ async def main() -> None:
734
+ await client.affordability_suite.create_down_payment_details(
735
+ order_amount=Amount(
736
+ value=50000,
737
+ currency="INR",
738
+ ),
739
+ )
740
+
741
+
742
+ asyncio.run(main())
743
+ """
744
+ _response = await self._raw_client.create_down_payment_details(
745
+ order_amount=order_amount,
746
+ product_details=product_details,
747
+ cart_coupon_discount_amount=cart_coupon_discount_amount,
748
+ issuer=issuer,
749
+ request_options=request_options,
750
+ )
751
+ return _response.data
752
+
753
+ async def offer_validation_create(
754
+ self,
755
+ *,
756
+ payment_method: str,
757
+ order_amount: OfferValidationRequestOrderAmount,
758
+ payment_amount: OfferValidationRequestPaymentAmount,
759
+ payment_option: OfferValidationRequestPaymentOption,
760
+ offer_data: OfferValidationRequestOfferData,
761
+ accept_encoding: typing.Optional[str] = None,
762
+ customer_details: typing.Optional[OfferValidationRequestCustomerDetails] = OMIT,
763
+ request_options: typing.Optional[RequestOptions] = None,
764
+ ) -> OfferValidationResponse:
765
+ """
766
+ Use this API for validating applied offers.
767
+
768
+ Parameters
769
+ ----------
770
+ payment_method : str
771
+ Type of payment method you want to use to accept a payment.<br><br>Accepted values:<ul><li>`CREDIT_EMI`</li><li>`DEBIT_EMI`</li><li>`CARDLESS_EMI`</ul></li>
772
+
773
+ order_amount : OfferValidationRequestOrderAmount
774
+ An object that contains order amount.
775
+
776
+ payment_amount : OfferValidationRequestPaymentAmount
777
+ An object that contains the payment amount details after the offer has been applied.<br><br>**Note**: Ensure you pass the `auth_amount` details. This `auth_amount` detail is returned through our Offer Discovery API response.
778
+
779
+ payment_option : OfferValidationRequestPaymentOption
780
+ An object that contains the details of the payment options.<br><br>You can use either `card_details` or `card_token_details` or `cardless_details` as a payment option. One object is mandatory to process the request.
781
+
782
+ offer_data : OfferValidationRequestOfferData
783
+ An object that contains details related to the offer.
784
+
785
+ accept_encoding : typing.Optional[str]
786
+ Type of content-encoding supported.<br><br>Accepted value: `gzip`
787
+
788
+ customer_details : typing.Optional[OfferValidationRequestCustomerDetails]
789
+ An object that contains details related to the customer.
790
+
791
+ request_options : typing.Optional[RequestOptions]
792
+ Request-specific configuration.
793
+
794
+ Returns
795
+ -------
796
+ OfferValidationResponse
797
+ 200
798
+
799
+ Examples
800
+ --------
801
+ import asyncio
802
+
803
+ from pinelabs import AsyncPinelabsApi
804
+ from pinelabs.affordability_suite import (
805
+ OfferValidationRequestOfferData,
806
+ OfferValidationRequestOfferDataOfferDetails,
807
+ OfferValidationRequestOfferDataOfferDetailsTenure,
808
+ OfferValidationRequestOfferDataOfferDetailsTenureAuthAmount,
809
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItem,
810
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemAfterDownpaymentReducedProductAmount,
811
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemDownpaymentAmount,
812
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemInterestAmount,
813
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemProductAmount,
814
+ OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetails,
815
+ OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetailsDownpaymentAmount,
816
+ OfferValidationRequestOfferDataOfferDetailsTenureInterestAmount,
817
+ OfferValidationRequestOfferDataOfferDetailsTenureLoanAmount,
818
+ OfferValidationRequestOfferDataOfferDetailsTenureMonthlyEmiAmount,
819
+ OfferValidationRequestOfferDataOfferDetailsTenureNetPaymentAmount,
820
+ OfferValidationRequestOfferDataOfferDetailsTenureTotalEmiAmount,
821
+ OfferValidationRequestOrderAmount,
822
+ OfferValidationRequestPaymentAmount,
823
+ OfferValidationRequestPaymentOption,
824
+ OfferValidationRequestPaymentOptionCardDetails,
825
+ )
826
+
827
+ client = AsyncPinelabsApi(
828
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
829
+ request_id="YOUR_REQUEST_ID",
830
+ token="YOUR_TOKEN",
831
+ )
832
+
833
+
834
+ async def main() -> None:
835
+ await client.affordability_suite.offer_validation_create(
836
+ payment_method="CREDIT_EMI",
837
+ order_amount=OfferValidationRequestOrderAmount(
838
+ value="value",
839
+ currency="INR",
840
+ ),
841
+ payment_amount=OfferValidationRequestPaymentAmount(
842
+ value="value",
843
+ currency="INR",
844
+ ),
845
+ payment_option=OfferValidationRequestPaymentOption(
846
+ card_details=OfferValidationRequestPaymentOptionCardDetails(
847
+ card_number="4000000040001000",
848
+ registered_mobile_number="9914152866",
849
+ ),
850
+ ),
851
+ offer_data=OfferValidationRequestOfferData(
852
+ offer_details=OfferValidationRequestOfferDataOfferDetails(
853
+ id="6",
854
+ name="HDFC CC",
855
+ display_name="HDFC BANK",
856
+ issuer_type="CC_BANK",
857
+ priority="priority",
858
+ tenure=OfferValidationRequestOfferDataOfferDetailsTenure(
859
+ tenure_id="6",
860
+ name="24 Months",
861
+ tenure_type="MONTH",
862
+ tenure_value=24,
863
+ issuer_offer_parameters="issuer_offer_parameters",
864
+ details=[
865
+ OfferValidationRequestOfferDataOfferDetailsTenureDetailsItem(
866
+ product_code="xyz",
867
+ product_display_name="Redmi Note 13 5G",
868
+ product_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemProductAmount(
869
+ value="value",
870
+ currency="INR",
871
+ ),
872
+ brand_name="Xiaomi",
873
+ interest_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemInterestAmount(
874
+ value="value",
875
+ currency="INR",
876
+ ),
877
+ downpayment_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemDownpaymentAmount(
878
+ value="value",
879
+ currency="INR",
880
+ ),
881
+ after_downpayment_reduced_product_amount=OfferValidationRequestOfferDataOfferDetailsTenureDetailsItemAfterDownpaymentReducedProductAmount(
882
+ value="value",
883
+ currency="INR",
884
+ ),
885
+ interest_rate="interest_rate",
886
+ bundle_id="BUNDLE_002_OE3",
887
+ )
888
+ ],
889
+ auth_amount=OfferValidationRequestOfferDataOfferDetailsTenureAuthAmount(
890
+ value="value",
891
+ currency="INR",
892
+ ),
893
+ loan_amount=OfferValidationRequestOfferDataOfferDetailsTenureLoanAmount(
894
+ value="value",
895
+ currency="INR",
896
+ ),
897
+ net_payment_amount=OfferValidationRequestOfferDataOfferDetailsTenureNetPaymentAmount(
898
+ value="value",
899
+ currency="INR",
900
+ ),
901
+ monthly_emi_amount=OfferValidationRequestOfferDataOfferDetailsTenureMonthlyEmiAmount(
902
+ value="value",
903
+ currency="INR",
904
+ ),
905
+ total_emi_amount=OfferValidationRequestOfferDataOfferDetailsTenureTotalEmiAmount(
906
+ value="value",
907
+ currency="INR",
908
+ ),
909
+ interest_amount=OfferValidationRequestOfferDataOfferDetailsTenureInterestAmount(
910
+ value="value",
911
+ currency="INR",
912
+ ),
913
+ interest_rate_percentage=16.0,
914
+ emi_type="STANDARD",
915
+ split_emi_display_name="Apple Live",
916
+ downpayment_details=OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetails(
917
+ downpayment_amount=OfferValidationRequestOfferDataOfferDetailsTenureDownpaymentDetailsDownpaymentAmount(
918
+ value="value",
919
+ currency="INR",
920
+ ),
921
+ ),
922
+ ),
923
+ ),
924
+ ),
925
+ )
926
+
927
+
928
+ asyncio.run(main())
929
+ """
930
+ _response = await self._raw_client.offer_validation_create(
931
+ payment_method=payment_method,
932
+ order_amount=order_amount,
933
+ payment_amount=payment_amount,
934
+ payment_option=payment_option,
935
+ offer_data=offer_data,
936
+ accept_encoding=accept_encoding,
937
+ customer_details=customer_details,
938
+ request_options=request_options,
939
+ )
940
+ return _response.data
941
+
942
+ async def create_imei_validation(
943
+ self,
944
+ order_id: str,
945
+ *,
946
+ merchant_product_imei_reference: str,
947
+ request_type: ImeiValidationRequestRequestType,
948
+ products: typing.Sequence[ImeiProduct],
949
+ request_options: typing.Optional[RequestOptions] = None,
950
+ ) -> None:
951
+ """
952
+ Validate or block/unblock IMEI numbers for Brand EMI transactions.
953
+ Used to confirm the device is eligible for the selected EMI program.
954
+
955
+ Parameters
956
+ ----------
957
+ order_id : str
958
+ Unique Pine Labs order identifier.
959
+
960
+ merchant_product_imei_reference : str
961
+ **Idempotency Key.** Merchant product IMEI reference. Duplicate requests with the same `merchant_product_imei_reference` will return the existing result instead of creating a new one.
962
+
963
+ request_type : ImeiValidationRequestRequestType
964
+ IMEI request type.
965
+
966
+ products : typing.Sequence[ImeiProduct]
967
+ Array of product details for IMEI validation.
968
+
969
+ request_options : typing.Optional[RequestOptions]
970
+ Request-specific configuration.
971
+
972
+ Returns
973
+ -------
974
+ None
975
+
976
+ Examples
977
+ --------
978
+ import asyncio
979
+
980
+ from pinelabs import AsyncPinelabsApi, ImeiProduct
981
+
982
+ client = AsyncPinelabsApi(
983
+ request_timestamp="YOUR_REQUEST_TIMESTAMP",
984
+ request_id="YOUR_REQUEST_ID",
985
+ token="YOUR_TOKEN",
986
+ )
987
+
988
+
989
+ async def main() -> None:
990
+ await client.affordability_suite.create_imei_validation(
991
+ order_id="v1-5757575757-aa-hU1rUd",
992
+ merchant_product_imei_reference="merchant-ref-786",
993
+ request_type="BLOCKING",
994
+ products=[ImeiProduct()],
995
+ )
996
+
997
+
998
+ asyncio.run(main())
999
+ """
1000
+ _response = await self._raw_client.create_imei_validation(
1001
+ order_id,
1002
+ merchant_product_imei_reference=merchant_product_imei_reference,
1003
+ request_type=request_type,
1004
+ products=products,
1005
+ request_options=request_options,
1006
+ )
1007
+ return _response.data