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,797 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+ from json.decoder import JSONDecodeError
6
+
7
+ from ..core.api_error import ApiError
8
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
+ from ..core.http_response import AsyncHttpResponse, HttpResponse
10
+ from ..core.jsonable_encoder import encode_path_param
11
+ from ..core.parse_error import ParsingError
12
+ from ..core.pydantic_utilities import parse_obj_as
13
+ from ..core.request_options import RequestOptions
14
+ from ..core.serialization import convert_and_respect_annotation_metadata
15
+ from ..errors.internal_server_error import InternalServerError
16
+ from ..types.amount import Amount
17
+ from ..types.error_response import ErrorResponse
18
+ from ..types.merchant_metadata import MerchantMetadata
19
+ from ..types.payment_link_account_details import PaymentLinkAccountDetails
20
+ from ..types.payment_link_cart_details import PaymentLinkCartDetails
21
+ from ..types.payment_link_customer import PaymentLinkCustomer
22
+ from ..types.payment_link_product_detail import PaymentLinkProductDetail
23
+ from ..types.payment_link_response import PaymentLinkResponse
24
+ from ..types.payment_link_split_info import PaymentLinkSplitInfo
25
+ from .types.create_payment_link_request_allowed_payment_methods_item import (
26
+ CreatePaymentLinkRequestAllowedPaymentMethodsItem,
27
+ )
28
+ from pydantic import ValidationError
29
+
30
+ # this is used as the default value for optional parameters
31
+ OMIT = typing.cast(typing.Any, ...)
32
+
33
+
34
+ class RawPaymentLinksClient:
35
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
36
+ self._client_wrapper = client_wrapper
37
+
38
+ def create_payment_link(
39
+ self,
40
+ *,
41
+ amount: Amount,
42
+ merchant_payment_link_reference: str,
43
+ description: typing.Optional[str] = OMIT,
44
+ expire_by: typing.Optional[dt.datetime] = OMIT,
45
+ allowed_payment_methods: typing.Optional[
46
+ typing.Sequence[CreatePaymentLinkRequestAllowedPaymentMethodsItem]
47
+ ] = OMIT,
48
+ pre_auth: typing.Optional[str] = OMIT,
49
+ is_mcc_transaction: typing.Optional[str] = OMIT,
50
+ failure_callback_url: typing.Optional[str] = OMIT,
51
+ customer: typing.Optional[PaymentLinkCustomer] = OMIT,
52
+ product_details: typing.Optional[typing.Sequence[PaymentLinkProductDetail]] = OMIT,
53
+ cart_coupon_discount_amount: typing.Optional[Amount] = OMIT,
54
+ merchant_metadata: typing.Optional[MerchantMetadata] = OMIT,
55
+ split_info: typing.Optional[PaymentLinkSplitInfo] = OMIT,
56
+ account_details: typing.Optional[PaymentLinkAccountDetails] = OMIT,
57
+ callback_url: typing.Optional[str] = OMIT,
58
+ part_payment: typing.Optional[bool] = OMIT,
59
+ cart_details: typing.Optional[PaymentLinkCartDetails] = OMIT,
60
+ request_options: typing.Optional[RequestOptions] = None,
61
+ ) -> HttpResponse[PaymentLinkResponse]:
62
+ """
63
+ Create a payment link for collecting payments. Ensure that your Merchant ID
64
+ is configured for Pay by Link, split payments, and pre-authorization before
65
+ creating a payment link.
66
+
67
+ Parameters
68
+ ----------
69
+ amount : Amount
70
+
71
+ merchant_payment_link_reference : str
72
+ **Idempotency Key.** Unique identifier for the payment link request. Duplicate requests with the same `merchant_payment_link_reference` will return the existing payment link instead of creating a new one.
73
+
74
+ description : typing.Optional[str]
75
+ Description corresponding to the payment.
76
+
77
+ expire_by : typing.Optional[dt.datetime]
78
+ The desired expiration timestamp for the payment link (ISO 8601 UTC).
79
+ Must be set within a maximum of 180 days from the current date.
80
+
81
+ allowed_payment_methods : typing.Optional[typing.Sequence[CreatePaymentLinkRequestAllowedPaymentMethodsItem]]
82
+ The type of payment methods you want to offer your customers.
83
+
84
+ pre_auth : typing.Optional[str]
85
+ The pre-authorization type.
86
+ Possible values: "false" (default), "true".
87
+
88
+ is_mcc_transaction : typing.Optional[str]
89
+ Identifies the Payment Link type.
90
+ "true": The payment link is processed for a MCC transaction.
91
+ "false" (default): The payment link is processed for a regular transaction.
92
+
93
+ failure_callback_url : typing.Optional[str]
94
+ URL specifically used to redirect customers to a failure page.
95
+ If not provided, customers will be redirected to the callback_url for both
96
+ successful and failed transactions.
97
+
98
+ customer : typing.Optional[PaymentLinkCustomer]
99
+
100
+ product_details : typing.Optional[typing.Sequence[PaymentLinkProductDetail]]
101
+ An array of objects that contains the list of products associated with the payment.
102
+
103
+ cart_coupon_discount_amount : typing.Optional[Amount]
104
+
105
+ merchant_metadata : typing.Optional[MerchantMetadata]
106
+
107
+ split_info : typing.Optional[PaymentLinkSplitInfo]
108
+
109
+ account_details : typing.Optional[PaymentLinkAccountDetails]
110
+
111
+ callback_url : typing.Optional[str]
112
+ URL to which your customers are redirected based on the order or product details,
113
+ leading them to either a success or failure page.
114
+
115
+ part_payment : typing.Optional[bool]
116
+ Indicates whether the order is for part payments or full.
117
+ true: The order created is for a part payment.
118
+ false: The order is created for a full payment.
119
+
120
+ cart_details : typing.Optional[PaymentLinkCartDetails]
121
+
122
+ request_options : typing.Optional[RequestOptions]
123
+ Request-specific configuration.
124
+
125
+ Returns
126
+ -------
127
+ HttpResponse[PaymentLinkResponse]
128
+ Payment link created successfully.
129
+ """
130
+ _response = self._client_wrapper.httpx_client.request(
131
+ "api/pay/v1/paymentlink",
132
+ method="POST",
133
+ json={
134
+ "amount": convert_and_respect_annotation_metadata(object_=amount, annotation=Amount, direction="write"),
135
+ "description": description,
136
+ "expire_by": expire_by,
137
+ "allowed_payment_methods": allowed_payment_methods,
138
+ "pre_auth": pre_auth,
139
+ "is_mcc_transaction": is_mcc_transaction,
140
+ "failure_callback_url": failure_callback_url,
141
+ "merchant_payment_link_reference": merchant_payment_link_reference,
142
+ "customer": convert_and_respect_annotation_metadata(
143
+ object_=customer, annotation=PaymentLinkCustomer, direction="write"
144
+ ),
145
+ "product_details": convert_and_respect_annotation_metadata(
146
+ object_=product_details, annotation=typing.Sequence[PaymentLinkProductDetail], direction="write"
147
+ ),
148
+ "cart_coupon_discount_amount": convert_and_respect_annotation_metadata(
149
+ object_=cart_coupon_discount_amount, annotation=Amount, direction="write"
150
+ ),
151
+ "merchant_metadata": merchant_metadata,
152
+ "split_info": convert_and_respect_annotation_metadata(
153
+ object_=split_info, annotation=PaymentLinkSplitInfo, direction="write"
154
+ ),
155
+ "account_details": convert_and_respect_annotation_metadata(
156
+ object_=account_details, annotation=PaymentLinkAccountDetails, direction="write"
157
+ ),
158
+ "callback_url": callback_url,
159
+ "part_payment": part_payment,
160
+ "cart_details": convert_and_respect_annotation_metadata(
161
+ object_=cart_details, annotation=PaymentLinkCartDetails, direction="write"
162
+ ),
163
+ },
164
+ headers={
165
+ "content-type": "application/json",
166
+ },
167
+ request_options=request_options,
168
+ omit=OMIT,
169
+ )
170
+ try:
171
+ if 200 <= _response.status_code < 300:
172
+ _data = typing.cast(
173
+ PaymentLinkResponse,
174
+ parse_obj_as(
175
+ type_=PaymentLinkResponse, # type: ignore
176
+ object_=_response.json(),
177
+ ),
178
+ )
179
+ return HttpResponse(response=_response, data=_data)
180
+ if _response.status_code == 500:
181
+ raise InternalServerError(
182
+ headers=dict(_response.headers),
183
+ body=typing.cast(
184
+ ErrorResponse,
185
+ parse_obj_as(
186
+ type_=ErrorResponse, # type: ignore
187
+ object_=_response.json(),
188
+ ),
189
+ ),
190
+ )
191
+ _response_json = _response.json()
192
+ except JSONDecodeError:
193
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
194
+ except ValidationError as e:
195
+ raise ParsingError(
196
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
197
+ )
198
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
199
+
200
+ def get_payment_link_by_id(
201
+ self, payment_link_id: str, *, request_options: typing.Optional[RequestOptions] = None
202
+ ) -> HttpResponse[PaymentLinkResponse]:
203
+ """
204
+ Retrieve payment link details using the Pine Labs payment link identifier.
205
+
206
+ Parameters
207
+ ----------
208
+ payment_link_id : str
209
+ Unique Pine Labs payment link identifier.
210
+
211
+ request_options : typing.Optional[RequestOptions]
212
+ Request-specific configuration.
213
+
214
+ Returns
215
+ -------
216
+ HttpResponse[PaymentLinkResponse]
217
+ Payment link retrieved successfully.
218
+ """
219
+ _response = self._client_wrapper.httpx_client.request(
220
+ f"api/pay/v1/paymentlink/{encode_path_param(payment_link_id)}",
221
+ method="GET",
222
+ request_options=request_options,
223
+ )
224
+ try:
225
+ if 200 <= _response.status_code < 300:
226
+ _data = typing.cast(
227
+ PaymentLinkResponse,
228
+ parse_obj_as(
229
+ type_=PaymentLinkResponse, # type: ignore
230
+ object_=_response.json(),
231
+ ),
232
+ )
233
+ return HttpResponse(response=_response, data=_data)
234
+ if _response.status_code == 500:
235
+ raise InternalServerError(
236
+ headers=dict(_response.headers),
237
+ body=typing.cast(
238
+ ErrorResponse,
239
+ parse_obj_as(
240
+ type_=ErrorResponse, # type: ignore
241
+ object_=_response.json(),
242
+ ),
243
+ ),
244
+ )
245
+ _response_json = _response.json()
246
+ except JSONDecodeError:
247
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
248
+ except ValidationError as e:
249
+ raise ParsingError(
250
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
251
+ )
252
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
253
+
254
+ def get_payment_link_by_merchant_reference(
255
+ self, merchant_payment_link_reference: str, *, request_options: typing.Optional[RequestOptions] = None
256
+ ) -> HttpResponse[PaymentLinkResponse]:
257
+ """
258
+ Retrieve payment link details using the merchant-assigned payment link reference.
259
+
260
+ Parameters
261
+ ----------
262
+ merchant_payment_link_reference : str
263
+ Unique merchant-assigned payment link reference.
264
+
265
+ request_options : typing.Optional[RequestOptions]
266
+ Request-specific configuration.
267
+
268
+ Returns
269
+ -------
270
+ HttpResponse[PaymentLinkResponse]
271
+ Payment link retrieved successfully.
272
+ """
273
+ _response = self._client_wrapper.httpx_client.request(
274
+ f"api/pay/v1/paymentlink/ref/{encode_path_param(merchant_payment_link_reference)}",
275
+ method="GET",
276
+ request_options=request_options,
277
+ )
278
+ try:
279
+ if 200 <= _response.status_code < 300:
280
+ _data = typing.cast(
281
+ PaymentLinkResponse,
282
+ parse_obj_as(
283
+ type_=PaymentLinkResponse, # type: ignore
284
+ object_=_response.json(),
285
+ ),
286
+ )
287
+ return HttpResponse(response=_response, data=_data)
288
+ if _response.status_code == 500:
289
+ raise InternalServerError(
290
+ headers=dict(_response.headers),
291
+ body=typing.cast(
292
+ ErrorResponse,
293
+ parse_obj_as(
294
+ type_=ErrorResponse, # type: ignore
295
+ object_=_response.json(),
296
+ ),
297
+ ),
298
+ )
299
+ _response_json = _response.json()
300
+ except JSONDecodeError:
301
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
302
+ except ValidationError as e:
303
+ raise ParsingError(
304
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
305
+ )
306
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
307
+
308
+ def cancel_payment_link(
309
+ self, payment_link_id: str, *, request_options: typing.Optional[RequestOptions] = None
310
+ ) -> HttpResponse[PaymentLinkResponse]:
311
+ """
312
+ Cancel an existing payment link by its ID.
313
+
314
+ Parameters
315
+ ----------
316
+ payment_link_id : str
317
+ Unique Pine Labs payment link identifier.
318
+
319
+ request_options : typing.Optional[RequestOptions]
320
+ Request-specific configuration.
321
+
322
+ Returns
323
+ -------
324
+ HttpResponse[PaymentLinkResponse]
325
+ Payment link cancelled successfully.
326
+ """
327
+ _response = self._client_wrapper.httpx_client.request(
328
+ f"api/pay/v1/paymentlink/{encode_path_param(payment_link_id)}/cancel",
329
+ method="PUT",
330
+ request_options=request_options,
331
+ )
332
+ try:
333
+ if 200 <= _response.status_code < 300:
334
+ _data = typing.cast(
335
+ PaymentLinkResponse,
336
+ parse_obj_as(
337
+ type_=PaymentLinkResponse, # type: ignore
338
+ object_=_response.json(),
339
+ ),
340
+ )
341
+ return HttpResponse(response=_response, data=_data)
342
+ if _response.status_code == 500:
343
+ raise InternalServerError(
344
+ headers=dict(_response.headers),
345
+ body=typing.cast(
346
+ ErrorResponse,
347
+ parse_obj_as(
348
+ type_=ErrorResponse, # type: ignore
349
+ object_=_response.json(),
350
+ ),
351
+ ),
352
+ )
353
+ _response_json = _response.json()
354
+ except JSONDecodeError:
355
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
356
+ except ValidationError as e:
357
+ raise ParsingError(
358
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
359
+ )
360
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
361
+
362
+ def resend_payment_link_notification(
363
+ self, payment_link_id: str, *, request_options: typing.Optional[RequestOptions] = None
364
+ ) -> HttpResponse[PaymentLinkResponse]:
365
+ """
366
+ Resend the payment link notification to the customer.
367
+
368
+ Parameters
369
+ ----------
370
+ payment_link_id : str
371
+ Unique Pine Labs payment link identifier.
372
+
373
+ request_options : typing.Optional[RequestOptions]
374
+ Request-specific configuration.
375
+
376
+ Returns
377
+ -------
378
+ HttpResponse[PaymentLinkResponse]
379
+ Payment link notification resent successfully.
380
+ """
381
+ _response = self._client_wrapper.httpx_client.request(
382
+ f"api/pay/v1/paymentlink/{encode_path_param(payment_link_id)}/notify",
383
+ method="PATCH",
384
+ request_options=request_options,
385
+ )
386
+ try:
387
+ if 200 <= _response.status_code < 300:
388
+ _data = typing.cast(
389
+ PaymentLinkResponse,
390
+ parse_obj_as(
391
+ type_=PaymentLinkResponse, # type: ignore
392
+ object_=_response.json(),
393
+ ),
394
+ )
395
+ return HttpResponse(response=_response, data=_data)
396
+ if _response.status_code == 500:
397
+ raise InternalServerError(
398
+ headers=dict(_response.headers),
399
+ body=typing.cast(
400
+ ErrorResponse,
401
+ parse_obj_as(
402
+ type_=ErrorResponse, # type: ignore
403
+ object_=_response.json(),
404
+ ),
405
+ ),
406
+ )
407
+ _response_json = _response.json()
408
+ except JSONDecodeError:
409
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
410
+ except ValidationError as e:
411
+ raise ParsingError(
412
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
413
+ )
414
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
415
+
416
+
417
+ class AsyncRawPaymentLinksClient:
418
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
419
+ self._client_wrapper = client_wrapper
420
+
421
+ async def create_payment_link(
422
+ self,
423
+ *,
424
+ amount: Amount,
425
+ merchant_payment_link_reference: str,
426
+ description: typing.Optional[str] = OMIT,
427
+ expire_by: typing.Optional[dt.datetime] = OMIT,
428
+ allowed_payment_methods: typing.Optional[
429
+ typing.Sequence[CreatePaymentLinkRequestAllowedPaymentMethodsItem]
430
+ ] = OMIT,
431
+ pre_auth: typing.Optional[str] = OMIT,
432
+ is_mcc_transaction: typing.Optional[str] = OMIT,
433
+ failure_callback_url: typing.Optional[str] = OMIT,
434
+ customer: typing.Optional[PaymentLinkCustomer] = OMIT,
435
+ product_details: typing.Optional[typing.Sequence[PaymentLinkProductDetail]] = OMIT,
436
+ cart_coupon_discount_amount: typing.Optional[Amount] = OMIT,
437
+ merchant_metadata: typing.Optional[MerchantMetadata] = OMIT,
438
+ split_info: typing.Optional[PaymentLinkSplitInfo] = OMIT,
439
+ account_details: typing.Optional[PaymentLinkAccountDetails] = OMIT,
440
+ callback_url: typing.Optional[str] = OMIT,
441
+ part_payment: typing.Optional[bool] = OMIT,
442
+ cart_details: typing.Optional[PaymentLinkCartDetails] = OMIT,
443
+ request_options: typing.Optional[RequestOptions] = None,
444
+ ) -> AsyncHttpResponse[PaymentLinkResponse]:
445
+ """
446
+ Create a payment link for collecting payments. Ensure that your Merchant ID
447
+ is configured for Pay by Link, split payments, and pre-authorization before
448
+ creating a payment link.
449
+
450
+ Parameters
451
+ ----------
452
+ amount : Amount
453
+
454
+ merchant_payment_link_reference : str
455
+ **Idempotency Key.** Unique identifier for the payment link request. Duplicate requests with the same `merchant_payment_link_reference` will return the existing payment link instead of creating a new one.
456
+
457
+ description : typing.Optional[str]
458
+ Description corresponding to the payment.
459
+
460
+ expire_by : typing.Optional[dt.datetime]
461
+ The desired expiration timestamp for the payment link (ISO 8601 UTC).
462
+ Must be set within a maximum of 180 days from the current date.
463
+
464
+ allowed_payment_methods : typing.Optional[typing.Sequence[CreatePaymentLinkRequestAllowedPaymentMethodsItem]]
465
+ The type of payment methods you want to offer your customers.
466
+
467
+ pre_auth : typing.Optional[str]
468
+ The pre-authorization type.
469
+ Possible values: "false" (default), "true".
470
+
471
+ is_mcc_transaction : typing.Optional[str]
472
+ Identifies the Payment Link type.
473
+ "true": The payment link is processed for a MCC transaction.
474
+ "false" (default): The payment link is processed for a regular transaction.
475
+
476
+ failure_callback_url : typing.Optional[str]
477
+ URL specifically used to redirect customers to a failure page.
478
+ If not provided, customers will be redirected to the callback_url for both
479
+ successful and failed transactions.
480
+
481
+ customer : typing.Optional[PaymentLinkCustomer]
482
+
483
+ product_details : typing.Optional[typing.Sequence[PaymentLinkProductDetail]]
484
+ An array of objects that contains the list of products associated with the payment.
485
+
486
+ cart_coupon_discount_amount : typing.Optional[Amount]
487
+
488
+ merchant_metadata : typing.Optional[MerchantMetadata]
489
+
490
+ split_info : typing.Optional[PaymentLinkSplitInfo]
491
+
492
+ account_details : typing.Optional[PaymentLinkAccountDetails]
493
+
494
+ callback_url : typing.Optional[str]
495
+ URL to which your customers are redirected based on the order or product details,
496
+ leading them to either a success or failure page.
497
+
498
+ part_payment : typing.Optional[bool]
499
+ Indicates whether the order is for part payments or full.
500
+ true: The order created is for a part payment.
501
+ false: The order is created for a full payment.
502
+
503
+ cart_details : typing.Optional[PaymentLinkCartDetails]
504
+
505
+ request_options : typing.Optional[RequestOptions]
506
+ Request-specific configuration.
507
+
508
+ Returns
509
+ -------
510
+ AsyncHttpResponse[PaymentLinkResponse]
511
+ Payment link created successfully.
512
+ """
513
+ _response = await self._client_wrapper.httpx_client.request(
514
+ "api/pay/v1/paymentlink",
515
+ method="POST",
516
+ json={
517
+ "amount": convert_and_respect_annotation_metadata(object_=amount, annotation=Amount, direction="write"),
518
+ "description": description,
519
+ "expire_by": expire_by,
520
+ "allowed_payment_methods": allowed_payment_methods,
521
+ "pre_auth": pre_auth,
522
+ "is_mcc_transaction": is_mcc_transaction,
523
+ "failure_callback_url": failure_callback_url,
524
+ "merchant_payment_link_reference": merchant_payment_link_reference,
525
+ "customer": convert_and_respect_annotation_metadata(
526
+ object_=customer, annotation=PaymentLinkCustomer, direction="write"
527
+ ),
528
+ "product_details": convert_and_respect_annotation_metadata(
529
+ object_=product_details, annotation=typing.Sequence[PaymentLinkProductDetail], direction="write"
530
+ ),
531
+ "cart_coupon_discount_amount": convert_and_respect_annotation_metadata(
532
+ object_=cart_coupon_discount_amount, annotation=Amount, direction="write"
533
+ ),
534
+ "merchant_metadata": merchant_metadata,
535
+ "split_info": convert_and_respect_annotation_metadata(
536
+ object_=split_info, annotation=PaymentLinkSplitInfo, direction="write"
537
+ ),
538
+ "account_details": convert_and_respect_annotation_metadata(
539
+ object_=account_details, annotation=PaymentLinkAccountDetails, direction="write"
540
+ ),
541
+ "callback_url": callback_url,
542
+ "part_payment": part_payment,
543
+ "cart_details": convert_and_respect_annotation_metadata(
544
+ object_=cart_details, annotation=PaymentLinkCartDetails, direction="write"
545
+ ),
546
+ },
547
+ headers={
548
+ "content-type": "application/json",
549
+ },
550
+ request_options=request_options,
551
+ omit=OMIT,
552
+ )
553
+ try:
554
+ if 200 <= _response.status_code < 300:
555
+ _data = typing.cast(
556
+ PaymentLinkResponse,
557
+ parse_obj_as(
558
+ type_=PaymentLinkResponse, # type: ignore
559
+ object_=_response.json(),
560
+ ),
561
+ )
562
+ return AsyncHttpResponse(response=_response, data=_data)
563
+ if _response.status_code == 500:
564
+ raise InternalServerError(
565
+ headers=dict(_response.headers),
566
+ body=typing.cast(
567
+ ErrorResponse,
568
+ parse_obj_as(
569
+ type_=ErrorResponse, # type: ignore
570
+ object_=_response.json(),
571
+ ),
572
+ ),
573
+ )
574
+ _response_json = _response.json()
575
+ except JSONDecodeError:
576
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
577
+ except ValidationError as e:
578
+ raise ParsingError(
579
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
580
+ )
581
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
582
+
583
+ async def get_payment_link_by_id(
584
+ self, payment_link_id: str, *, request_options: typing.Optional[RequestOptions] = None
585
+ ) -> AsyncHttpResponse[PaymentLinkResponse]:
586
+ """
587
+ Retrieve payment link details using the Pine Labs payment link identifier.
588
+
589
+ Parameters
590
+ ----------
591
+ payment_link_id : str
592
+ Unique Pine Labs payment link identifier.
593
+
594
+ request_options : typing.Optional[RequestOptions]
595
+ Request-specific configuration.
596
+
597
+ Returns
598
+ -------
599
+ AsyncHttpResponse[PaymentLinkResponse]
600
+ Payment link retrieved successfully.
601
+ """
602
+ _response = await self._client_wrapper.httpx_client.request(
603
+ f"api/pay/v1/paymentlink/{encode_path_param(payment_link_id)}",
604
+ method="GET",
605
+ request_options=request_options,
606
+ )
607
+ try:
608
+ if 200 <= _response.status_code < 300:
609
+ _data = typing.cast(
610
+ PaymentLinkResponse,
611
+ parse_obj_as(
612
+ type_=PaymentLinkResponse, # type: ignore
613
+ object_=_response.json(),
614
+ ),
615
+ )
616
+ return AsyncHttpResponse(response=_response, data=_data)
617
+ if _response.status_code == 500:
618
+ raise InternalServerError(
619
+ headers=dict(_response.headers),
620
+ body=typing.cast(
621
+ ErrorResponse,
622
+ parse_obj_as(
623
+ type_=ErrorResponse, # type: ignore
624
+ object_=_response.json(),
625
+ ),
626
+ ),
627
+ )
628
+ _response_json = _response.json()
629
+ except JSONDecodeError:
630
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
631
+ except ValidationError as e:
632
+ raise ParsingError(
633
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
634
+ )
635
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
636
+
637
+ async def get_payment_link_by_merchant_reference(
638
+ self, merchant_payment_link_reference: str, *, request_options: typing.Optional[RequestOptions] = None
639
+ ) -> AsyncHttpResponse[PaymentLinkResponse]:
640
+ """
641
+ Retrieve payment link details using the merchant-assigned payment link reference.
642
+
643
+ Parameters
644
+ ----------
645
+ merchant_payment_link_reference : str
646
+ Unique merchant-assigned payment link reference.
647
+
648
+ request_options : typing.Optional[RequestOptions]
649
+ Request-specific configuration.
650
+
651
+ Returns
652
+ -------
653
+ AsyncHttpResponse[PaymentLinkResponse]
654
+ Payment link retrieved successfully.
655
+ """
656
+ _response = await self._client_wrapper.httpx_client.request(
657
+ f"api/pay/v1/paymentlink/ref/{encode_path_param(merchant_payment_link_reference)}",
658
+ method="GET",
659
+ request_options=request_options,
660
+ )
661
+ try:
662
+ if 200 <= _response.status_code < 300:
663
+ _data = typing.cast(
664
+ PaymentLinkResponse,
665
+ parse_obj_as(
666
+ type_=PaymentLinkResponse, # type: ignore
667
+ object_=_response.json(),
668
+ ),
669
+ )
670
+ return AsyncHttpResponse(response=_response, data=_data)
671
+ if _response.status_code == 500:
672
+ raise InternalServerError(
673
+ headers=dict(_response.headers),
674
+ body=typing.cast(
675
+ ErrorResponse,
676
+ parse_obj_as(
677
+ type_=ErrorResponse, # type: ignore
678
+ object_=_response.json(),
679
+ ),
680
+ ),
681
+ )
682
+ _response_json = _response.json()
683
+ except JSONDecodeError:
684
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
685
+ except ValidationError as e:
686
+ raise ParsingError(
687
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
688
+ )
689
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
690
+
691
+ async def cancel_payment_link(
692
+ self, payment_link_id: str, *, request_options: typing.Optional[RequestOptions] = None
693
+ ) -> AsyncHttpResponse[PaymentLinkResponse]:
694
+ """
695
+ Cancel an existing payment link by its ID.
696
+
697
+ Parameters
698
+ ----------
699
+ payment_link_id : str
700
+ Unique Pine Labs payment link identifier.
701
+
702
+ request_options : typing.Optional[RequestOptions]
703
+ Request-specific configuration.
704
+
705
+ Returns
706
+ -------
707
+ AsyncHttpResponse[PaymentLinkResponse]
708
+ Payment link cancelled successfully.
709
+ """
710
+ _response = await self._client_wrapper.httpx_client.request(
711
+ f"api/pay/v1/paymentlink/{encode_path_param(payment_link_id)}/cancel",
712
+ method="PUT",
713
+ request_options=request_options,
714
+ )
715
+ try:
716
+ if 200 <= _response.status_code < 300:
717
+ _data = typing.cast(
718
+ PaymentLinkResponse,
719
+ parse_obj_as(
720
+ type_=PaymentLinkResponse, # type: ignore
721
+ object_=_response.json(),
722
+ ),
723
+ )
724
+ return AsyncHttpResponse(response=_response, data=_data)
725
+ if _response.status_code == 500:
726
+ raise InternalServerError(
727
+ headers=dict(_response.headers),
728
+ body=typing.cast(
729
+ ErrorResponse,
730
+ parse_obj_as(
731
+ type_=ErrorResponse, # type: ignore
732
+ object_=_response.json(),
733
+ ),
734
+ ),
735
+ )
736
+ _response_json = _response.json()
737
+ except JSONDecodeError:
738
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
739
+ except ValidationError as e:
740
+ raise ParsingError(
741
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
742
+ )
743
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
744
+
745
+ async def resend_payment_link_notification(
746
+ self, payment_link_id: str, *, request_options: typing.Optional[RequestOptions] = None
747
+ ) -> AsyncHttpResponse[PaymentLinkResponse]:
748
+ """
749
+ Resend the payment link notification to the customer.
750
+
751
+ Parameters
752
+ ----------
753
+ payment_link_id : str
754
+ Unique Pine Labs payment link identifier.
755
+
756
+ request_options : typing.Optional[RequestOptions]
757
+ Request-specific configuration.
758
+
759
+ Returns
760
+ -------
761
+ AsyncHttpResponse[PaymentLinkResponse]
762
+ Payment link notification resent successfully.
763
+ """
764
+ _response = await self._client_wrapper.httpx_client.request(
765
+ f"api/pay/v1/paymentlink/{encode_path_param(payment_link_id)}/notify",
766
+ method="PATCH",
767
+ request_options=request_options,
768
+ )
769
+ try:
770
+ if 200 <= _response.status_code < 300:
771
+ _data = typing.cast(
772
+ PaymentLinkResponse,
773
+ parse_obj_as(
774
+ type_=PaymentLinkResponse, # type: ignore
775
+ object_=_response.json(),
776
+ ),
777
+ )
778
+ return AsyncHttpResponse(response=_response, data=_data)
779
+ if _response.status_code == 500:
780
+ raise InternalServerError(
781
+ headers=dict(_response.headers),
782
+ body=typing.cast(
783
+ ErrorResponse,
784
+ parse_obj_as(
785
+ type_=ErrorResponse, # type: ignore
786
+ object_=_response.json(),
787
+ ),
788
+ ),
789
+ )
790
+ _response_json = _response.json()
791
+ except JSONDecodeError:
792
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
793
+ except ValidationError as e:
794
+ raise ParsingError(
795
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
796
+ )
797
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)