tremendous-python 5.15.0__tar.gz → 5.17.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 (270) hide show
  1. {tremendous_python-5.15.0/tremendous_python.egg-info → tremendous_python-5.17.0}/PKG-INFO +1 -1
  2. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/pyproject.toml +1 -1
  3. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/__init__.py +1 -0
  4. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/api/tremendous_api.py +3 -3
  5. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/__init__.py +1 -0
  6. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/campaign.py +12 -1
  7. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/campaign_base.py +12 -1
  8. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_campaign_request.py +12 -1
  9. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_order200_response_order_rewards_inner_delivery.py +1 -1
  10. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/delivery_details.py +1 -1
  11. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/delivery_details_with_link.py +1 -1
  12. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/delivery_method.py +1 -1
  13. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review.py +3 -3
  14. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_base.py +3 -3
  15. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_list_item.py +3 -3
  16. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_reason.py +3 -1
  17. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_fraud_review200_response_fraud_review.py +3 -3
  18. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_campaigns200_response_campaigns_inner.py +12 -1
  19. tremendous_python-5.17.0/tremendous/models/list_campaigns200_response_campaigns_inner_auto_add_product_rule.py +93 -0
  20. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_campaigns200_response_campaigns_inner_webpage_style.py +5 -0
  21. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner.py +3 -3
  22. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards200_response_rewards_inner_delivery.py +1 -1
  23. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards200_response_rewards_inner_value.py +2 -2
  24. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_value.py +2 -2
  25. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_with_link_delivery.py +1 -1
  26. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_without_link_delivery.py +1 -1
  27. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_reward_delivery.py +1 -1
  28. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/update_campaign.py +12 -1
  29. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/update_campaign_request.py +12 -1
  30. tremendous_python-5.17.0/tremendous/version.py +1 -0
  31. {tremendous_python-5.15.0 → tremendous_python-5.17.0/tremendous_python.egg-info}/PKG-INFO +1 -1
  32. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous_python.egg-info/SOURCES.txt +1 -0
  33. tremendous_python-5.15.0/tremendous/version.py +0 -1
  34. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/LICENSE +0 -0
  35. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/README.md +0 -0
  36. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/setup.cfg +0 -0
  37. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/setup.py +0 -0
  38. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/test/test_campaigns.py +0 -0
  39. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/test/test_funding_sources.py +0 -0
  40. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/test/test_invoices.py +0 -0
  41. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/test/test_members.py +0 -0
  42. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/test/test_orders.py +0 -0
  43. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/test/test_products.py +0 -0
  44. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/api/__init__.py +0 -0
  45. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/api_client.py +0 -0
  46. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/api_response.py +0 -0
  47. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/configuration.py +0 -0
  48. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/exceptions.py +0 -0
  49. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/allow_email.py +0 -0
  50. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/allow_email1.py +0 -0
  51. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/allow_ip.py +0 -0
  52. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/allow_ip1.py +0 -0
  53. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/balance_transaction.py +0 -0
  54. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/balance_transaction_order.py +0 -0
  55. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/balance_transaction_order_payment.py +0 -0
  56. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/base_order_for_create.py +0 -0
  57. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/channel.py +0 -0
  58. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/connected_organization.py +0 -0
  59. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/connected_organization_member.py +0 -0
  60. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/connected_organization_member_member.py +0 -0
  61. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/connected_organization_member_session.py +0 -0
  62. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/connected_organization_organization.py +0 -0
  63. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_api_key200_response.py +0 -0
  64. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_campaign200_response.py +0 -0
  65. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_campaign201_response.py +0 -0
  66. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_connected_organization200_response.py +0 -0
  67. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_connected_organization_member200_response.py +0 -0
  68. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_connected_organization_member_request.py +0 -0
  69. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_connected_organization_member_session200_response.py +0 -0
  70. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_connected_organization_member_session200_response_connected_organization_member_session.py +0 -0
  71. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_connected_organization_member_session_request.py +0 -0
  72. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_connected_organization_request.py +0 -0
  73. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_field.py +0 -0
  74. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_field200_response.py +0 -0
  75. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_field_request.py +0 -0
  76. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_field_request_data.py +0 -0
  77. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_invoice200_response.py +0 -0
  78. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_invoice_request.py +0 -0
  79. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_member.py +0 -0
  80. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_member200_response.py +0 -0
  81. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_member_request.py +0 -0
  82. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_order200_response.py +0 -0
  83. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_order200_response_order.py +0 -0
  84. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_order200_response_order_rewards_inner.py +0 -0
  85. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_order201_response.py +0 -0
  86. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_order_request.py +0 -0
  87. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_organization.py +0 -0
  88. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_organization200_response.py +0 -0
  89. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_organization200_response_organization.py +0 -0
  90. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_organization_for_response.py +0 -0
  91. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_organization_properties.py +0 -0
  92. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_organization_request.py +0 -0
  93. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_organization_request_copy_settings.py +0 -0
  94. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report200_response.py +0 -0
  95. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report200_response_report.py +0 -0
  96. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report201_response.py +0 -0
  97. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report201_response_report.py +0 -0
  98. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report_request.py +0 -0
  99. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report_request_filters.py +0 -0
  100. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report_request_filters_digital_rewards.py +0 -0
  101. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report_request_filters_digital_rewards_amount.py +0 -0
  102. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_report_request_filters_digital_rewards_created_at.py +0 -0
  103. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_topup200_response.py +0 -0
  104. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_topup_request.py +0 -0
  105. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_webhook200_response.py +0 -0
  106. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/create_webhook_request.py +0 -0
  107. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/currency_codes.py +0 -0
  108. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/custom_field.py +0 -0
  109. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/delete_fraud_rule200_response.py +0 -0
  110. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/delivery_metadata.py +0 -0
  111. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/delivery_status.py +0 -0
  112. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/error_model.py +0 -0
  113. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_config_allow_email.py +0 -0
  114. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_config_country.py +0 -0
  115. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_config_country_update_list.py +0 -0
  116. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_config_ip.py +0 -0
  117. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_config_redeemed_rewards_amount.py +0 -0
  118. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_config_redeemed_rewards_count.py +0 -0
  119. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_config_review_email.py +0 -0
  120. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_generic_response.py +0 -0
  121. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_geo.py +0 -0
  122. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_redemption_method.py +0 -0
  123. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_related_rewards.py +0 -0
  124. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_risk.py +0 -0
  125. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_review_status.py +0 -0
  126. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_rule200_response.py +0 -0
  127. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_rule400_response.py +0 -0
  128. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_rule422_response.py +0 -0
  129. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_rule_request.py +0 -0
  130. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_rule_request_config.py +0 -0
  131. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_rule_type.py +0 -0
  132. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/fraud_rules_list_item.py +0 -0
  133. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/funding_source.py +0 -0
  134. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/generate_reward_link200_response.py +0 -0
  135. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/generate_reward_link200_response_reward.py +0 -0
  136. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/generate_reward_link403_response.py +0 -0
  137. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/generate_reward_token200_response.py +0 -0
  138. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/generate_reward_token200_response_reward.py +0 -0
  139. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_fraud_review200_response.py +0 -0
  140. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_fraud_review200_response_fraud_review_geo.py +0 -0
  141. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_fraud_review200_response_fraud_review_related_rewards.py +0 -0
  142. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_funding_source200_response.py +0 -0
  143. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_member200_response.py +0 -0
  144. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_member200_response_member.py +0 -0
  145. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_member200_response_member_events_inner.py +0 -0
  146. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_order200_response.py +0 -0
  147. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_organization200_response.py +0 -0
  148. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_product_response.py +0 -0
  149. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/get_reward200_response.py +0 -0
  150. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/inline_object.py +0 -0
  151. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/inline_object1.py +0 -0
  152. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/inline_object1_reward.py +0 -0
  153. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/invoice.py +0 -0
  154. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_balance_transactions200_response.py +0 -0
  155. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_balance_transactions200_response_transactions_inner.py +0 -0
  156. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order.py +0 -0
  157. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order_payment.py +0 -0
  158. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_campaigns200_response.py +0 -0
  159. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_campaigns200_response_campaigns_inner_email_style.py +0 -0
  160. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_connected_organization_members200_response.py +0 -0
  161. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner.py +0 -0
  162. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner_member.py +0 -0
  163. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_connected_organizations200_response.py +0 -0
  164. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner.py +0 -0
  165. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner_organization.py +0 -0
  166. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fields200_response.py +0 -0
  167. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fields200_response_fields_inner.py +0 -0
  168. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fields200_response_fields_inner_data.py +0 -0
  169. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_forex_response.py +0 -0
  170. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fraud_reviews200_response.py +0 -0
  171. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner_geo.py +0 -0
  172. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fraud_rules200_response.py +0 -0
  173. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_fraud_rules200_response_fraud_rules_inner.py +0 -0
  174. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_funding_sources200_response.py +0 -0
  175. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner.py +0 -0
  176. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta.py +0 -0
  177. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta_failure_details.py +0 -0
  178. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_invoices200_response.py +0 -0
  179. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_invoices200_response_invoices_inner.py +0 -0
  180. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_members200_response.py +0 -0
  181. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_members200_response_members_inner.py +0 -0
  182. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_orders200_response.py +0 -0
  183. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_orders200_response_orders_inner.py +0 -0
  184. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_orders200_response_orders_inner_payment.py +0 -0
  185. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_orders200_response_orders_inner_payment_refund.py +0 -0
  186. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_organizations200_response.py +0 -0
  187. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_organizations200_response_organizations_inner.py +0 -0
  188. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_products_response.py +0 -0
  189. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_products_response_products_inner.py +0 -0
  190. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_products_response_products_inner_countries_inner.py +0 -0
  191. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_products_response_products_inner_documents.py +0 -0
  192. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_products_response_products_inner_images_inner.py +0 -0
  193. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_products_response_products_inner_skus_inner.py +0 -0
  194. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards200_response.py +0 -0
  195. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards200_response_rewards_inner.py +0 -0
  196. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards200_response_rewards_inner_custom_fields_inner.py +0 -0
  197. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards200_response_rewards_inner_recipient.py +0 -0
  198. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards401_response.py +0 -0
  199. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards401_response_errors.py +0 -0
  200. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_rewards429_response.py +0 -0
  201. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_roles200_response.py +0 -0
  202. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_roles200_response_roles_inner.py +0 -0
  203. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_topups200_response.py +0 -0
  204. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_topups200_response_topups_inner.py +0 -0
  205. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_webhook_events200_response.py +0 -0
  206. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_webhooks200_response.py +0 -0
  207. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/list_webhooks200_response_webhooks_inner.py +0 -0
  208. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/member.py +0 -0
  209. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/member_base.py +0 -0
  210. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/member_with_events.py +0 -0
  211. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/member_without_events.py +0 -0
  212. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/model_field.py +0 -0
  213. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order.py +0 -0
  214. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order_base.py +0 -0
  215. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order_base_payment.py +0 -0
  216. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order_status.py +0 -0
  217. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order_with_link.py +0 -0
  218. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order_with_link_rewards_inner.py +0 -0
  219. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order_without_link.py +0 -0
  220. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/order_without_link_rewards_inner.py +0 -0
  221. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/organization.py +0 -0
  222. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/payment_details.py +0 -0
  223. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/payment_details_refund.py +0 -0
  224. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/payout.py +0 -0
  225. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/product.py +0 -0
  226. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/product_documents.py +0 -0
  227. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/recipient.py +0 -0
  228. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/refund_details.py +0 -0
  229. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/report.py +0 -0
  230. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/resend_reward422_response.py +0 -0
  231. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/resend_reward_request.py +0 -0
  232. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_country.py +0 -0
  233. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_country1.py +0 -0
  234. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_email.py +0 -0
  235. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_email1.py +0 -0
  236. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_ip.py +0 -0
  237. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_ip1.py +0 -0
  238. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_redeemed_rewards_amount.py +0 -0
  239. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/review_redeemed_rewards_count.py +0 -0
  240. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward.py +0 -0
  241. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_base.py +0 -0
  242. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_base_custom_fields_inner.py +0 -0
  243. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_for_order_create.py +0 -0
  244. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_link.py +0 -0
  245. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_token.py +0 -0
  246. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_with_link.py +0 -0
  247. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/reward_without_link.py +0 -0
  248. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/role.py +0 -0
  249. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/simulate_webhook_request.py +0 -0
  250. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order.py +0 -0
  251. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_payment.py +0 -0
  252. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_reward.py +0 -0
  253. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_reward_custom_fields_inner.py +0 -0
  254. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_reward_delivery_meta.py +0 -0
  255. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_with_link.py +0 -0
  256. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_with_link_order.py +0 -0
  257. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_without_link.py +0 -0
  258. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/single_reward_order_without_link_order.py +0 -0
  259. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/topup.py +0 -0
  260. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/topup_create_request.py +0 -0
  261. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/update_fraud_rule_list200_response.py +0 -0
  262. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/update_fraud_rule_list_request.py +0 -0
  263. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/update_fraud_rule_list_request_config.py +0 -0
  264. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/webhook.py +0 -0
  265. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/models/webhook_post.py +0 -0
  266. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/py.typed +0 -0
  267. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous/rest.py +0 -0
  268. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous_python.egg-info/dependency_links.txt +0 -0
  269. {tremendous_python-5.15.0 → tremendous_python-5.17.0}/tremendous_python.egg-info/requires.txt +0 -0
  270. {tremendous_python-5.15.0 → tremendous_python-5.17.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.15.0
3
+ Version: 5.17.0
4
4
  Summary: Python API client for Tremendous
5
5
  Home-page: https://github.com/tremendous-rewards/tremendous-python
6
6
  Author: Tremendous
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "tremendous"
3
- version = "5.15.0"
3
+ version = "5.17.0"
4
4
  long_description="Python API client for Tremendous"
5
5
  description = "Python API client for Tremendous"
6
6
  authors = ["API Support <developers@tremendous.com>"]
@@ -148,6 +148,7 @@ from tremendous.models.list_balance_transactions200_response_transactions_inner_
148
148
  from tremendous.models.list_balance_transactions200_response_transactions_inner_order_payment import ListBalanceTransactions200ResponseTransactionsInnerOrderPayment
149
149
  from tremendous.models.list_campaigns200_response import ListCampaigns200Response
150
150
  from tremendous.models.list_campaigns200_response_campaigns_inner import ListCampaigns200ResponseCampaignsInner
151
+ from tremendous.models.list_campaigns200_response_campaigns_inner_auto_add_product_rule import ListCampaigns200ResponseCampaignsInnerAutoAddProductRule
151
152
  from tremendous.models.list_campaigns200_response_campaigns_inner_email_style import ListCampaigns200ResponseCampaignsInnerEmailStyle
152
153
  from tremendous.models.list_campaigns200_response_campaigns_inner_webpage_style import ListCampaigns200ResponseCampaignsInnerWebpageStyle
153
154
  from tremendous.models.list_connected_organization_members200_response import ListConnectedOrganizationMembers200Response
@@ -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</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</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</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
@@ -131,6 +131,7 @@ from tremendous.models.list_balance_transactions200_response_transactions_inner_
131
131
  from tremendous.models.list_balance_transactions200_response_transactions_inner_order_payment import ListBalanceTransactions200ResponseTransactionsInnerOrderPayment
132
132
  from tremendous.models.list_campaigns200_response import ListCampaigns200Response
133
133
  from tremendous.models.list_campaigns200_response_campaigns_inner import ListCampaigns200ResponseCampaignsInner
134
+ from tremendous.models.list_campaigns200_response_campaigns_inner_auto_add_product_rule import ListCampaigns200ResponseCampaignsInnerAutoAddProductRule
134
135
  from tremendous.models.list_campaigns200_response_campaigns_inner_email_style import ListCampaigns200ResponseCampaignsInnerEmailStyle
135
136
  from tremendous.models.list_campaigns200_response_campaigns_inner_webpage_style import ListCampaigns200ResponseCampaignsInnerWebpageStyle
136
137
  from tremendous.models.list_connected_organization_members200_response import ListConnectedOrganizationMembers200Response
@@ -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
  })
@@ -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 CampaignBase(BaseModel):
35
36
  description: Optional[StrictStr] = Field(default=None, description="Description of the campaign")
36
37
  products: Optional[List[Annotated[str, Field(strict=True)]]] = Field(default=None, 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 CampaignBase(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 CampaignBase(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 CampaignBase(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
  })
@@ -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
@@ -34,9 +35,10 @@ class CreateCampaignRequest(BaseModel):
34
35
  description: Optional[StrictStr] = Field(description="Description of the campaign")
35
36
  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. ")
36
37
  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. ")
38
+ auto_add_product_rule: Optional[ListCampaigns200ResponseCampaignsInnerAutoAddProductRule] = None
37
39
  webpage_style: Optional[ListCampaigns200ResponseCampaignsInnerWebpageStyle] = None
38
40
  email_style: Optional[ListCampaigns200ResponseCampaignsInnerEmailStyle] = None
39
- __properties: ClassVar[List[str]] = ["name", "description", "products", "fee_charged_to", "webpage_style", "email_style"]
41
+ __properties: ClassVar[List[str]] = ["name", "description", "products", "fee_charged_to", "auto_add_product_rule", "webpage_style", "email_style"]
40
42
 
41
43
  @field_validator('fee_charged_to')
42
44
  def fee_charged_to_validate_enum(cls, value):
@@ -87,6 +89,9 @@ class CreateCampaignRequest(BaseModel):
87
89
  exclude=excluded_fields,
88
90
  exclude_none=True,
89
91
  )
92
+ # override the default output from pydantic by calling `to_dict()` of auto_add_product_rule
93
+ if self.auto_add_product_rule:
94
+ _dict['auto_add_product_rule'] = self.auto_add_product_rule.to_dict()
90
95
  # override the default output from pydantic by calling `to_dict()` of webpage_style
91
96
  if self.webpage_style:
92
97
  _dict['webpage_style'] = self.webpage_style.to_dict()
@@ -103,6 +108,11 @@ class CreateCampaignRequest(BaseModel):
103
108
  if self.fee_charged_to is None and "fee_charged_to" in self.model_fields_set:
104
109
  _dict['fee_charged_to'] = None
105
110
 
111
+ # set to None if auto_add_product_rule (nullable) is None
112
+ # and model_fields_set contains the field
113
+ if self.auto_add_product_rule is None and "auto_add_product_rule" in self.model_fields_set:
114
+ _dict['auto_add_product_rule'] = None
115
+
106
116
  return _dict
107
117
 
108
118
  @classmethod
@@ -119,6 +129,7 @@ class CreateCampaignRequest(BaseModel):
119
129
  "description": obj.get("description"),
120
130
  "products": obj.get("products"),
121
131
  "fee_charged_to": obj.get("fee_charged_to"),
132
+ "auto_add_product_rule": ListCampaigns200ResponseCampaignsInnerAutoAddProductRule.from_dict(obj["auto_add_product_rule"]) if obj.get("auto_add_product_rule") is not None else None,
122
133
  "webpage_style": ListCampaigns200ResponseCampaignsInnerWebpageStyle.from_dict(obj["webpage_style"]) if obj.get("webpage_style") is not None else None,
123
134
  "email_style": ListCampaigns200ResponseCampaignsInnerEmailStyle.from_dict(obj["email_style"]) if obj.get("email_style") is not None else None
124
135
  })
@@ -27,7 +27,7 @@ class CreateOrder200ResponseOrderRewardsInnerDelivery(BaseModel):
27
27
  """
28
28
  Details on how the reward is delivered to the recipient.
29
29
  """ # noqa: E501
30
- method: StrictStr = Field(description="How to deliver the reward to the recipient. <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> ")
30
+ method: StrictStr = Field(description="How to deliver the reward to the recipient. <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> ")
31
31
  status: StrictStr = Field(description="Current status of the delivery of the reward: * `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon. * `FAILED` - Delivery of reward failed (e.g. email bounced). * `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link active). * `PENDING` - Delivery is pending but not yet scheduled. ")
32
32
  link: Optional[StrictStr] = Field(default=None, description="Link to redeem the reward at. You need to deliver this link to the recipient. ")
33
33
  __properties: ClassVar[List[str]] = ["method", "status", "link"]
@@ -27,7 +27,7 @@ class DeliveryDetails(BaseModel):
27
27
  """
28
28
  Details on how the reward is delivered to the recipient.
29
29
  """ # noqa: E501
30
- method: Optional[StrictStr] = Field(default=None, description="How to deliver the reward to the recipient. <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> ")
30
+ method: Optional[StrictStr] = Field(default=None, description="How to deliver the reward to the recipient. <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> ")
31
31
  status: Optional[StrictStr] = Field(default=None, description="Current status of the delivery of the reward: * `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon. * `FAILED` - Delivery of reward failed (e.g. email bounced). * `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link active). * `PENDING` - Delivery is pending but not yet scheduled. ")
32
32
  __properties: ClassVar[List[str]] = ["method", "status"]
33
33
 
@@ -27,7 +27,7 @@ class DeliveryDetailsWithLink(BaseModel):
27
27
  """
28
28
  Details on how the reward is delivered to the recipient.
29
29
  """ # noqa: E501
30
- method: StrictStr = Field(description="How to deliver the reward to the recipient. <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> ")
30
+ method: StrictStr = Field(description="How to deliver the reward to the recipient. <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> ")
31
31
  status: StrictStr = Field(description="Current status of the delivery of the reward: * `SCHEDULED` - Reward is scheduled for delivery and will be delivered soon. * `FAILED` - Delivery of reward failed (e.g. email bounced). * `SUCCEEDED` - Reward was successfully delivered (email or text message delivered or reward link active). * `PENDING` - Delivery is pending but not yet scheduled. ")
32
32
  link: Optional[StrictStr] = Field(default=None, description="Link to redeem the reward at. You need to deliver this link to the recipient. ")
33
33
  __properties: ClassVar[List[str]] = ["method", "status", "link"]
@@ -21,7 +21,7 @@ from typing_extensions import Self
21
21
 
22
22
  class DeliveryMethod(str, Enum):
23
23
  """
24
- How to deliver the reward to the recipient. <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>
24
+ How to deliver the reward to the recipient. <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>
25
25
  """
26
26
 
27
27
  """
@@ -32,7 +32,7 @@ class FraudReview(BaseModel):
32
32
  The fraud review associated with a reward.
33
33
  """ # noqa: E501
34
34
  status: Optional[StrictStr] = Field(default=None, description="The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released. ")
35
- reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward dollar limit` * `Over reward count limit` * `VPN detected` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` ")
35
+ reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
36
36
  device_id: Optional[StrictStr] = Field(default=None, description="The device fingerprint, if known.")
37
37
  redemption_method: Optional[StrictStr] = Field(default=None, description="The product selected to claim the reward")
38
38
  redeemed_at: Optional[datetime] = Field(default=None, description="Date the reward was redeemed")
@@ -62,8 +62,8 @@ class FraudReview(BaseModel):
62
62
  return value
63
63
 
64
64
  for i in value:
65
- if i not in set(['Disallowed IP', 'Disallowed email', 'Disallowed country', 'Over reward dollar limit', 'Over reward count limit', 'VPN detected', 'Device related to multiple emails', 'Device or account related to multiple emails', 'IP on a Tremendous fraud list', 'Bank account on a Tremendous fraud list', 'Fingerprint on a Tremendous fraud list', 'Email on a Tremendous fraud list', 'Phone on a Tremendous fraud list', 'IP related to a blocked reward', 'Device related to a blocked reward', 'Bank account related to a blocked reward', 'Fingerprint related to a blocked reward', 'Email related to a blocked reward', 'Phone related to a blocked reward', 'Allowed IP', 'Allowed email']):
66
- raise ValueError("each list item must be one of ('Disallowed IP', 'Disallowed email', 'Disallowed country', 'Over reward dollar limit', 'Over reward count limit', 'VPN detected', 'Device related to multiple emails', 'Device or account related to multiple emails', 'IP on a Tremendous fraud list', 'Bank account on a Tremendous fraud list', 'Fingerprint on a Tremendous fraud list', 'Email on a Tremendous fraud list', 'Phone on a Tremendous fraud list', 'IP related to a blocked reward', 'Device related to a blocked reward', 'Bank account related to a blocked reward', 'Fingerprint related to a blocked reward', 'Email related to a blocked reward', 'Phone related to a blocked reward', 'Allowed IP', 'Allowed email')")
65
+ if i not in set(['Disallowed IP', 'Disallowed email', 'Disallowed country', 'Over reward amount limit', 'Over reward count limit', 'VPN detected', 'Device related to multiple emails', 'Device or account related to multiple emails', 'IP on a Tremendous fraud list', 'Bank account on a Tremendous fraud list', 'Fingerprint on a Tremendous fraud list', 'Email on a Tremendous fraud list', 'Phone on a Tremendous fraud list', 'Device on a Tremendous fraud list', 'IP related to a blocked reward', 'Device related to a blocked reward', 'Bank account related to a blocked reward', 'Fingerprint related to a blocked reward', 'Email related to a blocked reward', 'Phone related to a blocked reward', 'Allowed IP', 'Allowed email', 'Allowed country']):
66
+ raise ValueError("each list item must be one of ('Disallowed IP', 'Disallowed email', 'Disallowed country', 'Over reward amount limit', 'Over reward count limit', 'VPN detected', 'Device related to multiple emails', 'Device or account related to multiple emails', 'IP on a Tremendous fraud list', 'Bank account on a Tremendous fraud list', 'Fingerprint on a Tremendous fraud list', 'Email on a Tremendous fraud list', 'Phone on a Tremendous fraud list', 'Device on a Tremendous fraud list', 'IP related to a blocked reward', 'Device related to a blocked reward', 'Bank account related to a blocked reward', 'Fingerprint related to a blocked reward', 'Email related to a blocked reward', 'Phone related to a blocked reward', 'Allowed IP', 'Allowed email', 'Allowed country')")
67
67
  return value
68
68
 
69
69
  @field_validator('redemption_method')