paid-python 1.7.2__tar.gz → 1.9.0__tar.gz

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 (201) hide show
  1. {paid_python-1.7.2 → paid_python-1.9.0}/PKG-INFO +1 -1
  2. {paid_python-1.7.2 → paid_python-1.9.0}/pyproject.toml +1 -1
  3. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/__init__.py +66 -1
  4. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/client.py +7 -4
  5. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/raw_client.py +9 -8
  6. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/client.py +19 -0
  7. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/client_wrapper.py +2 -2
  8. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customers/client.py +128 -0
  9. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customers/raw_client.py +222 -0
  10. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/__init__.py +3 -1
  11. paid_python-1.9.0/src/paid/errors/conflict_error.py +11 -0
  12. paid_python-1.9.0/src/paid/orders/__init__.py +37 -0
  13. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/orders/client.py +317 -0
  14. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/orders/raw_client.py +742 -92
  15. paid_python-1.9.0/src/paid/orders/types/__init__.py +38 -0
  16. paid_python-1.9.0/src/paid/orders/types/batch_seat_assignments_request_assignments_item.py +24 -0
  17. paid_python-1.9.0/src/paid/orders/types/list_order_seats_request_status.py +5 -0
  18. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/__init__.py +45 -0
  19. paid_python-1.9.0/src/paid/types/batch_seat_assignments_response.py +20 -0
  20. paid_python-1.9.0/src/paid/types/checkout_details.py +65 -0
  21. paid_python-1.9.0/src/paid/types/customer_user.py +38 -0
  22. paid_python-1.9.0/src/paid/types/customer_user_status.py +5 -0
  23. paid_python-1.9.0/src/paid/types/order_seat.py +36 -0
  24. paid_python-1.9.0/src/paid/types/order_seat_list_response.py +22 -0
  25. paid_python-1.9.0/src/paid/types/seat_assignee.py +23 -0
  26. paid_python-1.9.0/src/paid/types/seat_assignment_status.py +5 -0
  27. paid_python-1.9.0/src/paid/types/success_response.py +19 -0
  28. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/value_receipt_detail.py +6 -0
  29. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/value_receipt_summary.py +6 -0
  30. paid_python-1.9.0/src/paid/types/value_receipt_sync_response.py +26 -0
  31. paid_python-1.9.0/src/paid/types/webhook.py +34 -0
  32. paid_python-1.9.0/src/paid/types/webhook_delivery_status.py +5 -0
  33. paid_python-1.9.0/src/paid/types/webhook_list_response.py +20 -0
  34. paid_python-1.9.0/src/paid/types/webhook_name.py +18 -0
  35. paid_python-1.9.0/src/paid/types/webhook_test_response.py +19 -0
  36. paid_python-1.9.0/src/paid/value_receipts/__init__.py +37 -0
  37. paid_python-1.9.0/src/paid/value_receipts/client.py +848 -0
  38. paid_python-1.9.0/src/paid/value_receipts/raw_client.py +1397 -0
  39. paid_python-1.9.0/src/paid/value_receipts/types/__init__.py +38 -0
  40. paid_python-1.9.0/src/paid/value_receipts/types/list_value_receipts_request_archived.py +5 -0
  41. paid_python-1.9.0/src/paid/value_receipts/types/sync_value_receipt_request_product.py +26 -0
  42. paid_python-1.9.0/src/paid/webhooks/__init__.py +37 -0
  43. paid_python-1.9.0/src/paid/webhooks/client.py +277 -0
  44. {paid_python-1.7.2/src/paid/value_receipts → paid_python-1.9.0/src/paid/webhooks}/raw_client.py +168 -202
  45. paid_python-1.9.0/src/paid/webhooks/types/__init__.py +38 -0
  46. paid_python-1.9.0/src/paid/webhooks/types/test_webhook_request_webhook_name.py +18 -0
  47. paid_python-1.9.0/src/paid/webhooks/types/update_webhook_request_webhook_name.py +18 -0
  48. paid_python-1.7.2/src/paid/signals/__init__.py +0 -4
  49. paid_python-1.7.2/src/paid/value_receipts/__init__.py +0 -4
  50. paid_python-1.7.2/src/paid/value_receipts/client.py +0 -373
  51. {paid_python-1.7.2 → paid_python-1.9.0}/LICENSE +0 -0
  52. {paid_python-1.7.2 → paid_python-1.9.0}/README.md +0 -0
  53. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/__init__.py +0 -0
  54. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/types/__init__.py +0 -0
  55. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/checkouts/types/list_checkouts_request_status.py +0 -0
  56. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/__init__.py +0 -0
  57. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/client.py +0 -0
  58. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/raw_client.py +0 -0
  59. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/types/__init__.py +0 -0
  60. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/contacts/types/create_contact_request_roles_item.py +0 -0
  61. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/__init__.py +0 -0
  62. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/api_error.py +0 -0
  63. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/datetime_utils.py +0 -0
  64. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/file.py +0 -0
  65. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/force_multipart.py +0 -0
  66. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_client.py +0 -0
  67. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_response.py +0 -0
  68. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/__init__.py +0 -0
  69. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_api.py +0 -0
  70. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_decoders.py +0 -0
  71. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_exceptions.py +0 -0
  72. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/http_sse/_models.py +0 -0
  73. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/jsonable_encoder.py +0 -0
  74. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/pydantic_utilities.py +0 -0
  75. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/query_encoder.py +0 -0
  76. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/remove_none_from_dict.py +0 -0
  77. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/request_options.py +0 -0
  78. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/core/serialization.py +0 -0
  79. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/credits/__init__.py +0 -0
  80. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/credits/client.py +0 -0
  81. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/credits/raw_client.py +0 -0
  82. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customer_portals/__init__.py +0 -0
  83. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customer_portals/client.py +0 -0
  84. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customer_portals/raw_client.py +0 -0
  85. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/customers/__init__.py +0 -0
  86. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/environment.py +0 -0
  87. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/bad_request_error.py +0 -0
  88. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/forbidden_error.py +0 -0
  89. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/internal_server_error.py +0 -0
  90. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/errors/not_found_error.py +0 -0
  91. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/invoices/__init__.py +0 -0
  92. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/invoices/client.py +0 -0
  93. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/invoices/raw_client.py +0 -0
  94. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/logger.py +0 -0
  95. {paid_python-1.7.2/src/paid/orders → paid_python-1.9.0/src/paid/products}/__init__.py +0 -0
  96. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/products/client.py +0 -0
  97. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/products/raw_client.py +0 -0
  98. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/py.typed +0 -0
  99. {paid_python-1.7.2/src/paid/products → paid_python-1.9.0/src/paid/signals}/__init__.py +0 -0
  100. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/signals/client.py +0 -0
  101. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/signals/raw_client.py +0 -0
  102. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/__init__.py +0 -0
  103. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/anthropic_patches/__init__.py +0 -0
  104. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/anthropic_patches/patches.py +0 -0
  105. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/autoinstrumentation.py +0 -0
  106. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/context_data.py +0 -0
  107. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/context_manager.py +0 -0
  108. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/distributed_tracing.py +0 -0
  109. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/gemini_patches/__init__.py +0 -0
  110. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/gemini_patches/patches.py +0 -0
  111. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_agents_patches/__init__.py +0 -0
  112. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_agents_patches/patches.py +0 -0
  113. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_patches/__init__.py +0 -0
  114. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/openai_patches/patches.py +0 -0
  115. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/signal.py +0 -0
  116. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/tracing.py +0 -0
  117. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/__init__.py +0 -0
  118. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/anthropic/__init__.py +0 -0
  119. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/anthropic/anthropicWrapper.py +0 -0
  120. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/bedrock/__init__.py +0 -0
  121. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/bedrock/bedrockWrapper.py +0 -0
  122. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/gemini/__init__.py +0 -0
  123. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/gemini/geminiWrapper.py +0 -0
  124. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/langchain/__init__.py +0 -0
  125. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/langchain/paidLangChainCallback.py +0 -0
  126. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/mistral/__init__.py +0 -0
  127. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/mistral/mistralWrapper.py +0 -0
  128. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai/__init__.py +0 -0
  129. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai/openAiWrapper.py +0 -0
  130. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai_agents/__init__.py +0 -0
  131. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/openai_agents/openaiAgentsHook.py +0 -0
  132. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/tracing/wrappers/utils.py +0 -0
  133. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/attribution.py +0 -0
  134. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/bulk_signals_response.py +0 -0
  135. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout.py +0 -0
  136. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_list_response.py +0 -0
  137. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_product.py +0 -0
  138. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_product_input.py +0 -0
  139. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/checkout_status.py +0 -0
  140. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact.py +0 -0
  141. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact_billing_address.py +0 -0
  142. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact_list_response.py +0 -0
  143. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/contact_roles_item.py +0 -0
  144. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request.py +0 -0
  145. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing.py +0 -0
  146. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_billing_frequency.py +0 -0
  147. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_billing_type.py +0 -0
  148. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_charge_type.py +0 -0
  149. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item.py +0 -0
  150. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_allocation_cadence.py +0 -0
  151. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_credit_grant_timing.py +0 -0
  152. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_recipient.py +0 -0
  153. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_credit_benefits_item_rollover_duration_unit.py +0 -0
  154. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_price_points.py +0 -0
  155. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_price_points_tiers_item.py +0 -0
  156. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_price_points_tiers_item_tier_billing_type.py +0 -0
  157. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_pricing_model.py +0 -0
  158. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_attribute_request_pricing_signal_type.py +0 -0
  159. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/create_order_line_request.py +0 -0
  160. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_balance.py +0 -0
  161. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_balance_list_response.py +0 -0
  162. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_balance_recipient.py +0 -0
  163. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_currency.py +0 -0
  164. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/credit_currency_list_response.py +0 -0
  165. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer.py +0 -0
  166. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_attribution.py +0 -0
  167. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_billing_address.py +0 -0
  168. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_by_external_id.py +0 -0
  169. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_by_id.py +0 -0
  170. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_creation_state.py +0 -0
  171. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_list_response.py +0 -0
  172. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_portal.py +0 -0
  173. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/customer_portal_status.py +0 -0
  174. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/empty_response.py +0 -0
  175. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/error_response.py +0 -0
  176. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice.py +0 -0
  177. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_line.py +0 -0
  178. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_line_payment_status.py +0 -0
  179. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_lines_response.py +0 -0
  180. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_list_response.py +0 -0
  181. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_payment_status.py +0 -0
  182. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_source.py +0 -0
  183. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_status.py +0 -0
  184. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/invoice_tax_status.py +0 -0
  185. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order.py +0 -0
  186. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_creation_state.py +0 -0
  187. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_line.py +0 -0
  188. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_lines_response.py +0 -0
  189. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/order_list_response.py +0 -0
  190. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/pagination.py +0 -0
  191. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product.py +0 -0
  192. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product_by_external_id.py +0 -0
  193. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product_by_id.py +0 -0
  194. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/product_list_response.py +0 -0
  195. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/signal.py +0 -0
  196. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_contact_request.py +0 -0
  197. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_contact_request_roles_item.py +0 -0
  198. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_customer_request.py +0 -0
  199. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/update_product_request.py +0 -0
  200. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/types/value_receipt_list_response.py +0 -0
  201. {paid_python-1.7.2 → paid_python-1.9.0}/src/paid/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: paid-python
3
- Version: 1.7.2
3
+ Version: 1.9.0
4
4
  Summary:
5
5
  Requires-Python: >=3.10,<3.14
6
6
  Classifier: Intended Audience :: Developers
@@ -4,7 +4,7 @@ dynamic = ["version"]
4
4
 
5
5
  [tool.poetry]
6
6
  name = "paid-python"
7
- version = "1.7.2"
7
+ version = "1.9.0"
8
8
  description = ""
9
9
  readme = "README.md"
10
10
  authors = []
@@ -8,8 +8,10 @@ from importlib import import_module
8
8
  if typing.TYPE_CHECKING:
9
9
  from .types import (
10
10
  Attribution,
11
+ BatchSeatAssignmentsResponse,
11
12
  BulkSignalsResponse,
12
13
  Checkout,
14
+ CheckoutDetails,
13
15
  CheckoutListResponse,
14
16
  CheckoutProduct,
15
17
  CheckoutProductInput,
@@ -48,6 +50,8 @@ if typing.TYPE_CHECKING:
48
50
  CustomerListResponse,
49
51
  CustomerPortal,
50
52
  CustomerPortalStatus,
53
+ CustomerUser,
54
+ CustomerUserStatus,
51
55
  EmptyResponse,
52
56
  ErrorResponse,
53
57
  Invoice,
@@ -64,12 +68,17 @@ if typing.TYPE_CHECKING:
64
68
  OrderLine,
65
69
  OrderLinesResponse,
66
70
  OrderListResponse,
71
+ OrderSeat,
72
+ OrderSeatListResponse,
67
73
  Pagination,
68
74
  Product,
69
75
  ProductByExternalId,
70
76
  ProductById,
71
77
  ProductListResponse,
78
+ SeatAssignee,
79
+ SeatAssignmentStatus,
72
80
  Signal,
81
+ SuccessResponse,
73
82
  UpdateContactRequest,
74
83
  UpdateContactRequestRolesItem,
75
84
  UpdateCustomerRequest,
@@ -77,8 +86,14 @@ if typing.TYPE_CHECKING:
77
86
  ValueReceiptDetail,
78
87
  ValueReceiptListResponse,
79
88
  ValueReceiptSummary,
89
+ ValueReceiptSyncResponse,
90
+ Webhook,
91
+ WebhookDeliveryStatus,
92
+ WebhookListResponse,
93
+ WebhookName,
94
+ WebhookTestResponse,
80
95
  )
81
- from .errors import BadRequestError, ForbiddenError, InternalServerError, NotFoundError
96
+ from .errors import BadRequestError, ConflictError, ForbiddenError, InternalServerError, NotFoundError
82
97
  from . import (
83
98
  checkouts,
84
99
  contacts,
@@ -90,22 +105,30 @@ if typing.TYPE_CHECKING:
90
105
  products,
91
106
  signals,
92
107
  value_receipts,
108
+ webhooks,
93
109
  )
94
110
  from .checkouts import ListCheckoutsRequestStatus
95
111
  from .client import AsyncPaid, Paid
96
112
  from .contacts import CreateContactRequestRolesItem
97
113
  from .environment import PaidEnvironment
114
+ from .orders import BatchSeatAssignmentsRequestAssignmentsItem, ListOrderSeatsRequestStatus
115
+ from .value_receipts import ListValueReceiptsRequestArchived, SyncValueReceiptRequestProduct
98
116
  from .version import __version__
117
+ from .webhooks import TestWebhookRequestWebhookName, UpdateWebhookRequestWebhookName
99
118
  _dynamic_imports: typing.Dict[str, str] = {
100
119
  "AsyncPaid": ".client",
101
120
  "Attribution": ".types",
102
121
  "BadRequestError": ".errors",
122
+ "BatchSeatAssignmentsRequestAssignmentsItem": ".orders",
123
+ "BatchSeatAssignmentsResponse": ".types",
103
124
  "BulkSignalsResponse": ".types",
104
125
  "Checkout": ".types",
126
+ "CheckoutDetails": ".types",
105
127
  "CheckoutListResponse": ".types",
106
128
  "CheckoutProduct": ".types",
107
129
  "CheckoutProductInput": ".types",
108
130
  "CheckoutStatus": ".types",
131
+ "ConflictError": ".errors",
109
132
  "Contact": ".types",
110
133
  "ContactBillingAddress": ".types",
111
134
  "ContactListResponse": ".types",
@@ -141,6 +164,8 @@ _dynamic_imports: typing.Dict[str, str] = {
141
164
  "CustomerListResponse": ".types",
142
165
  "CustomerPortal": ".types",
143
166
  "CustomerPortalStatus": ".types",
167
+ "CustomerUser": ".types",
168
+ "CustomerUserStatus": ".types",
144
169
  "EmptyResponse": ".types",
145
170
  "ErrorResponse": ".types",
146
171
  "ForbiddenError": ".errors",
@@ -155,12 +180,16 @@ _dynamic_imports: typing.Dict[str, str] = {
155
180
  "InvoiceStatus": ".types",
156
181
  "InvoiceTaxStatus": ".types",
157
182
  "ListCheckoutsRequestStatus": ".checkouts",
183
+ "ListOrderSeatsRequestStatus": ".orders",
184
+ "ListValueReceiptsRequestArchived": ".value_receipts",
158
185
  "NotFoundError": ".errors",
159
186
  "Order": ".types",
160
187
  "OrderCreationState": ".types",
161
188
  "OrderLine": ".types",
162
189
  "OrderLinesResponse": ".types",
163
190
  "OrderListResponse": ".types",
191
+ "OrderSeat": ".types",
192
+ "OrderSeatListResponse": ".types",
164
193
  "Pagination": ".types",
165
194
  "Paid": ".client",
166
195
  "PaidEnvironment": ".environment",
@@ -168,14 +197,26 @@ _dynamic_imports: typing.Dict[str, str] = {
168
197
  "ProductByExternalId": ".types",
169
198
  "ProductById": ".types",
170
199
  "ProductListResponse": ".types",
200
+ "SeatAssignee": ".types",
201
+ "SeatAssignmentStatus": ".types",
171
202
  "Signal": ".types",
203
+ "SuccessResponse": ".types",
204
+ "SyncValueReceiptRequestProduct": ".value_receipts",
205
+ "TestWebhookRequestWebhookName": ".webhooks",
172
206
  "UpdateContactRequest": ".types",
173
207
  "UpdateContactRequestRolesItem": ".types",
174
208
  "UpdateCustomerRequest": ".types",
175
209
  "UpdateProductRequest": ".types",
210
+ "UpdateWebhookRequestWebhookName": ".webhooks",
176
211
  "ValueReceiptDetail": ".types",
177
212
  "ValueReceiptListResponse": ".types",
178
213
  "ValueReceiptSummary": ".types",
214
+ "ValueReceiptSyncResponse": ".types",
215
+ "Webhook": ".types",
216
+ "WebhookDeliveryStatus": ".types",
217
+ "WebhookListResponse": ".types",
218
+ "WebhookName": ".types",
219
+ "WebhookTestResponse": ".types",
179
220
  "__version__": ".version",
180
221
  "checkouts": ".checkouts",
181
222
  "contacts": ".contacts",
@@ -187,6 +228,7 @@ _dynamic_imports: typing.Dict[str, str] = {
187
228
  "products": ".products",
188
229
  "signals": ".signals",
189
230
  "value_receipts": ".value_receipts",
231
+ "webhooks": ".webhooks",
190
232
  }
191
233
 
192
234
 
@@ -215,12 +257,16 @@ __all__ = [
215
257
  "AsyncPaid",
216
258
  "Attribution",
217
259
  "BadRequestError",
260
+ "BatchSeatAssignmentsRequestAssignmentsItem",
261
+ "BatchSeatAssignmentsResponse",
218
262
  "BulkSignalsResponse",
219
263
  "Checkout",
264
+ "CheckoutDetails",
220
265
  "CheckoutListResponse",
221
266
  "CheckoutProduct",
222
267
  "CheckoutProductInput",
223
268
  "CheckoutStatus",
269
+ "ConflictError",
224
270
  "Contact",
225
271
  "ContactBillingAddress",
226
272
  "ContactListResponse",
@@ -256,6 +302,8 @@ __all__ = [
256
302
  "CustomerListResponse",
257
303
  "CustomerPortal",
258
304
  "CustomerPortalStatus",
305
+ "CustomerUser",
306
+ "CustomerUserStatus",
259
307
  "EmptyResponse",
260
308
  "ErrorResponse",
261
309
  "ForbiddenError",
@@ -270,12 +318,16 @@ __all__ = [
270
318
  "InvoiceStatus",
271
319
  "InvoiceTaxStatus",
272
320
  "ListCheckoutsRequestStatus",
321
+ "ListOrderSeatsRequestStatus",
322
+ "ListValueReceiptsRequestArchived",
273
323
  "NotFoundError",
274
324
  "Order",
275
325
  "OrderCreationState",
276
326
  "OrderLine",
277
327
  "OrderLinesResponse",
278
328
  "OrderListResponse",
329
+ "OrderSeat",
330
+ "OrderSeatListResponse",
279
331
  "Pagination",
280
332
  "Paid",
281
333
  "PaidEnvironment",
@@ -283,14 +335,26 @@ __all__ = [
283
335
  "ProductByExternalId",
284
336
  "ProductById",
285
337
  "ProductListResponse",
338
+ "SeatAssignee",
339
+ "SeatAssignmentStatus",
286
340
  "Signal",
341
+ "SuccessResponse",
342
+ "SyncValueReceiptRequestProduct",
343
+ "TestWebhookRequestWebhookName",
287
344
  "UpdateContactRequest",
288
345
  "UpdateContactRequestRolesItem",
289
346
  "UpdateCustomerRequest",
290
347
  "UpdateProductRequest",
348
+ "UpdateWebhookRequestWebhookName",
291
349
  "ValueReceiptDetail",
292
350
  "ValueReceiptListResponse",
293
351
  "ValueReceiptSummary",
352
+ "ValueReceiptSyncResponse",
353
+ "Webhook",
354
+ "WebhookDeliveryStatus",
355
+ "WebhookListResponse",
356
+ "WebhookName",
357
+ "WebhookTestResponse",
294
358
  "__version__",
295
359
  "checkouts",
296
360
  "contacts",
@@ -302,4 +366,5 @@ __all__ = [
302
366
  "products",
303
367
  "signals",
304
368
  "value_receipts",
369
+ "webhooks",
305
370
  ]
@@ -6,6 +6,7 @@ import typing
6
6
  from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
7
7
  from ..core.request_options import RequestOptions
8
8
  from ..types.checkout import Checkout
9
+ from ..types.checkout_details import CheckoutDetails
9
10
  from ..types.checkout_list_response import CheckoutListResponse
10
11
  from ..types.checkout_product_input import CheckoutProductInput
11
12
  from ..types.empty_response import EmptyResponse
@@ -157,7 +158,7 @@ class CheckoutsClient:
157
158
  )
158
159
  return _response.data
159
160
 
160
- def get_checkout(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Checkout:
161
+ def get_checkout(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> CheckoutDetails:
161
162
  """
162
163
  Get a checkout by ID
163
164
 
@@ -170,7 +171,7 @@ class CheckoutsClient:
170
171
 
171
172
  Returns
172
173
  -------
173
- Checkout
174
+ CheckoutDetails
174
175
  200
175
176
 
176
177
  Examples
@@ -375,7 +376,9 @@ class AsyncCheckoutsClient:
375
376
  )
376
377
  return _response.data
377
378
 
378
- async def get_checkout(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Checkout:
379
+ async def get_checkout(
380
+ self, id: str, *, request_options: typing.Optional[RequestOptions] = None
381
+ ) -> CheckoutDetails:
379
382
  """
380
383
  Get a checkout by ID
381
384
 
@@ -388,7 +391,7 @@ class AsyncCheckoutsClient:
388
391
 
389
392
  Returns
390
393
  -------
391
- Checkout
394
+ CheckoutDetails
392
395
  200
393
396
 
394
397
  Examples
@@ -16,6 +16,7 @@ from ..errors.forbidden_error import ForbiddenError
16
16
  from ..errors.internal_server_error import InternalServerError
17
17
  from ..errors.not_found_error import NotFoundError
18
18
  from ..types.checkout import Checkout
19
+ from ..types.checkout_details import CheckoutDetails
19
20
  from ..types.checkout_list_response import CheckoutListResponse
20
21
  from ..types.checkout_product_input import CheckoutProductInput
21
22
  from ..types.empty_response import EmptyResponse
@@ -253,7 +254,7 @@ class RawCheckoutsClient:
253
254
 
254
255
  def get_checkout(
255
256
  self, id: str, *, request_options: typing.Optional[RequestOptions] = None
256
- ) -> HttpResponse[Checkout]:
257
+ ) -> HttpResponse[CheckoutDetails]:
257
258
  """
258
259
  Get a checkout by ID
259
260
 
@@ -266,7 +267,7 @@ class RawCheckoutsClient:
266
267
 
267
268
  Returns
268
269
  -------
269
- HttpResponse[Checkout]
270
+ HttpResponse[CheckoutDetails]
270
271
  200
271
272
  """
272
273
  _response = self._client_wrapper.httpx_client.request(
@@ -277,9 +278,9 @@ class RawCheckoutsClient:
277
278
  try:
278
279
  if 200 <= _response.status_code < 300:
279
280
  _data = typing.cast(
280
- Checkout,
281
+ CheckoutDetails,
281
282
  parse_obj_as(
282
- type_=Checkout, # type: ignore
283
+ type_=CheckoutDetails, # type: ignore
283
284
  object_=_response.json(),
284
285
  ),
285
286
  )
@@ -621,7 +622,7 @@ class AsyncRawCheckoutsClient:
621
622
 
622
623
  async def get_checkout(
623
624
  self, id: str, *, request_options: typing.Optional[RequestOptions] = None
624
- ) -> AsyncHttpResponse[Checkout]:
625
+ ) -> AsyncHttpResponse[CheckoutDetails]:
625
626
  """
626
627
  Get a checkout by ID
627
628
 
@@ -634,7 +635,7 @@ class AsyncRawCheckoutsClient:
634
635
 
635
636
  Returns
636
637
  -------
637
- AsyncHttpResponse[Checkout]
638
+ AsyncHttpResponse[CheckoutDetails]
638
639
  200
639
640
  """
640
641
  _response = await self._client_wrapper.httpx_client.request(
@@ -645,9 +646,9 @@ class AsyncRawCheckoutsClient:
645
646
  try:
646
647
  if 200 <= _response.status_code < 300:
647
648
  _data = typing.cast(
648
- Checkout,
649
+ CheckoutDetails,
649
650
  parse_obj_as(
650
- type_=Checkout, # type: ignore
651
+ type_=CheckoutDetails, # type: ignore
651
652
  object_=_response.json(),
652
653
  ),
653
654
  )
@@ -19,6 +19,7 @@ if typing.TYPE_CHECKING:
19
19
  from .products.client import AsyncProductsClient, ProductsClient
20
20
  from .signals.client import AsyncSignalsClient, SignalsClient
21
21
  from .value_receipts.client import AsyncValueReceiptsClient, ValueReceiptsClient
22
+ from .webhooks.client import AsyncWebhooksClient, WebhooksClient
22
23
 
23
24
 
24
25
  class Paid:
@@ -96,6 +97,7 @@ class Paid:
96
97
  self._checkouts: typing.Optional[CheckoutsClient] = None
97
98
  self._customer_portals: typing.Optional[CustomerPortalsClient] = None
98
99
  self._value_receipts: typing.Optional[ValueReceiptsClient] = None
100
+ self._webhooks: typing.Optional[WebhooksClient] = None
99
101
 
100
102
  @property
101
103
  def products(self):
@@ -177,6 +179,14 @@ class Paid:
177
179
  self._value_receipts = ValueReceiptsClient(client_wrapper=self._client_wrapper)
178
180
  return self._value_receipts
179
181
 
182
+ @property
183
+ def webhooks(self):
184
+ if self._webhooks is None:
185
+ from .webhooks.client import WebhooksClient # noqa: E402
186
+
187
+ self._webhooks = WebhooksClient(client_wrapper=self._client_wrapper)
188
+ return self._webhooks
189
+
180
190
 
181
191
  class AsyncPaid:
182
192
  """
@@ -253,6 +263,7 @@ class AsyncPaid:
253
263
  self._checkouts: typing.Optional[AsyncCheckoutsClient] = None
254
264
  self._customer_portals: typing.Optional[AsyncCustomerPortalsClient] = None
255
265
  self._value_receipts: typing.Optional[AsyncValueReceiptsClient] = None
266
+ self._webhooks: typing.Optional[AsyncWebhooksClient] = None
256
267
 
257
268
  @property
258
269
  def products(self):
@@ -334,6 +345,14 @@ class AsyncPaid:
334
345
  self._value_receipts = AsyncValueReceiptsClient(client_wrapper=self._client_wrapper)
335
346
  return self._value_receipts
336
347
 
348
+ @property
349
+ def webhooks(self):
350
+ if self._webhooks is None:
351
+ from .webhooks.client import AsyncWebhooksClient # noqa: E402
352
+
353
+ self._webhooks = AsyncWebhooksClient(client_wrapper=self._client_wrapper)
354
+ return self._webhooks
355
+
337
356
 
338
357
  def _get_base_url(*, base_url: typing.Optional[str] = None, environment: PaidEnvironment) -> str:
339
358
  if base_url is not None:
@@ -24,12 +24,12 @@ class BaseClientWrapper:
24
24
  import platform
25
25
 
26
26
  headers: typing.Dict[str, str] = {
27
- "User-Agent": "paid-python/1.7.2",
27
+ "User-Agent": "paid-python/1.9.0",
28
28
  "X-Fern-Language": "Python",
29
29
  "X-Fern-Runtime": f"python/{platform.python_version()}",
30
30
  "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
31
31
  "X-Fern-SDK-Name": "paid-python",
32
- "X-Fern-SDK-Version": "1.7.2",
32
+ "X-Fern-SDK-Version": "1.9.0",
33
33
  **(self.get_custom_headers() or {}),
34
34
  }
35
35
  headers["Authorization"] = f"Bearer {self._get_token()}"
@@ -10,6 +10,8 @@ from ..types.customer import Customer
10
10
  from ..types.customer_billing_address import CustomerBillingAddress
11
11
  from ..types.customer_creation_state import CustomerCreationState
12
12
  from ..types.customer_list_response import CustomerListResponse
13
+ from ..types.customer_user import CustomerUser
14
+ from ..types.customer_user_status import CustomerUserStatus
13
15
  from ..types.empty_response import EmptyResponse
14
16
  from .raw_client import AsyncRawCustomersClient, RawCustomersClient
15
17
 
@@ -502,6 +504,65 @@ class CustomersClient:
502
504
  )
503
505
  return _response.data
504
506
 
507
+ def upsert_customer_user_by_external_id(
508
+ self,
509
+ customer_external_id: str,
510
+ user_external_id: str,
511
+ *,
512
+ name: typing.Optional[str] = OMIT,
513
+ email: typing.Optional[str] = OMIT,
514
+ metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
515
+ status: typing.Optional[CustomerUserStatus] = OMIT,
516
+ request_options: typing.Optional[RequestOptions] = None,
517
+ ) -> CustomerUser:
518
+ """
519
+ Create or update a customer user using customer and user external IDs
520
+
521
+ Parameters
522
+ ----------
523
+ customer_external_id : str
524
+
525
+ user_external_id : str
526
+
527
+ name : typing.Optional[str]
528
+
529
+ email : typing.Optional[str]
530
+
531
+ metadata : typing.Optional[typing.Dict[str, typing.Any]]
532
+
533
+ status : typing.Optional[CustomerUserStatus]
534
+
535
+ request_options : typing.Optional[RequestOptions]
536
+ Request-specific configuration.
537
+
538
+ Returns
539
+ -------
540
+ CustomerUser
541
+ 200
542
+
543
+ Examples
544
+ --------
545
+ from paid import Paid
546
+
547
+ client = Paid(
548
+ token="YOUR_TOKEN",
549
+ )
550
+ client.customers.upsert_customer_user_by_external_id(
551
+ customer_external_id="customerExternalId",
552
+ user_external_id="userExternalId",
553
+ )
554
+ """
555
+ _response = self._raw_client.upsert_customer_user_by_external_id(
556
+ customer_external_id,
557
+ user_external_id,
558
+ name=name,
559
+ email=email,
560
+ metadata=metadata,
561
+ status=status,
562
+ request_options=request_options,
563
+ )
564
+ return _response.data
565
+
505
566
 
506
567
  class AsyncCustomersClient:
507
568
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -1067,3 +1128,70 @@ class AsyncCustomersClient:
1067
1128
  external_id, request_options=request_options
1068
1129
  )
1069
1130
  return _response.data
1131
+
1132
+ async def upsert_customer_user_by_external_id(
1133
+ self,
1134
+ customer_external_id: str,
1135
+ user_external_id: str,
1136
+ *,
1137
+ name: typing.Optional[str] = OMIT,
1138
+ email: typing.Optional[str] = OMIT,
1139
+ metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT,
1140
+ status: typing.Optional[CustomerUserStatus] = OMIT,
1141
+ request_options: typing.Optional[RequestOptions] = None,
1142
+ ) -> CustomerUser:
1143
+ """
1144
+ Create or update a customer user using customer and user external IDs
1145
+
1146
+ Parameters
1147
+ ----------
1148
+ customer_external_id : str
1149
+
1150
+ user_external_id : str
1151
+
1152
+ name : typing.Optional[str]
1153
+
1154
+ email : typing.Optional[str]
1155
+
1156
+ metadata : typing.Optional[typing.Dict[str, typing.Any]]
1157
+
1158
+ status : typing.Optional[CustomerUserStatus]
1159
+
1160
+ request_options : typing.Optional[RequestOptions]
1161
+ Request-specific configuration.
1162
+
1163
+ Returns
1164
+ -------
1165
+ CustomerUser
1166
+ 200
1167
+
1168
+ Examples
1169
+ --------
1170
+ import asyncio
1171
+
1172
+ from paid import AsyncPaid
1173
+
1174
+ client = AsyncPaid(
1175
+ token="YOUR_TOKEN",
1176
+ )
1177
+
1178
+
1179
+ async def main() -> None:
1180
+ await client.customers.upsert_customer_user_by_external_id(
1181
+ customer_external_id="customerExternalId",
1182
+ user_external_id="userExternalId",
1183
+ )
1184
+
1185
+
1186
+ asyncio.run(main())
1187
+ """
1188
+ _response = await self._raw_client.upsert_customer_user_by_external_id(
1189
+ customer_external_id,
1190
+ user_external_id,
1191
+ name=name,
1192
+ email=email,
1193
+ metadata=metadata,
1194
+ status=status,
1195
+ request_options=request_options,
1196
+ )
1197
+ return _response.data