tremendous-python 5.6.0__tar.gz → 5.8.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 (269) hide show
  1. {tremendous_python-5.6.0/tremendous_python.egg-info → tremendous_python-5.8.0}/PKG-INFO +1 -1
  2. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/pyproject.toml +1 -1
  3. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/api/tremendous_api.py +3 -3
  4. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_order200_response_order.py +3 -3
  5. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_order200_response_order_rewards_inner.py +8 -1
  6. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/currency_codes.py +0 -1
  7. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_orders200_response_orders_inner.py +3 -3
  8. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_products_response_products_inner.py +3 -3
  9. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards200_response_rewards_inner.py +8 -1
  10. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards200_response_rewards_inner_value.py +2 -2
  11. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order.py +3 -3
  12. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order_base.py +3 -3
  13. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order_status.py +2 -2
  14. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order_with_link.py +3 -3
  15. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order_with_link_rewards_inner.py +10 -1
  16. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order_without_link.py +3 -3
  17. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order_without_link_rewards_inner.py +10 -1
  18. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/product.py +3 -3
  19. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward.py +10 -1
  20. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_base.py +10 -1
  21. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_for_order_create.py +10 -1
  22. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_value.py +2 -2
  23. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_with_link.py +10 -1
  24. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_without_link.py +10 -1
  25. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_with_link_order.py +3 -3
  26. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_without_link_order.py +3 -3
  27. tremendous_python-5.8.0/tremendous/version.py +1 -0
  28. {tremendous_python-5.6.0 → tremendous_python-5.8.0/tremendous_python.egg-info}/PKG-INFO +1 -1
  29. tremendous_python-5.6.0/tremendous/version.py +0 -1
  30. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/LICENSE +0 -0
  31. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/README.md +0 -0
  32. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/setup.cfg +0 -0
  33. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/setup.py +0 -0
  34. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/test/test_campaigns.py +0 -0
  35. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/test/test_funding_sources.py +0 -0
  36. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/test/test_invoices.py +0 -0
  37. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/test/test_members.py +0 -0
  38. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/test/test_orders.py +0 -0
  39. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/test/test_products.py +0 -0
  40. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/__init__.py +0 -0
  41. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/api/__init__.py +0 -0
  42. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/api_client.py +0 -0
  43. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/api_response.py +0 -0
  44. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/configuration.py +0 -0
  45. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/exceptions.py +0 -0
  46. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/__init__.py +0 -0
  47. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/allow_email.py +0 -0
  48. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/allow_email1.py +0 -0
  49. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/allow_ip.py +0 -0
  50. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/allow_ip1.py +0 -0
  51. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/balance_transaction.py +0 -0
  52. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/balance_transaction_order.py +0 -0
  53. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/balance_transaction_order_payment.py +0 -0
  54. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/base_order_for_create.py +0 -0
  55. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/campaign.py +0 -0
  56. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/campaign_base.py +0 -0
  57. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/channel.py +0 -0
  58. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/connected_organization.py +0 -0
  59. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/connected_organization_member.py +0 -0
  60. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/connected_organization_member_member.py +0 -0
  61. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/connected_organization_member_session.py +0 -0
  62. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/connected_organization_organization.py +0 -0
  63. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_api_key200_response.py +0 -0
  64. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_campaign200_response.py +0 -0
  65. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_campaign201_response.py +0 -0
  66. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_campaign_request.py +0 -0
  67. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_connected_organization200_response.py +0 -0
  68. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_connected_organization_member200_response.py +0 -0
  69. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_connected_organization_member_request.py +0 -0
  70. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_connected_organization_member_session200_response.py +0 -0
  71. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_connected_organization_member_session200_response_connected_organization_member_session.py +0 -0
  72. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_connected_organization_member_session_request.py +0 -0
  73. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_connected_organization_request.py +0 -0
  74. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_field.py +0 -0
  75. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_field200_response.py +0 -0
  76. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_field_request.py +0 -0
  77. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_field_request_data.py +0 -0
  78. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_invoice200_response.py +0 -0
  79. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_invoice_request.py +0 -0
  80. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_member.py +0 -0
  81. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_member200_response.py +0 -0
  82. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_member_request.py +0 -0
  83. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_order200_response.py +0 -0
  84. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_order200_response_order_rewards_inner_delivery.py +0 -0
  85. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_order201_response.py +0 -0
  86. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_order_request.py +0 -0
  87. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_organization.py +0 -0
  88. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_organization200_response.py +0 -0
  89. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_organization200_response_organization.py +0 -0
  90. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_organization_for_response.py +0 -0
  91. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_organization_properties.py +0 -0
  92. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_organization_request.py +0 -0
  93. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_organization_request_copy_settings.py +0 -0
  94. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report200_response.py +0 -0
  95. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report200_response_report.py +0 -0
  96. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report201_response.py +0 -0
  97. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report201_response_report.py +0 -0
  98. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report_request.py +0 -0
  99. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report_request_filters.py +0 -0
  100. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report_request_filters_digital_rewards.py +0 -0
  101. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report_request_filters_digital_rewards_amount.py +0 -0
  102. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_report_request_filters_digital_rewards_created_at.py +0 -0
  103. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_topup200_response.py +0 -0
  104. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_topup_request.py +0 -0
  105. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_webhook200_response.py +0 -0
  106. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/create_webhook_request.py +0 -0
  107. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/custom_field.py +0 -0
  108. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/delete_fraud_rule200_response.py +0 -0
  109. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/delivery_details.py +0 -0
  110. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/delivery_details_with_link.py +0 -0
  111. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/delivery_metadata.py +0 -0
  112. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/delivery_method.py +0 -0
  113. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/delivery_status.py +0 -0
  114. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/error_model.py +0 -0
  115. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_config_allow_email.py +0 -0
  116. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_config_country.py +0 -0
  117. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_config_country_update_list.py +0 -0
  118. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_config_ip.py +0 -0
  119. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_config_redeemed_rewards_amount.py +0 -0
  120. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_config_redeemed_rewards_count.py +0 -0
  121. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_config_review_email.py +0 -0
  122. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_generic_response.py +0 -0
  123. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review.py +0 -0
  124. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_base.py +0 -0
  125. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_geo.py +0 -0
  126. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_list_item.py +0 -0
  127. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_reason.py +0 -0
  128. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_redemption_method.py +0 -0
  129. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_related_rewards.py +0 -0
  130. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_risk.py +0 -0
  131. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_review_status.py +0 -0
  132. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_rule200_response.py +0 -0
  133. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_rule400_response.py +0 -0
  134. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_rule422_response.py +0 -0
  135. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_rule_request.py +0 -0
  136. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_rule_request_config.py +0 -0
  137. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_rule_type.py +0 -0
  138. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/fraud_rules_list_item.py +0 -0
  139. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/funding_source.py +0 -0
  140. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/generate_reward_link200_response.py +0 -0
  141. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/generate_reward_link200_response_reward.py +0 -0
  142. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/generate_reward_link403_response.py +0 -0
  143. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/generate_reward_token200_response.py +0 -0
  144. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/generate_reward_token200_response_reward.py +0 -0
  145. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_fraud_review200_response.py +0 -0
  146. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_fraud_review200_response_fraud_review.py +0 -0
  147. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_fraud_review200_response_fraud_review_geo.py +0 -0
  148. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_fraud_review200_response_fraud_review_related_rewards.py +0 -0
  149. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_funding_source200_response.py +0 -0
  150. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_member200_response.py +0 -0
  151. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_member200_response_member.py +0 -0
  152. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_member200_response_member_events_inner.py +0 -0
  153. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_order200_response.py +0 -0
  154. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_organization200_response.py +0 -0
  155. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_product_response.py +0 -0
  156. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/get_reward200_response.py +0 -0
  157. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/inline_object.py +0 -0
  158. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/inline_object1.py +0 -0
  159. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/inline_object1_reward.py +0 -0
  160. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/invoice.py +0 -0
  161. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_balance_transactions200_response.py +0 -0
  162. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_balance_transactions200_response_transactions_inner.py +0 -0
  163. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order.py +0 -0
  164. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order_payment.py +0 -0
  165. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_campaigns200_response.py +0 -0
  166. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_campaigns200_response_campaigns_inner.py +0 -0
  167. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_campaigns200_response_campaigns_inner_email_style.py +0 -0
  168. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_campaigns200_response_campaigns_inner_webpage_style.py +0 -0
  169. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_connected_organization_members200_response.py +0 -0
  170. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner.py +0 -0
  171. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner_member.py +0 -0
  172. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_connected_organizations200_response.py +0 -0
  173. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner.py +0 -0
  174. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner_organization.py +0 -0
  175. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fields200_response.py +0 -0
  176. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fields200_response_fields_inner.py +0 -0
  177. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fields200_response_fields_inner_data.py +0 -0
  178. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_forex_response.py +0 -0
  179. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fraud_reviews200_response.py +0 -0
  180. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner.py +0 -0
  181. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner_geo.py +0 -0
  182. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fraud_rules200_response.py +0 -0
  183. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_fraud_rules200_response_fraud_rules_inner.py +0 -0
  184. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_funding_sources200_response.py +0 -0
  185. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner.py +0 -0
  186. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta.py +0 -0
  187. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta_failure_details.py +0 -0
  188. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_invoices200_response.py +0 -0
  189. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_invoices200_response_invoices_inner.py +0 -0
  190. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_members200_response.py +0 -0
  191. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_members200_response_members_inner.py +0 -0
  192. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_orders200_response.py +0 -0
  193. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_orders200_response_orders_inner_payment.py +0 -0
  194. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_orders200_response_orders_inner_payment_refund.py +0 -0
  195. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_organizations200_response.py +0 -0
  196. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_organizations200_response_organizations_inner.py +0 -0
  197. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_products_response.py +0 -0
  198. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_products_response_products_inner_countries_inner.py +0 -0
  199. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_products_response_products_inner_documents.py +0 -0
  200. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_products_response_products_inner_images_inner.py +0 -0
  201. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_products_response_products_inner_skus_inner.py +0 -0
  202. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards200_response.py +0 -0
  203. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards200_response_rewards_inner_custom_fields_inner.py +0 -0
  204. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards200_response_rewards_inner_delivery.py +0 -0
  205. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards200_response_rewards_inner_recipient.py +0 -0
  206. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards401_response.py +0 -0
  207. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards401_response_errors.py +0 -0
  208. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_rewards429_response.py +0 -0
  209. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_roles200_response.py +0 -0
  210. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_roles200_response_roles_inner.py +0 -0
  211. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_topups200_response.py +0 -0
  212. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_topups200_response_topups_inner.py +0 -0
  213. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_webhook_events200_response.py +0 -0
  214. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_webhooks200_response.py +0 -0
  215. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/list_webhooks200_response_webhooks_inner.py +0 -0
  216. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/member.py +0 -0
  217. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/member_base.py +0 -0
  218. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/member_with_events.py +0 -0
  219. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/member_without_events.py +0 -0
  220. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/model_field.py +0 -0
  221. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/order_base_payment.py +0 -0
  222. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/organization.py +0 -0
  223. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/payment_details.py +0 -0
  224. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/payment_details_refund.py +0 -0
  225. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/payout.py +0 -0
  226. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/product_documents.py +0 -0
  227. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/recipient.py +0 -0
  228. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/refund_details.py +0 -0
  229. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/report.py +0 -0
  230. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/resend_reward422_response.py +0 -0
  231. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/resend_reward_request.py +0 -0
  232. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_country.py +0 -0
  233. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_country1.py +0 -0
  234. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_email.py +0 -0
  235. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_email1.py +0 -0
  236. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_ip.py +0 -0
  237. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_ip1.py +0 -0
  238. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_redeemed_rewards_amount.py +0 -0
  239. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/review_redeemed_rewards_count.py +0 -0
  240. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_base_custom_fields_inner.py +0 -0
  241. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_link.py +0 -0
  242. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_token.py +0 -0
  243. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_with_link_delivery.py +0 -0
  244. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/reward_without_link_delivery.py +0 -0
  245. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/role.py +0 -0
  246. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/simulate_webhook_request.py +0 -0
  247. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order.py +0 -0
  248. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_payment.py +0 -0
  249. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_reward.py +0 -0
  250. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_reward_custom_fields_inner.py +0 -0
  251. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_reward_delivery.py +0 -0
  252. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_reward_delivery_meta.py +0 -0
  253. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_with_link.py +0 -0
  254. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/single_reward_order_without_link.py +0 -0
  255. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/topup.py +0 -0
  256. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/topup_create_request.py +0 -0
  257. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/update_campaign.py +0 -0
  258. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/update_campaign_request.py +0 -0
  259. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/update_fraud_rule_list200_response.py +0 -0
  260. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/update_fraud_rule_list_request.py +0 -0
  261. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/update_fraud_rule_list_request_config.py +0 -0
  262. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/webhook.py +0 -0
  263. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/models/webhook_post.py +0 -0
  264. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/py.typed +0 -0
  265. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous/rest.py +0 -0
  266. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous_python.egg-info/SOURCES.txt +0 -0
  267. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous_python.egg-info/dependency_links.txt +0 -0
  268. {tremendous_python-5.6.0 → tremendous_python-5.8.0}/tremendous_python.egg-info/requires.txt +0 -0
  269. {tremendous_python-5.6.0 → tremendous_python-5.8.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.6.0
3
+ Version: 5.8.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.6.0"
3
+ version = "5.8.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>"]
@@ -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-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</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.
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-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</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.
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-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</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.
3375
3375
 
3376
3376
  :param create_order_request: Order to create (required)
3377
3377
  :type create_order_request: CreateOrderRequest
@@ -35,7 +35,7 @@ class CreateOrder200ResponseOrder(BaseModel):
35
35
  external_id: Optional[StrictStr] = Field(default=None, description="Reference for this order, supplied by the customer. When set, `external_id` makes order idempotent. All requests that use the same `external_id` after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a `201` response code. These responses **fail** to create any further orders. It also allows for retrieving by `external_id` instead of `id` only. ")
36
36
  campaign_id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from. ")
37
37
  created_at: datetime = Field(description="Date the order has been created")
38
- status: StrictStr = Field(description="Execution status of a given order <table> <thead> <tr> <th> Status </th> <th> Description </th> </tr> </thead> <tbody> <tr> <td> <code> CANCELED </code> </td> <td> The order and all of its rewards were canceled. </td> </tr> <tr> <td> <code> CART </code> </td> <td> The order has been created, but hasn't yet been processed. </td> </tr> <tr> <td> <code> EXECUTED </code> </td> <td> The order has been executed. Payment has been handled and rewards are being delivered (if applicable). </td> </tr> <tr> <td> <code> FAILED </code> </td> <td> The order could not be processed due to an error. E.g. due to insufficient funds in the account. </td> </tr> <tr> <td> <code> PENDING APPROVAL </code> </td> <td> The order has been created but needs approval to be executed. </td> </tr> <tr> <td> <code> PENDING INTERNAL PAYMENT APPROVAL </code> </td> <td> The order has been created but it is under review and requires approval from our team. </td> </tr> </tbody> </table> ")
38
+ status: StrictStr = Field(description="Execution status of a given order <table> <thead> <tr> <th> Status </th> <th> Description </th> </tr> </thead> <tbody> <tr> <td> <code> CANCELED </code> </td> <td> The order and all of its rewards were canceled. </td> </tr> <tr> <td> <code> OPEN </code> </td> <td> The order has been created, but hasn't yet been processed. </td> </tr> <tr> <td> <code> EXECUTED </code> </td> <td> The order has been executed. Payment has been handled and rewards are being delivered (if applicable). </td> </tr> <tr> <td> <code> FAILED </code> </td> <td> The order could not be processed due to an error. E.g. due to insufficient funds in the account. </td> </tr> <tr> <td> <code> PENDING APPROVAL </code> </td> <td> The order has been created but needs approval to be executed. </td> </tr> <tr> <td> <code> PENDING INTERNAL PAYMENT APPROVAL </code> </td> <td> The order has been created but it is under review and requires approval from our team. </td> </tr> </tbody> </table> ")
39
39
  channel: Optional[StrictStr] = Field(default=None, description="Name of the channel in which the order was created")
40
40
  payment: Optional[ListOrders200ResponseOrdersInnerPayment] = None
41
41
  invoice_id: Optional[StrictStr] = Field(default=None, description="The ID for the invoice associated with this order")
@@ -62,8 +62,8 @@ class CreateOrder200ResponseOrder(BaseModel):
62
62
  @field_validator('status')
63
63
  def status_validate_enum(cls, value):
64
64
  """Validates the enum"""
65
- if value not in set(['CANCELED', 'CART', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL']):
66
- raise ValueError("must be one of enum values ('CANCELED', 'CART', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL')")
65
+ if value not in set(['CANCELED', 'OPEN', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL']):
66
+ raise ValueError("must be one of enum values ('CANCELED', 'OPEN', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL')")
67
67
  return value
68
68
 
69
69
  @field_validator('channel')
@@ -36,12 +36,13 @@ class CreateOrder200ResponseOrderRewardsInner(BaseModel):
36
36
  id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Tremendous ID of the reward")
37
37
  order_id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Tremendous ID of the order this reward is part of.")
38
38
  created_at: Optional[datetime] = Field(default=None, description="Date the reward was created")
39
+ expires_at: Optional[datetime] = Field(default=None, description="Expiration date of the reward. If null, the reward does not expire.")
39
40
  value: Optional[ListRewards200ResponseRewardsInnerValue] = None
40
41
  recipient: Optional[ListRewards200ResponseRewardsInnerRecipient] = None
41
42
  deliver_at: Optional[date] = Field(default=None, description="Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.")
42
43
  custom_fields: Optional[List[ListRewards200ResponseRewardsInnerCustomFieldsInner]] = None
43
44
  delivery: Optional[CreateOrder200ResponseOrderRewardsInnerDelivery] = None
44
- __properties: ClassVar[List[str]] = ["id", "order_id", "created_at", "value", "recipient", "deliver_at", "custom_fields", "delivery"]
45
+ __properties: ClassVar[List[str]] = ["id", "order_id", "created_at", "expires_at", "value", "recipient", "deliver_at", "custom_fields", "delivery"]
45
46
 
46
47
  @field_validator('id')
47
48
  def id_validate_regular_expression(cls, value):
@@ -118,6 +119,11 @@ class CreateOrder200ResponseOrderRewardsInner(BaseModel):
118
119
  # override the default output from pydantic by calling `to_dict()` of delivery
119
120
  if self.delivery:
120
121
  _dict['delivery'] = self.delivery.to_dict()
122
+ # set to None if expires_at (nullable) is None
123
+ # and model_fields_set contains the field
124
+ if self.expires_at is None and "expires_at" in self.model_fields_set:
125
+ _dict['expires_at'] = None
126
+
121
127
  return _dict
122
128
 
123
129
  @classmethod
@@ -133,6 +139,7 @@ class CreateOrder200ResponseOrderRewardsInner(BaseModel):
133
139
  "id": obj.get("id"),
134
140
  "order_id": obj.get("order_id"),
135
141
  "created_at": obj.get("created_at"),
142
+ "expires_at": obj.get("expires_at"),
136
143
  "value": ListRewards200ResponseRewardsInnerValue.from_dict(obj["value"]) if obj.get("value") is not None else None,
137
144
  "recipient": ListRewards200ResponseRewardsInnerRecipient.from_dict(obj["recipient"]) if obj.get("recipient") is not None else None,
138
145
  "deliver_at": obj.get("deliver_at"),
@@ -39,7 +39,6 @@ class CurrencyCodes(str, Enum):
39
39
  AZN = 'AZN'
40
40
  BAM = 'BAM'
41
41
  BDT = 'BDT'
42
- BGN = 'BGN'
43
42
  BHD = 'BHD'
44
43
  BIF = 'BIF'
45
44
  BND = 'BND'
@@ -35,7 +35,7 @@ class ListOrders200ResponseOrdersInner(BaseModel):
35
35
  external_id: Optional[StrictStr] = Field(default=None, description="Reference for this order, supplied by the customer. When set, `external_id` makes order idempotent. All requests that use the same `external_id` after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a `201` response code. These responses **fail** to create any further orders. It also allows for retrieving by `external_id` instead of `id` only. ")
36
36
  campaign_id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from. ")
37
37
  created_at: datetime = Field(description="Date the order has been created")
38
- status: StrictStr = Field(description="Execution status of a given order <table> <thead> <tr> <th> Status </th> <th> Description </th> </tr> </thead> <tbody> <tr> <td> <code> CANCELED </code> </td> <td> The order and all of its rewards were canceled. </td> </tr> <tr> <td> <code> CART </code> </td> <td> The order has been created, but hasn't yet been processed. </td> </tr> <tr> <td> <code> EXECUTED </code> </td> <td> The order has been executed. Payment has been handled and rewards are being delivered (if applicable). </td> </tr> <tr> <td> <code> FAILED </code> </td> <td> The order could not be processed due to an error. E.g. due to insufficient funds in the account. </td> </tr> <tr> <td> <code> PENDING APPROVAL </code> </td> <td> The order has been created but needs approval to be executed. </td> </tr> <tr> <td> <code> PENDING INTERNAL PAYMENT APPROVAL </code> </td> <td> The order has been created but it is under review and requires approval from our team. </td> </tr> </tbody> </table> ")
38
+ status: StrictStr = Field(description="Execution status of a given order <table> <thead> <tr> <th> Status </th> <th> Description </th> </tr> </thead> <tbody> <tr> <td> <code> CANCELED </code> </td> <td> The order and all of its rewards were canceled. </td> </tr> <tr> <td> <code> OPEN </code> </td> <td> The order has been created, but hasn't yet been processed. </td> </tr> <tr> <td> <code> EXECUTED </code> </td> <td> The order has been executed. Payment has been handled and rewards are being delivered (if applicable). </td> </tr> <tr> <td> <code> FAILED </code> </td> <td> The order could not be processed due to an error. E.g. due to insufficient funds in the account. </td> </tr> <tr> <td> <code> PENDING APPROVAL </code> </td> <td> The order has been created but needs approval to be executed. </td> </tr> <tr> <td> <code> PENDING INTERNAL PAYMENT APPROVAL </code> </td> <td> The order has been created but it is under review and requires approval from our team. </td> </tr> </tbody> </table> ")
39
39
  channel: Optional[StrictStr] = Field(default=None, description="Name of the channel in which the order was created")
40
40
  payment: Optional[ListOrders200ResponseOrdersInnerPayment] = None
41
41
  invoice_id: Optional[StrictStr] = Field(default=None, description="The ID for the invoice associated with this order")
@@ -62,8 +62,8 @@ class ListOrders200ResponseOrdersInner(BaseModel):
62
62
  @field_validator('status')
63
63
  def status_validate_enum(cls, value):
64
64
  """Validates the enum"""
65
- if value not in set(['CANCELED', 'CART', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL']):
66
- raise ValueError("must be one of enum values ('CANCELED', 'CART', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL')")
65
+ if value not in set(['CANCELED', 'OPEN', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL']):
66
+ raise ValueError("must be one of enum values ('CANCELED', 'OPEN', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL')")
67
67
  return value
68
68
 
69
69
  @field_validator('channel')
@@ -34,7 +34,7 @@ class ListProductsResponseProductsInner(BaseModel):
34
34
  """ # noqa: E501
35
35
  id: Annotated[str, Field(strict=True)]
36
36
  name: StrictStr = Field(description="Name of the product")
37
- description: StrictStr = Field(description="Detailed description of the product. Mostly used for products with a `category` of `charities`.")
37
+ description: StrictStr = Field(description="Detailed description of the product.")
38
38
  category: StrictStr = Field(description="The category of the product <table> <thead> <tr> <th>Category</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>ach</code></td> <td>Bank transfer to the recipient</td> </tr> <tr> <td><code>charity</code></td> <td>Donations to a charity</td> </tr> <tr> <td><code>instant_debit_transfer</code></td> <td>Instant debit transfer to the recipient</td> </tr> <tr> <td><code>merchant_card</code></td> <td>A gift card for a certain merchant (e.g. Amazon)</td> </tr> <tr> <td><code>paypal</code></td> <td>Payout via PayPal</td> </tr> <tr> <td><code>venmo</code></td> <td>Payout via Venmo</td> </tr> <tr> <td><code>visa_card</code></td> <td>Payout in form of a Visa debit card</td> </tr> <tr> <td><code>cash_app</code></td> <td>Payout via Cash App</td> </tr> </tbody> </table> ")
39
39
  subcategory: Optional[StrictStr] = Field(default=None, description="Additional classification for the product. Only applicable to products with a `category` of `merchant_card`. Possible subcategories: * `beauty_and_health` * `digital_financial_services` * `electronics` * `entertainment` * `fashion` * `food_and_drink` * `general_merchandise` * `grocery_and_supermarkets` * `home_and_living` * `mobility_and_fuel` * `sports_and_outdoor_gear` * `travel_and_hospitality` ")
40
40
  disclosure: StrictStr = Field(description="Legal disclosures for this product. Can be in HTML format.")
@@ -74,8 +74,8 @@ class ListProductsResponseProductsInner(BaseModel):
74
74
  def currency_codes_validate_enum(cls, value):
75
75
  """Validates the enum"""
76
76
  for i in value:
77
- if i not in set(['USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BGN', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK']):
78
- raise ValueError("each list item must be one of ('USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BGN', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK')")
77
+ if i not in set(['USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK']):
78
+ raise ValueError("each list item must be one of ('USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK')")
79
79
  return value
80
80
 
81
81
  model_config = ConfigDict(
@@ -36,12 +36,13 @@ class ListRewards200ResponseRewardsInner(BaseModel):
36
36
  id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Tremendous ID of the reward")
37
37
  order_id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Tremendous ID of the order this reward is part of.")
38
38
  created_at: Optional[datetime] = Field(default=None, description="Date the reward was created")
39
+ expires_at: Optional[datetime] = Field(default=None, description="Expiration date of the reward. If null, the reward does not expire.")
39
40
  value: Optional[ListRewards200ResponseRewardsInnerValue] = None
40
41
  recipient: Optional[ListRewards200ResponseRewardsInnerRecipient] = None
41
42
  deliver_at: Optional[date] = Field(default=None, description="Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.")
42
43
  custom_fields: Optional[List[ListRewards200ResponseRewardsInnerCustomFieldsInner]] = None
43
44
  delivery: Optional[ListRewards200ResponseRewardsInnerDelivery] = None
44
- __properties: ClassVar[List[str]] = ["id", "order_id", "created_at", "value", "recipient", "deliver_at", "custom_fields", "delivery"]
45
+ __properties: ClassVar[List[str]] = ["id", "order_id", "created_at", "expires_at", "value", "recipient", "deliver_at", "custom_fields", "delivery"]
45
46
 
46
47
  @field_validator('id')
47
48
  def id_validate_regular_expression(cls, value):
@@ -118,6 +119,11 @@ class ListRewards200ResponseRewardsInner(BaseModel):
118
119
  # override the default output from pydantic by calling `to_dict()` of delivery
119
120
  if self.delivery:
120
121
  _dict['delivery'] = self.delivery.to_dict()
122
+ # set to None if expires_at (nullable) is None
123
+ # and model_fields_set contains the field
124
+ if self.expires_at is None and "expires_at" in self.model_fields_set:
125
+ _dict['expires_at'] = None
126
+
121
127
  return _dict
122
128
 
123
129
  @classmethod
@@ -133,6 +139,7 @@ class ListRewards200ResponseRewardsInner(BaseModel):
133
139
  "id": obj.get("id"),
134
140
  "order_id": obj.get("order_id"),
135
141
  "created_at": obj.get("created_at"),
142
+ "expires_at": obj.get("expires_at"),
136
143
  "value": ListRewards200ResponseRewardsInnerValue.from_dict(obj["value"]) if obj.get("value") is not None else None,
137
144
  "recipient": ListRewards200ResponseRewardsInnerRecipient.from_dict(obj["recipient"]) if obj.get("recipient") is not None else None,
138
145
  "deliver_at": obj.get("deliver_at"),
@@ -37,8 +37,8 @@ class ListRewards200ResponseRewardsInnerValue(BaseModel):
37
37
  if value is None:
38
38
  return value
39
39
 
40
- if value not in set(['USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BGN', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK']):
41
- raise ValueError("must be one of enum values ('USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BGN', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK')")
40
+ if value not in set(['USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK']):
41
+ raise ValueError("must be one of enum values ('USD', 'CAD', 'EUR', 'AED', 'AFN', 'ALL', 'AMD', 'ARS', 'AUD', 'AZN', 'BAM', 'BDT', 'BHD', 'BIF', 'BND', 'BOB', 'BRL', 'BWP', 'BYR', 'BZD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'GBP', 'GEL', 'GHS', 'GNF', 'GTQ', 'HKD', 'HNL', 'HRK', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KHR', 'KRW', 'KWD', 'KZT', 'LBP', 'LKR', 'LTL', 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MOP', 'MUR', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SDG', 'SEK', 'SGD', 'SOS', 'SYP', 'THB', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'UYU', 'UZS', 'VEF', 'VND', 'XAF', 'XOF', 'YER', 'ZAR', 'ZMK')")
42
42
  return value
43
43
 
44
44
  model_config = ConfigDict(
@@ -35,7 +35,7 @@ class Order(BaseModel):
35
35
  external_id: Optional[StrictStr] = Field(default=None, description="Reference for this order, supplied by the customer. When set, `external_id` makes order idempotent. All requests that use the same `external_id` after the initial order creation, will result in a response that returns the data of the initially created order. The response will have a `201` response code. These responses **fail** to create any further orders. It also allows for retrieving by `external_id` instead of `id` only. ")
36
36
  campaign_id: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from. ")
37
37
  created_at: datetime = Field(description="Date the order has been created")
38
- status: StrictStr = Field(description="Execution status of a given order <table> <thead> <tr> <th> Status </th> <th> Description </th> </tr> </thead> <tbody> <tr> <td> <code> CANCELED </code> </td> <td> The order and all of its rewards were canceled. </td> </tr> <tr> <td> <code> CART </code> </td> <td> The order has been created, but hasn't yet been processed. </td> </tr> <tr> <td> <code> EXECUTED </code> </td> <td> The order has been executed. Payment has been handled and rewards are being delivered (if applicable). </td> </tr> <tr> <td> <code> FAILED </code> </td> <td> The order could not be processed due to an error. E.g. due to insufficient funds in the account. </td> </tr> <tr> <td> <code> PENDING APPROVAL </code> </td> <td> The order has been created but needs approval to be executed. </td> </tr> <tr> <td> <code> PENDING INTERNAL PAYMENT APPROVAL </code> </td> <td> The order has been created but it is under review and requires approval from our team. </td> </tr> </tbody> </table> ")
38
+ status: StrictStr = Field(description="Execution status of a given order <table> <thead> <tr> <th> Status </th> <th> Description </th> </tr> </thead> <tbody> <tr> <td> <code> CANCELED </code> </td> <td> The order and all of its rewards were canceled. </td> </tr> <tr> <td> <code> OPEN </code> </td> <td> The order has been created, but hasn't yet been processed. </td> </tr> <tr> <td> <code> EXECUTED </code> </td> <td> The order has been executed. Payment has been handled and rewards are being delivered (if applicable). </td> </tr> <tr> <td> <code> FAILED </code> </td> <td> The order could not be processed due to an error. E.g. due to insufficient funds in the account. </td> </tr> <tr> <td> <code> PENDING APPROVAL </code> </td> <td> The order has been created but needs approval to be executed. </td> </tr> <tr> <td> <code> PENDING INTERNAL PAYMENT APPROVAL </code> </td> <td> The order has been created but it is under review and requires approval from our team. </td> </tr> </tbody> </table> ")
39
39
  channel: Optional[StrictStr] = Field(default=None, description="Name of the channel in which the order was created")
40
40
  payment: Optional[OrderBasePayment] = None
41
41
  invoice_id: Optional[StrictStr] = Field(default=None, description="The ID for the invoice associated with this order")
@@ -62,8 +62,8 @@ class Order(BaseModel):
62
62
  @field_validator('status')
63
63
  def status_validate_enum(cls, value):
64
64
  """Validates the enum"""
65
- if value not in set(['CANCELED', 'CART', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL']):
66
- raise ValueError("must be one of enum values ('CANCELED', 'CART', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL')")
65
+ if value not in set(['CANCELED', 'OPEN', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL']):
66
+ raise ValueError("must be one of enum values ('CANCELED', 'OPEN', 'EXECUTED', 'FAILED', 'PENDING APPROVAL', 'PENDING INTERNAL PAYMENT APPROVAL')")
67
67
  return value
68
68
 
69
69
  @field_validator('channel')