tremendous-python 6.0.0__tar.gz → 7.0.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 (282) hide show
  1. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/PKG-INFO +1 -1
  2. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/pyproject.toml +2 -2
  3. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/setup.py +1 -1
  4. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/api/tremendous_api.py +9 -9
  5. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/balance_transaction.py +3 -1
  6. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_order200_response_order_rewards_inner.py +1 -1
  7. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/currency_codes.py +0 -1
  8. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review.py +1 -1
  9. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_base.py +1 -1
  10. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_list_item.py +1 -1
  11. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_reason.py +5 -0
  12. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_redemption_method.py +4 -0
  13. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_fraud_review200_response_fraud_review.py +1 -1
  14. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_balance_transactions200_response_transactions_inner.py +3 -1
  15. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner.py +1 -1
  16. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta_failure_details.py +10 -0
  17. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_products_response_products_inner.py +1 -1
  18. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards200_response_rewards_inner.py +1 -1
  19. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/order_with_link_rewards_inner.py +1 -1
  20. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/product.py +1 -1
  21. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward.py +1 -1
  22. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_base.py +1 -1
  23. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_for_order_create.py +1 -1
  24. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_response_reward.py +1 -1
  25. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_with_link.py +1 -1
  26. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_without_link.py +1 -1
  27. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_reward.py +1 -1
  28. tremendous_python-7.0.0/tremendous/version.py +1 -0
  29. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous_python.egg-info/PKG-INFO +1 -1
  30. tremendous_python-6.0.0/tremendous/version.py +0 -1
  31. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/LICENSE +0 -0
  32. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/README.md +0 -0
  33. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/setup.cfg +0 -0
  34. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/test/test_campaigns.py +0 -0
  35. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/test/test_enum_tolerance.py +0 -0
  36. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/test/test_funding_sources.py +0 -0
  37. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/test/test_invoices.py +0 -0
  38. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/test/test_members.py +0 -0
  39. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/test/test_orders.py +0 -0
  40. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/test/test_products.py +0 -0
  41. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/__init__.py +0 -0
  42. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/api/__init__.py +0 -0
  43. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/api_client.py +0 -0
  44. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/api_response.py +0 -0
  45. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/configuration.py +0 -0
  46. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/exceptions.py +0 -0
  47. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/__init__.py +0 -0
  48. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/allow_email.py +0 -0
  49. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/allow_ip.py +0 -0
  50. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/balance_transaction_order.py +0 -0
  51. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/balance_transaction_order_payment.py +0 -0
  52. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/base_order_for_create.py +0 -0
  53. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/campaign.py +0 -0
  54. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/campaign_base.py +0 -0
  55. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/campaign_base_products_inner.py +0 -0
  56. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/channel.py +0 -0
  57. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization.py +0 -0
  58. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_member.py +0 -0
  59. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_member_member.py +0 -0
  60. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_member_response.py +0 -0
  61. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_member_response_connected_organization_member.py +0 -0
  62. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_member_session.py +0 -0
  63. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_member_session_response.py +0 -0
  64. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_member_session_response_connected_organization_member_session.py +0 -0
  65. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_organization.py +0 -0
  66. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_response.py +0 -0
  67. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/connected_organization_response_connected_organization.py +0 -0
  68. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_api_key200_response.py +0 -0
  69. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_api_key_request.py +0 -0
  70. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_campaign200_response.py +0 -0
  71. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_campaign_request.py +0 -0
  72. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization200_response.py +0 -0
  73. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization_member200_response.py +0 -0
  74. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization_member_request.py +0 -0
  75. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization_member_session200_response.py +0 -0
  76. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization_member_session200_response_connected_organization_member_session.py +0 -0
  77. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization_member_session_request.py +0 -0
  78. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization_request.py +0 -0
  79. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_connected_organization_request_kyb_prefill.py +0 -0
  80. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_field.py +0 -0
  81. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_field200_response.py +0 -0
  82. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_field_request.py +0 -0
  83. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_field_request_data.py +0 -0
  84. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_invoice200_response.py +0 -0
  85. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_invoice_request.py +0 -0
  86. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_member.py +0 -0
  87. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_member200_response.py +0 -0
  88. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_member_request.py +0 -0
  89. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_order200_response.py +0 -0
  90. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_order200_response_order.py +0 -0
  91. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_order200_response_order_rewards_inner_delivery.py +0 -0
  92. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_order_request.py +0 -0
  93. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization.py +0 -0
  94. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization200_response.py +0 -0
  95. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization200_response_organization.py +0 -0
  96. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization_for_response.py +0 -0
  97. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization_properties.py +0 -0
  98. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization_request.py +0 -0
  99. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization_request_copy_settings.py +0 -0
  100. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization_response.py +0 -0
  101. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_organization_response_organization.py +0 -0
  102. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_report200_response.py +0 -0
  103. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_report200_response_report.py +0 -0
  104. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_report_request.py +0 -0
  105. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_report_request_filters.py +0 -0
  106. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_report_request_filters_digital_rewards.py +0 -0
  107. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_report_request_filters_digital_rewards_amount.py +0 -0
  108. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_report_request_filters_digital_rewards_created_at.py +0 -0
  109. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_topup200_response.py +0 -0
  110. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_topup_request.py +0 -0
  111. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_webhook200_response.py +0 -0
  112. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/create_webhook_request.py +0 -0
  113. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/custom_field.py +0 -0
  114. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/delivery_details.py +0 -0
  115. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/delivery_details_with_link.py +0 -0
  116. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/delivery_metadata.py +0 -0
  117. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/delivery_method.py +0 -0
  118. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/delivery_status.py +0 -0
  119. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/error_model.py +0 -0
  120. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_allow_email.py +0 -0
  121. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_country.py +0 -0
  122. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_country_update_list.py +0 -0
  123. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_ip.py +0 -0
  124. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_redeemed_rewards_amount.py +0 -0
  125. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_redeemed_rewards_count.py +0 -0
  126. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_review_email.py +0 -0
  127. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_config_review_vpn.py +0 -0
  128. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_generic_response.py +0 -0
  129. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_geo.py +0 -0
  130. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_related_rewards.py +0 -0
  131. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_risk.py +0 -0
  132. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_review_status.py +0 -0
  133. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_rule200_response.py +0 -0
  134. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_rule_request.py +0 -0
  135. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_rule_request_config.py +0 -0
  136. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_rule_type.py +0 -0
  137. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/fraud_rules_list_item.py +0 -0
  138. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/funding_source.py +0 -0
  139. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/generate_reward_link200_response.py +0 -0
  140. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/generate_reward_link200_response_reward.py +0 -0
  141. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_fraud_review200_response.py +0 -0
  142. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_fraud_review200_response_fraud_review_related_rewards.py +0 -0
  143. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_funding_source200_response.py +0 -0
  144. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_member200_response.py +0 -0
  145. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_member200_response_member.py +0 -0
  146. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_member200_response_member_events_inner.py +0 -0
  147. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_order200_response.py +0 -0
  148. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_organization200_response.py +0 -0
  149. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_product_response.py +0 -0
  150. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/get_reward200_response.py +0 -0
  151. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/inline_object.py +0 -0
  152. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/invoice.py +0 -0
  153. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/invoice_response.py +0 -0
  154. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/invoice_response_invoice.py +0 -0
  155. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_balance_transactions200_response.py +0 -0
  156. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order.py +0 -0
  157. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_balance_transactions200_response_transactions_inner_order_payment.py +0 -0
  158. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_campaigns200_response.py +0 -0
  159. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_campaigns200_response_campaigns_inner.py +0 -0
  160. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_campaigns200_response_campaigns_inner_auto_add_product_rule.py +0 -0
  161. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_campaigns200_response_campaigns_inner_email_style.py +0 -0
  162. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_campaigns200_response_campaigns_inner_products_inner.py +0 -0
  163. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_campaigns200_response_campaigns_inner_webpage_style.py +0 -0
  164. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_connected_organization_members200_response.py +0 -0
  165. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner.py +0 -0
  166. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_connected_organization_members200_response_connected_organization_members_inner_member.py +0 -0
  167. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_connected_organizations200_response.py +0 -0
  168. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner.py +0 -0
  169. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_connected_organizations200_response_connected_organizations_inner_organization.py +0 -0
  170. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fields200_response.py +0 -0
  171. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fields200_response_fields_inner.py +0 -0
  172. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fields200_response_fields_inner_data.py +0 -0
  173. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_forex_response.py +0 -0
  174. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fraud_reviews200_response.py +0 -0
  175. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fraud_reviews200_response_fraud_reviews_inner_geo.py +0 -0
  176. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fraud_rules200_response.py +0 -0
  177. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_fraud_rules200_response_fraud_rules_inner.py +0 -0
  178. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_funding_sources200_response.py +0 -0
  179. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner.py +0 -0
  180. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_funding_sources200_response_funding_sources_inner_meta.py +0 -0
  181. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_invoices200_response.py +0 -0
  182. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_invoices200_response_invoices_inner.py +0 -0
  183. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_members200_response.py +0 -0
  184. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_members200_response_members_inner.py +0 -0
  185. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_orders200_response.py +0 -0
  186. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_orders200_response_orders_inner.py +0 -0
  187. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_orders200_response_orders_inner_payment.py +0 -0
  188. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_orders200_response_orders_inner_payment_refund.py +0 -0
  189. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_organizations200_response.py +0 -0
  190. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_organizations200_response_organizations_inner.py +0 -0
  191. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_products_response.py +0 -0
  192. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_products_response_products_inner_countries_inner.py +0 -0
  193. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_products_response_products_inner_documents.py +0 -0
  194. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_products_response_products_inner_images_inner.py +0 -0
  195. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_products_response_products_inner_skus_inner.py +0 -0
  196. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards200_response.py +0 -0
  197. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards200_response_rewards_inner_custom_fields_inner.py +0 -0
  198. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards200_response_rewards_inner_delivery.py +0 -0
  199. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards200_response_rewards_inner_recipient.py +0 -0
  200. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards200_response_rewards_inner_value.py +0 -0
  201. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards401_response.py +0 -0
  202. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_rewards401_response_errors.py +0 -0
  203. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_roles200_response.py +0 -0
  204. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_roles200_response_roles_inner.py +0 -0
  205. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_topups200_response.py +0 -0
  206. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_topups200_response_topups_inner.py +0 -0
  207. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_webhook_events200_response.py +0 -0
  208. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_webhooks200_response.py +0 -0
  209. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/list_webhooks200_response_webhooks_inner.py +0 -0
  210. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/member.py +0 -0
  211. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/member_base.py +0 -0
  212. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/member_with_events.py +0 -0
  213. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/member_without_events.py +0 -0
  214. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/member_without_events_response.py +0 -0
  215. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/member_without_events_response_member.py +0 -0
  216. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/model_field.py +0 -0
  217. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/order.py +0 -0
  218. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/order_base.py +0 -0
  219. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/order_base_payment.py +0 -0
  220. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/order_status.py +0 -0
  221. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/order_with_link.py +0 -0
  222. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/order_without_link.py +0 -0
  223. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/organization.py +0 -0
  224. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/organization_response.py +0 -0
  225. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/organization_response_organization.py +0 -0
  226. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/payment_details.py +0 -0
  227. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/payment_details_refund.py +0 -0
  228. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/payout.py +0 -0
  229. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/product_documents.py +0 -0
  230. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/recipient.py +0 -0
  231. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/refund_details.py +0 -0
  232. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/report.py +0 -0
  233. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/report_response.py +0 -0
  234. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/resend_reward_request.py +0 -0
  235. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/review_country.py +0 -0
  236. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/review_country1.py +0 -0
  237. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/review_email.py +0 -0
  238. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/review_ip.py +0 -0
  239. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/review_redeemed_rewards_amount.py +0 -0
  240. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/review_redeemed_rewards_count.py +0 -0
  241. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/review_vpn.py +0 -0
  242. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_base_custom_fields_inner.py +0 -0
  243. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_link.py +0 -0
  244. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_link_response.py +0 -0
  245. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_link_response_reward.py +0 -0
  246. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_response.py +0 -0
  247. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_token.py +0 -0
  248. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_token_response.py +0 -0
  249. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_token_response_reward.py +0 -0
  250. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_value.py +0 -0
  251. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_with_link_delivery.py +0 -0
  252. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/reward_without_link_delivery.py +0 -0
  253. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/role.py +0 -0
  254. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/simulate_webhook_request.py +0 -0
  255. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order.py +0 -0
  256. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_payment.py +0 -0
  257. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_reward_custom_fields_inner.py +0 -0
  258. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_reward_delivery.py +0 -0
  259. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_reward_delivery_meta.py +0 -0
  260. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_with_link.py +0 -0
  261. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_with_link_order.py +0 -0
  262. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_without_link.py +0 -0
  263. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/single_reward_order_without_link_order.py +0 -0
  264. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/topup.py +0 -0
  265. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/topup_create_request.py +0 -0
  266. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/topup_response.py +0 -0
  267. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/update_campaign.py +0 -0
  268. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/update_campaign_request.py +0 -0
  269. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/update_fraud_rule_list_request.py +0 -0
  270. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/update_fraud_rule_list_request_config.py +0 -0
  271. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/update_member.py +0 -0
  272. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/update_member_request.py +0 -0
  273. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/webhook.py +0 -0
  274. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/webhook_post.py +0 -0
  275. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/webhook_response.py +0 -0
  276. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/models/webhook_response_webhook.py +0 -0
  277. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/py.typed +0 -0
  278. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous/rest.py +0 -0
  279. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous_python.egg-info/SOURCES.txt +0 -0
  280. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous_python.egg-info/dependency_links.txt +0 -0
  281. {tremendous_python-6.0.0 → tremendous_python-7.0.0}/tremendous_python.egg-info/requires.txt +0 -0
  282. {tremendous_python-6.0.0 → tremendous_python-7.0.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: 6.0.0
3
+ Version: 7.0.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 = "6.0.0"
3
+ version = "7.0.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>"]
@@ -11,7 +11,7 @@ keywords = ["Api", "Gift cards", "Rewards", "Incentives", "Tremendous"]
11
11
  include = ["tremendous/py.typed"]
12
12
 
13
13
  [tool.poetry.dependencies]
14
- python = "^3.10"
14
+ python = "^3.11"
15
15
 
16
16
  urllib3 = ">= 2.1.0"
17
17
  python-dateutil = ">=2.8.2"
@@ -3,7 +3,7 @@ import os
3
3
 
4
4
  from setuptools import setup, find_packages
5
5
 
6
- PYTHON_REQUIRES = ">=3.8"
6
+ PYTHON_REQUIRES = ">=3.11"
7
7
 
8
8
  data = {}
9
9
  root = os.path.abspath(os.path.dirname(__file__))
@@ -3251,7 +3251,7 @@ class TremendousApi:
3251
3251
  ) -> CreateOrder200Response:
3252
3252
  """Create order
3253
3253
 
3254
- 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.</p> <p>You can also pass one of the following magic values (case-insensitive):</p> <ul> <li><code>BALANCE</code> — pay from your Tremendous balance.</li> <li><code>INVOICE</code> — pay from your commercial invoice account.</li> <li><code>INVOICE_THEN_BALANCE</code> — pay from your commercial invoice account if doing so wouldn&#39;t exceed your credit limit, otherwise fall back to your Tremendous balance. The balance must have sufficient funds to pay for the order.</li> </ul> <p><strong>Note:</strong> <code>INVOICE</code> and <code>INVOICE_THEN_BALANCE</code> are only available to select Enterprise clients with an existing commercial invoicing setup. If your organization already uses commercial invoicing and you have questions, contact your Customer Success Manager.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $100,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.
3254
+ 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.</p> <p>You can also pass one of the following magic values (case-insensitive):</p> <ul> <li><code>BALANCE</code> — pay from your Tremendous balance.</li> <li><code>INVOICE</code> — pay from your commercial invoice account.</li> <li><code>INVOICE_THEN_BALANCE</code> — pay from your commercial invoice account if doing so wouldn&#39;t exceed your credit limit, otherwise fall back to your Tremendous balance. The balance must have sufficient funds to pay for the order.</li> </ul> <p><strong>Note:</strong> <code>INVOICE</code> and <code>INVOICE_THEN_BALANCE</code> are only available to select Enterprise clients with an existing commercial invoicing setup. If your organization already uses commercial invoicing and you have questions, contact your Customer Success Manager.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Date of reward delivery, within the next year. The reward is delivered at 12pm in your organization&#39;s time zone on that date, or at 12pm Eastern Time when the organization has no time zone set. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $100,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 the `external_id` of a submitted order will not create a new order, including while its card payment is still processing. 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. ### Pending card payments If the card processor's outcome is still unknown, the order remains `OPEN` and rewards remain unsent while the payment is reconciled. Repeating an equivalent request with the same `external_id` returns `201` with the existing order; a conflicting request returns `409`. An unknown outcome does not permit a new charge.
3255
3255
 
3256
3256
  :param create_order_request: Order to create (required)
3257
3257
  :type create_order_request: CreateOrderRequest
@@ -3326,7 +3326,7 @@ class TremendousApi:
3326
3326
  ) -> ApiResponse[CreateOrder200Response]:
3327
3327
  """Create order
3328
3328
 
3329
- 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.</p> <p>You can also pass one of the following magic values (case-insensitive):</p> <ul> <li><code>BALANCE</code> — pay from your Tremendous balance.</li> <li><code>INVOICE</code> — pay from your commercial invoice account.</li> <li><code>INVOICE_THEN_BALANCE</code> — pay from your commercial invoice account if doing so wouldn&#39;t exceed your credit limit, otherwise fall back to your Tremendous balance. The balance must have sufficient funds to pay for the order.</li> </ul> <p><strong>Note:</strong> <code>INVOICE</code> and <code>INVOICE_THEN_BALANCE</code> are only available to select Enterprise clients with an existing commercial invoicing setup. If your organization already uses commercial invoicing and you have questions, contact your Customer Success Manager.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $100,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.
3329
+ 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.</p> <p>You can also pass one of the following magic values (case-insensitive):</p> <ul> <li><code>BALANCE</code> — pay from your Tremendous balance.</li> <li><code>INVOICE</code> — pay from your commercial invoice account.</li> <li><code>INVOICE_THEN_BALANCE</code> — pay from your commercial invoice account if doing so wouldn&#39;t exceed your credit limit, otherwise fall back to your Tremendous balance. The balance must have sufficient funds to pay for the order.</li> </ul> <p><strong>Note:</strong> <code>INVOICE</code> and <code>INVOICE_THEN_BALANCE</code> are only available to select Enterprise clients with an existing commercial invoicing setup. If your organization already uses commercial invoicing and you have questions, contact your Customer Success Manager.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Date of reward delivery, within the next year. The reward is delivered at 12pm in your organization&#39;s time zone on that date, or at 12pm Eastern Time when the organization has no time zone set. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $100,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 the `external_id` of a submitted order will not create a new order, including while its card payment is still processing. 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. ### Pending card payments If the card processor's outcome is still unknown, the order remains `OPEN` and rewards remain unsent while the payment is reconciled. Repeating an equivalent request with the same `external_id` returns `201` with the existing order; a conflicting request returns `409`. An unknown outcome does not permit a new charge.
3330
3330
 
3331
3331
  :param create_order_request: Order to create (required)
3332
3332
  :type create_order_request: CreateOrderRequest
@@ -3401,7 +3401,7 @@ class TremendousApi:
3401
3401
  ) -> RESTResponseType:
3402
3402
  """Create order
3403
3403
 
3404
- 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.</p> <p>You can also pass one of the following magic values (case-insensitive):</p> <ul> <li><code>BALANCE</code> — pay from your Tremendous balance.</li> <li><code>INVOICE</code> — pay from your commercial invoice account.</li> <li><code>INVOICE_THEN_BALANCE</code> — pay from your commercial invoice account if doing so wouldn&#39;t exceed your credit limit, otherwise fall back to your Tremendous balance. The balance must have sufficient funds to pay for the order.</li> </ul> <p><strong>Note:</strong> <code>INVOICE</code> and <code>INVOICE_THEN_BALANCE</code> are only available to select Enterprise clients with an existing commercial invoicing setup. If your organization already uses commercial invoicing and you have questions, contact your Customer Success Manager.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Timestamp of reward delivery within the next year. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $100,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.
3404
+ 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.</p> <p>You can also pass one of the following magic values (case-insensitive):</p> <ul> <li><code>BALANCE</code> — pay from your Tremendous balance.</li> <li><code>INVOICE</code> — pay from your commercial invoice account.</li> <li><code>INVOICE_THEN_BALANCE</code> — pay from your commercial invoice account if doing so wouldn&#39;t exceed your credit limit, otherwise fall back to your Tremendous balance. The balance must have sufficient funds to pay for the order.</li> </ul> <p><strong>Note:</strong> <code>INVOICE</code> and <code>INVOICE_THEN_BALANCE</code> are only available to select Enterprise clients with an existing commercial invoicing setup. If your organization already uses commercial invoicing and you have questions, contact your Customer Success Manager.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">reward</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>A single reward, sent to a recipient. A reward is always part of an order.</p> <p>Either <code>products</code> or <code>campaign_id</code> must be specified.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the reward</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">order_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the order this reward is part of.</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">created_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Date the reward was created</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">expires_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date-time</span></td><td><p>Expiration date of the reward. If null, the reward does not expire.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">campaign_id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>ID of the campaign in your account, that defines the available products (different gift cards, charity, etc.) that the recipient can choose from.</p> </td></tr> <tr class=\"property-conditional-hint-request-only\"><td><div class=\"property-name\"> <code class=\"property-name\">products</code> </div> </td><td><span class=\"property-type\">array</span> <span class=\"property-format\">string</span></td><td><p>List of IDs of product (different gift cards, charity, etc.) that will be available to the recipient to choose from.</p> <p>Providing a <code>products</code> array will override the products made available by the campaign specified using the <code>campaign_id</code> property unless the <code>products</code> array is empty. It will <em>not</em> override other campaign attributes, like the message and customization of the look and feel.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">object</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">denomination</code> </div> </td><td><span class=\"property-type\">number</span> <span class=\"property-format\">double</span></td><td><p>Amount of the reward</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">currency_code</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Currency of the reward. Defaults to the organization&#39;s currency if not provided.</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">recipient</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details of the recipient of the reward</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Name of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">email</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Email address of the recipient</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">phone</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Phone number of the recipient. For non-US phone numbers, specify the country code (prefixed with +).</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">deliver_at</code> </div> </td><td><span class=\"property-type\">string</span> <span class=\"property-format\">date</span></td><td><p>Date of reward delivery, within the next year. The reward is delivered at 12pm in your organization&#39;s time zone on that date, or at 12pm Eastern Time when the organization has no time zone set. Note that if date-time is provided, the time values will be ignored.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">custom_fields</code> </div> </td><td><span class=\"property-type\">array</span></td><td></td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show array item type</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">id</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Tremendous ID of the custom field</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">value</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Value of the custom field</p> </td></tr> <tr class=\"property-conditional-hint-response-only\"><td><div class=\"property-name\"> <code class=\"property-name\">label</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Label of the custom field</p> </td></tr> </tbody> </table> </tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">language</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>Set this to translate the redemption experience for this reward. Pass a 2-letter <a href=\"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\">ISO-639-1 code</a> for the desired language. Defaults to <code>en</code>.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">delivery</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Details on how the reward is delivered to the recipient.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">method</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>How to deliver the reward to the recipient.</p> <table> <thead> <tr> <th>Delivery Method</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>EMAIL</code></td> <td>Deliver the reward to the recipient by email</td> </tr> <tr> <td><code>LINK</code></td> <td> <p>Deliver the reward to the recipient via a link.</p> <p>The initial <code>POST /orders</code> response for a link reward includes the link in <code>delivery.link</code>.</p> <p>The link must then be delivered to the recipient out-of-band.</p> <p>To obtain a new link for an existing reward, call <code>POST /rewards/{id}/generate_link</code>.</p> </td> </tr> <tr> <td><code>PHONE</code></td> <td>Deliver the reward to the recipient by SMS</td> </tr> </tbody> </table> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">meta</code> </div> </td><td><span class=\"property-type\">object</span></td><td><p>Customizable reward delivery metadata, taking precedence over the related campaign settings.</p> </td></tr> <tr> <td colspan=\"3\"> <details> <summary>Show object properties</summary> <table> <thead> <tr> <th>Property</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody class=\"object-schema-table-body\"> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">sender_name</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The &quot;sender name&quot; used in the delivery. If it&#39;s an email reward, &quot;via Tremendous&quot; will be appended to the value. Please note that you cannot customize the sender email.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">subject_line</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The subject line used in the delivery.</p> </td></tr> <tr class=\"\"><td><div class=\"property-name\"> <code class=\"property-name\">message</code> </div> </td><td><span class=\"property-type\">string</span></td><td><p>The content of the message of the reward, shown in the email / SMS and on the landing page.</p> </td></tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </tr> </tbody> </table> </div> ### Funding sources There are different ways to pay for gift cards and rewards on Tremendous. Every payment mechanism is called a \"funding source\". You can retrieve a list of all available funding sources by using the [Funding sources API endpoint](https://developers.tremendous.com/reference/list-funding-sources). The Tremendous API sandbox environment comes with a single funding source that allows you to spend up to $100,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 the `external_id` of a submitted order will not create a new order, including while its card payment is still processing. 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. ### Pending card payments If the card processor's outcome is still unknown, the order remains `OPEN` and rewards remain unsent while the payment is reconciled. Repeating an equivalent request with the same `external_id` returns `201` with the existing order; a conflicting request returns `409`. An unknown outcome does not permit a new charge.
3405
3405
 
3406
3406
  :param create_order_request: Order to create (required)
3407
3407
  :type create_order_request: CreateOrderRequest
@@ -9369,7 +9369,7 @@ class TremendousApi:
9369
9369
  @validate_call
9370
9370
  def get_order(
9371
9371
  self,
9372
- id: Annotated[StrictStr, Field(description="ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. ")],
9372
+ id: Annotated[StrictStr, Field(description="ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. When several attempts share an external ID, the submitted order takes precedence; otherwise, the most recent attempt is returned. Use an order's own ID to retrieve a specific failed or canceled attempt. ")],
9373
9373
  _request_timeout: Union[
9374
9374
  None,
9375
9375
  Annotated[StrictFloat, Field(gt=0)],
@@ -9387,7 +9387,7 @@ class TremendousApi:
9387
9387
 
9388
9388
  Retrieve the order, identified by the given `id` in the URL
9389
9389
 
9390
- :param id: ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. (required)
9390
+ :param id: ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. When several attempts share an external ID, the submitted order takes precedence; otherwise, the most recent attempt is returned. Use an order's own ID to retrieve a specific failed or canceled attempt. (required)
9391
9391
  :type id: str
9392
9392
  :param _request_timeout: timeout setting for this request. If one
9393
9393
  number provided, it will be total request
@@ -9440,7 +9440,7 @@ class TremendousApi:
9440
9440
  @validate_call
9441
9441
  def get_order_with_http_info(
9442
9442
  self,
9443
- id: Annotated[StrictStr, Field(description="ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. ")],
9443
+ id: Annotated[StrictStr, Field(description="ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. When several attempts share an external ID, the submitted order takes precedence; otherwise, the most recent attempt is returned. Use an order's own ID to retrieve a specific failed or canceled attempt. ")],
9444
9444
  _request_timeout: Union[
9445
9445
  None,
9446
9446
  Annotated[StrictFloat, Field(gt=0)],
@@ -9458,7 +9458,7 @@ class TremendousApi:
9458
9458
 
9459
9459
  Retrieve the order, identified by the given `id` in the URL
9460
9460
 
9461
- :param id: ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. (required)
9461
+ :param id: ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. When several attempts share an external ID, the submitted order takes precedence; otherwise, the most recent attempt is returned. Use an order's own ID to retrieve a specific failed or canceled attempt. (required)
9462
9462
  :type id: str
9463
9463
  :param _request_timeout: timeout setting for this request. If one
9464
9464
  number provided, it will be total request
@@ -9511,7 +9511,7 @@ class TremendousApi:
9511
9511
  @validate_call
9512
9512
  def get_order_without_preload_content(
9513
9513
  self,
9514
- id: Annotated[StrictStr, Field(description="ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. ")],
9514
+ id: Annotated[StrictStr, Field(description="ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. When several attempts share an external ID, the submitted order takes precedence; otherwise, the most recent attempt is returned. Use an order's own ID to retrieve a specific failed or canceled attempt. ")],
9515
9515
  _request_timeout: Union[
9516
9516
  None,
9517
9517
  Annotated[StrictFloat, Field(gt=0)],
@@ -9529,7 +9529,7 @@ class TremendousApi:
9529
9529
 
9530
9530
  Retrieve the order, identified by the given `id` in the URL
9531
9531
 
9532
- :param id: ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. (required)
9532
+ :param id: ID of the order that should be retrieved. In case the order has an `external_id` reference supplied by the customer on creation, it's possible to use it instead. When several attempts share an external ID, the submitted order takes precedence; otherwise, the most recent attempt is returned. Use an order's own ID to retrieve a specific failed or canceled attempt. (required)
9533
9533
  :type id: str
9534
9534
  :param _request_timeout: timeout setting for this request. If one
9535
9535
  number provided, it will be total request
@@ -36,8 +36,9 @@ class BalanceTransaction(BaseModel):
36
36
  balance: Union[StrictFloat, StrictInt] = Field(description="The updated total after the transaction, denominated in `currency_code`. Note that this running balance may be delayed and contain `null`.", json_schema_extra={"examples": [92.48]})
37
37
  action: StrictStr = Field(description="The action that was performed", json_schema_extra={"examples": ["Deposit"]})
38
38
  description: StrictStr = Field(description="A brief description of the transaction")
39
+ payment_id: Optional[StrictStr] = Field(default=None, description="ID of the payment behind the transaction, shown as \"Payment ID\" in the dashboard's balance transactions export and as \"Prefund confirmation\" on deposit receipts. Use it to match deposits, including auto-reloads, against your bank or card statements. Only present on transactions tied to a payment into your balance, such as deposits, the credit recorded when an order is paid by card or bank transfer, and transfers between organizations. Omitted otherwise, for example on the debit for an order paid from your balance. ", json_schema_extra={"examples": ["PAYMENTID123"]})
39
40
  order: Optional[BalanceTransactionOrder] = None
40
- __properties: ClassVar[List[str]] = ["created_at", "amount", "currency_code", "balance", "action", "description", "order"]
41
+ __properties: ClassVar[List[str]] = ["created_at", "amount", "currency_code", "balance", "action", "description", "payment_id", "order"]
41
42
 
42
43
  model_config = ConfigDict(
43
44
  validate_by_name=True,
@@ -99,6 +100,7 @@ class BalanceTransaction(BaseModel):
99
100
  "balance": obj.get("balance"),
100
101
  "action": obj.get("action"),
101
102
  "description": obj.get("description"),
103
+ "payment_id": obj.get("payment_id"),
102
104
  "order": BalanceTransactionOrder.from_dict(obj["order"]) if obj.get("order") is not None else None
103
105
  })
104
106
  return _obj
@@ -40,7 +40,7 @@ class CreateOrder200ResponseOrderRewardsInner(BaseModel):
40
40
  expires_at: Optional[datetime] = Field(default=None, description="Expiration date of the reward. If null, the reward does not expire.")
41
41
  value: Optional[ListRewards200ResponseRewardsInnerValue] = None
42
42
  recipient: Optional[ListRewards200ResponseRewardsInnerRecipient] = None
43
- 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.", json_schema_extra={"examples": ["2023-12-31"]})
43
+ deliver_at: Optional[date] = Field(default=None, description="Date of reward delivery, within the next year. The reward is delivered at 12pm in your organization's time zone on that date, or at 12pm Eastern Time when the organization has no time zone set. Note that if date-time is provided, the time values will be ignored.", json_schema_extra={"examples": ["2023-12-31"]})
44
44
  custom_fields: Optional[List[ListRewards200ResponseRewardsInnerCustomFieldsInner]] = None
45
45
  delivery: Optional[CreateOrder200ResponseOrderRewardsInnerDelivery] = None
46
46
  __properties: ClassVar[List[str]] = ["id", "order_id", "created_at", "expires_at", "value", "recipient", "deliver_at", "custom_fields", "delivery"]
@@ -69,7 +69,6 @@ class CurrencyCodes(str, Enum):
69
69
  GTQ = 'GTQ'
70
70
  HKD = 'HKD'
71
71
  HNL = 'HNL'
72
- HRK = 'HRK'
73
72
  HUF = 'HUF'
74
73
  IDR = 'IDR'
75
74
  ILS = 'ILS'
@@ -33,7 +33,7 @@ class FraudReview(BaseModel):
33
33
  The fraud review associated with a reward.
34
34
  """ # noqa: E501
35
35
  status: Optional[StrictStr] = Field(default=None, description="The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released. ")
36
- reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
36
+ reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP on a Tremendous allow list` * `Bank account on a Tremendous allow list` * `Email on a Tremendous allow list` * `Phone on a Tremendous allow list` * `Device on a Tremendous allow list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
37
37
  device_id: Optional[StrictStr] = Field(default=None, description="The device fingerprint, if known.")
38
38
  redemption_method: Optional[StrictStr] = Field(default=None, description="The product selected to claim the reward")
39
39
  redeemed_at: Optional[datetime] = Field(default=None, description="Date the reward was redeemed")
@@ -32,7 +32,7 @@ class FraudReviewBase(BaseModel):
32
32
  The fraud review associated with a reward.
33
33
  """ # noqa: E501
34
34
  status: Optional[StrictStr] = Field(default=None, description="The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released. ")
35
- reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
35
+ reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP on a Tremendous allow list` * `Bank account on a Tremendous allow list` * `Email on a Tremendous allow list` * `Phone on a Tremendous allow list` * `Device on a Tremendous allow list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
36
36
  device_id: Optional[StrictStr] = Field(default=None, description="The device fingerprint, if known.")
37
37
  redemption_method: Optional[StrictStr] = Field(default=None, description="The product selected to claim the reward")
38
38
  redeemed_at: Optional[datetime] = Field(default=None, description="Date the reward was redeemed")
@@ -32,7 +32,7 @@ class FraudReviewListItem(BaseModel):
32
32
  The fraud review associated with a reward.
33
33
  """ # noqa: E501
34
34
  status: Optional[StrictStr] = Field(default=None, description="The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released. ")
35
- reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
35
+ reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP on a Tremendous allow list` * `Bank account on a Tremendous allow list` * `Email on a Tremendous allow list` * `Phone on a Tremendous allow list` * `Device on a Tremendous allow list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
36
36
  device_id: Optional[StrictStr] = Field(default=None, description="The device fingerprint, if known.")
37
37
  redemption_method: Optional[StrictStr] = Field(default=None, description="The product selected to claim the reward")
38
38
  redeemed_at: Optional[datetime] = Field(default=None, description="Date the reward was redeemed")
@@ -42,6 +42,11 @@ class FraudReviewReason(str, Enum):
42
42
  EMAIL_ON_A_TREMENDOUS_FRAUD_LIST = 'Email on a Tremendous fraud list'
43
43
  PHONE_ON_A_TREMENDOUS_FRAUD_LIST = 'Phone on a Tremendous fraud list'
44
44
  DEVICE_ON_A_TREMENDOUS_FRAUD_LIST = 'Device on a Tremendous fraud list'
45
+ IP_ON_A_TREMENDOUS_ALLOW_LIST = 'IP on a Tremendous allow list'
46
+ BANK_ACCOUNT_ON_A_TREMENDOUS_ALLOW_LIST = 'Bank account on a Tremendous allow list'
47
+ EMAIL_ON_A_TREMENDOUS_ALLOW_LIST = 'Email on a Tremendous allow list'
48
+ PHONE_ON_A_TREMENDOUS_ALLOW_LIST = 'Phone on a Tremendous allow list'
49
+ DEVICE_ON_A_TREMENDOUS_ALLOW_LIST = 'Device on a Tremendous allow list'
45
50
  IP_RELATED_TO_A_BLOCKED_REWARD = 'IP related to a blocked reward'
46
51
  DEVICE_RELATED_TO_A_BLOCKED_REWARD = 'Device related to a blocked reward'
47
52
  BANK_ACCOUNT_RELATED_TO_A_BLOCKED_REWARD = 'Bank account related to a blocked reward'
@@ -28,13 +28,17 @@ class FraudReviewRedemptionMethod(str, Enum):
28
28
  allowed enum values
29
29
  """
30
30
  BANK_TRANSFER = 'bank transfer'
31
+ CASH_APP = 'cash app'
31
32
  CHARITY = 'charity'
33
+ CRYPTO = 'crypto'
32
34
  INSTANT_DEBIT_TRANSFER = 'instant debit transfer'
33
35
  INTERNATIONAL_BANK_TRANSFER = 'international bank transfer'
34
36
  MERCHANT_CARD = 'merchant card'
35
37
  PAYPAL = 'paypal'
38
+ RECIPIENT_PROMOTION = 'recipient_promotion'
36
39
  VENMO = 'venmo'
37
40
  VISA_CARD = 'visa card'
41
+ ZELLE = 'zelle'
38
42
 
39
43
  @classmethod
40
44
  def from_json(cls, json_str: str) -> Self:
@@ -33,7 +33,7 @@ class GetFraudReview200ResponseFraudReview(BaseModel):
33
33
  The fraud review associated with a reward.
34
34
  """ # noqa: E501
35
35
  status: Optional[StrictStr] = Field(default=None, description="The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released. ")
36
- reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
36
+ reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP on a Tremendous allow list` * `Bank account on a Tremendous allow list` * `Email on a Tremendous allow list` * `Phone on a Tremendous allow list` * `Device on a Tremendous allow list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
37
37
  device_id: Optional[StrictStr] = Field(default=None, description="The device fingerprint, if known.")
38
38
  redemption_method: Optional[StrictStr] = Field(default=None, description="The product selected to claim the reward")
39
39
  redeemed_at: Optional[datetime] = Field(default=None, description="Date the reward was redeemed")
@@ -36,8 +36,9 @@ class ListBalanceTransactions200ResponseTransactionsInner(BaseModel):
36
36
  balance: Union[StrictFloat, StrictInt] = Field(description="The updated total after the transaction, denominated in `currency_code`. Note that this running balance may be delayed and contain `null`.", json_schema_extra={"examples": [92.48]})
37
37
  action: StrictStr = Field(description="The action that was performed", json_schema_extra={"examples": ["Deposit"]})
38
38
  description: StrictStr = Field(description="A brief description of the transaction")
39
+ payment_id: Optional[StrictStr] = Field(default=None, description="ID of the payment behind the transaction, shown as \"Payment ID\" in the dashboard's balance transactions export and as \"Prefund confirmation\" on deposit receipts. Use it to match deposits, including auto-reloads, against your bank or card statements. Only present on transactions tied to a payment into your balance, such as deposits, the credit recorded when an order is paid by card or bank transfer, and transfers between organizations. Omitted otherwise, for example on the debit for an order paid from your balance. ", json_schema_extra={"examples": ["PAYMENTID123"]})
39
40
  order: Optional[ListBalanceTransactions200ResponseTransactionsInnerOrder] = None
40
- __properties: ClassVar[List[str]] = ["created_at", "amount", "currency_code", "balance", "action", "description", "order"]
41
+ __properties: ClassVar[List[str]] = ["created_at", "amount", "currency_code", "balance", "action", "description", "payment_id", "order"]
41
42
 
42
43
  model_config = ConfigDict(
43
44
  validate_by_name=True,
@@ -99,6 +100,7 @@ class ListBalanceTransactions200ResponseTransactionsInner(BaseModel):
99
100
  "balance": obj.get("balance"),
100
101
  "action": obj.get("action"),
101
102
  "description": obj.get("description"),
103
+ "payment_id": obj.get("payment_id"),
102
104
  "order": ListBalanceTransactions200ResponseTransactionsInnerOrder.from_dict(obj["order"]) if obj.get("order") is not None else None
103
105
  })
104
106
  return _obj
@@ -32,7 +32,7 @@ class ListFraudReviews200ResponseFraudReviewsInner(BaseModel):
32
32
  The fraud review associated with a reward.
33
33
  """ # noqa: E501
34
34
  status: Optional[StrictStr] = Field(default=None, description="The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released. ")
35
- reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
35
+ reasons: Optional[List[StrictStr]] = Field(default=None, description="The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward amount limit` * `Over reward count limit` * `VPN detected` * `Apple Private Relay` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `Device on a Tremendous fraud list` * `IP on a Tremendous allow list` * `Bank account on a Tremendous allow list` * `Email on a Tremendous allow list` * `Phone on a Tremendous allow list` * `Device on a Tremendous allow list` * `IP related to a blocked reward` * `Device related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email` * `Allowed country` ")
36
36
  device_id: Optional[StrictStr] = Field(default=None, description="The device fingerprint, if known.")
37
37
  redemption_method: Optional[StrictStr] = Field(default=None, description="The product selected to claim the reward")
38
38
  redeemed_at: Optional[datetime] = Field(default=None, description="Date the reward was redeemed")