kard-financial-sdk 0.0.82__py3-none-any.whl

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 (302) hide show
  1. kard/__init__.py +579 -0
  2. kard/auth/__init__.py +34 -0
  3. kard/auth/client.py +121 -0
  4. kard/auth/raw_client.py +108 -0
  5. kard/auth/types/__init__.py +34 -0
  6. kard/auth/types/token_response.py +25 -0
  7. kard/client.py +416 -0
  8. kard/commons/__init__.py +120 -0
  9. kard/commons/errors/__init__.py +44 -0
  10. kard/commons/errors/conflict_error.py +11 -0
  11. kard/commons/errors/does_not_exist_error.py +11 -0
  12. kard/commons/errors/internal_server_error.py +11 -0
  13. kard/commons/errors/invalid_request.py +11 -0
  14. kard/commons/errors/unauthorized_error.py +11 -0
  15. kard/commons/types/__init__.py +107 -0
  16. kard/commons/types/category_option.py +26 -0
  17. kard/commons/types/commission_type.py +5 -0
  18. kard/commons/types/commission_value.py +28 -0
  19. kard/commons/types/commission_value_type.py +5 -0
  20. kard/commons/types/empty_object.py +17 -0
  21. kard/commons/types/enrolled_rewards_type.py +5 -0
  22. kard/commons/types/error_object.py +43 -0
  23. kard/commons/types/error_response.py +20 -0
  24. kard/commons/types/error_source.py +32 -0
  25. kard/commons/types/job.py +24 -0
  26. kard/commons/types/job_response.py +27 -0
  27. kard/commons/types/job_status.py +5 -0
  28. kard/commons/types/links.py +27 -0
  29. kard/commons/types/mongo_id.py +3 -0
  30. kard/commons/types/notification_type.py +19 -0
  31. kard/commons/types/organization_id.py +3 -0
  32. kard/commons/types/purchase_channel.py +5 -0
  33. kard/commons/types/relationship_data.py +24 -0
  34. kard/commons/types/relationship_multiple.py +20 -0
  35. kard/commons/types/relationship_single.py +20 -0
  36. kard/commons/types/resource_type.py +3 -0
  37. kard/commons/types/state.py +68 -0
  38. kard/commons/types/subscription_id.py +3 -0
  39. kard/commons/types/user_id.py +3 -0
  40. kard/core/__init__.py +105 -0
  41. kard/core/api_error.py +23 -0
  42. kard/core/client_wrapper.py +97 -0
  43. kard/core/datetime_utils.py +28 -0
  44. kard/core/file.py +67 -0
  45. kard/core/force_multipart.py +18 -0
  46. kard/core/http_client.py +613 -0
  47. kard/core/http_response.py +55 -0
  48. kard/core/http_sse/__init__.py +42 -0
  49. kard/core/http_sse/_api.py +112 -0
  50. kard/core/http_sse/_decoders.py +61 -0
  51. kard/core/http_sse/_exceptions.py +7 -0
  52. kard/core/http_sse/_models.py +17 -0
  53. kard/core/jsonable_encoder.py +100 -0
  54. kard/core/oauth_token_provider.py +73 -0
  55. kard/core/pydantic_utilities.py +260 -0
  56. kard/core/query_encoder.py +58 -0
  57. kard/core/remove_none_from_dict.py +11 -0
  58. kard/core/request_options.py +35 -0
  59. kard/core/serialization.py +276 -0
  60. kard/environment.py +8 -0
  61. kard/files/__init__.py +58 -0
  62. kard/files/client.py +213 -0
  63. kard/files/errors/__init__.py +34 -0
  64. kard/files/errors/forbidden_error.py +11 -0
  65. kard/files/raw_client.py +278 -0
  66. kard/files/types/__init__.py +53 -0
  67. kard/files/types/file_metadata_attribute.py +39 -0
  68. kard/files/types/file_metadata_with_url.py +34 -0
  69. kard/files/types/file_type.py +13 -0
  70. kard/files/types/files_metadata_sort_options.py +5 -0
  71. kard/files/types/get_files_metadata_response.py +71 -0
  72. kard/files/types/pagination_meta.py +29 -0
  73. kard/notifications/__init__.py +279 -0
  74. kard/notifications/client.py +63 -0
  75. kard/notifications/raw_client.py +13 -0
  76. kard/notifications/subscriptions/__init__.py +97 -0
  77. kard/notifications/subscriptions/client.py +372 -0
  78. kard/notifications/subscriptions/raw_client.py +581 -0
  79. kard/notifications/subscriptions/types/__init__.py +94 -0
  80. kard/notifications/subscriptions/types/create_subscription_union.py +27 -0
  81. kard/notifications/subscriptions/types/create_subscriptions_response_object.py +43 -0
  82. kard/notifications/subscriptions/types/created_subscription.py +23 -0
  83. kard/notifications/subscriptions/types/subscription.py +25 -0
  84. kard/notifications/subscriptions/types/subscription_attributes.py +35 -0
  85. kard/notifications/subscriptions/types/subscription_request.py +20 -0
  86. kard/notifications/subscriptions/types/subscription_request_attributes.py +35 -0
  87. kard/notifications/subscriptions/types/subscription_request_body.py +42 -0
  88. kard/notifications/subscriptions/types/subscription_request_union.py +26 -0
  89. kard/notifications/subscriptions/types/subscription_union.py +27 -0
  90. kard/notifications/subscriptions/types/subscriptions_response_object.py +43 -0
  91. kard/notifications/subscriptions/types/update_subscription_request.py +20 -0
  92. kard/notifications/subscriptions/types/update_subscription_request_attributes.py +39 -0
  93. kard/notifications/subscriptions/types/update_subscription_request_body.py +40 -0
  94. kard/notifications/subscriptions/types/update_subscription_request_union.py +26 -0
  95. kard/notifications/subscriptions/types/update_subscriptions_response_object.py +41 -0
  96. kard/notifications/types/__init__.py +214 -0
  97. kard/notifications/types/audit_update_attributes.py +88 -0
  98. kard/notifications/types/audit_update_data.py +27 -0
  99. kard/notifications/types/audit_update_relationships.py +21 -0
  100. kard/notifications/types/broker_amount.py +28 -0
  101. kard/notifications/types/broker_amount_type.py +5 -0
  102. kard/notifications/types/broker_asset.py +33 -0
  103. kard/notifications/types/broker_asset_type.py +5 -0
  104. kard/notifications/types/broker_operation_hours.py +30 -0
  105. kard/notifications/types/broker_operation_period.py +28 -0
  106. kard/notifications/types/broker_purchase_channel.py +5 -0
  107. kard/notifications/types/broker_reward.py +28 -0
  108. kard/notifications/types/broker_reward_type.py +5 -0
  109. kard/notifications/types/clawback_data.py +27 -0
  110. kard/notifications/types/earned_reward_approved_data.py +27 -0
  111. kard/notifications/types/earned_reward_attributes.py +18 -0
  112. kard/notifications/types/earned_reward_relationships.py +21 -0
  113. kard/notifications/types/earned_reward_settled_attributes.py +23 -0
  114. kard/notifications/types/earned_reward_settled_data.py +27 -0
  115. kard/notifications/types/failed_transaction_attributes.py +41 -0
  116. kard/notifications/types/failed_transaction_data.py +27 -0
  117. kard/notifications/types/failed_transaction_relationships.py +22 -0
  118. kard/notifications/types/location_address.py +39 -0
  119. kard/notifications/types/location_coordinates.py +27 -0
  120. kard/notifications/types/location_status.py +5 -0
  121. kard/notifications/types/merchant_source.py +5 -0
  122. kard/notifications/types/notification_data_union.py +203 -0
  123. kard/notifications/types/notification_metadata.py +22 -0
  124. kard/notifications/types/notification_payload.py +65 -0
  125. kard/notifications/types/offer_status.py +5 -0
  126. kard/notifications/types/offer_type.py +5 -0
  127. kard/notifications/types/reward_notification_attributes.py +48 -0
  128. kard/notifications/types/time_period.py +27 -0
  129. kard/notifications/types/transaction_relationships.py +22 -0
  130. kard/notifications/types/user_offer_status.py +5 -0
  131. kard/notifications/types/valid_transaction_attributes.py +25 -0
  132. kard/notifications/types/valid_transaction_commission_earned.py +21 -0
  133. kard/notifications/types/valid_transaction_data.py +27 -0
  134. kard/notifications/types/webhook_locations_attributes.py +71 -0
  135. kard/notifications/types/webhook_locations_data.py +27 -0
  136. kard/notifications/types/webhook_locations_relationships.py +20 -0
  137. kard/notifications/types/webhook_merchant_attributes.py +67 -0
  138. kard/notifications/types/webhook_merchant_data.py +27 -0
  139. kard/notifications/types/webhook_merchant_relationships.py +20 -0
  140. kard/notifications/types/webhook_offer_attributes.py +143 -0
  141. kard/notifications/types/webhook_offer_data.py +27 -0
  142. kard/notifications/types/webhook_offer_relationships.py +20 -0
  143. kard/notifications/types/webhook_user_offer_attributes.py +41 -0
  144. kard/notifications/types/webhook_user_offer_data.py +27 -0
  145. kard/notifications/types/webhook_user_offer_relationships.py +21 -0
  146. kard/ping/__init__.py +39 -0
  147. kard/ping/client.py +100 -0
  148. kard/ping/errors/__init__.py +34 -0
  149. kard/ping/errors/network_blocked_error.py +11 -0
  150. kard/ping/raw_client.py +113 -0
  151. kard/ping/types/__init__.py +38 -0
  152. kard/ping/types/network_blocked_error_body.py +34 -0
  153. kard/ping/types/ping_response_object.py +46 -0
  154. kard/py.typed +0 -0
  155. kard/transactions/__init__.py +212 -0
  156. kard/transactions/client.py +639 -0
  157. kard/transactions/errors/__init__.py +40 -0
  158. kard/transactions/errors/create_audit_multi_status.py +11 -0
  159. kard/transactions/errors/create_incoming_transactions_multi_status.py +11 -0
  160. kard/transactions/errors/fraud_multi_status.py +11 -0
  161. kard/transactions/raw_client.py +925 -0
  162. kard/transactions/types/__init__.py +199 -0
  163. kard/transactions/types/audit_attributes.py +44 -0
  164. kard/transactions/types/audit_request_data.py +20 -0
  165. kard/transactions/types/audit_response_attributes.py +24 -0
  166. kard/transactions/types/audit_response_data.py +25 -0
  167. kard/transactions/types/audit_status.py +5 -0
  168. kard/transactions/types/card_network.py +5 -0
  169. kard/transactions/types/commission_earned_details.py +21 -0
  170. kard/transactions/types/create_audit_multi_status_response.py +21 -0
  171. kard/transactions/types/create_audit_request_body.py +43 -0
  172. kard/transactions/types/create_audit_request_data_union.py +26 -0
  173. kard/transactions/types/create_audit_response_body.py +41 -0
  174. kard/transactions/types/create_audit_response_data_union.py +27 -0
  175. kard/transactions/types/direction_type.py +5 -0
  176. kard/transactions/types/fraudulent_transaction_attributes.py +24 -0
  177. kard/transactions/types/fraudulent_transaction_data.py +30 -0
  178. kard/transactions/types/fraudulent_transaction_object.py +42 -0
  179. kard/transactions/types/fraudulent_transaction_request_body.py +45 -0
  180. kard/transactions/types/fraudulent_transaction_response.py +21 -0
  181. kard/transactions/types/get_earned_rewards_response.py +133 -0
  182. kard/transactions/types/matched_transactions_attributes.py +156 -0
  183. kard/transactions/types/matched_transactions_request.py +25 -0
  184. kard/transactions/types/merchant.py +82 -0
  185. kard/transactions/types/payment_status.py +5 -0
  186. kard/transactions/types/payment_type.py +5 -0
  187. kard/transactions/types/processor_mid.py +26 -0
  188. kard/transactions/types/receipt_medium_type.py +5 -0
  189. kard/transactions/types/rewarded_transaction.py +27 -0
  190. kard/transactions/types/rewarded_transaction_attributes.py +74 -0
  191. kard/transactions/types/rewarded_transaction_relationships.py +22 -0
  192. kard/transactions/types/rewarded_transaction_status.py +5 -0
  193. kard/transactions/types/rewarded_transaction_union.py +29 -0
  194. kard/transactions/types/states.py +68 -0
  195. kard/transactions/types/transaction_included_resource.py +47 -0
  196. kard/transactions/types/transaction_merchant_attributes.py +22 -0
  197. kard/transactions/types/transaction_merchant_resource.py +28 -0
  198. kard/transactions/types/transaction_offer_attributes.py +26 -0
  199. kard/transactions/types/transaction_offer_resource.py +28 -0
  200. kard/transactions/types/transaction_payment_type.py +5 -0
  201. kard/transactions/types/transaction_status.py +5 -0
  202. kard/transactions/types/transactions.py +46 -0
  203. kard/transactions/types/transactions_attributes.py +198 -0
  204. kard/transactions/types/transactions_multi_response.py +21 -0
  205. kard/transactions/types/transactions_request.py +25 -0
  206. kard/transactions/types/transactions_request_body.py +90 -0
  207. kard/transactions/types/transactions_response.py +38 -0
  208. kard/transactions/types/transactions_response_data.py +27 -0
  209. kard/transactions/types/visa_mid.py +23 -0
  210. kard/transactions/types/visa_mid_details.py +27 -0
  211. kard/users/__init__.py +293 -0
  212. kard/users/attributions/__init__.py +73 -0
  213. kard/users/attributions/client.py +229 -0
  214. kard/users/attributions/raw_client.py +215 -0
  215. kard/users/attributions/types/__init__.py +73 -0
  216. kard/users/attributions/types/create_attribution_request_object.py +75 -0
  217. kard/users/attributions/types/create_attribution_request_union.py +45 -0
  218. kard/users/attributions/types/create_attribution_response.py +38 -0
  219. kard/users/attributions/types/event_code.py +5 -0
  220. kard/users/attributions/types/notification_attribution_attributes.py +35 -0
  221. kard/users/attributions/types/notification_attribution_request.py +20 -0
  222. kard/users/attributions/types/notification_medium.py +5 -0
  223. kard/users/attributions/types/offer_attribution_attributes.py +35 -0
  224. kard/users/attributions/types/offer_attribution_request.py +20 -0
  225. kard/users/attributions/types/offer_medium.py +5 -0
  226. kard/users/client.py +512 -0
  227. kard/users/errors/__init__.py +34 -0
  228. kard/users/errors/multi_status.py +11 -0
  229. kard/users/raw_client.py +783 -0
  230. kard/users/rewards/__init__.py +133 -0
  231. kard/users/rewards/client.py +448 -0
  232. kard/users/rewards/raw_client.py +587 -0
  233. kard/users/rewards/types/__init__.py +130 -0
  234. kard/users/rewards/types/amount.py +21 -0
  235. kard/users/rewards/types/amount_type.py +5 -0
  236. kard/users/rewards/types/asset.py +28 -0
  237. kard/users/rewards/types/category_data.py +18 -0
  238. kard/users/rewards/types/category_fields.py +23 -0
  239. kard/users/rewards/types/category_identifier.py +24 -0
  240. kard/users/rewards/types/category_included.py +21 -0
  241. kard/users/rewards/types/category_relationship.py +20 -0
  242. kard/users/rewards/types/category_relationship_object.py +20 -0
  243. kard/users/rewards/types/commission.py +21 -0
  244. kard/users/rewards/types/coordinates.py +20 -0
  245. kard/users/rewards/types/eligibility_location_address.py +24 -0
  246. kard/users/rewards/types/eligibility_location_included.py +8 -0
  247. kard/users/rewards/types/eligibility_offer_included.py +7 -0
  248. kard/users/rewards/types/eligibility_offer_relationship.py +7 -0
  249. kard/users/rewards/types/location_attributes.py +28 -0
  250. kard/users/rewards/types/location_data.py +32 -0
  251. kard/users/rewards/types/location_relationships.py +18 -0
  252. kard/users/rewards/types/location_sort_options.py +5 -0
  253. kard/users/rewards/types/locations_response_object.py +215 -0
  254. kard/users/rewards/types/offer_common_fields.py +103 -0
  255. kard/users/rewards/types/offer_data_union.py +30 -0
  256. kard/users/rewards/types/offer_relationship.py +21 -0
  257. kard/users/rewards/types/offer_sort_options.py +7 -0
  258. kard/users/rewards/types/offers_response_object.py +130 -0
  259. kard/users/rewards/types/operation_hours.py +23 -0
  260. kard/users/rewards/types/operation_period.py +21 -0
  261. kard/users/rewards/types/operation_time.py +20 -0
  262. kard/users/rewards/types/standard_offer.py +21 -0
  263. kard/users/rewards/types/standard_offer_core.py +26 -0
  264. kard/users/rewards/types/standard_offer_fields.py +18 -0
  265. kard/users/types/__init__.py +66 -0
  266. kard/users/types/create_users_multi_status_response.py +21 -0
  267. kard/users/types/create_users_object.py +42 -0
  268. kard/users/types/delete_user_response_object.py +34 -0
  269. kard/users/types/update_user_object.py +40 -0
  270. kard/users/types/user_request_attributes.py +60 -0
  271. kard/users/types/user_request_data.py +22 -0
  272. kard/users/types/user_request_data_union.py +28 -0
  273. kard/users/types/user_response_no_data.py +22 -0
  274. kard/users/types/user_response_union_no_data.py +28 -0
  275. kard/users/uploads/__init__.py +112 -0
  276. kard/users/uploads/client.py +484 -0
  277. kard/users/uploads/errors/__init__.py +34 -0
  278. kard/users/uploads/errors/upload_part_multi_status.py +13 -0
  279. kard/users/uploads/raw_client.py +625 -0
  280. kard/users/uploads/types/__init__.py +119 -0
  281. kard/users/uploads/types/create_upload_part_data_union.py +27 -0
  282. kard/users/uploads/types/create_upload_part_multi_status_response.py +21 -0
  283. kard/users/uploads/types/create_upload_part_request_object.py +74 -0
  284. kard/users/uploads/types/create_upload_part_response_data.py +25 -0
  285. kard/users/uploads/types/create_upload_part_response_data_union.py +27 -0
  286. kard/users/uploads/types/create_upload_part_response_object.py +39 -0
  287. kard/users/uploads/types/create_upload_request_data_union.py +26 -0
  288. kard/users/uploads/types/create_upload_request_object.py +36 -0
  289. kard/users/uploads/types/create_upload_response_data.py +25 -0
  290. kard/users/uploads/types/create_upload_response_data_union.py +27 -0
  291. kard/users/uploads/types/create_upload_response_object.py +37 -0
  292. kard/users/uploads/types/historical_transaction_complete_no_data.py +25 -0
  293. kard/users/uploads/types/start_historical_upload_no_data.py +20 -0
  294. kard/users/uploads/types/update_upload_request_data_union.py +27 -0
  295. kard/users/uploads/types/update_upload_request_object.py +37 -0
  296. kard/users/uploads/types/update_upload_response_data.py +25 -0
  297. kard/users/uploads/types/update_upload_response_data_union.py +27 -0
  298. kard/users/uploads/types/update_upload_response_object.py +37 -0
  299. kard/version.py +3 -0
  300. kard_financial_sdk-0.0.82.dist-info/METADATA +238 -0
  301. kard_financial_sdk-0.0.82.dist-info/RECORD +302 -0
  302. kard_financial_sdk-0.0.82.dist-info/WHEEL +4 -0
@@ -0,0 +1,214 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .audit_update_attributes import AuditUpdateAttributes
10
+ from .audit_update_data import AuditUpdateData
11
+ from .audit_update_relationships import AuditUpdateRelationships
12
+ from .broker_amount import BrokerAmount
13
+ from .broker_amount_type import BrokerAmountType
14
+ from .broker_asset import BrokerAsset
15
+ from .broker_asset_type import BrokerAssetType
16
+ from .broker_operation_hours import BrokerOperationHours
17
+ from .broker_operation_period import BrokerOperationPeriod
18
+ from .broker_purchase_channel import BrokerPurchaseChannel
19
+ from .broker_reward import BrokerReward
20
+ from .broker_reward_type import BrokerRewardType
21
+ from .clawback_data import ClawbackData
22
+ from .earned_reward_approved_data import EarnedRewardApprovedData
23
+ from .earned_reward_attributes import EarnedRewardAttributes
24
+ from .earned_reward_relationships import EarnedRewardRelationships
25
+ from .earned_reward_settled_attributes import EarnedRewardSettledAttributes
26
+ from .earned_reward_settled_data import EarnedRewardSettledData
27
+ from .failed_transaction_attributes import FailedTransactionAttributes
28
+ from .failed_transaction_data import FailedTransactionData
29
+ from .failed_transaction_relationships import FailedTransactionRelationships
30
+ from .location_address import LocationAddress
31
+ from .location_coordinates import LocationCoordinates
32
+ from .location_status import LocationStatus
33
+ from .merchant_source import MerchantSource
34
+ from .notification_data_union import (
35
+ NotificationDataUnion,
36
+ NotificationDataUnion_AuditUpdate,
37
+ NotificationDataUnion_Clawback,
38
+ NotificationDataUnion_EarnedRewardApproved,
39
+ NotificationDataUnion_EarnedRewardSettled,
40
+ NotificationDataUnion_FailedTransaction,
41
+ NotificationDataUnion_Location,
42
+ NotificationDataUnion_Merchant,
43
+ NotificationDataUnion_Offer,
44
+ NotificationDataUnion_UserOffer,
45
+ NotificationDataUnion_ValidTransaction,
46
+ )
47
+ from .notification_metadata import NotificationMetadata
48
+ from .notification_payload import NotificationPayload
49
+ from .offer_status import OfferStatus
50
+ from .offer_type import OfferType
51
+ from .reward_notification_attributes import RewardNotificationAttributes
52
+ from .time_period import TimePeriod
53
+ from .transaction_relationships import TransactionRelationships
54
+ from .user_offer_status import UserOfferStatus
55
+ from .valid_transaction_attributes import ValidTransactionAttributes
56
+ from .valid_transaction_commission_earned import ValidTransactionCommissionEarned
57
+ from .valid_transaction_data import ValidTransactionData
58
+ from .webhook_locations_attributes import WebhookLocationsAttributes
59
+ from .webhook_locations_data import WebhookLocationsData
60
+ from .webhook_locations_relationships import WebhookLocationsRelationships
61
+ from .webhook_merchant_attributes import WebhookMerchantAttributes
62
+ from .webhook_merchant_data import WebhookMerchantData
63
+ from .webhook_merchant_relationships import WebhookMerchantRelationships
64
+ from .webhook_offer_attributes import WebhookOfferAttributes
65
+ from .webhook_offer_data import WebhookOfferData
66
+ from .webhook_offer_relationships import WebhookOfferRelationships
67
+ from .webhook_user_offer_attributes import WebhookUserOfferAttributes
68
+ from .webhook_user_offer_data import WebhookUserOfferData
69
+ from .webhook_user_offer_relationships import WebhookUserOfferRelationships
70
+ _dynamic_imports: typing.Dict[str, str] = {
71
+ "AuditUpdateAttributes": ".audit_update_attributes",
72
+ "AuditUpdateData": ".audit_update_data",
73
+ "AuditUpdateRelationships": ".audit_update_relationships",
74
+ "BrokerAmount": ".broker_amount",
75
+ "BrokerAmountType": ".broker_amount_type",
76
+ "BrokerAsset": ".broker_asset",
77
+ "BrokerAssetType": ".broker_asset_type",
78
+ "BrokerOperationHours": ".broker_operation_hours",
79
+ "BrokerOperationPeriod": ".broker_operation_period",
80
+ "BrokerPurchaseChannel": ".broker_purchase_channel",
81
+ "BrokerReward": ".broker_reward",
82
+ "BrokerRewardType": ".broker_reward_type",
83
+ "ClawbackData": ".clawback_data",
84
+ "EarnedRewardApprovedData": ".earned_reward_approved_data",
85
+ "EarnedRewardAttributes": ".earned_reward_attributes",
86
+ "EarnedRewardRelationships": ".earned_reward_relationships",
87
+ "EarnedRewardSettledAttributes": ".earned_reward_settled_attributes",
88
+ "EarnedRewardSettledData": ".earned_reward_settled_data",
89
+ "FailedTransactionAttributes": ".failed_transaction_attributes",
90
+ "FailedTransactionData": ".failed_transaction_data",
91
+ "FailedTransactionRelationships": ".failed_transaction_relationships",
92
+ "LocationAddress": ".location_address",
93
+ "LocationCoordinates": ".location_coordinates",
94
+ "LocationStatus": ".location_status",
95
+ "MerchantSource": ".merchant_source",
96
+ "NotificationDataUnion": ".notification_data_union",
97
+ "NotificationDataUnion_AuditUpdate": ".notification_data_union",
98
+ "NotificationDataUnion_Clawback": ".notification_data_union",
99
+ "NotificationDataUnion_EarnedRewardApproved": ".notification_data_union",
100
+ "NotificationDataUnion_EarnedRewardSettled": ".notification_data_union",
101
+ "NotificationDataUnion_FailedTransaction": ".notification_data_union",
102
+ "NotificationDataUnion_Location": ".notification_data_union",
103
+ "NotificationDataUnion_Merchant": ".notification_data_union",
104
+ "NotificationDataUnion_Offer": ".notification_data_union",
105
+ "NotificationDataUnion_UserOffer": ".notification_data_union",
106
+ "NotificationDataUnion_ValidTransaction": ".notification_data_union",
107
+ "NotificationMetadata": ".notification_metadata",
108
+ "NotificationPayload": ".notification_payload",
109
+ "OfferStatus": ".offer_status",
110
+ "OfferType": ".offer_type",
111
+ "RewardNotificationAttributes": ".reward_notification_attributes",
112
+ "TimePeriod": ".time_period",
113
+ "TransactionRelationships": ".transaction_relationships",
114
+ "UserOfferStatus": ".user_offer_status",
115
+ "ValidTransactionAttributes": ".valid_transaction_attributes",
116
+ "ValidTransactionCommissionEarned": ".valid_transaction_commission_earned",
117
+ "ValidTransactionData": ".valid_transaction_data",
118
+ "WebhookLocationsAttributes": ".webhook_locations_attributes",
119
+ "WebhookLocationsData": ".webhook_locations_data",
120
+ "WebhookLocationsRelationships": ".webhook_locations_relationships",
121
+ "WebhookMerchantAttributes": ".webhook_merchant_attributes",
122
+ "WebhookMerchantData": ".webhook_merchant_data",
123
+ "WebhookMerchantRelationships": ".webhook_merchant_relationships",
124
+ "WebhookOfferAttributes": ".webhook_offer_attributes",
125
+ "WebhookOfferData": ".webhook_offer_data",
126
+ "WebhookOfferRelationships": ".webhook_offer_relationships",
127
+ "WebhookUserOfferAttributes": ".webhook_user_offer_attributes",
128
+ "WebhookUserOfferData": ".webhook_user_offer_data",
129
+ "WebhookUserOfferRelationships": ".webhook_user_offer_relationships",
130
+ }
131
+
132
+
133
+ def __getattr__(attr_name: str) -> typing.Any:
134
+ module_name = _dynamic_imports.get(attr_name)
135
+ if module_name is None:
136
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
137
+ try:
138
+ module = import_module(module_name, __package__)
139
+ if module_name == f".{attr_name}":
140
+ return module
141
+ else:
142
+ return getattr(module, attr_name)
143
+ except ImportError as e:
144
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
145
+ except AttributeError as e:
146
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
147
+
148
+
149
+ def __dir__():
150
+ lazy_attrs = list(_dynamic_imports.keys())
151
+ return sorted(lazy_attrs)
152
+
153
+
154
+ __all__ = [
155
+ "AuditUpdateAttributes",
156
+ "AuditUpdateData",
157
+ "AuditUpdateRelationships",
158
+ "BrokerAmount",
159
+ "BrokerAmountType",
160
+ "BrokerAsset",
161
+ "BrokerAssetType",
162
+ "BrokerOperationHours",
163
+ "BrokerOperationPeriod",
164
+ "BrokerPurchaseChannel",
165
+ "BrokerReward",
166
+ "BrokerRewardType",
167
+ "ClawbackData",
168
+ "EarnedRewardApprovedData",
169
+ "EarnedRewardAttributes",
170
+ "EarnedRewardRelationships",
171
+ "EarnedRewardSettledAttributes",
172
+ "EarnedRewardSettledData",
173
+ "FailedTransactionAttributes",
174
+ "FailedTransactionData",
175
+ "FailedTransactionRelationships",
176
+ "LocationAddress",
177
+ "LocationCoordinates",
178
+ "LocationStatus",
179
+ "MerchantSource",
180
+ "NotificationDataUnion",
181
+ "NotificationDataUnion_AuditUpdate",
182
+ "NotificationDataUnion_Clawback",
183
+ "NotificationDataUnion_EarnedRewardApproved",
184
+ "NotificationDataUnion_EarnedRewardSettled",
185
+ "NotificationDataUnion_FailedTransaction",
186
+ "NotificationDataUnion_Location",
187
+ "NotificationDataUnion_Merchant",
188
+ "NotificationDataUnion_Offer",
189
+ "NotificationDataUnion_UserOffer",
190
+ "NotificationDataUnion_ValidTransaction",
191
+ "NotificationMetadata",
192
+ "NotificationPayload",
193
+ "OfferStatus",
194
+ "OfferType",
195
+ "RewardNotificationAttributes",
196
+ "TimePeriod",
197
+ "TransactionRelationships",
198
+ "UserOfferStatus",
199
+ "ValidTransactionAttributes",
200
+ "ValidTransactionCommissionEarned",
201
+ "ValidTransactionData",
202
+ "WebhookLocationsAttributes",
203
+ "WebhookLocationsData",
204
+ "WebhookLocationsRelationships",
205
+ "WebhookMerchantAttributes",
206
+ "WebhookMerchantData",
207
+ "WebhookMerchantRelationships",
208
+ "WebhookOfferAttributes",
209
+ "WebhookOfferData",
210
+ "WebhookOfferRelationships",
211
+ "WebhookUserOfferAttributes",
212
+ "WebhookUserOfferData",
213
+ "WebhookUserOfferRelationships",
214
+ ]
@@ -0,0 +1,88 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ import pydantic
7
+ import typing_extensions
8
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
+ from ...core.serialization import FieldMetadata
10
+ from ...transactions.types.audit_status import AuditStatus
11
+
12
+
13
+ class AuditUpdateAttributes(UniversalBaseModel):
14
+ status: AuditStatus = pydantic.Field()
15
+ """
16
+ The status of the audit
17
+ """
18
+
19
+ audit_code: typing_extensions.Annotated[int, FieldMetadata(alias="auditCode")] = pydantic.Field()
20
+ """
21
+ Audit Code - Enum. Code to define audit.
22
+ <ul>
23
+ <li>`3005` : Customer is claiming cashback is incorrect - INCORRECT CASHBACK CLAIM</li>
24
+ <li>`3006` : Transaction is missing the cashback award - MISSING CASHBACK AWARD</li>
25
+ <li>`8001` : Other - check audit description</li>
26
+ </ul>
27
+ """
28
+
29
+ merchant_name: typing_extensions.Annotated[str, FieldMetadata(alias="merchantName")] = pydantic.Field()
30
+ """
31
+ The merchant name related to the transaction audit
32
+ """
33
+
34
+ audit_description: typing_extensions.Annotated[str, FieldMetadata(alias="auditDescription")] = pydantic.Field()
35
+ """
36
+ The description of the audit
37
+ """
38
+
39
+ transaction_id: typing_extensions.Annotated[str, FieldMetadata(alias="transactionId")] = pydantic.Field()
40
+ """
41
+ The transaction ID associated with audit
42
+ """
43
+
44
+ resolution_code: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="resolutionCode")] = (
45
+ pydantic.Field(default=None)
46
+ )
47
+ """
48
+ Resolution Code - Enum. field is available when audit is status CLOSED.
49
+ <ul>
50
+ <li>`5001` : Transaction will be deleted</li>
51
+ <li>`5002` : Settlement amount will be adjusted</li>
52
+ <li>`5003` : Return amount will be adjusted</li>
53
+ <li>`5004` : Reward dispute resolved</li>
54
+ <li>`5005` : Transaction will be marked for writeoff</li>
55
+ <li>`5006` : Transaction will be marked as rejected</li>
56
+ <li>`5007` : Transaction will be resent through webhook</li>
57
+ <li>`5008` : Transaction will be resent through daily file</li>
58
+ <li>`5009` : No change needed</li>
59
+ <li>`9001` : Ineligible item in purchase</li>
60
+ <li>`9002` : Return was made</li>
61
+ <li>`9003` : User ineligible for offer (usually because of participation through another program)</li>
62
+ <li>`9004` : Redemption limit hit (if offer has a set number of redemptions and it isn't handled programmatically)</li>
63
+ <li>`9005` : Transaction not captured</li>
64
+ </ul>
65
+ """
66
+
67
+ resolution_description: typing_extensions.Annotated[
68
+ typing.Optional[str], FieldMetadata(alias="resolutionDescription")
69
+ ] = pydantic.Field(default=None)
70
+ """
71
+ The resolution description; field is available when audit is status CLOSED
72
+ """
73
+
74
+ resolution_time_stamp: typing_extensions.Annotated[
75
+ typing.Optional[dt.datetime], FieldMetadata(alias="resolutionTimeStamp")
76
+ ] = pydantic.Field(default=None)
77
+ """
78
+ The resolution timestamp of when the audit was marked as status CLOSED in ISO format; available when audit is closed.
79
+ """
80
+
81
+ if IS_PYDANTIC_V2:
82
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
83
+ else:
84
+
85
+ class Config:
86
+ frozen = True
87
+ smart_union = True
88
+ extra = pydantic.Extra.allow
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .audit_update_attributes import AuditUpdateAttributes
8
+ from .audit_update_relationships import AuditUpdateRelationships
9
+
10
+
11
+ class AuditUpdateData(UniversalBaseModel):
12
+ id: str = pydantic.Field()
13
+ """
14
+ The internal ID of the notification
15
+ """
16
+
17
+ attributes: AuditUpdateAttributes
18
+ relationships: AuditUpdateRelationships
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...commons.types.relationship_single import RelationshipSingle
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+
9
+
10
+ class AuditUpdateRelationships(UniversalBaseModel):
11
+ user: RelationshipSingle
12
+ audit: RelationshipSingle
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -0,0 +1,28 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .broker_amount_type import BrokerAmountType
8
+
9
+
10
+ class BrokerAmount(UniversalBaseModel):
11
+ type: BrokerAmountType = pydantic.Field()
12
+ """
13
+ Type of amount
14
+ """
15
+
16
+ value: int = pydantic.Field()
17
+ """
18
+ Amount value
19
+ """
20
+
21
+ if IS_PYDANTIC_V2:
22
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ BrokerAmountType = typing.Union[typing.Literal["CENTS"], typing.Any]
@@ -0,0 +1,33 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .broker_asset_type import BrokerAssetType
8
+
9
+
10
+ class BrokerAsset(UniversalBaseModel):
11
+ type: BrokerAssetType = pydantic.Field()
12
+ """
13
+ Type of asset
14
+ """
15
+
16
+ url: str = pydantic.Field()
17
+ """
18
+ URL to the asset
19
+ """
20
+
21
+ alt: typing.Optional[str] = pydantic.Field(default=None)
22
+ """
23
+ Alt text for the asset
24
+ """
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ BrokerAssetType = typing.Union[typing.Literal["LOGO_IMAGE", "BANNER_IMAGE"], typing.Any]
@@ -0,0 +1,30 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+ from .broker_operation_period import BrokerOperationPeriod
10
+
11
+
12
+ class BrokerOperationHours(UniversalBaseModel):
13
+ periods: typing.Optional[typing.List[BrokerOperationPeriod]] = pydantic.Field(default=None)
14
+ """
15
+ Operating hour periods by day of week
16
+ """
17
+
18
+ weekday_text: typing_extensions.Annotated[typing.List[str], FieldMetadata(alias="weekdayText")] = pydantic.Field()
19
+ """
20
+ Human-readable description of operating hours
21
+ """
22
+
23
+ if IS_PYDANTIC_V2:
24
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
25
+ else:
26
+
27
+ class Config:
28
+ frozen = True
29
+ smart_union = True
30
+ extra = pydantic.Extra.allow
@@ -0,0 +1,28 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .time_period import TimePeriod
8
+
9
+
10
+ class BrokerOperationPeriod(UniversalBaseModel):
11
+ open: TimePeriod = pydantic.Field()
12
+ """
13
+ When the location opens
14
+ """
15
+
16
+ close: TimePeriod = pydantic.Field()
17
+ """
18
+ When the location closes
19
+ """
20
+
21
+ if IS_PYDANTIC_V2:
22
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ BrokerPurchaseChannel = typing.Union[typing.Literal["INSTORE", "ONLINE"], typing.Any]
@@ -0,0 +1,28 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .broker_reward_type import BrokerRewardType
8
+
9
+
10
+ class BrokerReward(UniversalBaseModel):
11
+ type: BrokerRewardType = pydantic.Field()
12
+ """
13
+ Type of reward
14
+ """
15
+
16
+ value: float = pydantic.Field()
17
+ """
18
+ Reward value
19
+ """
20
+
21
+ if IS_PYDANTIC_V2:
22
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ BrokerRewardType = typing.Union[typing.Literal["PERCENT", "FLAT"], typing.Any]
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .failed_transaction_attributes import FailedTransactionAttributes
8
+ from .failed_transaction_relationships import FailedTransactionRelationships
9
+
10
+
11
+ class ClawbackData(UniversalBaseModel):
12
+ id: str = pydantic.Field()
13
+ """
14
+ The internal ID of the notification
15
+ """
16
+
17
+ attributes: FailedTransactionAttributes
18
+ relationships: FailedTransactionRelationships
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .earned_reward_attributes import EarnedRewardAttributes
8
+ from .earned_reward_relationships import EarnedRewardRelationships
9
+
10
+
11
+ class EarnedRewardApprovedData(UniversalBaseModel):
12
+ id: str = pydantic.Field()
13
+ """
14
+ The internal ID of the notification
15
+ """
16
+
17
+ attributes: EarnedRewardAttributes
18
+ relationships: EarnedRewardRelationships
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -0,0 +1,18 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from .reward_notification_attributes import RewardNotificationAttributes
8
+
9
+
10
+ class EarnedRewardAttributes(RewardNotificationAttributes):
11
+ if IS_PYDANTIC_V2:
12
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
13
+ else:
14
+
15
+ class Config:
16
+ frozen = True
17
+ smart_union = True
18
+ extra = pydantic.Extra.allow
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...commons.types.relationship_single import RelationshipSingle
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+
9
+
10
+ class EarnedRewardRelationships(UniversalBaseModel):
11
+ user: RelationshipSingle
12
+ transaction: RelationshipSingle
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -0,0 +1,23 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...commons.types.commission_value import CommissionValue
8
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
9
+ from ...core.serialization import FieldMetadata
10
+ from .reward_notification_attributes import RewardNotificationAttributes
11
+
12
+
13
+ class EarnedRewardSettledAttributes(RewardNotificationAttributes):
14
+ commission_earned: typing_extensions.Annotated[CommissionValue, FieldMetadata(alias="commissionEarned")]
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow