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.
- kard/__init__.py +579 -0
- kard/auth/__init__.py +34 -0
- kard/auth/client.py +121 -0
- kard/auth/raw_client.py +108 -0
- kard/auth/types/__init__.py +34 -0
- kard/auth/types/token_response.py +25 -0
- kard/client.py +416 -0
- kard/commons/__init__.py +120 -0
- kard/commons/errors/__init__.py +44 -0
- kard/commons/errors/conflict_error.py +11 -0
- kard/commons/errors/does_not_exist_error.py +11 -0
- kard/commons/errors/internal_server_error.py +11 -0
- kard/commons/errors/invalid_request.py +11 -0
- kard/commons/errors/unauthorized_error.py +11 -0
- kard/commons/types/__init__.py +107 -0
- kard/commons/types/category_option.py +26 -0
- kard/commons/types/commission_type.py +5 -0
- kard/commons/types/commission_value.py +28 -0
- kard/commons/types/commission_value_type.py +5 -0
- kard/commons/types/empty_object.py +17 -0
- kard/commons/types/enrolled_rewards_type.py +5 -0
- kard/commons/types/error_object.py +43 -0
- kard/commons/types/error_response.py +20 -0
- kard/commons/types/error_source.py +32 -0
- kard/commons/types/job.py +24 -0
- kard/commons/types/job_response.py +27 -0
- kard/commons/types/job_status.py +5 -0
- kard/commons/types/links.py +27 -0
- kard/commons/types/mongo_id.py +3 -0
- kard/commons/types/notification_type.py +19 -0
- kard/commons/types/organization_id.py +3 -0
- kard/commons/types/purchase_channel.py +5 -0
- kard/commons/types/relationship_data.py +24 -0
- kard/commons/types/relationship_multiple.py +20 -0
- kard/commons/types/relationship_single.py +20 -0
- kard/commons/types/resource_type.py +3 -0
- kard/commons/types/state.py +68 -0
- kard/commons/types/subscription_id.py +3 -0
- kard/commons/types/user_id.py +3 -0
- kard/core/__init__.py +105 -0
- kard/core/api_error.py +23 -0
- kard/core/client_wrapper.py +97 -0
- kard/core/datetime_utils.py +28 -0
- kard/core/file.py +67 -0
- kard/core/force_multipart.py +18 -0
- kard/core/http_client.py +613 -0
- kard/core/http_response.py +55 -0
- kard/core/http_sse/__init__.py +42 -0
- kard/core/http_sse/_api.py +112 -0
- kard/core/http_sse/_decoders.py +61 -0
- kard/core/http_sse/_exceptions.py +7 -0
- kard/core/http_sse/_models.py +17 -0
- kard/core/jsonable_encoder.py +100 -0
- kard/core/oauth_token_provider.py +73 -0
- kard/core/pydantic_utilities.py +260 -0
- kard/core/query_encoder.py +58 -0
- kard/core/remove_none_from_dict.py +11 -0
- kard/core/request_options.py +35 -0
- kard/core/serialization.py +276 -0
- kard/environment.py +8 -0
- kard/files/__init__.py +58 -0
- kard/files/client.py +213 -0
- kard/files/errors/__init__.py +34 -0
- kard/files/errors/forbidden_error.py +11 -0
- kard/files/raw_client.py +278 -0
- kard/files/types/__init__.py +53 -0
- kard/files/types/file_metadata_attribute.py +39 -0
- kard/files/types/file_metadata_with_url.py +34 -0
- kard/files/types/file_type.py +13 -0
- kard/files/types/files_metadata_sort_options.py +5 -0
- kard/files/types/get_files_metadata_response.py +71 -0
- kard/files/types/pagination_meta.py +29 -0
- kard/notifications/__init__.py +279 -0
- kard/notifications/client.py +63 -0
- kard/notifications/raw_client.py +13 -0
- kard/notifications/subscriptions/__init__.py +97 -0
- kard/notifications/subscriptions/client.py +372 -0
- kard/notifications/subscriptions/raw_client.py +581 -0
- kard/notifications/subscriptions/types/__init__.py +94 -0
- kard/notifications/subscriptions/types/create_subscription_union.py +27 -0
- kard/notifications/subscriptions/types/create_subscriptions_response_object.py +43 -0
- kard/notifications/subscriptions/types/created_subscription.py +23 -0
- kard/notifications/subscriptions/types/subscription.py +25 -0
- kard/notifications/subscriptions/types/subscription_attributes.py +35 -0
- kard/notifications/subscriptions/types/subscription_request.py +20 -0
- kard/notifications/subscriptions/types/subscription_request_attributes.py +35 -0
- kard/notifications/subscriptions/types/subscription_request_body.py +42 -0
- kard/notifications/subscriptions/types/subscription_request_union.py +26 -0
- kard/notifications/subscriptions/types/subscription_union.py +27 -0
- kard/notifications/subscriptions/types/subscriptions_response_object.py +43 -0
- kard/notifications/subscriptions/types/update_subscription_request.py +20 -0
- kard/notifications/subscriptions/types/update_subscription_request_attributes.py +39 -0
- kard/notifications/subscriptions/types/update_subscription_request_body.py +40 -0
- kard/notifications/subscriptions/types/update_subscription_request_union.py +26 -0
- kard/notifications/subscriptions/types/update_subscriptions_response_object.py +41 -0
- kard/notifications/types/__init__.py +214 -0
- kard/notifications/types/audit_update_attributes.py +88 -0
- kard/notifications/types/audit_update_data.py +27 -0
- kard/notifications/types/audit_update_relationships.py +21 -0
- kard/notifications/types/broker_amount.py +28 -0
- kard/notifications/types/broker_amount_type.py +5 -0
- kard/notifications/types/broker_asset.py +33 -0
- kard/notifications/types/broker_asset_type.py +5 -0
- kard/notifications/types/broker_operation_hours.py +30 -0
- kard/notifications/types/broker_operation_period.py +28 -0
- kard/notifications/types/broker_purchase_channel.py +5 -0
- kard/notifications/types/broker_reward.py +28 -0
- kard/notifications/types/broker_reward_type.py +5 -0
- kard/notifications/types/clawback_data.py +27 -0
- kard/notifications/types/earned_reward_approved_data.py +27 -0
- kard/notifications/types/earned_reward_attributes.py +18 -0
- kard/notifications/types/earned_reward_relationships.py +21 -0
- kard/notifications/types/earned_reward_settled_attributes.py +23 -0
- kard/notifications/types/earned_reward_settled_data.py +27 -0
- kard/notifications/types/failed_transaction_attributes.py +41 -0
- kard/notifications/types/failed_transaction_data.py +27 -0
- kard/notifications/types/failed_transaction_relationships.py +22 -0
- kard/notifications/types/location_address.py +39 -0
- kard/notifications/types/location_coordinates.py +27 -0
- kard/notifications/types/location_status.py +5 -0
- kard/notifications/types/merchant_source.py +5 -0
- kard/notifications/types/notification_data_union.py +203 -0
- kard/notifications/types/notification_metadata.py +22 -0
- kard/notifications/types/notification_payload.py +65 -0
- kard/notifications/types/offer_status.py +5 -0
- kard/notifications/types/offer_type.py +5 -0
- kard/notifications/types/reward_notification_attributes.py +48 -0
- kard/notifications/types/time_period.py +27 -0
- kard/notifications/types/transaction_relationships.py +22 -0
- kard/notifications/types/user_offer_status.py +5 -0
- kard/notifications/types/valid_transaction_attributes.py +25 -0
- kard/notifications/types/valid_transaction_commission_earned.py +21 -0
- kard/notifications/types/valid_transaction_data.py +27 -0
- kard/notifications/types/webhook_locations_attributes.py +71 -0
- kard/notifications/types/webhook_locations_data.py +27 -0
- kard/notifications/types/webhook_locations_relationships.py +20 -0
- kard/notifications/types/webhook_merchant_attributes.py +67 -0
- kard/notifications/types/webhook_merchant_data.py +27 -0
- kard/notifications/types/webhook_merchant_relationships.py +20 -0
- kard/notifications/types/webhook_offer_attributes.py +143 -0
- kard/notifications/types/webhook_offer_data.py +27 -0
- kard/notifications/types/webhook_offer_relationships.py +20 -0
- kard/notifications/types/webhook_user_offer_attributes.py +41 -0
- kard/notifications/types/webhook_user_offer_data.py +27 -0
- kard/notifications/types/webhook_user_offer_relationships.py +21 -0
- kard/ping/__init__.py +39 -0
- kard/ping/client.py +100 -0
- kard/ping/errors/__init__.py +34 -0
- kard/ping/errors/network_blocked_error.py +11 -0
- kard/ping/raw_client.py +113 -0
- kard/ping/types/__init__.py +38 -0
- kard/ping/types/network_blocked_error_body.py +34 -0
- kard/ping/types/ping_response_object.py +46 -0
- kard/py.typed +0 -0
- kard/transactions/__init__.py +212 -0
- kard/transactions/client.py +639 -0
- kard/transactions/errors/__init__.py +40 -0
- kard/transactions/errors/create_audit_multi_status.py +11 -0
- kard/transactions/errors/create_incoming_transactions_multi_status.py +11 -0
- kard/transactions/errors/fraud_multi_status.py +11 -0
- kard/transactions/raw_client.py +925 -0
- kard/transactions/types/__init__.py +199 -0
- kard/transactions/types/audit_attributes.py +44 -0
- kard/transactions/types/audit_request_data.py +20 -0
- kard/transactions/types/audit_response_attributes.py +24 -0
- kard/transactions/types/audit_response_data.py +25 -0
- kard/transactions/types/audit_status.py +5 -0
- kard/transactions/types/card_network.py +5 -0
- kard/transactions/types/commission_earned_details.py +21 -0
- kard/transactions/types/create_audit_multi_status_response.py +21 -0
- kard/transactions/types/create_audit_request_body.py +43 -0
- kard/transactions/types/create_audit_request_data_union.py +26 -0
- kard/transactions/types/create_audit_response_body.py +41 -0
- kard/transactions/types/create_audit_response_data_union.py +27 -0
- kard/transactions/types/direction_type.py +5 -0
- kard/transactions/types/fraudulent_transaction_attributes.py +24 -0
- kard/transactions/types/fraudulent_transaction_data.py +30 -0
- kard/transactions/types/fraudulent_transaction_object.py +42 -0
- kard/transactions/types/fraudulent_transaction_request_body.py +45 -0
- kard/transactions/types/fraudulent_transaction_response.py +21 -0
- kard/transactions/types/get_earned_rewards_response.py +133 -0
- kard/transactions/types/matched_transactions_attributes.py +156 -0
- kard/transactions/types/matched_transactions_request.py +25 -0
- kard/transactions/types/merchant.py +82 -0
- kard/transactions/types/payment_status.py +5 -0
- kard/transactions/types/payment_type.py +5 -0
- kard/transactions/types/processor_mid.py +26 -0
- kard/transactions/types/receipt_medium_type.py +5 -0
- kard/transactions/types/rewarded_transaction.py +27 -0
- kard/transactions/types/rewarded_transaction_attributes.py +74 -0
- kard/transactions/types/rewarded_transaction_relationships.py +22 -0
- kard/transactions/types/rewarded_transaction_status.py +5 -0
- kard/transactions/types/rewarded_transaction_union.py +29 -0
- kard/transactions/types/states.py +68 -0
- kard/transactions/types/transaction_included_resource.py +47 -0
- kard/transactions/types/transaction_merchant_attributes.py +22 -0
- kard/transactions/types/transaction_merchant_resource.py +28 -0
- kard/transactions/types/transaction_offer_attributes.py +26 -0
- kard/transactions/types/transaction_offer_resource.py +28 -0
- kard/transactions/types/transaction_payment_type.py +5 -0
- kard/transactions/types/transaction_status.py +5 -0
- kard/transactions/types/transactions.py +46 -0
- kard/transactions/types/transactions_attributes.py +198 -0
- kard/transactions/types/transactions_multi_response.py +21 -0
- kard/transactions/types/transactions_request.py +25 -0
- kard/transactions/types/transactions_request_body.py +90 -0
- kard/transactions/types/transactions_response.py +38 -0
- kard/transactions/types/transactions_response_data.py +27 -0
- kard/transactions/types/visa_mid.py +23 -0
- kard/transactions/types/visa_mid_details.py +27 -0
- kard/users/__init__.py +293 -0
- kard/users/attributions/__init__.py +73 -0
- kard/users/attributions/client.py +229 -0
- kard/users/attributions/raw_client.py +215 -0
- kard/users/attributions/types/__init__.py +73 -0
- kard/users/attributions/types/create_attribution_request_object.py +75 -0
- kard/users/attributions/types/create_attribution_request_union.py +45 -0
- kard/users/attributions/types/create_attribution_response.py +38 -0
- kard/users/attributions/types/event_code.py +5 -0
- kard/users/attributions/types/notification_attribution_attributes.py +35 -0
- kard/users/attributions/types/notification_attribution_request.py +20 -0
- kard/users/attributions/types/notification_medium.py +5 -0
- kard/users/attributions/types/offer_attribution_attributes.py +35 -0
- kard/users/attributions/types/offer_attribution_request.py +20 -0
- kard/users/attributions/types/offer_medium.py +5 -0
- kard/users/client.py +512 -0
- kard/users/errors/__init__.py +34 -0
- kard/users/errors/multi_status.py +11 -0
- kard/users/raw_client.py +783 -0
- kard/users/rewards/__init__.py +133 -0
- kard/users/rewards/client.py +448 -0
- kard/users/rewards/raw_client.py +587 -0
- kard/users/rewards/types/__init__.py +130 -0
- kard/users/rewards/types/amount.py +21 -0
- kard/users/rewards/types/amount_type.py +5 -0
- kard/users/rewards/types/asset.py +28 -0
- kard/users/rewards/types/category_data.py +18 -0
- kard/users/rewards/types/category_fields.py +23 -0
- kard/users/rewards/types/category_identifier.py +24 -0
- kard/users/rewards/types/category_included.py +21 -0
- kard/users/rewards/types/category_relationship.py +20 -0
- kard/users/rewards/types/category_relationship_object.py +20 -0
- kard/users/rewards/types/commission.py +21 -0
- kard/users/rewards/types/coordinates.py +20 -0
- kard/users/rewards/types/eligibility_location_address.py +24 -0
- kard/users/rewards/types/eligibility_location_included.py +8 -0
- kard/users/rewards/types/eligibility_offer_included.py +7 -0
- kard/users/rewards/types/eligibility_offer_relationship.py +7 -0
- kard/users/rewards/types/location_attributes.py +28 -0
- kard/users/rewards/types/location_data.py +32 -0
- kard/users/rewards/types/location_relationships.py +18 -0
- kard/users/rewards/types/location_sort_options.py +5 -0
- kard/users/rewards/types/locations_response_object.py +215 -0
- kard/users/rewards/types/offer_common_fields.py +103 -0
- kard/users/rewards/types/offer_data_union.py +30 -0
- kard/users/rewards/types/offer_relationship.py +21 -0
- kard/users/rewards/types/offer_sort_options.py +7 -0
- kard/users/rewards/types/offers_response_object.py +130 -0
- kard/users/rewards/types/operation_hours.py +23 -0
- kard/users/rewards/types/operation_period.py +21 -0
- kard/users/rewards/types/operation_time.py +20 -0
- kard/users/rewards/types/standard_offer.py +21 -0
- kard/users/rewards/types/standard_offer_core.py +26 -0
- kard/users/rewards/types/standard_offer_fields.py +18 -0
- kard/users/types/__init__.py +66 -0
- kard/users/types/create_users_multi_status_response.py +21 -0
- kard/users/types/create_users_object.py +42 -0
- kard/users/types/delete_user_response_object.py +34 -0
- kard/users/types/update_user_object.py +40 -0
- kard/users/types/user_request_attributes.py +60 -0
- kard/users/types/user_request_data.py +22 -0
- kard/users/types/user_request_data_union.py +28 -0
- kard/users/types/user_response_no_data.py +22 -0
- kard/users/types/user_response_union_no_data.py +28 -0
- kard/users/uploads/__init__.py +112 -0
- kard/users/uploads/client.py +484 -0
- kard/users/uploads/errors/__init__.py +34 -0
- kard/users/uploads/errors/upload_part_multi_status.py +13 -0
- kard/users/uploads/raw_client.py +625 -0
- kard/users/uploads/types/__init__.py +119 -0
- kard/users/uploads/types/create_upload_part_data_union.py +27 -0
- kard/users/uploads/types/create_upload_part_multi_status_response.py +21 -0
- kard/users/uploads/types/create_upload_part_request_object.py +74 -0
- kard/users/uploads/types/create_upload_part_response_data.py +25 -0
- kard/users/uploads/types/create_upload_part_response_data_union.py +27 -0
- kard/users/uploads/types/create_upload_part_response_object.py +39 -0
- kard/users/uploads/types/create_upload_request_data_union.py +26 -0
- kard/users/uploads/types/create_upload_request_object.py +36 -0
- kard/users/uploads/types/create_upload_response_data.py +25 -0
- kard/users/uploads/types/create_upload_response_data_union.py +27 -0
- kard/users/uploads/types/create_upload_response_object.py +37 -0
- kard/users/uploads/types/historical_transaction_complete_no_data.py +25 -0
- kard/users/uploads/types/start_historical_upload_no_data.py +20 -0
- kard/users/uploads/types/update_upload_request_data_union.py +27 -0
- kard/users/uploads/types/update_upload_request_object.py +37 -0
- kard/users/uploads/types/update_upload_response_data.py +25 -0
- kard/users/uploads/types/update_upload_response_data_union.py +27 -0
- kard/users/uploads/types/update_upload_response_object.py +37 -0
- kard/version.py +3 -0
- kard_financial_sdk-0.0.82.dist-info/METADATA +238 -0
- kard_financial_sdk-0.0.82.dist-info/RECORD +302 -0
- kard_financial_sdk-0.0.82.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,639 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ..commons.types.organization_id import OrganizationId
|
|
6
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
7
|
+
from ..core.request_options import RequestOptions
|
|
8
|
+
from .raw_client import AsyncRawTransactionsClient, RawTransactionsClient
|
|
9
|
+
from .types.create_audit_request_data_union import CreateAuditRequestDataUnion
|
|
10
|
+
from .types.create_audit_response_body import CreateAuditResponseBody
|
|
11
|
+
from .types.fraudulent_transaction_data import FraudulentTransactionData
|
|
12
|
+
from .types.fraudulent_transaction_object import FraudulentTransactionObject
|
|
13
|
+
from .types.get_earned_rewards_response import GetEarnedRewardsResponse
|
|
14
|
+
from .types.transactions import Transactions
|
|
15
|
+
from .types.transactions_response import TransactionsResponse
|
|
16
|
+
|
|
17
|
+
# this is used as the default value for optional parameters
|
|
18
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class TransactionsClient:
|
|
22
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
23
|
+
self._raw_client = RawTransactionsClient(client_wrapper=client_wrapper)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def with_raw_response(self) -> RawTransactionsClient:
|
|
27
|
+
"""
|
|
28
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
29
|
+
|
|
30
|
+
Returns
|
|
31
|
+
-------
|
|
32
|
+
RawTransactionsClient
|
|
33
|
+
"""
|
|
34
|
+
return self._raw_client
|
|
35
|
+
|
|
36
|
+
def create(
|
|
37
|
+
self,
|
|
38
|
+
organization_id: OrganizationId,
|
|
39
|
+
*,
|
|
40
|
+
data: typing.Sequence[Transactions],
|
|
41
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
42
|
+
) -> TransactionsResponse:
|
|
43
|
+
"""
|
|
44
|
+
Call this endpoint to send all transactions made by all your enrolled users in your rewards program. The request body will depend on the transaction type.<br/>
|
|
45
|
+
Please use the correct type when calling the endpoint:
|
|
46
|
+
- `transaction`: These incoming transactions will be processed and matched by the Kard system. Learn more about the [Transaction CLO Matching](https://github.com/kard-financial/kard-postman#c-transaction-clo-matching) flow here.
|
|
47
|
+
- `matchedTransaction`: For pre-matched transactions that need validation on match by the Kard system.<br/>
|
|
48
|
+
|
|
49
|
+
<b>Required scopes:</b> `transaction:write`<br/>
|
|
50
|
+
<b>Note:</b> `Maximum of 500 transactions can be created per request`.
|
|
51
|
+
|
|
52
|
+
Parameters
|
|
53
|
+
----------
|
|
54
|
+
organization_id : OrganizationId
|
|
55
|
+
|
|
56
|
+
data : typing.Sequence[Transactions]
|
|
57
|
+
Discriminated union representing the request body for submitting a transaction.
|
|
58
|
+
Use `type` to distinguish between the two:
|
|
59
|
+
- `transaction`: For transactions requiring processing and matching by the Kard system.
|
|
60
|
+
- `matchedTransaction`: For pre-matched transactions that need validation on match by the Kard system.
|
|
61
|
+
|
|
62
|
+
request_options : typing.Optional[RequestOptions]
|
|
63
|
+
Request-specific configuration.
|
|
64
|
+
|
|
65
|
+
Returns
|
|
66
|
+
-------
|
|
67
|
+
TransactionsResponse
|
|
68
|
+
|
|
69
|
+
Examples
|
|
70
|
+
--------
|
|
71
|
+
import datetime
|
|
72
|
+
|
|
73
|
+
from kard import KardApi
|
|
74
|
+
from kard.transactions import (
|
|
75
|
+
Merchant,
|
|
76
|
+
ProcessorMid_Visa,
|
|
77
|
+
Transactions_Transaction,
|
|
78
|
+
TransactionsAttributes,
|
|
79
|
+
VisaMidDetails,
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
client = KardApi(
|
|
83
|
+
client_id="YOUR_CLIENT_ID",
|
|
84
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
85
|
+
)
|
|
86
|
+
client.transactions.create(
|
|
87
|
+
organization_id="organization-123",
|
|
88
|
+
data=[
|
|
89
|
+
Transactions_Transaction(
|
|
90
|
+
id="309rjfoincor3icno3rind093cdow3jciwjdwcm",
|
|
91
|
+
attributes=TransactionsAttributes(
|
|
92
|
+
user_id="6FHt5b6Fnp0qdomMEy5AN6PXcSJIeX69",
|
|
93
|
+
status="APPROVED",
|
|
94
|
+
amount=1000,
|
|
95
|
+
subtotal=800,
|
|
96
|
+
currency="USD",
|
|
97
|
+
direction="DEBIT",
|
|
98
|
+
payment_type="CARD",
|
|
99
|
+
description="ADVANCEAUTO",
|
|
100
|
+
description_2="ADVANCEAUTO",
|
|
101
|
+
mcc="1234",
|
|
102
|
+
card_bin="123456",
|
|
103
|
+
card_last_four="4321",
|
|
104
|
+
authorization_date=datetime.datetime.fromisoformat(
|
|
105
|
+
"2021-07-02 17:47:06+00:00",
|
|
106
|
+
),
|
|
107
|
+
merchant=Merchant(
|
|
108
|
+
id="12345678901234567",
|
|
109
|
+
name="ADVANCEAUTO",
|
|
110
|
+
addr_street="125 Main St",
|
|
111
|
+
addr_city="Philadelphia",
|
|
112
|
+
addr_state="PA",
|
|
113
|
+
addr_zipcode="19147",
|
|
114
|
+
addr_country="United States",
|
|
115
|
+
latitude="37.9419429",
|
|
116
|
+
longitude="-73.1446869",
|
|
117
|
+
store_id="12345",
|
|
118
|
+
),
|
|
119
|
+
authorization_code="123456",
|
|
120
|
+
retrieval_reference_number="100804333919",
|
|
121
|
+
acquirer_reference_number="1234567890123456789012345678",
|
|
122
|
+
system_trace_audit_number="333828",
|
|
123
|
+
transaction_id="2467de37-cbdc-416d-a359-75de87bfffb0",
|
|
124
|
+
card_product_id="1234567890123456789012345678",
|
|
125
|
+
processor_mids=ProcessorMid_Visa(
|
|
126
|
+
mids=VisaMidDetails(
|
|
127
|
+
vmid="12345678901",
|
|
128
|
+
vsid="12345678",
|
|
129
|
+
),
|
|
130
|
+
),
|
|
131
|
+
),
|
|
132
|
+
)
|
|
133
|
+
],
|
|
134
|
+
)
|
|
135
|
+
"""
|
|
136
|
+
_response = self._raw_client.create(organization_id, data=data, request_options=request_options)
|
|
137
|
+
return _response.data
|
|
138
|
+
|
|
139
|
+
def create_fraud_markers(
|
|
140
|
+
self,
|
|
141
|
+
organization_id: OrganizationId,
|
|
142
|
+
*,
|
|
143
|
+
data: typing.Sequence[FraudulentTransactionData],
|
|
144
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
145
|
+
) -> FraudulentTransactionObject:
|
|
146
|
+
"""
|
|
147
|
+
Call this endpoint to flag a submitted transaction as fraudulent. This will prevent it from being rewarded.<br/>
|
|
148
|
+
|
|
149
|
+
<b>Required scopes:</b> `transaction:write`<br/>
|
|
150
|
+
<b>Note:</b> `Maximum of 500 fraudulent transactions can be created per request`.
|
|
151
|
+
|
|
152
|
+
Parameters
|
|
153
|
+
----------
|
|
154
|
+
organization_id : OrganizationId
|
|
155
|
+
|
|
156
|
+
data : typing.Sequence[FraudulentTransactionData]
|
|
157
|
+
List of fraudulent transactions to report
|
|
158
|
+
|
|
159
|
+
request_options : typing.Optional[RequestOptions]
|
|
160
|
+
Request-specific configuration.
|
|
161
|
+
|
|
162
|
+
Returns
|
|
163
|
+
-------
|
|
164
|
+
FraudulentTransactionObject
|
|
165
|
+
|
|
166
|
+
Examples
|
|
167
|
+
--------
|
|
168
|
+
from kard import KardApi
|
|
169
|
+
from kard.transactions import (
|
|
170
|
+
FraudulentTransactionAttributes,
|
|
171
|
+
FraudulentTransactionData,
|
|
172
|
+
)
|
|
173
|
+
|
|
174
|
+
client = KardApi(
|
|
175
|
+
client_id="YOUR_CLIENT_ID",
|
|
176
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
177
|
+
)
|
|
178
|
+
client.transactions.create_fraud_markers(
|
|
179
|
+
organization_id="organization-123",
|
|
180
|
+
data=[
|
|
181
|
+
FraudulentTransactionData(
|
|
182
|
+
id="myTxnId12345",
|
|
183
|
+
type="fraudulentTransaction",
|
|
184
|
+
attributes=FraudulentTransactionAttributes(
|
|
185
|
+
user_id="userId123",
|
|
186
|
+
),
|
|
187
|
+
)
|
|
188
|
+
],
|
|
189
|
+
)
|
|
190
|
+
"""
|
|
191
|
+
_response = self._raw_client.create_fraud_markers(organization_id, data=data, request_options=request_options)
|
|
192
|
+
return _response.data
|
|
193
|
+
|
|
194
|
+
def create_audits(
|
|
195
|
+
self,
|
|
196
|
+
organization_id: OrganizationId,
|
|
197
|
+
user_id: str,
|
|
198
|
+
*,
|
|
199
|
+
data: typing.Sequence[CreateAuditRequestDataUnion],
|
|
200
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
201
|
+
) -> CreateAuditResponseBody:
|
|
202
|
+
"""
|
|
203
|
+
Call this endpoint to request that a particular transaction be audited further by the Kard system, in the event of a missing cashback claim, incorrect cashback amount claim or other mis-match claims.<br/>
|
|
204
|
+
<b>Required scopes:</b> `audit:write`
|
|
205
|
+
|
|
206
|
+
Parameters
|
|
207
|
+
----------
|
|
208
|
+
organization_id : OrganizationId
|
|
209
|
+
|
|
210
|
+
user_id : str
|
|
211
|
+
The ID of the user as defined on the issuers system
|
|
212
|
+
|
|
213
|
+
data : typing.Sequence[CreateAuditRequestDataUnion]
|
|
214
|
+
|
|
215
|
+
request_options : typing.Optional[RequestOptions]
|
|
216
|
+
Request-specific configuration.
|
|
217
|
+
|
|
218
|
+
Returns
|
|
219
|
+
-------
|
|
220
|
+
CreateAuditResponseBody
|
|
221
|
+
|
|
222
|
+
Examples
|
|
223
|
+
--------
|
|
224
|
+
from kard import KardApi
|
|
225
|
+
from kard.transactions import AuditAttributes, CreateAuditRequestDataUnion_Audit
|
|
226
|
+
|
|
227
|
+
client = KardApi(
|
|
228
|
+
client_id="YOUR_CLIENT_ID",
|
|
229
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
230
|
+
)
|
|
231
|
+
client.transactions.create_audits(
|
|
232
|
+
organization_id="organization-123",
|
|
233
|
+
user_id="user-123",
|
|
234
|
+
data=[
|
|
235
|
+
CreateAuditRequestDataUnion_Audit(
|
|
236
|
+
attributes=AuditAttributes(
|
|
237
|
+
audit_code=8001,
|
|
238
|
+
merchant_name="Caribbean Goodness",
|
|
239
|
+
audit_description="duplicate transaction",
|
|
240
|
+
transaction_id="issuerTransaction123",
|
|
241
|
+
),
|
|
242
|
+
)
|
|
243
|
+
],
|
|
244
|
+
)
|
|
245
|
+
"""
|
|
246
|
+
_response = self._raw_client.create_audits(organization_id, user_id, data=data, request_options=request_options)
|
|
247
|
+
return _response.data
|
|
248
|
+
|
|
249
|
+
def get_earned_rewards(
|
|
250
|
+
self,
|
|
251
|
+
organization_id: OrganizationId,
|
|
252
|
+
user_id: str,
|
|
253
|
+
*,
|
|
254
|
+
page_after: typing.Optional[str] = None,
|
|
255
|
+
page_before: typing.Optional[str] = None,
|
|
256
|
+
page_size: typing.Optional[int] = None,
|
|
257
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
258
|
+
) -> GetEarnedRewardsResponse:
|
|
259
|
+
"""
|
|
260
|
+
Retrieve rewarded transaction history for a specific user. Returns only SETTLED transactions within the last 12 months.
|
|
261
|
+
<br/>
|
|
262
|
+
<b>Required scopes:</b> `transaction:read`
|
|
263
|
+
<br/>
|
|
264
|
+
<b>Query Limit:</b> Maximum of 12 months of transaction data can be queried.
|
|
265
|
+
|
|
266
|
+
Parameters
|
|
267
|
+
----------
|
|
268
|
+
organization_id : OrganizationId
|
|
269
|
+
|
|
270
|
+
user_id : str
|
|
271
|
+
The ID of the user as defined on the issuers system
|
|
272
|
+
|
|
273
|
+
page_after : typing.Optional[str]
|
|
274
|
+
Cursor for next page (base64-encoded timestamp + transaction ID)
|
|
275
|
+
|
|
276
|
+
page_before : typing.Optional[str]
|
|
277
|
+
Cursor for previous page (base64-encoded timestamp + transaction ID)
|
|
278
|
+
|
|
279
|
+
page_size : typing.Optional[int]
|
|
280
|
+
Number of results per page
|
|
281
|
+
|
|
282
|
+
request_options : typing.Optional[RequestOptions]
|
|
283
|
+
Request-specific configuration.
|
|
284
|
+
|
|
285
|
+
Returns
|
|
286
|
+
-------
|
|
287
|
+
GetEarnedRewardsResponse
|
|
288
|
+
|
|
289
|
+
Examples
|
|
290
|
+
--------
|
|
291
|
+
from kard import KardApi
|
|
292
|
+
|
|
293
|
+
client = KardApi(
|
|
294
|
+
client_id="YOUR_CLIENT_ID",
|
|
295
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
296
|
+
)
|
|
297
|
+
client.transactions.get_earned_rewards(
|
|
298
|
+
organization_id="org-123",
|
|
299
|
+
user_id="user-456",
|
|
300
|
+
page_size=10,
|
|
301
|
+
)
|
|
302
|
+
"""
|
|
303
|
+
_response = self._raw_client.get_earned_rewards(
|
|
304
|
+
organization_id,
|
|
305
|
+
user_id,
|
|
306
|
+
page_after=page_after,
|
|
307
|
+
page_before=page_before,
|
|
308
|
+
page_size=page_size,
|
|
309
|
+
request_options=request_options,
|
|
310
|
+
)
|
|
311
|
+
return _response.data
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
class AsyncTransactionsClient:
|
|
315
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
316
|
+
self._raw_client = AsyncRawTransactionsClient(client_wrapper=client_wrapper)
|
|
317
|
+
|
|
318
|
+
@property
|
|
319
|
+
def with_raw_response(self) -> AsyncRawTransactionsClient:
|
|
320
|
+
"""
|
|
321
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
322
|
+
|
|
323
|
+
Returns
|
|
324
|
+
-------
|
|
325
|
+
AsyncRawTransactionsClient
|
|
326
|
+
"""
|
|
327
|
+
return self._raw_client
|
|
328
|
+
|
|
329
|
+
async def create(
|
|
330
|
+
self,
|
|
331
|
+
organization_id: OrganizationId,
|
|
332
|
+
*,
|
|
333
|
+
data: typing.Sequence[Transactions],
|
|
334
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
335
|
+
) -> TransactionsResponse:
|
|
336
|
+
"""
|
|
337
|
+
Call this endpoint to send all transactions made by all your enrolled users in your rewards program. The request body will depend on the transaction type.<br/>
|
|
338
|
+
Please use the correct type when calling the endpoint:
|
|
339
|
+
- `transaction`: These incoming transactions will be processed and matched by the Kard system. Learn more about the [Transaction CLO Matching](https://github.com/kard-financial/kard-postman#c-transaction-clo-matching) flow here.
|
|
340
|
+
- `matchedTransaction`: For pre-matched transactions that need validation on match by the Kard system.<br/>
|
|
341
|
+
|
|
342
|
+
<b>Required scopes:</b> `transaction:write`<br/>
|
|
343
|
+
<b>Note:</b> `Maximum of 500 transactions can be created per request`.
|
|
344
|
+
|
|
345
|
+
Parameters
|
|
346
|
+
----------
|
|
347
|
+
organization_id : OrganizationId
|
|
348
|
+
|
|
349
|
+
data : typing.Sequence[Transactions]
|
|
350
|
+
Discriminated union representing the request body for submitting a transaction.
|
|
351
|
+
Use `type` to distinguish between the two:
|
|
352
|
+
- `transaction`: For transactions requiring processing and matching by the Kard system.
|
|
353
|
+
- `matchedTransaction`: For pre-matched transactions that need validation on match by the Kard system.
|
|
354
|
+
|
|
355
|
+
request_options : typing.Optional[RequestOptions]
|
|
356
|
+
Request-specific configuration.
|
|
357
|
+
|
|
358
|
+
Returns
|
|
359
|
+
-------
|
|
360
|
+
TransactionsResponse
|
|
361
|
+
|
|
362
|
+
Examples
|
|
363
|
+
--------
|
|
364
|
+
import asyncio
|
|
365
|
+
import datetime
|
|
366
|
+
|
|
367
|
+
from kard import AsyncKardApi
|
|
368
|
+
from kard.transactions import (
|
|
369
|
+
Merchant,
|
|
370
|
+
ProcessorMid_Visa,
|
|
371
|
+
Transactions_Transaction,
|
|
372
|
+
TransactionsAttributes,
|
|
373
|
+
VisaMidDetails,
|
|
374
|
+
)
|
|
375
|
+
|
|
376
|
+
client = AsyncKardApi(
|
|
377
|
+
client_id="YOUR_CLIENT_ID",
|
|
378
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
async def main() -> None:
|
|
383
|
+
await client.transactions.create(
|
|
384
|
+
organization_id="organization-123",
|
|
385
|
+
data=[
|
|
386
|
+
Transactions_Transaction(
|
|
387
|
+
id="309rjfoincor3icno3rind093cdow3jciwjdwcm",
|
|
388
|
+
attributes=TransactionsAttributes(
|
|
389
|
+
user_id="6FHt5b6Fnp0qdomMEy5AN6PXcSJIeX69",
|
|
390
|
+
status="APPROVED",
|
|
391
|
+
amount=1000,
|
|
392
|
+
subtotal=800,
|
|
393
|
+
currency="USD",
|
|
394
|
+
direction="DEBIT",
|
|
395
|
+
payment_type="CARD",
|
|
396
|
+
description="ADVANCEAUTO",
|
|
397
|
+
description_2="ADVANCEAUTO",
|
|
398
|
+
mcc="1234",
|
|
399
|
+
card_bin="123456",
|
|
400
|
+
card_last_four="4321",
|
|
401
|
+
authorization_date=datetime.datetime.fromisoformat(
|
|
402
|
+
"2021-07-02 17:47:06+00:00",
|
|
403
|
+
),
|
|
404
|
+
merchant=Merchant(
|
|
405
|
+
id="12345678901234567",
|
|
406
|
+
name="ADVANCEAUTO",
|
|
407
|
+
addr_street="125 Main St",
|
|
408
|
+
addr_city="Philadelphia",
|
|
409
|
+
addr_state="PA",
|
|
410
|
+
addr_zipcode="19147",
|
|
411
|
+
addr_country="United States",
|
|
412
|
+
latitude="37.9419429",
|
|
413
|
+
longitude="-73.1446869",
|
|
414
|
+
store_id="12345",
|
|
415
|
+
),
|
|
416
|
+
authorization_code="123456",
|
|
417
|
+
retrieval_reference_number="100804333919",
|
|
418
|
+
acquirer_reference_number="1234567890123456789012345678",
|
|
419
|
+
system_trace_audit_number="333828",
|
|
420
|
+
transaction_id="2467de37-cbdc-416d-a359-75de87bfffb0",
|
|
421
|
+
card_product_id="1234567890123456789012345678",
|
|
422
|
+
processor_mids=ProcessorMid_Visa(
|
|
423
|
+
mids=VisaMidDetails(
|
|
424
|
+
vmid="12345678901",
|
|
425
|
+
vsid="12345678",
|
|
426
|
+
),
|
|
427
|
+
),
|
|
428
|
+
),
|
|
429
|
+
)
|
|
430
|
+
],
|
|
431
|
+
)
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
asyncio.run(main())
|
|
435
|
+
"""
|
|
436
|
+
_response = await self._raw_client.create(organization_id, data=data, request_options=request_options)
|
|
437
|
+
return _response.data
|
|
438
|
+
|
|
439
|
+
async def create_fraud_markers(
|
|
440
|
+
self,
|
|
441
|
+
organization_id: OrganizationId,
|
|
442
|
+
*,
|
|
443
|
+
data: typing.Sequence[FraudulentTransactionData],
|
|
444
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
445
|
+
) -> FraudulentTransactionObject:
|
|
446
|
+
"""
|
|
447
|
+
Call this endpoint to flag a submitted transaction as fraudulent. This will prevent it from being rewarded.<br/>
|
|
448
|
+
|
|
449
|
+
<b>Required scopes:</b> `transaction:write`<br/>
|
|
450
|
+
<b>Note:</b> `Maximum of 500 fraudulent transactions can be created per request`.
|
|
451
|
+
|
|
452
|
+
Parameters
|
|
453
|
+
----------
|
|
454
|
+
organization_id : OrganizationId
|
|
455
|
+
|
|
456
|
+
data : typing.Sequence[FraudulentTransactionData]
|
|
457
|
+
List of fraudulent transactions to report
|
|
458
|
+
|
|
459
|
+
request_options : typing.Optional[RequestOptions]
|
|
460
|
+
Request-specific configuration.
|
|
461
|
+
|
|
462
|
+
Returns
|
|
463
|
+
-------
|
|
464
|
+
FraudulentTransactionObject
|
|
465
|
+
|
|
466
|
+
Examples
|
|
467
|
+
--------
|
|
468
|
+
import asyncio
|
|
469
|
+
|
|
470
|
+
from kard import AsyncKardApi
|
|
471
|
+
from kard.transactions import (
|
|
472
|
+
FraudulentTransactionAttributes,
|
|
473
|
+
FraudulentTransactionData,
|
|
474
|
+
)
|
|
475
|
+
|
|
476
|
+
client = AsyncKardApi(
|
|
477
|
+
client_id="YOUR_CLIENT_ID",
|
|
478
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
479
|
+
)
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
async def main() -> None:
|
|
483
|
+
await client.transactions.create_fraud_markers(
|
|
484
|
+
organization_id="organization-123",
|
|
485
|
+
data=[
|
|
486
|
+
FraudulentTransactionData(
|
|
487
|
+
id="myTxnId12345",
|
|
488
|
+
type="fraudulentTransaction",
|
|
489
|
+
attributes=FraudulentTransactionAttributes(
|
|
490
|
+
user_id="userId123",
|
|
491
|
+
),
|
|
492
|
+
)
|
|
493
|
+
],
|
|
494
|
+
)
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
asyncio.run(main())
|
|
498
|
+
"""
|
|
499
|
+
_response = await self._raw_client.create_fraud_markers(
|
|
500
|
+
organization_id, data=data, request_options=request_options
|
|
501
|
+
)
|
|
502
|
+
return _response.data
|
|
503
|
+
|
|
504
|
+
async def create_audits(
|
|
505
|
+
self,
|
|
506
|
+
organization_id: OrganizationId,
|
|
507
|
+
user_id: str,
|
|
508
|
+
*,
|
|
509
|
+
data: typing.Sequence[CreateAuditRequestDataUnion],
|
|
510
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
511
|
+
) -> CreateAuditResponseBody:
|
|
512
|
+
"""
|
|
513
|
+
Call this endpoint to request that a particular transaction be audited further by the Kard system, in the event of a missing cashback claim, incorrect cashback amount claim or other mis-match claims.<br/>
|
|
514
|
+
<b>Required scopes:</b> `audit:write`
|
|
515
|
+
|
|
516
|
+
Parameters
|
|
517
|
+
----------
|
|
518
|
+
organization_id : OrganizationId
|
|
519
|
+
|
|
520
|
+
user_id : str
|
|
521
|
+
The ID of the user as defined on the issuers system
|
|
522
|
+
|
|
523
|
+
data : typing.Sequence[CreateAuditRequestDataUnion]
|
|
524
|
+
|
|
525
|
+
request_options : typing.Optional[RequestOptions]
|
|
526
|
+
Request-specific configuration.
|
|
527
|
+
|
|
528
|
+
Returns
|
|
529
|
+
-------
|
|
530
|
+
CreateAuditResponseBody
|
|
531
|
+
|
|
532
|
+
Examples
|
|
533
|
+
--------
|
|
534
|
+
import asyncio
|
|
535
|
+
|
|
536
|
+
from kard import AsyncKardApi
|
|
537
|
+
from kard.transactions import AuditAttributes, CreateAuditRequestDataUnion_Audit
|
|
538
|
+
|
|
539
|
+
client = AsyncKardApi(
|
|
540
|
+
client_id="YOUR_CLIENT_ID",
|
|
541
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
542
|
+
)
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
async def main() -> None:
|
|
546
|
+
await client.transactions.create_audits(
|
|
547
|
+
organization_id="organization-123",
|
|
548
|
+
user_id="user-123",
|
|
549
|
+
data=[
|
|
550
|
+
CreateAuditRequestDataUnion_Audit(
|
|
551
|
+
attributes=AuditAttributes(
|
|
552
|
+
audit_code=8001,
|
|
553
|
+
merchant_name="Caribbean Goodness",
|
|
554
|
+
audit_description="duplicate transaction",
|
|
555
|
+
transaction_id="issuerTransaction123",
|
|
556
|
+
),
|
|
557
|
+
)
|
|
558
|
+
],
|
|
559
|
+
)
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
asyncio.run(main())
|
|
563
|
+
"""
|
|
564
|
+
_response = await self._raw_client.create_audits(
|
|
565
|
+
organization_id, user_id, data=data, request_options=request_options
|
|
566
|
+
)
|
|
567
|
+
return _response.data
|
|
568
|
+
|
|
569
|
+
async def get_earned_rewards(
|
|
570
|
+
self,
|
|
571
|
+
organization_id: OrganizationId,
|
|
572
|
+
user_id: str,
|
|
573
|
+
*,
|
|
574
|
+
page_after: typing.Optional[str] = None,
|
|
575
|
+
page_before: typing.Optional[str] = None,
|
|
576
|
+
page_size: typing.Optional[int] = None,
|
|
577
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
578
|
+
) -> GetEarnedRewardsResponse:
|
|
579
|
+
"""
|
|
580
|
+
Retrieve rewarded transaction history for a specific user. Returns only SETTLED transactions within the last 12 months.
|
|
581
|
+
<br/>
|
|
582
|
+
<b>Required scopes:</b> `transaction:read`
|
|
583
|
+
<br/>
|
|
584
|
+
<b>Query Limit:</b> Maximum of 12 months of transaction data can be queried.
|
|
585
|
+
|
|
586
|
+
Parameters
|
|
587
|
+
----------
|
|
588
|
+
organization_id : OrganizationId
|
|
589
|
+
|
|
590
|
+
user_id : str
|
|
591
|
+
The ID of the user as defined on the issuers system
|
|
592
|
+
|
|
593
|
+
page_after : typing.Optional[str]
|
|
594
|
+
Cursor for next page (base64-encoded timestamp + transaction ID)
|
|
595
|
+
|
|
596
|
+
page_before : typing.Optional[str]
|
|
597
|
+
Cursor for previous page (base64-encoded timestamp + transaction ID)
|
|
598
|
+
|
|
599
|
+
page_size : typing.Optional[int]
|
|
600
|
+
Number of results per page
|
|
601
|
+
|
|
602
|
+
request_options : typing.Optional[RequestOptions]
|
|
603
|
+
Request-specific configuration.
|
|
604
|
+
|
|
605
|
+
Returns
|
|
606
|
+
-------
|
|
607
|
+
GetEarnedRewardsResponse
|
|
608
|
+
|
|
609
|
+
Examples
|
|
610
|
+
--------
|
|
611
|
+
import asyncio
|
|
612
|
+
|
|
613
|
+
from kard import AsyncKardApi
|
|
614
|
+
|
|
615
|
+
client = AsyncKardApi(
|
|
616
|
+
client_id="YOUR_CLIENT_ID",
|
|
617
|
+
client_secret="YOUR_CLIENT_SECRET",
|
|
618
|
+
)
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
async def main() -> None:
|
|
622
|
+
await client.transactions.get_earned_rewards(
|
|
623
|
+
organization_id="org-123",
|
|
624
|
+
user_id="user-456",
|
|
625
|
+
page_size=10,
|
|
626
|
+
)
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
asyncio.run(main())
|
|
630
|
+
"""
|
|
631
|
+
_response = await self._raw_client.get_earned_rewards(
|
|
632
|
+
organization_id,
|
|
633
|
+
user_id,
|
|
634
|
+
page_after=page_after,
|
|
635
|
+
page_before=page_before,
|
|
636
|
+
page_size=page_size,
|
|
637
|
+
request_options=request_options,
|
|
638
|
+
)
|
|
639
|
+
return _response.data
|
|
@@ -0,0 +1,40 @@
|
|
|
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 .create_audit_multi_status import CreateAuditMultiStatus
|
|
10
|
+
from .create_incoming_transactions_multi_status import CreateIncomingTransactionsMultiStatus
|
|
11
|
+
from .fraud_multi_status import FraudMultiStatus
|
|
12
|
+
_dynamic_imports: typing.Dict[str, str] = {
|
|
13
|
+
"CreateAuditMultiStatus": ".create_audit_multi_status",
|
|
14
|
+
"CreateIncomingTransactionsMultiStatus": ".create_incoming_transactions_multi_status",
|
|
15
|
+
"FraudMultiStatus": ".fraud_multi_status",
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def __getattr__(attr_name: str) -> typing.Any:
|
|
20
|
+
module_name = _dynamic_imports.get(attr_name)
|
|
21
|
+
if module_name is None:
|
|
22
|
+
raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
|
|
23
|
+
try:
|
|
24
|
+
module = import_module(module_name, __package__)
|
|
25
|
+
if module_name == f".{attr_name}":
|
|
26
|
+
return module
|
|
27
|
+
else:
|
|
28
|
+
return getattr(module, attr_name)
|
|
29
|
+
except ImportError as e:
|
|
30
|
+
raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
|
|
31
|
+
except AttributeError as e:
|
|
32
|
+
raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def __dir__():
|
|
36
|
+
lazy_attrs = list(_dynamic_imports.keys())
|
|
37
|
+
return sorted(lazy_attrs)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
__all__ = ["CreateAuditMultiStatus", "CreateIncomingTransactionsMultiStatus", "FraudMultiStatus"]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ...core.api_error import ApiError
|
|
6
|
+
from ..types.create_audit_multi_status_response import CreateAuditMultiStatusResponse
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class CreateAuditMultiStatus(ApiError):
|
|
10
|
+
def __init__(self, body: CreateAuditMultiStatusResponse, headers: typing.Optional[typing.Dict[str, str]] = None):
|
|
11
|
+
super().__init__(status_code=207, headers=headers, body=body)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ...core.api_error import ApiError
|
|
6
|
+
from ..types.transactions_multi_response import TransactionsMultiResponse
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class CreateIncomingTransactionsMultiStatus(ApiError):
|
|
10
|
+
def __init__(self, body: TransactionsMultiResponse, headers: typing.Optional[typing.Dict[str, str]] = None):
|
|
11
|
+
super().__init__(status_code=207, headers=headers, body=body)
|