tremendous-python 5.16.0__tar.gz → 5.18.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 (276) hide show
  1. {tremendous_python-5.16.0/tremendous_python.egg-info → tremendous_python-5.18.0}/PKG-INFO +1 -1
  2. tremendous_python-5.18.0/pyproject.toml +30 -0
  3. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/__init__.py +6 -0
  4. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/api/tremendous_api.py +12 -12
  5. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/__init__.py +6 -0
  6. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/campaign.py +12 -1
  7. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/campaign_base.py +12 -1
  8. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/connected_organization.py +13 -2
  9. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_campaign_request.py +12 -1
  10. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_connected_organization_request.py +9 -3
  11. tremendous_python-5.18.0/tremendous/models/create_connected_organization_request_kyb.py +104 -0
  12. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_order200_response_order_rewards_inner_delivery.py +1 -1
  13. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/delivery_details.py +1 -1
  14. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/delivery_details_with_link.py +1 -1
  15. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/delivery_method.py +1 -1
  16. tremendous_python-5.18.0/tremendous/models/fraud_config_review_vpn.py +88 -0
  17. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review.py +3 -3
  18. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_base.py +3 -3
  19. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_list_item.py +3 -3
  20. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_reason.py +1 -0
  21. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_rule_request_config.py +25 -10
  22. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_rule_type.py +1 -1
  23. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_rules_list_item.py +1 -1
  24. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_fraud_review200_response_fraud_review.py +3 -3
  25. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_campaigns200_response_campaigns_inner.py +12 -1
  26. tremendous_python-5.18.0/tremendous/models/list_campaigns200_response_campaigns_inner_auto_add_product_rule.py +93 -0
  27. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner.py +13 -2
  28. tremendous_python-5.18.0/tremendous/models/list_connected_organizations200_response_connected_organizations_inner_prefilled_kyb_details.py +104 -0
  29. tremendous_python-5.18.0/tremendous/models/list_connected_organizations200_response_connected_organizations_inner_prefilled_kyb_details_address.py +94 -0
  30. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner.py +3 -3
  31. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fraud_rules200_response_fraud_rules_inner.py +1 -1
  32. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_products_response_products_inner.py +3 -3
  33. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards200_response_rewards_inner_delivery.py +1 -1
  34. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/product.py +3 -3
  35. tremendous_python-5.18.0/tremendous/models/review_vpn.py +88 -0
  36. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_with_link_delivery.py +1 -1
  37. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_without_link_delivery.py +1 -1
  38. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_reward_delivery.py +1 -1
  39. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/update_campaign.py +12 -1
  40. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/update_campaign_request.py +12 -1
  41. tremendous_python-5.18.0/tremendous/version.py +1 -0
  42. {tremendous_python-5.16.0 → tremendous_python-5.18.0/tremendous_python.egg-info}/PKG-INFO +1 -1
  43. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous_python.egg-info/SOURCES.txt +6 -0
  44. tremendous_python-5.16.0/pyproject.toml +0 -69
  45. tremendous_python-5.16.0/tremendous/version.py +0 -1
  46. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/LICENSE +0 -0
  47. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/README.md +0 -0
  48. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/setup.cfg +0 -0
  49. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/setup.py +0 -0
  50. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/test/test_campaigns.py +0 -0
  51. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/test/test_funding_sources.py +0 -0
  52. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/test/test_invoices.py +0 -0
  53. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/test/test_members.py +0 -0
  54. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/test/test_orders.py +0 -0
  55. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/test/test_products.py +0 -0
  56. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/api/__init__.py +0 -0
  57. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/api_client.py +0 -0
  58. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/api_response.py +0 -0
  59. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/configuration.py +0 -0
  60. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/exceptions.py +0 -0
  61. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/allow_email.py +0 -0
  62. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/allow_email1.py +0 -0
  63. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/allow_ip.py +0 -0
  64. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/allow_ip1.py +0 -0
  65. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/balance_transaction.py +0 -0
  66. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/balance_transaction_order.py +0 -0
  67. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/balance_transaction_order_payment.py +0 -0
  68. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/base_order_for_create.py +0 -0
  69. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/channel.py +0 -0
  70. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/connected_organization_member.py +0 -0
  71. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/connected_organization_member_member.py +0 -0
  72. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/connected_organization_member_session.py +0 -0
  73. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/connected_organization_organization.py +0 -0
  74. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_api_key200_response.py +0 -0
  75. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_campaign200_response.py +0 -0
  76. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_campaign201_response.py +0 -0
  77. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_connected_organization200_response.py +0 -0
  78. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_connected_organization_member200_response.py +0 -0
  79. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_connected_organization_member_request.py +0 -0
  80. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_connected_organization_member_session200_response.py +0 -0
  81. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_connected_organization_member_session200_response_connected_organization_member_session.py +0 -0
  82. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_connected_organization_member_session_request.py +0 -0
  83. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_field.py +0 -0
  84. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_field200_response.py +0 -0
  85. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_field_request.py +0 -0
  86. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_field_request_data.py +0 -0
  87. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_invoice200_response.py +0 -0
  88. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_invoice_request.py +0 -0
  89. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_member.py +0 -0
  90. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_member200_response.py +0 -0
  91. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_member_request.py +0 -0
  92. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_order200_response.py +0 -0
  93. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_order200_response_order.py +0 -0
  94. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_order200_response_order_rewards_inner.py +0 -0
  95. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_order201_response.py +0 -0
  96. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_order_request.py +0 -0
  97. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_organization.py +0 -0
  98. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_organization200_response.py +0 -0
  99. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_organization200_response_organization.py +0 -0
  100. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_organization_for_response.py +0 -0
  101. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_organization_properties.py +0 -0
  102. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_organization_request.py +0 -0
  103. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_organization_request_copy_settings.py +0 -0
  104. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report200_response.py +0 -0
  105. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report200_response_report.py +0 -0
  106. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report201_response.py +0 -0
  107. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report201_response_report.py +0 -0
  108. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report_request.py +0 -0
  109. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report_request_filters.py +0 -0
  110. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report_request_filters_digital_rewards.py +0 -0
  111. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report_request_filters_digital_rewards_amount.py +0 -0
  112. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_report_request_filters_digital_rewards_created_at.py +0 -0
  113. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_topup200_response.py +0 -0
  114. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_topup_request.py +0 -0
  115. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_webhook200_response.py +0 -0
  116. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/create_webhook_request.py +0 -0
  117. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/currency_codes.py +0 -0
  118. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/custom_field.py +0 -0
  119. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/delete_fraud_rule200_response.py +0 -0
  120. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/delivery_metadata.py +0 -0
  121. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/delivery_status.py +0 -0
  122. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/error_model.py +0 -0
  123. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_config_allow_email.py +0 -0
  124. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_config_country.py +0 -0
  125. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_config_country_update_list.py +0 -0
  126. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_config_ip.py +0 -0
  127. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_config_redeemed_rewards_amount.py +0 -0
  128. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_config_redeemed_rewards_count.py +0 -0
  129. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_config_review_email.py +0 -0
  130. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_generic_response.py +0 -0
  131. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_geo.py +0 -0
  132. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_redemption_method.py +0 -0
  133. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_related_rewards.py +0 -0
  134. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_risk.py +0 -0
  135. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_review_status.py +0 -0
  136. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_rule200_response.py +0 -0
  137. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_rule400_response.py +0 -0
  138. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_rule422_response.py +0 -0
  139. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/fraud_rule_request.py +0 -0
  140. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/funding_source.py +0 -0
  141. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/generate_reward_link200_response.py +0 -0
  142. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/generate_reward_link200_response_reward.py +0 -0
  143. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/generate_reward_link403_response.py +0 -0
  144. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/generate_reward_token200_response.py +0 -0
  145. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/generate_reward_token200_response_reward.py +0 -0
  146. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_fraud_review200_response.py +0 -0
  147. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_fraud_review200_response_fraud_review_geo.py +0 -0
  148. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_fraud_review200_response_fraud_review_related_rewards.py +0 -0
  149. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_funding_source200_response.py +0 -0
  150. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_member200_response.py +0 -0
  151. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_member200_response_member.py +0 -0
  152. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_member200_response_member_events_inner.py +0 -0
  153. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_order200_response.py +0 -0
  154. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_organization200_response.py +0 -0
  155. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_product_response.py +0 -0
  156. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/get_reward200_response.py +0 -0
  157. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/inline_object.py +0 -0
  158. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/inline_object1.py +0 -0
  159. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/inline_object1_reward.py +0 -0
  160. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/invoice.py +0 -0
  161. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_balance_transactions200_response.py +0 -0
  162. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_balance_transactions200_response_transactions_inner.py +0 -0
  163. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order.py +0 -0
  164. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order_payment.py +0 -0
  165. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_campaigns200_response.py +0 -0
  166. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_campaigns200_response_campaigns_inner_email_style.py +0 -0
  167. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_campaigns200_response_campaigns_inner_webpage_style.py +0 -0
  168. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_connected_organization_members200_response.py +0 -0
  169. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner.py +0 -0
  170. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner_member.py +0 -0
  171. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_connected_organizations200_response.py +0 -0
  172. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner_organization.py +0 -0
  173. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fields200_response.py +0 -0
  174. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fields200_response_fields_inner.py +0 -0
  175. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fields200_response_fields_inner_data.py +0 -0
  176. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_forex_response.py +0 -0
  177. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fraud_reviews200_response.py +0 -0
  178. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner_geo.py +0 -0
  179. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_fraud_rules200_response.py +0 -0
  180. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_funding_sources200_response.py +0 -0
  181. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner.py +0 -0
  182. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta.py +0 -0
  183. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta_failure_details.py +0 -0
  184. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_invoices200_response.py +0 -0
  185. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_invoices200_response_invoices_inner.py +0 -0
  186. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_members200_response.py +0 -0
  187. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_members200_response_members_inner.py +0 -0
  188. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_orders200_response.py +0 -0
  189. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_orders200_response_orders_inner.py +0 -0
  190. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_orders200_response_orders_inner_payment.py +0 -0
  191. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_orders200_response_orders_inner_payment_refund.py +0 -0
  192. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_organizations200_response.py +0 -0
  193. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_organizations200_response_organizations_inner.py +0 -0
  194. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_products_response.py +0 -0
  195. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_products_response_products_inner_countries_inner.py +0 -0
  196. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_products_response_products_inner_documents.py +0 -0
  197. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_products_response_products_inner_images_inner.py +0 -0
  198. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_products_response_products_inner_skus_inner.py +0 -0
  199. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards200_response.py +0 -0
  200. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards200_response_rewards_inner.py +0 -0
  201. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards200_response_rewards_inner_custom_fields_inner.py +0 -0
  202. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards200_response_rewards_inner_recipient.py +0 -0
  203. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards200_response_rewards_inner_value.py +0 -0
  204. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards401_response.py +0 -0
  205. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards401_response_errors.py +0 -0
  206. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_rewards429_response.py +0 -0
  207. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_roles200_response.py +0 -0
  208. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_roles200_response_roles_inner.py +0 -0
  209. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_topups200_response.py +0 -0
  210. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_topups200_response_topups_inner.py +0 -0
  211. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_webhook_events200_response.py +0 -0
  212. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_webhooks200_response.py +0 -0
  213. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/list_webhooks200_response_webhooks_inner.py +0 -0
  214. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/member.py +0 -0
  215. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/member_base.py +0 -0
  216. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/member_with_events.py +0 -0
  217. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/member_without_events.py +0 -0
  218. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/model_field.py +0 -0
  219. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order.py +0 -0
  220. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order_base.py +0 -0
  221. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order_base_payment.py +0 -0
  222. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order_status.py +0 -0
  223. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order_with_link.py +0 -0
  224. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order_with_link_rewards_inner.py +0 -0
  225. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order_without_link.py +0 -0
  226. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/order_without_link_rewards_inner.py +0 -0
  227. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/organization.py +0 -0
  228. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/payment_details.py +0 -0
  229. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/payment_details_refund.py +0 -0
  230. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/payout.py +0 -0
  231. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/product_documents.py +0 -0
  232. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/recipient.py +0 -0
  233. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/refund_details.py +0 -0
  234. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/report.py +0 -0
  235. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/resend_reward422_response.py +0 -0
  236. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/resend_reward_request.py +0 -0
  237. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_country.py +0 -0
  238. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_country1.py +0 -0
  239. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_email.py +0 -0
  240. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_email1.py +0 -0
  241. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_ip.py +0 -0
  242. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_ip1.py +0 -0
  243. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_redeemed_rewards_amount.py +0 -0
  244. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/review_redeemed_rewards_count.py +0 -0
  245. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward.py +0 -0
  246. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_base.py +0 -0
  247. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_base_custom_fields_inner.py +0 -0
  248. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_for_order_create.py +0 -0
  249. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_link.py +0 -0
  250. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_token.py +0 -0
  251. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_value.py +0 -0
  252. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_with_link.py +0 -0
  253. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/reward_without_link.py +0 -0
  254. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/role.py +0 -0
  255. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/simulate_webhook_request.py +0 -0
  256. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order.py +0 -0
  257. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_payment.py +0 -0
  258. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_reward.py +0 -0
  259. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_reward_custom_fields_inner.py +0 -0
  260. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_reward_delivery_meta.py +0 -0
  261. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_with_link.py +0 -0
  262. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_with_link_order.py +0 -0
  263. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_without_link.py +0 -0
  264. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/single_reward_order_without_link_order.py +0 -0
  265. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/topup.py +0 -0
  266. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/topup_create_request.py +0 -0
  267. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/update_fraud_rule_list200_response.py +0 -0
  268. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/update_fraud_rule_list_request.py +0 -0
  269. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/update_fraud_rule_list_request_config.py +0 -0
  270. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/webhook.py +0 -0
  271. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/models/webhook_post.py +0 -0
  272. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/py.typed +0 -0
  273. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous/rest.py +0 -0
  274. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous_python.egg-info/dependency_links.txt +0 -0
  275. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous_python.egg-info/requires.txt +0 -0
  276. {tremendous_python-5.16.0 → tremendous_python-5.18.0}/tremendous_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tremendous-python
3
- Version: 5.16.0
3
+ Version: 5.18.0
4
4
  Summary: Python API client for Tremendous
5
5
  Home-page: https://github.com/tremendous-rewards/tremendous-python
6
6
  Author: Tremendous
@@ -0,0 +1,30 @@
1
+ [tool.poetry]
2
+ name = "tremendous"
3
+ version = "5.18.0"
4
+ long_description="Python API client for Tremendous"
5
+ description = "Python API client for Tremendous"
6
+ authors = ["API Support <developers@tremendous.com>"]
7
+ license = "MIT"
8
+ readme = "README.md"
9
+ repository = "https://github.com/tremendous-rewards/tremendous-python"
10
+ keywords = ["Api", "Gift cards", "Rewards", "Incentives", "Tremendous"]
11
+ include = ["tremendous/py.typed"]
12
+
13
+ [tool.poetry.dependencies]
14
+ python = "^3.10"
15
+
16
+ urllib3 = ">= 2.1.0"
17
+ python-dateutil = ">=2.8.2"
18
+ pydantic = ">=2"
19
+ typing-extensions = ">=4.7.1"
20
+
21
+ [tool.poetry.dev-dependencies]
22
+ pytest = ">=7.2.1"
23
+
24
+
25
+ [build-system]
26
+ requires = ["setuptools"]
27
+ build-backend = "setuptools.build_meta"
28
+
29
+ [tool.pylint.'MESSAGES CONTROL']
30
+ extension-pkg-whitelist = "pydantic"
@@ -58,6 +58,7 @@ from tremendous.models.create_connected_organization_member_session200_response
58
58
  from tremendous.models.create_connected_organization_member_session200_response_connected_organization_member_session import CreateConnectedOrganizationMemberSession200ResponseConnectedOrganizationMemberSession
59
59
  from tremendous.models.create_connected_organization_member_session_request import CreateConnectedOrganizationMemberSessionRequest
60
60
  from tremendous.models.create_connected_organization_request import CreateConnectedOrganizationRequest
61
+ from tremendous.models.create_connected_organization_request_kyb import CreateConnectedOrganizationRequestKyb
61
62
  from tremendous.models.create_field import CreateField
62
63
  from tremendous.models.create_field200_response import CreateField200Response
63
64
  from tremendous.models.create_field_request import CreateFieldRequest
@@ -106,6 +107,7 @@ from tremendous.models.fraud_config_ip import FraudConfigIP
106
107
  from tremendous.models.fraud_config_redeemed_rewards_amount import FraudConfigRedeemedRewardsAmount
107
108
  from tremendous.models.fraud_config_redeemed_rewards_count import FraudConfigRedeemedRewardsCount
108
109
  from tremendous.models.fraud_config_review_email import FraudConfigReviewEmail
110
+ from tremendous.models.fraud_config_review_vpn import FraudConfigReviewVpn
109
111
  from tremendous.models.fraud_generic_response import FraudGenericResponse
110
112
  from tremendous.models.fraud_review import FraudReview
111
113
  from tremendous.models.fraud_review_base import FraudReviewBase
@@ -148,6 +150,7 @@ from tremendous.models.list_balance_transactions200_response_transactions_inner_
148
150
  from tremendous.models.list_balance_transactions200_response_transactions_inner_order_payment import ListBalanceTransactions200ResponseTransactionsInnerOrderPayment
149
151
  from tremendous.models.list_campaigns200_response import ListCampaigns200Response
150
152
  from tremendous.models.list_campaigns200_response_campaigns_inner import ListCampaigns200ResponseCampaignsInner
153
+ from tremendous.models.list_campaigns200_response_campaigns_inner_auto_add_product_rule import ListCampaigns200ResponseCampaignsInnerAutoAddProductRule
151
154
  from tremendous.models.list_campaigns200_response_campaigns_inner_email_style import ListCampaigns200ResponseCampaignsInnerEmailStyle
152
155
  from tremendous.models.list_campaigns200_response_campaigns_inner_webpage_style import ListCampaigns200ResponseCampaignsInnerWebpageStyle
153
156
  from tremendous.models.list_connected_organization_members200_response import ListConnectedOrganizationMembers200Response
@@ -156,6 +159,8 @@ from tremendous.models.list_connected_organization_members200_response_connected
156
159
  from tremendous.models.list_connected_organizations200_response import ListConnectedOrganizations200Response
157
160
  from tremendous.models.list_connected_organizations200_response_connected_organizations_inner import ListConnectedOrganizations200ResponseConnectedOrganizationsInner
158
161
  from tremendous.models.list_connected_organizations200_response_connected_organizations_inner_organization import ListConnectedOrganizations200ResponseConnectedOrganizationsInnerOrganization
162
+ from tremendous.models.list_connected_organizations200_response_connected_organizations_inner_prefilled_kyb_details import ListConnectedOrganizations200ResponseConnectedOrganizationsInnerPrefilledKybDetails
163
+ from tremendous.models.list_connected_organizations200_response_connected_organizations_inner_prefilled_kyb_details_address import ListConnectedOrganizations200ResponseConnectedOrganizationsInnerPrefilledKybDetailsAddress
159
164
  from tremendous.models.list_fields200_response import ListFields200Response
160
165
  from tremendous.models.list_fields200_response_fields_inner import ListFields200ResponseFieldsInner
161
166
  from tremendous.models.list_fields200_response_fields_inner_data import ListFields200ResponseFieldsInnerData
@@ -233,6 +238,7 @@ from tremendous.models.review_ip import ReviewIp
233
238
  from tremendous.models.review_ip1 import ReviewIp1
234
239
  from tremendous.models.review_redeemed_rewards_amount import ReviewRedeemedRewardsAmount
235
240
  from tremendous.models.review_redeemed_rewards_count import ReviewRedeemedRewardsCount
241
+ from tremendous.models.review_vpn import ReviewVpn
236
242
  from tremendous.models.reward import Reward
237
243
  from tremendous.models.reward_base import RewardBase
238
244
  from tremendous.models.reward_base_custom_fields_inner import RewardBaseCustomFieldsInner
@@ -1490,7 +1490,7 @@ class TremendousApi:
1490
1490
  ) -> CreateConnectedOrganization200Response:
1491
1491
  """Create connected organization
1492
1492
 
1493
- Create a connected organization.
1493
+ Create a connected organization. Optionally pass a `kyb` object to forward KYB details you have already collected for the end client. When provided, these values pre-fill the end client's onboarding form; the end client still reviews, edits where needed, and submits the form. Every `kyb` field is optional, but any value provided is validated — malformed KYB details (for example an unsupported `country_code` or a malformed `website_url`) return a `400`. The stored KYB details are echoed back as `prefilled_kyb_details` on this create response only.
1494
1494
 
1495
1495
  :param create_connected_organization_request: Connected organization to create (required)
1496
1496
  :type create_connected_organization_request: CreateConnectedOrganizationRequest
@@ -1561,7 +1561,7 @@ class TremendousApi:
1561
1561
  ) -> ApiResponse[CreateConnectedOrganization200Response]:
1562
1562
  """Create connected organization
1563
1563
 
1564
- Create a connected organization.
1564
+ Create a connected organization. Optionally pass a `kyb` object to forward KYB details you have already collected for the end client. When provided, these values pre-fill the end client's onboarding form; the end client still reviews, edits where needed, and submits the form. Every `kyb` field is optional, but any value provided is validated — malformed KYB details (for example an unsupported `country_code` or a malformed `website_url`) return a `400`. The stored KYB details are echoed back as `prefilled_kyb_details` on this create response only.
1565
1565
 
1566
1566
  :param create_connected_organization_request: Connected organization to create (required)
1567
1567
  :type create_connected_organization_request: CreateConnectedOrganizationRequest
@@ -1632,7 +1632,7 @@ class TremendousApi:
1632
1632
  ) -> RESTResponseType:
1633
1633
  """Create connected organization
1634
1634
 
1635
- Create a connected organization.
1635
+ Create a connected organization. Optionally pass a `kyb` object to forward KYB details you have already collected for the end client. When provided, these values pre-fill the end client's onboarding form; the end client still reviews, edits where needed, and submits the form. Every `kyb` field is optional, but any value provided is validated — malformed KYB details (for example an unsupported `country_code` or a malformed `website_url`) return a `400`. The stored KYB details are echoed back as `prefilled_kyb_details` on this create response only.
1636
1636
 
1637
1637
  :param create_connected_organization_request: Connected organization to create (required)
1638
1638
  :type create_connected_organization_request: CreateConnectedOrganizationRequest
@@ -3221,7 +3221,7 @@ class TremendousApi:
3221
3221
  ) -> CreateOrder200Response:
3222
3222
  """Create order
3223
3223
 
3224
- Every time you want to send out a reward through Tremendous you need to create an order for it. > 📘 Getting started with your first order > > Our step-by-step guide walks you through everything you need > to send your first gift card through the Tremendous API: > > <strong><a style=\"display: block; margin-top: 20px;\" href=\"/docs/sending-rewards-intro\">Check it out!</a></strong> ## Request body <div class=\"object-schema-request-schema\"> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">external_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Reference for this order, supplied by the customer.</p> <p>When set, <code>external_id</code> makes order idempotent. All requests that use the same <code>external_id</code> after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a <code>201</code> response code. These responses <strong>fail</strong> to create any further orders.</p> <p>It also allows for retrieving by <code>external_id</code> instead of <code>id</code> only.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">payment</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">funding_source_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the funding source that will be used to pay for the order. Use <code>balance</code> to use your Tremendous&#39;s balance.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $5,000 in *fake money* to test the API. [Learn more about the sandbox environment](https://developers.tremendous.com/docs/sandbox-environment). The HTTP status code `200` on the response will be used to indicate success. After processing successfully the reward gets queued to be delivered to it's recipient (for delivery method `EMAIL` and `PHONE`). Delivery will happen asynchronously, after the response has been sent. ### Idempotence Requests issued with the same `external_id` are idempotent. Submitting an order with an already existing `external_id` will not create a new order. If the payload is the same as a previously issued order, our API will return a `201` response code, along with a representation of the already-existing order in the response body. If the `external_id` used is for an order with different parameters (e.g. amount, recipient), our API will return a `409` response code, indicating a conflicting resource.
3224
+ Every time you want to send out a reward through Tremendous you need to create an order for it. > 📘 Getting started with your first order > > Our step-by-step guide walks you through everything you need > to send your first gift card through the Tremendous API: > > <strong><a style=\"display: block; margin-top: 20px;\" href=\"/docs/sending-rewards-intro\">Check it out!</a></strong> ## Request body <div class=\"object-schema-request-schema\"> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">external_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Reference for this order, supplied by the customer.</p> <p>When set, <code>external_id</code> makes order idempotent. All requests that use the same <code>external_id</code> after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a <code>201</code> response code. These responses <strong>fail</strong> to create any further orders.</p> <p>It also allows for retrieving by <code>external_id</code> instead of <code>id</code> only.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">payment</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">funding_source_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the funding source that will be used to pay for the order. Use <code>balance</code> to use your Tremendous&#39;s balance.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $5,000 in *fake money* to test the API. [Learn more about the sandbox environment](https://developers.tremendous.com/docs/sandbox-environment). The HTTP status code `200` on the response will be used to indicate success. After processing successfully the reward gets queued to be delivered to it's recipient (for delivery method `EMAIL` and `PHONE`). Delivery will happen asynchronously, after the response has been sent. ### Idempotence Requests issued with the same `external_id` are idempotent. Submitting an order with an already existing `external_id` will not create a new order. If the payload is the same as a previously issued order, our API will return a `201` response code, along with a representation of the already-existing order in the response body. If the `external_id` used is for an order with different parameters (e.g. amount, recipient), our API will return a `409` response code, indicating a conflicting resource.
3225
3225
 
3226
3226
  :param create_order_request: Order to create (required)
3227
3227
  :type create_order_request: CreateOrderRequest
@@ -3296,7 +3296,7 @@ class TremendousApi:
3296
3296
  ) -> ApiResponse[CreateOrder200Response]:
3297
3297
  """Create order
3298
3298
 
3299
- Every time you want to send out a reward through Tremendous you need to create an order for it. > 📘 Getting started with your first order > > Our step-by-step guide walks you through everything you need > to send your first gift card through the Tremendous API: > > <strong><a style=\"display: block; margin-top: 20px;\" href=\"/docs/sending-rewards-intro\">Check it out!</a></strong> ## Request body <div class=\"object-schema-request-schema\"> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">external_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Reference for this order, supplied by the customer.</p> <p>When set, <code>external_id</code> makes order idempotent. All requests that use the same <code>external_id</code> after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a <code>201</code> response code. These responses <strong>fail</strong> to create any further orders.</p> <p>It also allows for retrieving by <code>external_id</code> instead of <code>id</code> only.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">payment</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">funding_source_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the funding source that will be used to pay for the order. Use <code>balance</code> to use your Tremendous&#39;s balance.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $5,000 in *fake money* to test the API. [Learn more about the sandbox environment](https://developers.tremendous.com/docs/sandbox-environment). The HTTP status code `200` on the response will be used to indicate success. After processing successfully the reward gets queued to be delivered to it's recipient (for delivery method `EMAIL` and `PHONE`). Delivery will happen asynchronously, after the response has been sent. ### Idempotence Requests issued with the same `external_id` are idempotent. Submitting an order with an already existing `external_id` will not create a new order. If the payload is the same as a previously issued order, our API will return a `201` response code, along with a representation of the already-existing order in the response body. If the `external_id` used is for an order with different parameters (e.g. amount, recipient), our API will return a `409` response code, indicating a conflicting resource.
3299
+ Every time you want to send out a reward through Tremendous you need to create an order for it. > 📘 Getting started with your first order > > Our step-by-step guide walks you through everything you need > to send your first gift card through the Tremendous API: > > <strong><a style=\"display: block; margin-top: 20px;\" href=\"/docs/sending-rewards-intro\">Check it out!</a></strong> ## Request body <div class=\"object-schema-request-schema\"> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">external_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Reference for this order, supplied by the customer.</p> <p>When set, <code>external_id</code> makes order idempotent. All requests that use the same <code>external_id</code> after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a <code>201</code> response code. These responses <strong>fail</strong> to create any further orders.</p> <p>It also allows for retrieving by <code>external_id</code> instead of <code>id</code> only.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">payment</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">funding_source_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the funding source that will be used to pay for the order. Use <code>balance</code> to use your Tremendous&#39;s balance.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $5,000 in *fake money* to test the API. [Learn more about the sandbox environment](https://developers.tremendous.com/docs/sandbox-environment). The HTTP status code `200` on the response will be used to indicate success. After processing successfully the reward gets queued to be delivered to it's recipient (for delivery method `EMAIL` and `PHONE`). Delivery will happen asynchronously, after the response has been sent. ### Idempotence Requests issued with the same `external_id` are idempotent. Submitting an order with an already existing `external_id` will not create a new order. If the payload is the same as a previously issued order, our API will return a `201` response code, along with a representation of the already-existing order in the response body. If the `external_id` used is for an order with different parameters (e.g. amount, recipient), our API will return a `409` response code, indicating a conflicting resource.
3300
3300
 
3301
3301
  :param create_order_request: Order to create (required)
3302
3302
  :type create_order_request: CreateOrderRequest
@@ -3371,7 +3371,7 @@ class TremendousApi:
3371
3371
  ) -> RESTResponseType:
3372
3372
  """Create order
3373
3373
 
3374
- Every time you want to send out a reward through Tremendous you need to create an order for it. > 📘 Getting started with your first order > > Our step-by-step guide walks you through everything you need > to send your first gift card through the Tremendous API: > > <strong><a style=\"display: block; margin-top: 20px;\" href=\"/docs/sending-rewards-intro\">Check it out!</a></strong> ## Request body <div class=\"object-schema-request-schema\"> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">external_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Reference for this order, supplied by the customer.</p> <p>When set, <code>external_id</code> makes order idempotent. All requests that use the same <code>external_id</code> after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a <code>201</code> response code. These responses <strong>fail</strong> to create any further orders.</p> <p>It also allows for retrieving by <code>external_id</code> instead of <code>id</code> only.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">payment</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">funding_source_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the funding source that will be used to pay for the order. Use <code>balance</code> to use your Tremendous&#39;s balance.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The link can be retrieved on a successfully ordered reward via the <code>/rewards</code> or <code>/rewards/{id}</code> endpoint. That link must then be delivered to the recipient out-of-band.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $5,000 in *fake money* to test the API. [Learn more about the sandbox environment](https://developers.tremendous.com/docs/sandbox-environment). The HTTP status code `200` on the response will be used to indicate success. After processing successfully the reward gets queued to be delivered to it's recipient (for delivery method `EMAIL` and `PHONE`). Delivery will happen asynchronously, after the response has been sent. ### Idempotence Requests issued with the same `external_id` are idempotent. Submitting an order with an already existing `external_id` will not create a new order. If the payload is the same as a previously issued order, our API will return a `201` response code, along with a representation of the already-existing order in the response body. If the `external_id` used is for an order with different parameters (e.g. amount, recipient), our API will return a `409` response code, indicating a conflicting resource.
3374
+ Every time you want to send out a reward through Tremendous you need to create an order for it. > 📘 Getting started with your first order > > Our step-by-step guide walks you through everything you need > to send your first gift card through the Tremendous API: > > <strong><a style=\"display: block; margin-top: 20px;\" href=\"/docs/sending-rewards-intro\">Check it out!</a></strong> ## Request body <div class=\"object-schema-request-schema\"> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">external_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Reference for this order, supplied by the customer.</p> <p>When set, <code>external_id</code> makes order idempotent. All requests that use the same <code>external_id</code> after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a <code>201</code> response code. These responses <strong>fail</strong> to create any further orders.</p> <p>It also allows for retrieving by <code>external_id</code> instead of <code>id</code> only.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">payment</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">funding_source_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the funding source that will be used to pay for the order. Use <code>balance</code> to use your Tremendous&#39;s balance.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $5,000 in *fake money* to test the API. [Learn more about the sandbox environment](https://developers.tremendous.com/docs/sandbox-environment). The HTTP status code `200` on the response will be used to indicate success. After processing successfully the reward gets queued to be delivered to it's recipient (for delivery method `EMAIL` and `PHONE`). Delivery will happen asynchronously, after the response has been sent. ### Idempotence Requests issued with the same `external_id` are idempotent. Submitting an order with an already existing `external_id` will not create a new order. If the payload is the same as a previously issued order, our API will return a `201` response code, along with a representation of the already-existing order in the response body. If the `external_id` used is for an order with different parameters (e.g. amount, recipient), our API will return a `409` response code, indicating a conflicting resource.
3375
3375
 
3376
3376
  :param create_order_request: Order to create (required)
3377
3377
  :type create_order_request: CreateOrderRequest
@@ -6573,7 +6573,7 @@ class TremendousApi:
6573
6573
  def fraud_rule(
6574
6574
  self,
6575
6575
  rule_type: Annotated[StrictStr, Field(description="The rule type to create or update.")],
6576
- fraud_rule_request: Annotated[Optional[FraudRuleRequest], Field(description="Rules `review_multiple_emails`, `review_vpn`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body.")] = None,
6576
+ fraud_rule_request: Annotated[Optional[FraudRuleRequest], Field(description="Rules `review_multiple_emails`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body. `review_vpn` also accepts no body for the default behavior. Pass `config.skip_apple_private_relay` only to override whether Apple Private Relay traffic is flagged. ")] = None,
6577
6577
  _request_timeout: Union[
6578
6578
  None,
6579
6579
  Annotated[StrictFloat, Field(gt=0)],
@@ -6593,7 +6593,7 @@ class TremendousApi:
6593
6593
 
6594
6594
  :param rule_type: The rule type to create or update. (required)
6595
6595
  :type rule_type: str
6596
- :param fraud_rule_request: Rules `review_multiple_emails`, `review_vpn`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body.
6596
+ :param fraud_rule_request: Rules `review_multiple_emails`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body. `review_vpn` also accepts no body for the default behavior. Pass `config.skip_apple_private_relay` only to override whether Apple Private Relay traffic is flagged.
6597
6597
  :type fraud_rule_request: FraudRuleRequest
6598
6598
  :param _request_timeout: timeout setting for this request. If one
6599
6599
  number provided, it will be total request
@@ -6650,7 +6650,7 @@ class TremendousApi:
6650
6650
  def fraud_rule_with_http_info(
6651
6651
  self,
6652
6652
  rule_type: Annotated[StrictStr, Field(description="The rule type to create or update.")],
6653
- fraud_rule_request: Annotated[Optional[FraudRuleRequest], Field(description="Rules `review_multiple_emails`, `review_vpn`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body.")] = None,
6653
+ fraud_rule_request: Annotated[Optional[FraudRuleRequest], Field(description="Rules `review_multiple_emails`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body. `review_vpn` also accepts no body for the default behavior. Pass `config.skip_apple_private_relay` only to override whether Apple Private Relay traffic is flagged. ")] = None,
6654
6654
  _request_timeout: Union[
6655
6655
  None,
6656
6656
  Annotated[StrictFloat, Field(gt=0)],
@@ -6670,7 +6670,7 @@ class TremendousApi:
6670
6670
 
6671
6671
  :param rule_type: The rule type to create or update. (required)
6672
6672
  :type rule_type: str
6673
- :param fraud_rule_request: Rules `review_multiple_emails`, `review_vpn`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body.
6673
+ :param fraud_rule_request: Rules `review_multiple_emails`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body. `review_vpn` also accepts no body for the default behavior. Pass `config.skip_apple_private_relay` only to override whether Apple Private Relay traffic is flagged.
6674
6674
  :type fraud_rule_request: FraudRuleRequest
6675
6675
  :param _request_timeout: timeout setting for this request. If one
6676
6676
  number provided, it will be total request
@@ -6727,7 +6727,7 @@ class TremendousApi:
6727
6727
  def fraud_rule_without_preload_content(
6728
6728
  self,
6729
6729
  rule_type: Annotated[StrictStr, Field(description="The rule type to create or update.")],
6730
- fraud_rule_request: Annotated[Optional[FraudRuleRequest], Field(description="Rules `review_multiple_emails`, `review_vpn`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body.")] = None,
6730
+ fraud_rule_request: Annotated[Optional[FraudRuleRequest], Field(description="Rules `review_multiple_emails`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body. `review_vpn` also accepts no body for the default behavior. Pass `config.skip_apple_private_relay` only to override whether Apple Private Relay traffic is flagged. ")] = None,
6731
6731
  _request_timeout: Union[
6732
6732
  None,
6733
6733
  Annotated[StrictFloat, Field(gt=0)],
@@ -6747,7 +6747,7 @@ class TremendousApi:
6747
6747
 
6748
6748
  :param rule_type: The rule type to create or update. (required)
6749
6749
  :type rule_type: str
6750
- :param fraud_rule_request: Rules `review_multiple_emails`, `review_vpn`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body.
6750
+ :param fraud_rule_request: Rules `review_multiple_emails`, `review_tremendous_flaglist`, and `review_previously_blocked_recipients` require no body. `review_vpn` also accepts no body for the default behavior. Pass `config.skip_apple_private_relay` only to override whether Apple Private Relay traffic is flagged.
6751
6751
  :type fraud_rule_request: FraudRuleRequest
6752
6752
  :param _request_timeout: timeout setting for this request. If one
6753
6753
  number provided, it will be total request
@@ -41,6 +41,7 @@ from tremendous.models.create_connected_organization_member_session200_response
41
41
  from tremendous.models.create_connected_organization_member_session200_response_connected_organization_member_session import CreateConnectedOrganizationMemberSession200ResponseConnectedOrganizationMemberSession
42
42
  from tremendous.models.create_connected_organization_member_session_request import CreateConnectedOrganizationMemberSessionRequest
43
43
  from tremendous.models.create_connected_organization_request import CreateConnectedOrganizationRequest
44
+ from tremendous.models.create_connected_organization_request_kyb import CreateConnectedOrganizationRequestKyb
44
45
  from tremendous.models.create_field import CreateField
45
46
  from tremendous.models.create_field200_response import CreateField200Response
46
47
  from tremendous.models.create_field_request import CreateFieldRequest
@@ -89,6 +90,7 @@ from tremendous.models.fraud_config_ip import FraudConfigIP
89
90
  from tremendous.models.fraud_config_redeemed_rewards_amount import FraudConfigRedeemedRewardsAmount
90
91
  from tremendous.models.fraud_config_redeemed_rewards_count import FraudConfigRedeemedRewardsCount
91
92
  from tremendous.models.fraud_config_review_email import FraudConfigReviewEmail
93
+ from tremendous.models.fraud_config_review_vpn import FraudConfigReviewVpn
92
94
  from tremendous.models.fraud_generic_response import FraudGenericResponse
93
95
  from tremendous.models.fraud_review import FraudReview
94
96
  from tremendous.models.fraud_review_base import FraudReviewBase
@@ -131,6 +133,7 @@ from tremendous.models.list_balance_transactions200_response_transactions_inner_
131
133
  from tremendous.models.list_balance_transactions200_response_transactions_inner_order_payment import ListBalanceTransactions200ResponseTransactionsInnerOrderPayment
132
134
  from tremendous.models.list_campaigns200_response import ListCampaigns200Response
133
135
  from tremendous.models.list_campaigns200_response_campaigns_inner import ListCampaigns200ResponseCampaignsInner
136
+ from tremendous.models.list_campaigns200_response_campaigns_inner_auto_add_product_rule import ListCampaigns200ResponseCampaignsInnerAutoAddProductRule
134
137
  from tremendous.models.list_campaigns200_response_campaigns_inner_email_style import ListCampaigns200ResponseCampaignsInnerEmailStyle
135
138
  from tremendous.models.list_campaigns200_response_campaigns_inner_webpage_style import ListCampaigns200ResponseCampaignsInnerWebpageStyle
136
139
  from tremendous.models.list_connected_organization_members200_response import ListConnectedOrganizationMembers200Response
@@ -139,6 +142,8 @@ from tremendous.models.list_connected_organization_members200_response_connected
139
142
  from tremendous.models.list_connected_organizations200_response import ListConnectedOrganizations200Response
140
143
  from tremendous.models.list_connected_organizations200_response_connected_organizations_inner import ListConnectedOrganizations200ResponseConnectedOrganizationsInner
141
144
  from tremendous.models.list_connected_organizations200_response_connected_organizations_inner_organization import ListConnectedOrganizations200ResponseConnectedOrganizationsInnerOrganization
145
+ from tremendous.models.list_connected_organizations200_response_connected_organizations_inner_prefilled_kyb_details import ListConnectedOrganizations200ResponseConnectedOrganizationsInnerPrefilledKybDetails
146
+ from tremendous.models.list_connected_organizations200_response_connected_organizations_inner_prefilled_kyb_details_address import ListConnectedOrganizations200ResponseConnectedOrganizationsInnerPrefilledKybDetailsAddress
142
147
  from tremendous.models.list_fields200_response import ListFields200Response
143
148
  from tremendous.models.list_fields200_response_fields_inner import ListFields200ResponseFieldsInner
144
149
  from tremendous.models.list_fields200_response_fields_inner_data import ListFields200ResponseFieldsInnerData
@@ -216,6 +221,7 @@ from tremendous.models.review_ip import ReviewIp
216
221
  from tremendous.models.review_ip1 import ReviewIp1
217
222
  from tremendous.models.review_redeemed_rewards_amount import ReviewRedeemedRewardsAmount
218
223
  from tremendous.models.review_redeemed_rewards_count import ReviewRedeemedRewardsCount
224
+ from tremendous.models.review_vpn import ReviewVpn
219
225
  from tremendous.models.reward import Reward
220
226
  from tremendous.models.reward_base import RewardBase
221
227
  from tremendous.models.reward_base_custom_fields_inner import RewardBaseCustomFieldsInner
@@ -21,6 +21,7 @@ import json
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing_extensions import Annotated
24
+ from tremendous.models.list_campaigns200_response_campaigns_inner_auto_add_product_rule import ListCampaigns200ResponseCampaignsInnerAutoAddProductRule
24
25
  from tremendous.models.list_campaigns200_response_campaigns_inner_email_style import ListCampaigns200ResponseCampaignsInnerEmailStyle
25
26
  from tremendous.models.list_campaigns200_response_campaigns_inner_webpage_style import ListCampaigns200ResponseCampaignsInnerWebpageStyle
26
27
  from typing import Optional, Set
@@ -35,9 +36,10 @@ class Campaign(BaseModel):
35
36
  description: Optional[StrictStr] = Field(description="Description of the campaign")
36
37
  products: List[Annotated[str, Field(strict=True)]] = Field(description="List of IDs of products (different gift cards, charity, etc.) that are available in this campaign. ")
37
38
  fee_charged_to: Optional[StrictStr] = Field(default=None, description="Determines whether fees for premium products are added to the order total (`SENDER`) or deducted from the recipient's reward amount (`RECIPIENT`). Campaigns with `RECIPIENT` must include at least one fee-free product. ")
39
+ auto_add_product_rule: Optional[ListCampaigns200ResponseCampaignsInnerAutoAddProductRule] = None
38
40
  webpage_style: Optional[ListCampaigns200ResponseCampaignsInnerWebpageStyle] = None
39
41
  email_style: Optional[ListCampaigns200ResponseCampaignsInnerEmailStyle] = None
40
- __properties: ClassVar[List[str]] = ["id", "name", "description", "products", "fee_charged_to", "webpage_style", "email_style"]
42
+ __properties: ClassVar[List[str]] = ["id", "name", "description", "products", "fee_charged_to", "auto_add_product_rule", "webpage_style", "email_style"]
41
43
 
42
44
  @field_validator('id')
43
45
  def id_validate_regular_expression(cls, value):
@@ -100,6 +102,9 @@ class Campaign(BaseModel):
100
102
  exclude=excluded_fields,
101
103
  exclude_none=True,
102
104
  )
105
+ # override the default output from pydantic by calling `to_dict()` of auto_add_product_rule
106
+ if self.auto_add_product_rule:
107
+ _dict['auto_add_product_rule'] = self.auto_add_product_rule.to_dict()
103
108
  # override the default output from pydantic by calling `to_dict()` of webpage_style
104
109
  if self.webpage_style:
105
110
  _dict['webpage_style'] = self.webpage_style.to_dict()
@@ -116,6 +121,11 @@ class Campaign(BaseModel):
116
121
  if self.fee_charged_to is None and "fee_charged_to" in self.model_fields_set:
117
122
  _dict['fee_charged_to'] = None
118
123
 
124
+ # set to None if auto_add_product_rule (nullable) is None
125
+ # and model_fields_set contains the field
126
+ if self.auto_add_product_rule is None and "auto_add_product_rule" in self.model_fields_set:
127
+ _dict['auto_add_product_rule'] = None
128
+
119
129
  return _dict
120
130
 
121
131
  @classmethod
@@ -133,6 +143,7 @@ class Campaign(BaseModel):
133
143
  "description": obj.get("description"),
134
144
  "products": obj.get("products"),
135
145
  "fee_charged_to": obj.get("fee_charged_to"),
146
+ "auto_add_product_rule": ListCampaigns200ResponseCampaignsInnerAutoAddProductRule.from_dict(obj["auto_add_product_rule"]) if obj.get("auto_add_product_rule") is not None else None,
136
147
  "webpage_style": ListCampaigns200ResponseCampaignsInnerWebpageStyle.from_dict(obj["webpage_style"]) if obj.get("webpage_style") is not None else None,
137
148
  "email_style": ListCampaigns200ResponseCampaignsInnerEmailStyle.from_dict(obj["email_style"]) if obj.get("email_style") is not None else None
138
149
  })