diff --git a/CyberSource/__init__.py b/CyberSource/__init__.py index fb8c6e0c..105ae71a 100644 --- a/CyberSource/__init__.py +++ b/CyberSource/__init__.py @@ -162,6 +162,7 @@ from .models.invoicing_v2_invoices_post202_response import InvoicingV2InvoicesPost202Response from .models.invoicingv2invoice_settings_invoice_settings_information import Invoicingv2invoiceSettingsInvoiceSettingsInformation from .models.invoicingv2invoices_customer_information import Invoicingv2invoicesCustomerInformation +from .models.invoicingv2invoices_customer_information_company import Invoicingv2invoicesCustomerInformationCompany from .models.invoicingv2invoices_invoice_information import Invoicingv2invoicesInvoiceInformation from .models.invoicingv2invoices_order_information import Invoicingv2invoicesOrderInformation from .models.invoicingv2invoices_order_information_amount_details import Invoicingv2invoicesOrderInformationAmountDetails @@ -844,12 +845,17 @@ from .models.tss_v2_transactions_get200_response_payment_information_bank import TssV2TransactionsGet200ResponsePaymentInformationBank from .models.tss_v2_transactions_get200_response_payment_information_bank_account import TssV2TransactionsGet200ResponsePaymentInformationBankAccount from .models.tss_v2_transactions_get200_response_payment_information_bank_mandate import TssV2TransactionsGet200ResponsePaymentInformationBankMandate +from .models.tss_v2_transactions_get200_response_payment_information_brands import TssV2TransactionsGet200ResponsePaymentInformationBrands from .models.tss_v2_transactions_get200_response_payment_information_card import TssV2TransactionsGet200ResponsePaymentInformationCard from .models.tss_v2_transactions_get200_response_payment_information_customer import TssV2TransactionsGet200ResponsePaymentInformationCustomer +from .models.tss_v2_transactions_get200_response_payment_information_features import TssV2TransactionsGet200ResponsePaymentInformationFeatures from .models.tss_v2_transactions_get200_response_payment_information_fluid_data import TssV2TransactionsGet200ResponsePaymentInformationFluidData from .models.tss_v2_transactions_get200_response_payment_information_instrument_identifier import TssV2TransactionsGet200ResponsePaymentInformationInstrumentIdentifier from .models.tss_v2_transactions_get200_response_payment_information_invoice import TssV2TransactionsGet200ResponsePaymentInformationInvoice +from .models.tss_v2_transactions_get200_response_payment_information_issuer_information import TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation +from .models.tss_v2_transactions_get200_response_payment_information_network import TssV2TransactionsGet200ResponsePaymentInformationNetwork from .models.tss_v2_transactions_get200_response_payment_information_payment_type import TssV2TransactionsGet200ResponsePaymentInformationPaymentType +from .models.tss_v2_transactions_get200_response_payout_options import TssV2TransactionsGet200ResponsePayoutOptions from .models.tss_v2_transactions_get200_response_point_of_sale_information import TssV2TransactionsGet200ResponsePointOfSaleInformation from .models.tss_v2_transactions_get200_response_processing_information import TssV2TransactionsGet200ResponseProcessingInformation from .models.tss_v2_transactions_get200_response_processing_information_authorization_options import TssV2TransactionsGet200ResponseProcessingInformationAuthorizationOptions @@ -952,63 +958,63 @@ from .models.void_refund_request import VoidRefundRequest from .models.void_tax_request import VoidTaxRequest -# import apis into sdk package -from .apis.o_auth_api import OAuthApi -from .apis.asymmetric_key_management_api import AsymmetricKeyManagementApi -from .apis.batches_api import BatchesApi -from .apis.capture_api import CaptureApi -from .apis.chargeback_details_api import ChargebackDetailsApi -from .apis.chargeback_summaries_api import ChargebackSummariesApi -from .apis.conversion_details_api import ConversionDetailsApi -from .apis.credit_api import CreditApi -from .apis.customer_api import CustomerApi -from .apis.customer_payment_instrument_api import CustomerPaymentInstrumentApi -from .apis.customer_shipping_address_api import CustomerShippingAddressApi -from .apis.decision_manager_api import DecisionManagerApi -from .apis.download_dtd_api import DownloadDTDApi -from .apis.download_xsd_api import DownloadXSDApi -from .apis.emv_tag_details_api import EMVTagDetailsApi -from .apis.instrument_identifier_api import InstrumentIdentifierApi -from .apis.interchange_clearing_level_details_api import InterchangeClearingLevelDetailsApi -from .apis.invoice_settings_api import InvoiceSettingsApi -from .apis.invoices_api import InvoicesApi -from .apis.keymanagement_api import KeymanagementApi -from .apis.keymanagementpassword_api import KeymanagementpasswordApi -from .apis.keymanagementpgp_api import KeymanagementpgpApi -from .apis.keymanagementscmp_api import KeymanagementscmpApi -from .apis.microform_integration_api import MicroformIntegrationApi -from .apis.net_fundings_api import NetFundingsApi -from .apis.notification_of_changes_api import NotificationOfChangesApi -from .apis.payer_authentication_api import PayerAuthenticationApi -from .apis.payment_batch_summaries_api import PaymentBatchSummariesApi -from .apis.payment_instrument_api import PaymentInstrumentApi -from .apis.payments_api import PaymentsApi -from .apis.payouts_api import PayoutsApi -from .apis.plans_api import PlansApi -from .apis.purchase_and_refund_details_api import PurchaseAndRefundDetailsApi -from .apis.push_funds_api import PushFundsApi -from .apis.refund_api import RefundApi -from .apis.report_definitions_api import ReportDefinitionsApi -from .apis.report_downloads_api import ReportDownloadsApi -from .apis.report_subscriptions_api import ReportSubscriptionsApi -from .apis.reports_api import ReportsApi -from .apis.retrieval_details_api import RetrievalDetailsApi -from .apis.retrieval_summaries_api import RetrievalSummariesApi -from .apis.reversal_api import ReversalApi -from .apis.search_transactions_api import SearchTransactionsApi -from .apis.secure_file_share_api import SecureFileShareApi -from .apis.subscriptions_api import SubscriptionsApi -from .apis.symmetric_key_management_api import SymmetricKeyManagementApi -from .apis.taxes_api import TaxesApi -from .apis.token_api import TokenApi -from .apis.transaction_batches_api import TransactionBatchesApi -from .apis.transaction_details_api import TransactionDetailsApi -from .apis.transient_token_data_api import TransientTokenDataApi -from .apis.unified_checkout_capture_context_api import UnifiedCheckoutCaptureContextApi -from .apis.user_management_api import UserManagementApi -from .apis.user_management_search_api import UserManagementSearchApi -from .apis.verification_api import VerificationApi -from .apis.void_api import VoidApi +# import api into sdk package +from .api.o_auth_api import OAuthApi +from .api.asymmetric_key_management_api import AsymmetricKeyManagementApi +from .api.batches_api import BatchesApi +from .api.chargeback_details_api import ChargebackDetailsApi +from .api.chargeback_summaries_api import ChargebackSummariesApi +from .api.conversion_details_api import ConversionDetailsApi +from .api.customer_api import CustomerApi +from .api.customer_payment_instrument_api import CustomerPaymentInstrumentApi +from .api.customer_shipping_address_api import CustomerShippingAddressApi +from .api.decision_manager_api import DecisionManagerApi +from .api.download_dtd_api import DownloadDTDApi +from .api.download_xsd_api import DownloadXSDApi +from .api.emv_tag_details_api import EMVTagDetailsApi +from .api.instrument_identifier_api import InstrumentIdentifierApi +from .api.interchange_clearing_level_details_api import InterchangeClearingLevelDetailsApi +from .api.microform_integration_api import MicroformIntegrationApi +from .api.net_fundings_api import NetFundingsApi +from .api.notification_of_changes_api import NotificationOfChangesApi +from .api.payer_authentication_api import PayerAuthenticationApi +from .api.payment_batch_summaries_api import PaymentBatchSummariesApi +from .api.payment_instrument_api import PaymentInstrumentApi +from .api.payouts_api import PayoutsApi +from .api.plans_api import PlansApi +from .api.purchase_and_refund_details_api import PurchaseAndRefundDetailsApi +from .api.push_funds_api import PushFundsApi +from .api.report_definitions_api import ReportDefinitionsApi +from .api.report_downloads_api import ReportDownloadsApi +from .api.report_subscriptions_api import ReportSubscriptionsApi +from .api.reports_api import ReportsApi +from .api.retrieval_details_api import RetrievalDetailsApi +from .api.retrieval_summaries_api import RetrievalSummariesApi +from .api.search_transactions_api import SearchTransactionsApi +from .api.secure_file_share_api import SecureFileShareApi +from .api.subscriptions_api import SubscriptionsApi +from .api.symmetric_key_management_api import SymmetricKeyManagementApi +from .api.token_api import TokenApi +from .api.transaction_batches_api import TransactionBatchesApi +from .api.transaction_details_api import TransactionDetailsApi +from .api.transient_token_data_api import TransientTokenDataApi +from .api.unified_checkout_capture_context_api import UnifiedCheckoutCaptureContextApi +from .api.user_management_api import UserManagementApi +from .api.user_management_search_api import UserManagementSearchApi +from .api.verification_api import VerificationApi +from .api.capture_api import CaptureApi +from .api.credit_api import CreditApi +from .api.invoice_settings_api import InvoiceSettingsApi +from .api.invoices_api import InvoicesApi +from .api.key_management_api import KeyManagementApi +from .api.key_management_password_api import KeyManagementPasswordApi +from .api.key_management_pgp_api import KeyManagementPgpApi +from .api.key_management_scmp_api import KeyManagementScmpApi +from .api.payments_api import PaymentsApi +from .api.refund_api import RefundApi +from .api.reversal_api import ReversalApi +from .api.taxes_api import TaxesApi +from .api.void_api import VoidApi # import Utilities diff --git a/CyberSource/apis/__init__.py b/CyberSource/api/__init__.py similarity index 92% rename from CyberSource/apis/__init__.py rename to CyberSource/api/__init__.py index 724442ce..f6124647 100644 --- a/CyberSource/apis/__init__.py +++ b/CyberSource/api/__init__.py @@ -4,11 +4,9 @@ from .o_auth_api import OAuthApi from .asymmetric_key_management_api import AsymmetricKeyManagementApi from .batches_api import BatchesApi -from .capture_api import CaptureApi from .chargeback_details_api import ChargebackDetailsApi from .chargeback_summaries_api import ChargebackSummariesApi from .conversion_details_api import ConversionDetailsApi -from .credit_api import CreditApi from .customer_api import CustomerApi from .customer_payment_instrument_api import CustomerPaymentInstrumentApi from .customer_shipping_address_api import CustomerShippingAddressApi @@ -18,36 +16,26 @@ from .emv_tag_details_api import EMVTagDetailsApi from .instrument_identifier_api import InstrumentIdentifierApi from .interchange_clearing_level_details_api import InterchangeClearingLevelDetailsApi -from .invoice_settings_api import InvoiceSettingsApi -from .invoices_api import InvoicesApi -from .keymanagement_api import KeymanagementApi -from .keymanagementpassword_api import KeymanagementpasswordApi -from .keymanagementpgp_api import KeymanagementpgpApi -from .keymanagementscmp_api import KeymanagementscmpApi from .microform_integration_api import MicroformIntegrationApi from .net_fundings_api import NetFundingsApi from .notification_of_changes_api import NotificationOfChangesApi from .payer_authentication_api import PayerAuthenticationApi from .payment_batch_summaries_api import PaymentBatchSummariesApi from .payment_instrument_api import PaymentInstrumentApi -from .payments_api import PaymentsApi from .payouts_api import PayoutsApi from .plans_api import PlansApi from .purchase_and_refund_details_api import PurchaseAndRefundDetailsApi from .push_funds_api import PushFundsApi -from .refund_api import RefundApi from .report_definitions_api import ReportDefinitionsApi from .report_downloads_api import ReportDownloadsApi from .report_subscriptions_api import ReportSubscriptionsApi from .reports_api import ReportsApi from .retrieval_details_api import RetrievalDetailsApi from .retrieval_summaries_api import RetrievalSummariesApi -from .reversal_api import ReversalApi from .search_transactions_api import SearchTransactionsApi from .secure_file_share_api import SecureFileShareApi from .subscriptions_api import SubscriptionsApi from .symmetric_key_management_api import SymmetricKeyManagementApi -from .taxes_api import TaxesApi from .token_api import TokenApi from .transaction_batches_api import TransactionBatchesApi from .transaction_details_api import TransactionDetailsApi @@ -56,4 +44,16 @@ from .user_management_api import UserManagementApi from .user_management_search_api import UserManagementSearchApi from .verification_api import VerificationApi +from .capture_api import CaptureApi +from .credit_api import CreditApi +from .invoice_settings_api import InvoiceSettingsApi +from .invoices_api import InvoicesApi +from .key_management_api import KeyManagementApi +from .key_management_password_api import KeyManagementPasswordApi +from .key_management_pgp_api import KeyManagementPgpApi +from .key_management_scmp_api import KeyManagementScmpApi +from .payments_api import PaymentsApi +from .refund_api import RefundApi +from .reversal_api import ReversalApi +from .taxes_api import TaxesApi from .void_api import VoidApi diff --git a/CyberSource/apis/asymmetric_key_management_api.py b/CyberSource/api/asymmetric_key_management_api.py similarity index 95% rename from CyberSource/apis/asymmetric_key_management_api.py rename to CyberSource/api/asymmetric_key_management_api.py index f7c55d53..45af34f5 100644 --- a/CyberSource/apis/asymmetric_key_management_api.py +++ b/CyberSource/api/asymmetric_key_management_api.py @@ -132,12 +132,10 @@ def create_p12_keys_with_http_info(self, create_p12_keys_request, **kwargs): if 'create_p12_keys_request' in params: body_params = params['create_p12_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -244,12 +242,10 @@ def delete_bulk_p12_keys_with_http_info(self, delete_bulk_p12_keys_request, **kw if 'delete_bulk_p12_keys_request' in params: body_params = params['delete_bulk_p12_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -358,12 +354,10 @@ def get_p12_key_details_with_http_info(self, key_id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -479,12 +473,10 @@ def update_asym_key_with_http_info(self, key_id, update_asym_keys_request, **kwa if 'update_asym_keys_request' in params: body_params = params['update_asym_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/batches_api.py b/CyberSource/api/batches_api.py similarity index 96% rename from CyberSource/apis/batches_api.py rename to CyberSource/api/batches_api.py index e0b23472..bf243445 100644 --- a/CyberSource/apis/batches_api.py +++ b/CyberSource/api/batches_api.py @@ -142,12 +142,10 @@ def get_batch_report_with_http_info(self, batch_id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -264,12 +262,10 @@ def get_batch_status_with_http_info(self, batch_id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -397,12 +393,10 @@ def get_batches_list_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -509,12 +503,10 @@ def post_batch_with_http_info(self, body, **kwargs): if 'body' in params: body_params = params['body'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/capture_api.py b/CyberSource/api/capture_api.py similarity index 96% rename from CyberSource/apis/capture_api.py rename to CyberSource/api/capture_api.py index e3d1f8a9..d9ba1b2d 100644 --- a/CyberSource/apis/capture_api.py +++ b/CyberSource/api/capture_api.py @@ -141,12 +141,10 @@ def capture_payment_with_http_info(self, capture_payment_request, id, **kwargs): if 'capture_payment_request' in params: body_params = params['capture_payment_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/chargeback_details_api.py b/CyberSource/api/chargeback_details_api.py similarity index 97% rename from CyberSource/apis/chargeback_details_api.py rename to CyberSource/api/chargeback_details_api.py index f8354554..71f08b77 100644 --- a/CyberSource/apis/chargeback_details_api.py +++ b/CyberSource/api/chargeback_details_api.py @@ -159,12 +159,10 @@ def get_chargeback_details_with_http_info(self, start_time, end_time, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/chargeback_summaries_api.py b/CyberSource/api/chargeback_summaries_api.py similarity index 97% rename from CyberSource/apis/chargeback_summaries_api.py rename to CyberSource/api/chargeback_summaries_api.py index a83d7d7a..030cf987 100644 --- a/CyberSource/apis/chargeback_summaries_api.py +++ b/CyberSource/api/chargeback_summaries_api.py @@ -159,12 +159,10 @@ def get_chargeback_summaries_with_http_info(self, start_time, end_time, **kwargs if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/conversion_details_api.py b/CyberSource/api/conversion_details_api.py similarity index 97% rename from CyberSource/apis/conversion_details_api.py rename to CyberSource/api/conversion_details_api.py index 01233727..5b24c8b1 100644 --- a/CyberSource/apis/conversion_details_api.py +++ b/CyberSource/api/conversion_details_api.py @@ -159,12 +159,10 @@ def get_conversion_detail_with_http_info(self, start_time, end_time, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/credit_api.py b/CyberSource/api/credit_api.py similarity index 95% rename from CyberSource/apis/credit_api.py rename to CyberSource/api/credit_api.py index 0d3b91b7..247597ec 100644 --- a/CyberSource/apis/credit_api.py +++ b/CyberSource/api/credit_api.py @@ -132,12 +132,10 @@ def create_credit_with_http_info(self, create_credit_request, **kwargs): if 'create_credit_request' in params: body_params = params['create_credit_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/customer_api.py b/CyberSource/api/customer_api.py similarity index 97% rename from CyberSource/apis/customer_api.py rename to CyberSource/api/customer_api.py index e617383f..97570c29 100644 --- a/CyberSource/apis/customer_api.py +++ b/CyberSource/api/customer_api.py @@ -154,12 +154,10 @@ def delete_customer_with_http_info(self, customer_id, **kwargs): if 'DELETE' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -288,12 +286,10 @@ def get_customer_with_http_info(self, customer_id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -441,12 +437,10 @@ def patch_customer_with_http_info(self, customer_id, patch_customer_request, **k if 'patch_customer_request' in params: body_params = params['patch_customer_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -565,12 +559,10 @@ def post_customer_with_http_info(self, post_customer_request, **kwargs): if 'post_customer_request' in params: body_params = params['post_customer_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/customer_payment_instrument_api.py b/CyberSource/api/customer_payment_instrument_api.py similarity index 98% rename from CyberSource/apis/customer_payment_instrument_api.py rename to CyberSource/api/customer_payment_instrument_api.py index 7589a4e3..fe7f2679 100644 --- a/CyberSource/apis/customer_payment_instrument_api.py +++ b/CyberSource/api/customer_payment_instrument_api.py @@ -171,12 +171,10 @@ def delete_customer_payment_instrument_with_http_info(self, customer_id, payment if 'DELETE' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -322,12 +320,10 @@ def get_customer_payment_instrument_with_http_info(self, customer_id, payment_in if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -476,12 +472,10 @@ def get_customer_payment_instruments_list_with_http_info(self, customer_id, **kw if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -646,12 +640,10 @@ def patch_customers_payment_instrument_with_http_info(self, customer_id, payment if 'patch_customer_payment_instrument_request' in params: body_params = params['patch_customer_payment_instrument_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -787,12 +779,10 @@ def post_customer_payment_instrument_with_http_info(self, customer_id, post_cust if 'post_customer_payment_instrument_request' in params: body_params = params['post_customer_payment_instrument_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/customer_shipping_address_api.py b/CyberSource/api/customer_shipping_address_api.py similarity index 97% rename from CyberSource/apis/customer_shipping_address_api.py rename to CyberSource/api/customer_shipping_address_api.py index 072c03da..d5ca8e8e 100644 --- a/CyberSource/apis/customer_shipping_address_api.py +++ b/CyberSource/api/customer_shipping_address_api.py @@ -171,12 +171,10 @@ def delete_customer_shipping_address_with_http_info(self, customer_id, shipping_ if 'DELETE' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -322,12 +320,10 @@ def get_customer_shipping_address_with_http_info(self, customer_id, shipping_add if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -476,12 +472,10 @@ def get_customer_shipping_addresses_list_with_http_info(self, customer_id, **kwa if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -646,12 +640,10 @@ def patch_customers_shipping_address_with_http_info(self, customer_id, shipping_ if 'patch_customer_shipping_address_request' in params: body_params = params['patch_customer_shipping_address_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -787,12 +779,10 @@ def post_customer_shipping_address_with_http_info(self, customer_id, post_custom if 'post_customer_shipping_address_request' in params: body_params = params['post_customer_shipping_address_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/decision_manager_api.py b/CyberSource/api/decision_manager_api.py similarity index 96% rename from CyberSource/apis/decision_manager_api.py rename to CyberSource/api/decision_manager_api.py index 9a34ec27..3270efe8 100644 --- a/CyberSource/apis/decision_manager_api.py +++ b/CyberSource/api/decision_manager_api.py @@ -141,12 +141,10 @@ def add_negative_with_http_info(self, type, add_negative_list_request, **kwargs) if 'add_negative_list_request' in params: body_params = params['add_negative_list_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -253,12 +251,10 @@ def create_bundled_decision_manager_case_with_http_info(self, create_bundled_dec if 'create_bundled_decision_manager_case_request' in params: body_params = params['create_bundled_decision_manager_case_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -374,12 +370,10 @@ def fraud_update_with_http_info(self, id, fraud_marking_action_request, **kwargs if 'fraud_marking_action_request' in params: body_params = params['fraud_marking_action_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/download_dtd_api.py b/CyberSource/api/download_dtd_api.py similarity index 96% rename from CyberSource/apis/download_dtd_api.py rename to CyberSource/api/download_dtd_api.py index 2134fa29..1743333b 100644 --- a/CyberSource/apis/download_dtd_api.py +++ b/CyberSource/api/download_dtd_api.py @@ -134,12 +134,10 @@ def get_dtdv2_with_http_info(self, report_definition_name_version, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/xml-dtd']) + header_params['Accept'] = self.api_client.select_header_accept(['application/xml-dtd']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/download_xsd_api.py b/CyberSource/api/download_xsd_api.py similarity index 96% rename from CyberSource/apis/download_xsd_api.py rename to CyberSource/api/download_xsd_api.py index f077b809..25e3c884 100644 --- a/CyberSource/apis/download_xsd_api.py +++ b/CyberSource/api/download_xsd_api.py @@ -134,12 +134,10 @@ def get_xsdv2_with_http_info(self, report_definition_name_version, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['text/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['text/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/emv_tag_details_api.py b/CyberSource/api/emv_tag_details_api.py similarity index 94% rename from CyberSource/apis/emv_tag_details_api.py rename to CyberSource/api/emv_tag_details_api.py index 43987c50..e7b5c28d 100644 --- a/CyberSource/apis/emv_tag_details_api.py +++ b/CyberSource/api/emv_tag_details_api.py @@ -124,12 +124,10 @@ def get_emv_tags_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -236,12 +234,10 @@ def parse_emv_tags_with_http_info(self, body, **kwargs): if 'body' in params: body_params = params['body'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/instrument_identifier_api.py b/CyberSource/api/instrument_identifier_api.py similarity index 96% rename from CyberSource/apis/instrument_identifier_api.py rename to CyberSource/api/instrument_identifier_api.py index 6db258e6..6508d864 100644 --- a/CyberSource/apis/instrument_identifier_api.py +++ b/CyberSource/api/instrument_identifier_api.py @@ -1,886 +1,874 @@ -# coding: utf-8 - -""" - CyberSource Merged Spec - - All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html - - OpenAPI spec version: 0.0.1 - - Generated by: https://github.com/swagger-api/swagger-codegen.git -""" - - -from __future__ import absolute_import - -import sys -import os -import re - -# python 2 and python 3 compatibility library -from six import iteritems - -from ..configuration import Configuration -from ..api_client import ApiClient -import CyberSource.logging.log_factory as LogFactory - - -class InstrumentIdentifierApi(object): - """ - NOTE: This class is auto generated by the swagger code generator program. - Do not edit the class manually. - Ref: https://github.com/swagger-api/swagger-codegen - """ - - def __init__(self, merchant_config, api_client=None): - config = Configuration() - if api_client: - self.api_client = api_client - else: - if not config.api_client: - config.api_client = ApiClient() - self.api_client = config.api_client - self.api_client.set_configuration(merchant_config) - self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) - - - - def delete_instrument_identifier(self, instrument_identifier_id, **kwargs): - """ - Delete an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Deleting an Instrument Identifier**
Your system can use this API to delete an existing Instrument Identifier.
An Instrument Identifier cannot be deleted if it is linked to any Payment Instruments.
You can [retrieve all Payment Instruments associated with an Instrument Identifier](#token-management_instrument-identifier_list-payment-instruments-for-an-instrument-identifier). - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.delete_instrument_identifier(instrument_identifier_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `delete_instrument_identifier` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.delete_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) - else: - (data) = self.delete_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) - return data - - def delete_instrument_identifier_with_http_info(self, instrument_identifier_id, **kwargs): - """ - Delete an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Deleting an Instrument Identifier**
Your system can use this API to delete an existing Instrument Identifier.
An Instrument Identifier cannot be deleted if it is linked to any Payment Instruments.
You can [retrieve all Payment Instruments associated with an Instrument Identifier](#token-management_instrument-identifier_list-payment-instruments-for-an-instrument-identifier). - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.delete_instrument_identifier_with_http_info(instrument_identifier_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['instrument_identifier_id', 'profile_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method delete_instrument_identifier" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'instrument_identifier_id' is set - if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `delete_instrument_identifier`") - raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `delete_instrument_identifier`") - - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be less than or equal to `32`") - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `12`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `12`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `36`") - - collection_formats = {} - - path_params = {} - if 'instrument_identifier_id' in params: - path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'DELETE' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}', 'DELETE', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_instrument_identifier(self, instrument_identifier_id, **kwargs): - """ - Retrieve an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Retrieving an Instrument Identifier**
Your system can use this API to retrieve an Instrument Identifier.
**Note: the actual card data will be masked.**
The Instrument Identifier will also be returned when retrieving a [Customer](#token-management_customer_retrieve-a-customer), [Customer Payment Instrument](#token-management_customer-payment-instrument_retrieve-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_retrieve-a-payment-instrument).|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_instrument_identifier(instrument_identifier_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_instrument_identifier` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) - else: - (data) = self.get_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) - return data - - def get_instrument_identifier_with_http_info(self, instrument_identifier_id, **kwargs): - """ - Retrieve an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Retrieving an Instrument Identifier**
Your system can use this API to retrieve an Instrument Identifier.
**Note: the actual card data will be masked.**
The Instrument Identifier will also be returned when retrieving a [Customer](#token-management_customer_retrieve-a-customer), [Customer Payment Instrument](#token-management_customer-payment-instrument_retrieve-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_retrieve-a-payment-instrument).|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_instrument_identifier_with_http_info(instrument_identifier_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['instrument_identifier_id', 'profile_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_instrument_identifier" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'instrument_identifier_id' is set - if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier`") - raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier`") - - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be less than or equal to `32`") - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be greater than or equal to `12`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be greater than or equal to `12`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be greater than or equal to `36`") - - collection_formats = {} - - path_params = {} - if 'instrument_identifier_id' in params: - path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_instrument_identifier_payment_instruments_list(self, instrument_identifier_id, **kwargs): - """ - List Payment Instruments for an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Retrieving all Payment Instruments associated with an Instrument Identifier**
Your system can use this API to retrieve all Payment Instruments linked to an Instrument Identifier. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_instrument_identifier_payment_instruments_list(instrument_identifier_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :param int offset: Starting record in zero-based dataset that should be returned as the first object in the array. Default is 0. - :param int limit: The maximum number that can be returned in the array starting from the offset record in zero-based dataset. Default is 20, maximum is 100. - :return: PaymentInstrumentList - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_instrument_identifier_payment_instruments_list` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_instrument_identifier_payment_instruments_list_with_http_info(instrument_identifier_id, **kwargs) - else: - (data) = self.get_instrument_identifier_payment_instruments_list_with_http_info(instrument_identifier_id, **kwargs) - return data - - def get_instrument_identifier_payment_instruments_list_with_http_info(self, instrument_identifier_id, **kwargs): - """ - List Payment Instruments for an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Retrieving all Payment Instruments associated with an Instrument Identifier**
Your system can use this API to retrieve all Payment Instruments linked to an Instrument Identifier. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_instrument_identifier_payment_instruments_list_with_http_info(instrument_identifier_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :param int offset: Starting record in zero-based dataset that should be returned as the first object in the array. Default is 0. - :param int limit: The maximum number that can be returned in the array starting from the offset record in zero-based dataset. Default is 20, maximum is 100. - :return: PaymentInstrumentList - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['instrument_identifier_id', 'profile_id', 'offset', 'limit'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_instrument_identifier_payment_instruments_list" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'instrument_identifier_id' is set - if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`") - raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`") - - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `32`") - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `12`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `12`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `36`") - if 'offset' in params and params['offset'] < 0: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `offset` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `0`") - raise ValueError("Invalid value for parameter `offset` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `0`") - if 'limit' in params and params['limit'] > 100: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value less than or equal to `100`") - raise ValueError("Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value less than or equal to `100`") - if 'limit' in params and params['limit'] < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `1`") - raise ValueError("Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `1`") - - collection_formats = {} - - path_params = {} - if 'instrument_identifier_id' in params: - path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] - - query_params = [] - if 'offset' in params: - query_params.append(('offset', params['offset'])) - if 'limit' in params: - query_params.append(('limit', params['limit'])) - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}/paymentinstruments', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='PaymentInstrumentList', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def patch_instrument_identifier(self, instrument_identifier_id, patch_instrument_identifier_request, **kwargs): - """ - Update an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Updating an Instrument Identifier**
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments.
Your system can use this API to update these values. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.patch_instrument_identifier(instrument_identifier_id, patch_instrument_identifier_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param PatchInstrumentIdentifierRequest patch_instrument_identifier_request: Specify the previous transaction Id to update. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :param str if_match: Contains an ETag value from a GET request to make the request conditional. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `patch_instrument_identifier` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.patch_instrument_identifier_with_http_info(instrument_identifier_id, patch_instrument_identifier_request, **kwargs) - else: - (data) = self.patch_instrument_identifier_with_http_info(instrument_identifier_id, patch_instrument_identifier_request, **kwargs) - return data - - def patch_instrument_identifier_with_http_info(self, instrument_identifier_id, patch_instrument_identifier_request, **kwargs): - """ - Update an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Updating an Instrument Identifier**
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments.
Your system can use this API to update these values. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.patch_instrument_identifier_with_http_info(instrument_identifier_id, patch_instrument_identifier_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param PatchInstrumentIdentifierRequest patch_instrument_identifier_request: Specify the previous transaction Id to update. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :param str if_match: Contains an ETag value from a GET request to make the request conditional. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['instrument_identifier_id', 'patch_instrument_identifier_request', 'profile_id', 'if_match'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method patch_instrument_identifier" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'instrument_identifier_id' is set - if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `patch_instrument_identifier`") - raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `patch_instrument_identifier`") - # verify the required parameter 'patch_instrument_identifier_request' is set - if ('patch_instrument_identifier_request' not in params) or (params['patch_instrument_identifier_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `patch_instrument_identifier_request` when calling `patch_instrument_identifier`") - raise ValueError("Missing the required parameter `patch_instrument_identifier_request` when calling `patch_instrument_identifier`") - - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `12`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `12`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `36`") - if 'if_match' in params and len(params['if_match']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") - if 'if_match' in params and len(params['if_match']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be greater than or equal to `1`") - - collection_formats = {} - - path_params = {} - if 'instrument_identifier_id' in params: - path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - if 'if_match' in params: - header_params['if-match'] = params['if_match'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'patch_instrument_identifier_request' in params: - body_params = params['patch_instrument_identifier_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}', 'PATCH', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def post_instrument_identifier(self, post_instrument_identifier_request, **kwargs): - """ - Create an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Creating an Instrument Identifier**
It is recommended you [create an Instrument Identifier via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
An Instrument Identifier will also be created if you [create a Customer via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body)
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.post_instrument_identifier(post_instrument_identifier_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param PostInstrumentIdentifierRequest post_instrument_identifier_request: Specify either a Card, Bank Account or Enrollable Card (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `post_instrument_identifier` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.post_instrument_identifier_with_http_info(post_instrument_identifier_request, **kwargs) - else: - (data) = self.post_instrument_identifier_with_http_info(post_instrument_identifier_request, **kwargs) - return data - - def post_instrument_identifier_with_http_info(self, post_instrument_identifier_request, **kwargs): - """ - Create an Instrument Identifier - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Creating an Instrument Identifier**
It is recommended you [create an Instrument Identifier via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
An Instrument Identifier will also be created if you [create a Customer via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body)
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.post_instrument_identifier_with_http_info(post_instrument_identifier_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param PostInstrumentIdentifierRequest post_instrument_identifier_request: Specify either a Card, Bank Account or Enrollable Card (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['post_instrument_identifier_request', 'profile_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method post_instrument_identifier" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'post_instrument_identifier_request' is set - if ('post_instrument_identifier_request' not in params) or (params['post_instrument_identifier_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `post_instrument_identifier_request` when calling `post_instrument_identifier`") - raise ValueError("Missing the required parameter `post_instrument_identifier_request` when calling `post_instrument_identifier`") - - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be greater than or equal to `36`") - - collection_formats = {} - - path_params = {} - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'post_instrument_identifier_request' in params: - body_params = params['post_instrument_identifier_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/instrumentidentifiers', 'POST', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def post_instrument_identifier_enrollment(self, instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs): - """ - Enroll an Instrument Identifier for Payment Network Token - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Enroll an Instrument Identifier for a Payment Network Token**
Your system can use this API to provision a Network token for an existing Instrument Identifier.
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Network token can be [provisioned when creating an Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier_samplerequests-dropdown_create-instrument-identifier-card-enroll-for-network-token_liveconsole-tab-request-body).This will occur automatically when creating a [Customer](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), [Payment Instrument](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-create-default-payment-instrument-shipping-address-for-existing-customer_liveconsole-tab-request-body) or [Instrument Identifier](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body) via the Payments API.
For more information about Payment Network Tokens see the Developer Guide. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.post_instrument_identifier_enrollment(instrument_identifier_id, post_instrument_identifier_enrollment_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param PostInstrumentIdentifierEnrollmentRequest post_instrument_identifier_enrollment_request: Specify Enrollable Card details (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `post_instrument_identifier_enrollment` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.post_instrument_identifier_enrollment_with_http_info(instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs) - else: - (data) = self.post_instrument_identifier_enrollment_with_http_info(instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs) - return data - - def post_instrument_identifier_enrollment_with_http_info(self, instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs): - """ - Enroll an Instrument Identifier for Payment Network Token - | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Enroll an Instrument Identifier for a Payment Network Token**
Your system can use this API to provision a Network token for an existing Instrument Identifier.
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Network token can be [provisioned when creating an Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier_samplerequests-dropdown_create-instrument-identifier-card-enroll-for-network-token_liveconsole-tab-request-body).This will occur automatically when creating a [Customer](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), [Payment Instrument](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-create-default-payment-instrument-shipping-address-for-existing-customer_liveconsole-tab-request-body) or [Instrument Identifier](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body) via the Payments API.
For more information about Payment Network Tokens see the Developer Guide. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.post_instrument_identifier_enrollment_with_http_info(instrument_identifier_id, post_instrument_identifier_enrollment_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) - :param PostInstrumentIdentifierEnrollmentRequest post_instrument_identifier_enrollment_request: Specify Enrollable Card details (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['instrument_identifier_id', 'post_instrument_identifier_enrollment_request', 'profile_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method post_instrument_identifier_enrollment" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'instrument_identifier_id' is set - if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`") - raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`") - # verify the required parameter 'post_instrument_identifier_enrollment_request' is set - if ('post_instrument_identifier_enrollment_request' not in params) or (params['post_instrument_identifier_enrollment_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `post_instrument_identifier_enrollment_request` when calling `post_instrument_identifier_enrollment`") - raise ValueError("Missing the required parameter `post_instrument_identifier_enrollment_request` when calling `post_instrument_identifier_enrollment`") - - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `32`") - if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `12`") - raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `12`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `36`") - - collection_formats = {} - - path_params = {} - if 'instrument_identifier_id' in params: - path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'post_instrument_identifier_enrollment_request' in params: - body_params = params['post_instrument_identifier_enrollment_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}/enrollment', 'POST', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import sys +import os +import re + +# python 2 and python 3 compatibility library +from six import iteritems + +from ..configuration import Configuration +from ..api_client import ApiClient +import CyberSource.logging.log_factory as LogFactory + + +class InstrumentIdentifierApi(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + Ref: https://github.com/swagger-api/swagger-codegen + """ + + def __init__(self, merchant_config, api_client=None): + config = Configuration() + if api_client: + self.api_client = api_client + else: + if not config.api_client: + config.api_client = ApiClient() + self.api_client = config.api_client + self.api_client.set_configuration(merchant_config) + self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) + + + + def delete_instrument_identifier(self, instrument_identifier_id, **kwargs): + """ + Delete an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Deleting an Instrument Identifier**
Your system can use this API to delete an existing Instrument Identifier.
An Instrument Identifier cannot be deleted if it is linked to any Payment Instruments.
You can [retrieve all Payment Instruments associated with an Instrument Identifier](#token-management_instrument-identifier_list-payment-instruments-for-an-instrument-identifier). + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.delete_instrument_identifier(instrument_identifier_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `delete_instrument_identifier` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.delete_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) + else: + (data) = self.delete_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) + return data + + def delete_instrument_identifier_with_http_info(self, instrument_identifier_id, **kwargs): + """ + Delete an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Deleting an Instrument Identifier**
Your system can use this API to delete an existing Instrument Identifier.
An Instrument Identifier cannot be deleted if it is linked to any Payment Instruments.
You can [retrieve all Payment Instruments associated with an Instrument Identifier](#token-management_instrument-identifier_list-payment-instruments-for-an-instrument-identifier). + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.delete_instrument_identifier_with_http_info(instrument_identifier_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['instrument_identifier_id', 'profile_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_instrument_identifier" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'instrument_identifier_id' is set + if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `delete_instrument_identifier`") + raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `delete_instrument_identifier`") + + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be less than or equal to `32`") + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `12`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `12`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `delete_instrument_identifier`, length must be greater than or equal to `36`") + + collection_formats = {} + + path_params = {} + if 'instrument_identifier_id' in params: + path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'DELETE' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}', 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_instrument_identifier(self, instrument_identifier_id, **kwargs): + """ + Retrieve an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Retrieving an Instrument Identifier**
Your system can use this API to retrieve an Instrument Identifier.
**Note: the actual card data will be masked.**
The Instrument Identifier will also be returned when retrieving a [Customer](#token-management_customer_retrieve-a-customer), [Customer Payment Instrument](#token-management_customer-payment-instrument_retrieve-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_retrieve-a-payment-instrument).|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_instrument_identifier(instrument_identifier_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_instrument_identifier` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) + else: + (data) = self.get_instrument_identifier_with_http_info(instrument_identifier_id, **kwargs) + return data + + def get_instrument_identifier_with_http_info(self, instrument_identifier_id, **kwargs): + """ + Retrieve an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Retrieving an Instrument Identifier**
Your system can use this API to retrieve an Instrument Identifier.
**Note: the actual card data will be masked.**
The Instrument Identifier will also be returned when retrieving a [Customer](#token-management_customer_retrieve-a-customer), [Customer Payment Instrument](#token-management_customer-payment-instrument_retrieve-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_retrieve-a-payment-instrument).|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_instrument_identifier_with_http_info(instrument_identifier_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['instrument_identifier_id', 'profile_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_instrument_identifier" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'instrument_identifier_id' is set + if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier`") + raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier`") + + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be less than or equal to `32`") + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be greater than or equal to `12`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier`, length must be greater than or equal to `12`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier`, length must be greater than or equal to `36`") + + collection_formats = {} + + path_params = {} + if 'instrument_identifier_id' in params: + path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_instrument_identifier_payment_instruments_list(self, instrument_identifier_id, **kwargs): + """ + List Payment Instruments for an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Retrieving all Payment Instruments associated with an Instrument Identifier**
Your system can use this API to retrieve all Payment Instruments linked to an Instrument Identifier. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_instrument_identifier_payment_instruments_list(instrument_identifier_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :param int offset: Starting record in zero-based dataset that should be returned as the first object in the array. Default is 0. + :param int limit: The maximum number that can be returned in the array starting from the offset record in zero-based dataset. Default is 20, maximum is 100. + :return: PaymentInstrumentList + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_instrument_identifier_payment_instruments_list` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_instrument_identifier_payment_instruments_list_with_http_info(instrument_identifier_id, **kwargs) + else: + (data) = self.get_instrument_identifier_payment_instruments_list_with_http_info(instrument_identifier_id, **kwargs) + return data + + def get_instrument_identifier_payment_instruments_list_with_http_info(self, instrument_identifier_id, **kwargs): + """ + List Payment Instruments for an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing
and account numbers.
The same token Id is returned for a specific card number or bank account & routing number allowing the
Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument)
or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Retrieving all Payment Instruments associated with an Instrument Identifier**
Your system can use this API to retrieve all Payment Instruments linked to an Instrument Identifier. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_instrument_identifier_payment_instruments_list_with_http_info(instrument_identifier_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :param int offset: Starting record in zero-based dataset that should be returned as the first object in the array. Default is 0. + :param int limit: The maximum number that can be returned in the array starting from the offset record in zero-based dataset. Default is 20, maximum is 100. + :return: PaymentInstrumentList + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['instrument_identifier_id', 'profile_id', 'offset', 'limit'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_instrument_identifier_payment_instruments_list" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'instrument_identifier_id' is set + if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`") + raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`") + + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `32`") + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `12`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `12`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `get_instrument_identifier_payment_instruments_list`, length must be greater than or equal to `36`") + if 'offset' in params and params['offset'] < 0: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `offset` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `0`") + raise ValueError("Invalid value for parameter `offset` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `0`") + if 'limit' in params and params['limit'] > 100: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value less than or equal to `100`") + raise ValueError("Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value less than or equal to `100`") + if 'limit' in params and params['limit'] < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `1`") + raise ValueError("Invalid value for parameter `limit` when calling `get_instrument_identifier_payment_instruments_list`, must be a value greater than or equal to `1`") + + collection_formats = {} + + path_params = {} + if 'instrument_identifier_id' in params: + path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] + + query_params = [] + if 'offset' in params: + query_params.append(('offset', params['offset'])) + if 'limit' in params: + query_params.append(('limit', params['limit'])) + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}/paymentinstruments', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='PaymentInstrumentList', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def patch_instrument_identifier(self, instrument_identifier_id, patch_instrument_identifier_request, **kwargs): + """ + Update an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Updating an Instrument Identifier**
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments.
Your system can use this API to update these values. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.patch_instrument_identifier(instrument_identifier_id, patch_instrument_identifier_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param PatchInstrumentIdentifierRequest patch_instrument_identifier_request: Specify the previous transaction Id to update. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :param str if_match: Contains an ETag value from a GET request to make the request conditional. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `patch_instrument_identifier` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.patch_instrument_identifier_with_http_info(instrument_identifier_id, patch_instrument_identifier_request, **kwargs) + else: + (data) = self.patch_instrument_identifier_with_http_info(instrument_identifier_id, patch_instrument_identifier_request, **kwargs) + return data + + def patch_instrument_identifier_with_http_info(self, instrument_identifier_id, patch_instrument_identifier_request, **kwargs): + """ + Update an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Updating an Instrument Identifier**
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments.
Your system can use this API to update these values. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.patch_instrument_identifier_with_http_info(instrument_identifier_id, patch_instrument_identifier_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param PatchInstrumentIdentifierRequest patch_instrument_identifier_request: Specify the previous transaction Id to update. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :param str if_match: Contains an ETag value from a GET request to make the request conditional. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['instrument_identifier_id', 'patch_instrument_identifier_request', 'profile_id', 'if_match'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method patch_instrument_identifier" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'instrument_identifier_id' is set + if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `patch_instrument_identifier`") + raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `patch_instrument_identifier`") + # verify the required parameter 'patch_instrument_identifier_request' is set + if ('patch_instrument_identifier_request' not in params) or (params['patch_instrument_identifier_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `patch_instrument_identifier_request` when calling `patch_instrument_identifier`") + raise ValueError("Missing the required parameter `patch_instrument_identifier_request` when calling `patch_instrument_identifier`") + + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `12`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `12`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `patch_instrument_identifier`, length must be greater than or equal to `36`") + if 'if_match' in params and len(params['if_match']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be less than or equal to `32`") + if 'if_match' in params and len(params['if_match']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `if_match` when calling `patch_instrument_identifier`, length must be greater than or equal to `1`") + + collection_formats = {} + + path_params = {} + if 'instrument_identifier_id' in params: + path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + if 'if_match' in params: + header_params['if-match'] = params['if_match'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'patch_instrument_identifier_request' in params: + body_params = params['patch_instrument_identifier_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}', 'PATCH', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_instrument_identifier(self, post_instrument_identifier_request, **kwargs): + """ + Create an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Creating an Instrument Identifier**
It is recommended you [create an Instrument Identifier via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
An Instrument Identifier will also be created if you [create a Customer via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body)
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.post_instrument_identifier(post_instrument_identifier_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param PostInstrumentIdentifierRequest post_instrument_identifier_request: Specify either a Card, Bank Account or Enrollable Card (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `post_instrument_identifier` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.post_instrument_identifier_with_http_info(post_instrument_identifier_request, **kwargs) + else: + (data) = self.post_instrument_identifier_with_http_info(post_instrument_identifier_request, **kwargs) + return data + + def post_instrument_identifier_with_http_info(self, post_instrument_identifier_request, **kwargs): + """ + Create an Instrument Identifier + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).

**Creating an Instrument Identifier**
It is recommended you [create an Instrument Identifier via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
An Instrument Identifier will also be created if you [create a Customer via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body)
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Instrument Identifiers**
To perform a payment with an Instrument Identifier simply specify the [Instrument Identifier Id in the payments request along with the expiration date, card type, & billing address](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-instrument-identifier-token-id_liveconsole-tab-request-body).
When an Instrument Identifier is used in a payment the **_previousTransactionId_** and **_originalAuthorizedAmount_** values are automatically recorded.
These values will be added for you to future Merchant Initiated Transaction payments. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.post_instrument_identifier_with_http_info(post_instrument_identifier_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param PostInstrumentIdentifierRequest post_instrument_identifier_request: Specify either a Card, Bank Account or Enrollable Card (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['post_instrument_identifier_request', 'profile_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_instrument_identifier" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'post_instrument_identifier_request' is set + if ('post_instrument_identifier_request' not in params) or (params['post_instrument_identifier_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `post_instrument_identifier_request` when calling `post_instrument_identifier`") + raise ValueError("Missing the required parameter `post_instrument_identifier_request` when calling `post_instrument_identifier`") + + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier`, length must be greater than or equal to `36`") + + collection_formats = {} + + path_params = {} + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'post_instrument_identifier_request' in params: + body_params = params['post_instrument_identifier_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/instrumentidentifiers', 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='Tmsv2customersEmbeddedDefaultPaymentInstrumentEmbeddedInstrumentIdentifier', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_instrument_identifier_enrollment(self, instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs): + """ + Enroll an Instrument Identifier for Payment Network Token + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Enroll an Instrument Identifier for a Payment Network Token**
Your system can use this API to provision a Network token for an existing Instrument Identifier.
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Network token can be [provisioned when creating an Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier_samplerequests-dropdown_create-instrument-identifier-card-enroll-for-network-token_liveconsole-tab-request-body).This will occur automatically when creating a [Customer](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), [Payment Instrument](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-create-default-payment-instrument-shipping-address-for-existing-customer_liveconsole-tab-request-body) or [Instrument Identifier](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body) via the Payments API.
For more information about Payment Network Tokens see the Developer Guide. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.post_instrument_identifier_enrollment(instrument_identifier_id, post_instrument_identifier_enrollment_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param PostInstrumentIdentifierEnrollmentRequest post_instrument_identifier_enrollment_request: Specify Enrollable Card details (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `post_instrument_identifier_enrollment` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.post_instrument_identifier_enrollment_with_http_info(instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs) + else: + (data) = self.post_instrument_identifier_enrollment_with_http_info(instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs) + return data + + def post_instrument_identifier_enrollment_with_http_info(self, instrument_identifier_id, post_instrument_identifier_enrollment_request, **kwargs): + """ + Enroll an Instrument Identifier for Payment Network Token + | | | | | --- | --- | --- | |**Instrument Identifiers**
An Instrument Identifier represents either a card number, or in the case of an ACH bank account, the routing and account number.
The same token Id is returned for a specific card number or bank account & routing number allowing the Instrument Identifier Id to be used for cross-channel payment tracking.
An Instrument Identifier can exist independently but also be associated with a [Customer Payment Instrument](#token-management_customer-payment-instrument_create-a-customer-payment-instrument) or [Standalone Payment Instrument](#token-management_payment-instrument_create-a-payment-instrument).|      |**Enroll an Instrument Identifier for a Payment Network Token**
Your system can use this API to provision a Network token for an existing Instrument Identifier.
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Network token can be [provisioned when creating an Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier_samplerequests-dropdown_create-instrument-identifier-card-enroll-for-network-token_liveconsole-tab-request-body).This will occur automatically when creating a [Customer](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), [Payment Instrument](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-create-default-payment-instrument-shipping-address-for-existing-customer_liveconsole-tab-request-body) or [Instrument Identifier](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-instrument-identifier-token-creation_liveconsole-tab-request-body) via the Payments API.
For more information about Payment Network Tokens see the Developer Guide. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.post_instrument_identifier_enrollment_with_http_info(instrument_identifier_id, post_instrument_identifier_enrollment_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str instrument_identifier_id: The Id of an Instrument Identifier. (required) + :param PostInstrumentIdentifierEnrollmentRequest post_instrument_identifier_enrollment_request: Specify Enrollable Card details (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['instrument_identifier_id', 'post_instrument_identifier_enrollment_request', 'profile_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_instrument_identifier_enrollment" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'instrument_identifier_id' is set + if ('instrument_identifier_id' not in params) or (params['instrument_identifier_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`") + raise ValueError("Missing the required parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`") + # verify the required parameter 'post_instrument_identifier_enrollment_request' is set + if ('post_instrument_identifier_enrollment_request' not in params) or (params['post_instrument_identifier_enrollment_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `post_instrument_identifier_enrollment_request` when calling `post_instrument_identifier_enrollment`") + raise ValueError("Missing the required parameter `post_instrument_identifier_enrollment_request` when calling `post_instrument_identifier_enrollment`") + + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `32`") + if 'instrument_identifier_id' in params and len(params['instrument_identifier_id']) < 12: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `12`") + raise ValueError("Invalid value for parameter `instrument_identifier_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `12`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `post_instrument_identifier_enrollment`, length must be greater than or equal to `36`") + + collection_formats = {} + + path_params = {} + if 'instrument_identifier_id' in params: + path_params['instrumentIdentifierId'] = params['instrument_identifier_id'] + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'post_instrument_identifier_enrollment_request' in params: + body_params = params['post_instrument_identifier_enrollment_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/instrumentidentifiers/{instrument_identifier_id}/enrollment', 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) diff --git a/CyberSource/apis/interchange_clearing_level_details_api.py b/CyberSource/api/interchange_clearing_level_details_api.py similarity index 97% rename from CyberSource/apis/interchange_clearing_level_details_api.py rename to CyberSource/api/interchange_clearing_level_details_api.py index 216dcc27..712ff69a 100644 --- a/CyberSource/apis/interchange_clearing_level_details_api.py +++ b/CyberSource/api/interchange_clearing_level_details_api.py @@ -159,12 +159,10 @@ def get_interchange_clearing_level_details_with_http_info(self, start_time, end_ if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/invoice_settings_api.py b/CyberSource/api/invoice_settings_api.py similarity index 95% rename from CyberSource/apis/invoice_settings_api.py rename to CyberSource/api/invoice_settings_api.py index 55133d46..89d76dc7 100644 --- a/CyberSource/apis/invoice_settings_api.py +++ b/CyberSource/api/invoice_settings_api.py @@ -124,12 +124,10 @@ def get_invoice_settings_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -236,12 +234,10 @@ def update_invoice_settings_with_http_info(self, invoice_settings_request, **kwa if 'invoice_settings_request' in params: body_params = params['invoice_settings_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/invoices_api.py b/CyberSource/api/invoices_api.py similarity index 95% rename from CyberSource/apis/invoices_api.py rename to CyberSource/api/invoices_api.py index b23548f0..1166e6ed 100644 --- a/CyberSource/apis/invoices_api.py +++ b/CyberSource/api/invoices_api.py @@ -132,12 +132,10 @@ def create_invoice_with_http_info(self, create_invoice_request, **kwargs): if 'create_invoice_request' in params: body_params = params['create_invoice_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -259,12 +257,10 @@ def get_all_invoices_with_http_info(self, offset, limit, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -373,12 +369,10 @@ def get_invoice_with_http_info(self, id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -487,12 +481,10 @@ def perform_cancel_action_with_http_info(self, id, **kwargs): if 'POST' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -601,12 +593,10 @@ def perform_send_action_with_http_info(self, id, **kwargs): if 'POST' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -722,12 +712,10 @@ def update_invoice_with_http_info(self, id, update_invoice_request, **kwargs): if 'update_invoice_request' in params: body_params = params['update_invoice_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/keymanagement_api.py b/CyberSource/api/key_management_api.py similarity index 97% rename from CyberSource/apis/keymanagement_api.py rename to CyberSource/api/key_management_api.py index 98ffea95..2f0f6df9 100644 --- a/CyberSource/apis/keymanagement_api.py +++ b/CyberSource/api/key_management_api.py @@ -25,7 +25,7 @@ import CyberSource.logging.log_factory as LogFactory -class KeymanagementApi(object): +class KeyManagementApi(object): """ NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -168,12 +168,10 @@ def search_keys_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/keymanagementpassword_api.py b/CyberSource/api/key_management_password_api.py similarity index 95% rename from CyberSource/apis/keymanagementpassword_api.py rename to CyberSource/api/key_management_password_api.py index b2b05f82..5cb03abf 100644 --- a/CyberSource/apis/keymanagementpassword_api.py +++ b/CyberSource/api/key_management_password_api.py @@ -25,7 +25,7 @@ import CyberSource.logging.log_factory as LogFactory -class KeymanagementpasswordApi(object): +class KeyManagementPasswordApi(object): """ NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -141,12 +141,10 @@ def update_password_with_http_info(self, key_id, update_password_keys_request, * if 'update_password_keys_request' in params: body_params = params['update_password_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/keymanagementpgp_api.py b/CyberSource/api/key_management_pgp_api.py similarity index 95% rename from CyberSource/apis/keymanagementpgp_api.py rename to CyberSource/api/key_management_pgp_api.py index 4e48386d..6f173811 100644 --- a/CyberSource/apis/keymanagementpgp_api.py +++ b/CyberSource/api/key_management_pgp_api.py @@ -25,7 +25,7 @@ import CyberSource.logging.log_factory as LogFactory -class KeymanagementpgpApi(object): +class KeyManagementPgpApi(object): """ NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -141,12 +141,10 @@ def update_pgp_with_http_info(self, key_id, update_pgp_keys_request, **kwargs): if 'update_pgp_keys_request' in params: body_params = params['update_pgp_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/keymanagementscmp_api.py b/CyberSource/api/key_management_scmp_api.py similarity index 95% rename from CyberSource/apis/keymanagementscmp_api.py rename to CyberSource/api/key_management_scmp_api.py index 48dd6713..8b0b0463 100644 --- a/CyberSource/apis/keymanagementscmp_api.py +++ b/CyberSource/api/key_management_scmp_api.py @@ -25,7 +25,7 @@ import CyberSource.logging.log_factory as LogFactory -class KeymanagementscmpApi(object): +class KeyManagementScmpApi(object): """ NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. @@ -141,12 +141,10 @@ def update_scmp_with_http_info(self, key_id, update_pgp_keys_request, **kwargs): if 'update_pgp_keys_request' in params: body_params = params['update_pgp_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/microform_integration_api.py b/CyberSource/api/microform_integration_api.py similarity index 97% rename from CyberSource/apis/microform_integration_api.py rename to CyberSource/api/microform_integration_api.py index 69a6e1b6..84e595d4 100644 --- a/CyberSource/apis/microform_integration_api.py +++ b/CyberSource/api/microform_integration_api.py @@ -132,12 +132,10 @@ def generate_capture_context_with_http_info(self, generate_capture_context_reque if 'generate_capture_context_request' in params: body_params = params['generate_capture_context_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/jwt']) + header_params['Accept'] = self.api_client.select_header_accept(['application/jwt']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/net_fundings_api.py b/CyberSource/api/net_fundings_api.py similarity index 97% rename from CyberSource/apis/net_fundings_api.py rename to CyberSource/api/net_fundings_api.py index 0407359b..7b093764 100644 --- a/CyberSource/apis/net_fundings_api.py +++ b/CyberSource/api/net_fundings_api.py @@ -163,12 +163,10 @@ def get_net_funding_details_with_http_info(self, start_time, end_time, **kwargs) if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/notification_of_changes_api.py b/CyberSource/api/notification_of_changes_api.py similarity index 96% rename from CyberSource/apis/notification_of_changes_api.py rename to CyberSource/api/notification_of_changes_api.py index b8e4944e..2bdfc406 100644 --- a/CyberSource/apis/notification_of_changes_api.py +++ b/CyberSource/api/notification_of_changes_api.py @@ -143,12 +143,10 @@ def get_notification_of_change_report_with_http_info(self, start_time, end_time, if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'text/csv', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'text/csv', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/o_auth_api.py b/CyberSource/api/o_auth_api.py similarity index 100% rename from CyberSource/apis/o_auth_api.py rename to CyberSource/api/o_auth_api.py diff --git a/CyberSource/apis/payer_authentication_api.py b/CyberSource/api/payer_authentication_api.py similarity index 95% rename from CyberSource/apis/payer_authentication_api.py rename to CyberSource/api/payer_authentication_api.py index 589d7a22..a1710f55 100644 --- a/CyberSource/apis/payer_authentication_api.py +++ b/CyberSource/api/payer_authentication_api.py @@ -132,12 +132,10 @@ def check_payer_auth_enrollment_with_http_info(self, check_payer_auth_enrollment if 'check_payer_auth_enrollment_request' in params: body_params = params['check_payer_auth_enrollment_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -244,12 +242,10 @@ def payer_auth_setup_with_http_info(self, payer_auth_setup_request, **kwargs): if 'payer_auth_setup_request' in params: body_params = params['payer_auth_setup_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -356,12 +352,10 @@ def validate_authentication_results_with_http_info(self, validate_request, **kwa if 'validate_request' in params: body_params = params['validate_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/payment_batch_summaries_api.py b/CyberSource/api/payment_batch_summaries_api.py similarity index 97% rename from CyberSource/apis/payment_batch_summaries_api.py rename to CyberSource/api/payment_batch_summaries_api.py index 7195a05c..127117a4 100644 --- a/CyberSource/apis/payment_batch_summaries_api.py +++ b/CyberSource/api/payment_batch_summaries_api.py @@ -179,12 +179,10 @@ def get_payment_batch_summary_with_http_info(self, start_time, end_time, **kwarg if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'text/csv', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'text/csv', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/payment_instrument_api.py b/CyberSource/api/payment_instrument_api.py similarity index 96% rename from CyberSource/apis/payment_instrument_api.py rename to CyberSource/api/payment_instrument_api.py index fc5a0eae..8d207238 100644 --- a/CyberSource/apis/payment_instrument_api.py +++ b/CyberSource/api/payment_instrument_api.py @@ -1,591 +1,583 @@ -# coding: utf-8 - -""" - CyberSource Merged Spec - - All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html - - OpenAPI spec version: 0.0.1 - - Generated by: https://github.com/swagger-api/swagger-codegen.git -""" - - -from __future__ import absolute_import - -import sys -import os -import re - -# python 2 and python 3 compatibility library -from six import iteritems - -from ..configuration import Configuration -from ..api_client import ApiClient -import CyberSource.logging.log_factory as LogFactory - - -class PaymentInstrumentApi(object): - """ - NOTE: This class is auto generated by the swagger code generator program. - Do not edit the class manually. - Ref: https://github.com/swagger-api/swagger-codegen - """ - - def __init__(self, merchant_config, api_client=None): - config = Configuration() - if api_client: - self.api_client = api_client - else: - if not config.api_client: - config.api_client = ApiClient() - self.api_client = config.api_client - self.api_client.set_configuration(merchant_config) - self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) - - - - def delete_payment_instrument(self, payment_instrument_id, **kwargs): - """ - Delete a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Deleting a Payment Instrument**
Your system can use this API to delete an existing Payment Instrument.
Any Instrument Identifiers representing the card number will also be deleted if they are not associated with any other Payment Instruments. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.delete_payment_instrument(payment_instrument_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str payment_instrument_id: The Id of a payment instrument. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `delete_payment_instrument` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.delete_payment_instrument_with_http_info(payment_instrument_id, **kwargs) - else: - (data) = self.delete_payment_instrument_with_http_info(payment_instrument_id, **kwargs) - return data - - def delete_payment_instrument_with_http_info(self, payment_instrument_id, **kwargs): - """ - Delete a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Deleting a Payment Instrument**
Your system can use this API to delete an existing Payment Instrument.
Any Instrument Identifiers representing the card number will also be deleted if they are not associated with any other Payment Instruments. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.delete_payment_instrument_with_http_info(payment_instrument_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str payment_instrument_id: The Id of a payment instrument. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['payment_instrument_id', 'profile_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method delete_payment_instrument" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'payment_instrument_id' is set - if ('payment_instrument_id' not in params) or (params['payment_instrument_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `payment_instrument_id` when calling `delete_payment_instrument`") - raise ValueError("Missing the required parameter `payment_instrument_id` when calling `delete_payment_instrument`") - - if 'payment_instrument_id' in params and len(params['payment_instrument_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be less than or equal to `32`") - if 'payment_instrument_id' in params and len(params['payment_instrument_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be greater than or equal to `1`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be greater than or equal to `36`") - - collection_formats = {} - - path_params = {} - if 'payment_instrument_id' in params: - path_params['paymentInstrumentId'] = params['payment_instrument_id'] - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'DELETE' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/paymentinstruments/{payment_instrument_id}', 'DELETE', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_payment_instrument(self, payment_instrument_id, **kwargs): - """ - Retrieve a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Retrieving a Payment Instrument**
Your system can use this API to retrieve an existing Payment Instrument.
To perform a payment with a particular Payment Instrument simply specify the [Payment Instrument Id in the payments request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_payment_instrument(payment_instrument_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str payment_instrument_id: The Id of a payment instrument. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrument - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_payment_instrument` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_payment_instrument_with_http_info(payment_instrument_id, **kwargs) - else: - (data) = self.get_payment_instrument_with_http_info(payment_instrument_id, **kwargs) - return data - - def get_payment_instrument_with_http_info(self, payment_instrument_id, **kwargs): - """ - Retrieve a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Retrieving a Payment Instrument**
Your system can use this API to retrieve an existing Payment Instrument.
To perform a payment with a particular Payment Instrument simply specify the [Payment Instrument Id in the payments request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_payment_instrument_with_http_info(payment_instrument_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str payment_instrument_id: The Id of a payment instrument. (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrument - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['payment_instrument_id', 'profile_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_payment_instrument" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'payment_instrument_id' is set - if ('payment_instrument_id' not in params) or (params['payment_instrument_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `payment_instrument_id` when calling `get_payment_instrument`") - raise ValueError("Missing the required parameter `payment_instrument_id` when calling `get_payment_instrument`") - - if 'payment_instrument_id' in params and len(params['payment_instrument_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be less than or equal to `32`") - if 'payment_instrument_id' in params and len(params['payment_instrument_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be greater than or equal to `1`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be greater than or equal to `36`") - - collection_formats = {} - - path_params = {} - if 'payment_instrument_id' in params: - path_params['paymentInstrumentId'] = params['payment_instrument_id'] - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/paymentinstruments/{payment_instrument_id}', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='Tmsv2customersEmbeddedDefaultPaymentInstrument', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def patch_payment_instrument(self, payment_instrument_id, patch_payment_instrument_request, **kwargs): - """ - Update a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Updating a Payment Instrument**
Your system can use this API to update an existing Payment Instrument. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.patch_payment_instrument(payment_instrument_id, patch_payment_instrument_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str payment_instrument_id: The Id of a payment instrument. (required) - :param PatchPaymentInstrumentRequest patch_payment_instrument_request: (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :param str if_match: Contains an ETag value from a GET request to make the request conditional. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrument - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `patch_payment_instrument` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.patch_payment_instrument_with_http_info(payment_instrument_id, patch_payment_instrument_request, **kwargs) - else: - (data) = self.patch_payment_instrument_with_http_info(payment_instrument_id, patch_payment_instrument_request, **kwargs) - return data - - def patch_payment_instrument_with_http_info(self, payment_instrument_id, patch_payment_instrument_request, **kwargs): - """ - Update a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Updating a Payment Instrument**
Your system can use this API to update an existing Payment Instrument. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.patch_payment_instrument_with_http_info(payment_instrument_id, patch_payment_instrument_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str payment_instrument_id: The Id of a payment instrument. (required) - :param PatchPaymentInstrumentRequest patch_payment_instrument_request: (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :param str if_match: Contains an ETag value from a GET request to make the request conditional. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrument - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['payment_instrument_id', 'patch_payment_instrument_request', 'profile_id', 'if_match'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method patch_payment_instrument" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'payment_instrument_id' is set - if ('payment_instrument_id' not in params) or (params['payment_instrument_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `payment_instrument_id` when calling `patch_payment_instrument`") - raise ValueError("Missing the required parameter `payment_instrument_id` when calling `patch_payment_instrument`") - # verify the required parameter 'patch_payment_instrument_request' is set - if ('patch_payment_instrument_request' not in params) or (params['patch_payment_instrument_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `patch_payment_instrument_request` when calling `patch_payment_instrument`") - raise ValueError("Missing the required parameter `patch_payment_instrument_request` when calling `patch_payment_instrument`") - - if 'payment_instrument_id' in params and len(params['payment_instrument_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be less than or equal to `32`") - if 'payment_instrument_id' in params and len(params['payment_instrument_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be greater than or equal to `36`") - if 'if_match' in params and len(params['if_match']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be less than or equal to `32`") - if 'if_match' in params and len(params['if_match']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") - - collection_formats = {} - - path_params = {} - if 'payment_instrument_id' in params: - path_params['paymentInstrumentId'] = params['payment_instrument_id'] - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - if 'if_match' in params: - header_params['if-match'] = params['if_match'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'patch_payment_instrument_request' in params: - body_params = params['patch_payment_instrument_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/paymentinstruments/{payment_instrument_id}', 'PATCH', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='Tmsv2customersEmbeddedDefaultPaymentInstrument', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def post_payment_instrument(self, post_payment_instrument_request, **kwargs): - """ - Create a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**

**Creating a Payment Instrument**
It is recommended you [create a Payment Instrument via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Payment Instruments**
To perform a payment with a particular Payment Instrument specify the [Payment Instrument in the payment request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.post_payment_instrument(post_payment_instrument_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param PostPaymentInstrumentRequest post_payment_instrument_request: (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrument - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `post_payment_instrument` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.post_payment_instrument_with_http_info(post_payment_instrument_request, **kwargs) - else: - (data) = self.post_payment_instrument_with_http_info(post_payment_instrument_request, **kwargs) - return data - - def post_payment_instrument_with_http_info(self, post_payment_instrument_request, **kwargs): - """ - Create a Payment Instrument - | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**

**Creating a Payment Instrument**
It is recommended you [create a Payment Instrument via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Payment Instruments**
To perform a payment with a particular Payment Instrument specify the [Payment Instrument in the payment request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.post_payment_instrument_with_http_info(post_payment_instrument_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param PostPaymentInstrumentRequest post_payment_instrument_request: (required) - :param str profile_id: The Id of a profile containing user specific TMS configuration. - :return: Tmsv2customersEmbeddedDefaultPaymentInstrument - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['post_payment_instrument_request', 'profile_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method post_payment_instrument" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'post_payment_instrument_request' is set - if ('post_payment_instrument_request' not in params) or (params['post_payment_instrument_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `post_payment_instrument_request` when calling `post_payment_instrument`") - raise ValueError("Missing the required parameter `post_payment_instrument_request` when calling `post_payment_instrument`") - - if 'profile_id' in params and len(params['profile_id']) > 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be less than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be less than or equal to `36`") - if 'profile_id' in params and len(params['profile_id']) < 36: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be greater than or equal to `36`") - raise ValueError("Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be greater than or equal to `36`") - - collection_formats = {} - - path_params = {} - - query_params = [] - - header_params = {} - if 'profile_id' in params: - header_params['profile-id'] = params['profile_id'] - - form_params = [] - local_var_files = {} - - body_params = None - if 'post_payment_instrument_request' in params: - body_params = params['post_payment_instrument_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tms/v1/paymentinstruments', 'POST', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='Tmsv2customersEmbeddedDefaultPaymentInstrument', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import sys +import os +import re + +# python 2 and python 3 compatibility library +from six import iteritems + +from ..configuration import Configuration +from ..api_client import ApiClient +import CyberSource.logging.log_factory as LogFactory + + +class PaymentInstrumentApi(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + Ref: https://github.com/swagger-api/swagger-codegen + """ + + def __init__(self, merchant_config, api_client=None): + config = Configuration() + if api_client: + self.api_client = api_client + else: + if not config.api_client: + config.api_client = ApiClient() + self.api_client = config.api_client + self.api_client.set_configuration(merchant_config) + self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) + + + + def delete_payment_instrument(self, payment_instrument_id, **kwargs): + """ + Delete a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Deleting a Payment Instrument**
Your system can use this API to delete an existing Payment Instrument.
Any Instrument Identifiers representing the card number will also be deleted if they are not associated with any other Payment Instruments. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.delete_payment_instrument(payment_instrument_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str payment_instrument_id: The Id of a payment instrument. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `delete_payment_instrument` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.delete_payment_instrument_with_http_info(payment_instrument_id, **kwargs) + else: + (data) = self.delete_payment_instrument_with_http_info(payment_instrument_id, **kwargs) + return data + + def delete_payment_instrument_with_http_info(self, payment_instrument_id, **kwargs): + """ + Delete a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Deleting a Payment Instrument**
Your system can use this API to delete an existing Payment Instrument.
Any Instrument Identifiers representing the card number will also be deleted if they are not associated with any other Payment Instruments. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.delete_payment_instrument_with_http_info(payment_instrument_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str payment_instrument_id: The Id of a payment instrument. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['payment_instrument_id', 'profile_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_payment_instrument" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'payment_instrument_id' is set + if ('payment_instrument_id' not in params) or (params['payment_instrument_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `payment_instrument_id` when calling `delete_payment_instrument`") + raise ValueError("Missing the required parameter `payment_instrument_id` when calling `delete_payment_instrument`") + + if 'payment_instrument_id' in params and len(params['payment_instrument_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be less than or equal to `32`") + if 'payment_instrument_id' in params and len(params['payment_instrument_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `delete_payment_instrument`, length must be greater than or equal to `1`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `delete_payment_instrument`, length must be greater than or equal to `36`") + + collection_formats = {} + + path_params = {} + if 'payment_instrument_id' in params: + path_params['paymentInstrumentId'] = params['payment_instrument_id'] + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'DELETE' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/paymentinstruments/{payment_instrument_id}', 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_payment_instrument(self, payment_instrument_id, **kwargs): + """ + Retrieve a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Retrieving a Payment Instrument**
Your system can use this API to retrieve an existing Payment Instrument.
To perform a payment with a particular Payment Instrument simply specify the [Payment Instrument Id in the payments request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_payment_instrument(payment_instrument_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str payment_instrument_id: The Id of a payment instrument. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrument + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_payment_instrument` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_payment_instrument_with_http_info(payment_instrument_id, **kwargs) + else: + (data) = self.get_payment_instrument_with_http_info(payment_instrument_id, **kwargs) + return data + + def get_payment_instrument_with_http_info(self, payment_instrument_id, **kwargs): + """ + Retrieve a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Retrieving a Payment Instrument**
Your system can use this API to retrieve an existing Payment Instrument.
To perform a payment with a particular Payment Instrument simply specify the [Payment Instrument Id in the payments request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_payment_instrument_with_http_info(payment_instrument_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str payment_instrument_id: The Id of a payment instrument. (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrument + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['payment_instrument_id', 'profile_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_payment_instrument" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'payment_instrument_id' is set + if ('payment_instrument_id' not in params) or (params['payment_instrument_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `payment_instrument_id` when calling `get_payment_instrument`") + raise ValueError("Missing the required parameter `payment_instrument_id` when calling `get_payment_instrument`") + + if 'payment_instrument_id' in params and len(params['payment_instrument_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be less than or equal to `32`") + if 'payment_instrument_id' in params and len(params['payment_instrument_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `get_payment_instrument`, length must be greater than or equal to `1`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `get_payment_instrument`, length must be greater than or equal to `36`") + + collection_formats = {} + + path_params = {} + if 'payment_instrument_id' in params: + path_params['paymentInstrumentId'] = params['payment_instrument_id'] + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/paymentinstruments/{payment_instrument_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='Tmsv2customersEmbeddedDefaultPaymentInstrument', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def patch_payment_instrument(self, payment_instrument_id, patch_payment_instrument_request, **kwargs): + """ + Update a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Updating a Payment Instrument**
Your system can use this API to update an existing Payment Instrument. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.patch_payment_instrument(payment_instrument_id, patch_payment_instrument_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str payment_instrument_id: The Id of a payment instrument. (required) + :param PatchPaymentInstrumentRequest patch_payment_instrument_request: (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :param str if_match: Contains an ETag value from a GET request to make the request conditional. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrument + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `patch_payment_instrument` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.patch_payment_instrument_with_http_info(payment_instrument_id, patch_payment_instrument_request, **kwargs) + else: + (data) = self.patch_payment_instrument_with_http_info(payment_instrument_id, patch_payment_instrument_request, **kwargs) + return data + + def patch_payment_instrument_with_http_info(self, payment_instrument_id, patch_payment_instrument_request, **kwargs): + """ + Update a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**|      |**Updating a Payment Instrument**
Your system can use this API to update an existing Payment Instrument. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.patch_payment_instrument_with_http_info(payment_instrument_id, patch_payment_instrument_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str payment_instrument_id: The Id of a payment instrument. (required) + :param PatchPaymentInstrumentRequest patch_payment_instrument_request: (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :param str if_match: Contains an ETag value from a GET request to make the request conditional. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrument + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['payment_instrument_id', 'patch_payment_instrument_request', 'profile_id', 'if_match'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method patch_payment_instrument" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'payment_instrument_id' is set + if ('payment_instrument_id' not in params) or (params['payment_instrument_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `payment_instrument_id` when calling `patch_payment_instrument`") + raise ValueError("Missing the required parameter `payment_instrument_id` when calling `patch_payment_instrument`") + # verify the required parameter 'patch_payment_instrument_request' is set + if ('patch_payment_instrument_request' not in params) or (params['patch_payment_instrument_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `patch_payment_instrument_request` when calling `patch_payment_instrument`") + raise ValueError("Missing the required parameter `patch_payment_instrument_request` when calling `patch_payment_instrument`") + + if 'payment_instrument_id' in params and len(params['payment_instrument_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be less than or equal to `32`") + if 'payment_instrument_id' in params and len(params['payment_instrument_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `payment_instrument_id` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `patch_payment_instrument`, length must be greater than or equal to `36`") + if 'if_match' in params and len(params['if_match']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be less than or equal to `32`") + if 'if_match' in params and len(params['if_match']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `if_match` when calling `patch_payment_instrument`, length must be greater than or equal to `1`") + + collection_formats = {} + + path_params = {} + if 'payment_instrument_id' in params: + path_params['paymentInstrumentId'] = params['payment_instrument_id'] + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + if 'if_match' in params: + header_params['if-match'] = params['if_match'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'patch_payment_instrument_request' in params: + body_params = params['patch_payment_instrument_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/paymentinstruments/{payment_instrument_id}', 'PATCH', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='Tmsv2customersEmbeddedDefaultPaymentInstrument', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def post_payment_instrument(self, post_payment_instrument_request, **kwargs): + """ + Create a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**

**Creating a Payment Instrument**
It is recommended you [create a Payment Instrument via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Payment Instruments**
To perform a payment with a particular Payment Instrument specify the [Payment Instrument in the payment request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.post_payment_instrument(post_payment_instrument_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param PostPaymentInstrumentRequest post_payment_instrument_request: (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrument + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `post_payment_instrument` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.post_payment_instrument_with_http_info(post_payment_instrument_request, **kwargs) + else: + (data) = self.post_payment_instrument_with_http_info(post_payment_instrument_request, **kwargs) + return data + + def post_payment_instrument_with_http_info(self, post_payment_instrument_request, **kwargs): + """ + Create a Payment Instrument + | | | | | --- | --- | --- | |**Standalone Payment Instruments**
A Payment Instrument represents tokenized payment information such as expiration date, billing address & card type.
A Payment Instrument token does not store the card number. A Payment Instrument is associated with an [Instrument Identifier](#token-management_instrument-identifier_create-an-instrument-identifier) that represents either a payment card number, or in the case of an ACH bank account, the routing and account number.
**Standalone Payment Instruments do not belong to a [Customer](#token-management_customer_create-a-customer).**

**Creating a Payment Instrument**
It is recommended you [create a Payment Instrument via a Payment Authorization](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-with-token-create_authorization-with-customer-token-creation_liveconsole-tab-request-body), this can be for a zero amount.
In Europe: You should perform Payer Authentication alongside the Authorization.|      |**Payment Network Tokens**
Network tokens perform better than regular card numbers and they are not necessarily invalidated when a cardholder loses their card, or it expires.
A Payment Network Token will be automatically created and used in future payments if you are enabled for the service.
A Payment Network Token can also be [provisioned for an existing Instrument Identifier](#token-management_instrument-identifier_enroll-an-instrument-identifier-for-payment-network-token).
For more information about Payment Network Tokens see the Developer Guide.

**Payments with Payment Instruments**
To perform a payment with a particular Payment Instrument specify the [Payment Instrument in the payment request](#payments_payments_process-a-payment_samplerequests-dropdown_authorization-using-tokens_authorization-with-customer-payment-instrument-and-shipping-address-token-id_liveconsole-tab-request-body). + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.post_payment_instrument_with_http_info(post_payment_instrument_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param PostPaymentInstrumentRequest post_payment_instrument_request: (required) + :param str profile_id: The Id of a profile containing user specific TMS configuration. + :return: Tmsv2customersEmbeddedDefaultPaymentInstrument + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['post_payment_instrument_request', 'profile_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method post_payment_instrument" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'post_payment_instrument_request' is set + if ('post_payment_instrument_request' not in params) or (params['post_payment_instrument_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `post_payment_instrument_request` when calling `post_payment_instrument`") + raise ValueError("Missing the required parameter `post_payment_instrument_request` when calling `post_payment_instrument`") + + if 'profile_id' in params and len(params['profile_id']) > 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be less than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be less than or equal to `36`") + if 'profile_id' in params and len(params['profile_id']) < 36: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be greater than or equal to `36`") + raise ValueError("Invalid value for parameter `profile_id` when calling `post_payment_instrument`, length must be greater than or equal to `36`") + + collection_formats = {} + + path_params = {} + + query_params = [] + + header_params = {} + if 'profile_id' in params: + header_params['profile-id'] = params['profile_id'] + + form_params = [] + local_var_files = {} + + body_params = None + if 'post_payment_instrument_request' in params: + body_params = params['post_payment_instrument_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tms/v1/paymentinstruments', 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='Tmsv2customersEmbeddedDefaultPaymentInstrument', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) diff --git a/CyberSource/apis/payments_api.py b/CyberSource/api/payments_api.py similarity index 96% rename from CyberSource/apis/payments_api.py rename to CyberSource/api/payments_api.py index 3390aa73..732dfb64 100644 --- a/CyberSource/apis/payments_api.py +++ b/CyberSource/api/payments_api.py @@ -132,12 +132,10 @@ def create_payment_with_http_info(self, create_payment_request, **kwargs): if 'create_payment_request' in params: body_params = params['create_payment_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -253,12 +251,10 @@ def increment_auth_with_http_info(self, id, increment_auth_request, **kwargs): if 'increment_auth_request' in params: body_params = params['increment_auth_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -374,12 +370,10 @@ def refresh_payment_status_with_http_info(self, id, refresh_payment_status_reque if 'refresh_payment_status_request' in params: body_params = params['refresh_payment_status_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/payouts_api.py b/CyberSource/api/payouts_api.py similarity index 96% rename from CyberSource/apis/payouts_api.py rename to CyberSource/api/payouts_api.py index 7157e454..e60f4638 100644 --- a/CyberSource/apis/payouts_api.py +++ b/CyberSource/api/payouts_api.py @@ -132,12 +132,10 @@ def oct_create_payment_with_http_info(self, oct_create_payment_request, **kwargs if 'oct_create_payment_request' in params: body_params = params['oct_create_payment_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/plans_api.py b/CyberSource/api/plans_api.py similarity index 95% rename from CyberSource/apis/plans_api.py rename to CyberSource/api/plans_api.py index e7ce5848..37fbba60 100644 --- a/CyberSource/apis/plans_api.py +++ b/CyberSource/api/plans_api.py @@ -136,12 +136,10 @@ def activate_plan_with_http_info(self, id, **kwargs): if 'activate_plan_request' in params: body_params = params['activate_plan_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -248,12 +246,10 @@ def create_plan_with_http_info(self, create_plan_request, **kwargs): if 'create_plan_request' in params: body_params = params['create_plan_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -364,12 +360,10 @@ def deactivate_plan_with_http_info(self, id, **kwargs): if 'deactivate_plan_request' in params: body_params = params['deactivate_plan_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -478,12 +472,10 @@ def delete_plan_with_http_info(self, id, **kwargs): if 'DELETE' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -592,12 +584,10 @@ def get_plan_with_http_info(self, id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -696,12 +686,10 @@ def get_plan_code_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -821,12 +809,10 @@ def get_plans_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -942,12 +928,10 @@ def update_plan_with_http_info(self, id, update_plan_request, **kwargs): if 'update_plan_request' in params: body_params = params['update_plan_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/purchase_and_refund_details_api.py b/CyberSource/api/purchase_and_refund_details_api.py similarity index 97% rename from CyberSource/apis/purchase_and_refund_details_api.py rename to CyberSource/api/purchase_and_refund_details_api.py index 23de3fcf..8592df68 100644 --- a/CyberSource/apis/purchase_and_refund_details_api.py +++ b/CyberSource/api/purchase_and_refund_details_api.py @@ -187,12 +187,10 @@ def get_purchase_and_refund_details_with_http_info(self, start_time, end_time, * if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml', 'text/csv']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml', 'text/csv']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/push_funds_api.py b/CyberSource/api/push_funds_api.py similarity index 97% rename from CyberSource/apis/push_funds_api.py rename to CyberSource/api/push_funds_api.py index 30e6d1ca..ea35fd6b 100644 --- a/CyberSource/apis/push_funds_api.py +++ b/CyberSource/api/push_funds_api.py @@ -186,12 +186,10 @@ def create_push_funds_transfer_with_http_info(self, push_funds_request, content_ if 'push_funds_request' in params: body_params = params['push_funds_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/refund_api.py b/CyberSource/api/refund_api.py similarity index 96% rename from CyberSource/apis/refund_api.py rename to CyberSource/api/refund_api.py index ac3c6670..ea820cf2 100644 --- a/CyberSource/apis/refund_api.py +++ b/CyberSource/api/refund_api.py @@ -141,12 +141,10 @@ def refund_capture_with_http_info(self, refund_capture_request, id, **kwargs): if 'refund_capture_request' in params: body_params = params['refund_capture_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -262,12 +260,10 @@ def refund_payment_with_http_info(self, refund_payment_request, id, **kwargs): if 'refund_payment_request' in params: body_params = params['refund_payment_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/report_definitions_api.py b/CyberSource/api/report_definitions_api.py similarity index 95% rename from CyberSource/apis/report_definitions_api.py rename to CyberSource/api/report_definitions_api.py index 09cde817..16e4ab38 100644 --- a/CyberSource/apis/report_definitions_api.py +++ b/CyberSource/api/report_definitions_api.py @@ -1,309 +1,305 @@ -# coding: utf-8 - -""" - CyberSource Merged Spec - - All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html - - OpenAPI spec version: 0.0.1 - - Generated by: https://github.com/swagger-api/swagger-codegen.git -""" - - -from __future__ import absolute_import - -import sys -import os -import re - -# python 2 and python 3 compatibility library -from six import iteritems - -from ..configuration import Configuration -from ..api_client import ApiClient -import CyberSource.logging.log_factory as LogFactory - - -class ReportDefinitionsApi(object): - """ - NOTE: This class is auto generated by the swagger code generator program. - Do not edit the class manually. - Ref: https://github.com/swagger-api/swagger-codegen - """ - - def __init__(self, merchant_config, api_client=None): - config = Configuration() - if api_client: - self.api_client = api_client - else: - if not config.api_client: - config.api_client = ApiClient() - self.api_client = config.api_client - self.api_client.set_configuration(merchant_config) - self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) - - - - def get_resource_info_by_report_definition(self, report_definition_name, **kwargs): - """ - Get Report Definition - View the attributes of an individual report type. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation/) - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_resource_info_by_report_definition(report_definition_name, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_definition_name: Name of the Report definition to retrieve (required) - :param str subscription_type: The subscription type for which report definition is required. By default the type will be CUSTOM. Valid Values: - CLASSIC - CUSTOM - STANDARD - :param str report_mime_type: The format for which the report definition is required. By default the value will be CSV. Valid Values: - application/xml - text/csv - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportDefinitionsNameGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_resource_info_by_report_definition` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_resource_info_by_report_definition_with_http_info(report_definition_name, **kwargs) - else: - (data) = self.get_resource_info_by_report_definition_with_http_info(report_definition_name, **kwargs) - return data - - def get_resource_info_by_report_definition_with_http_info(self, report_definition_name, **kwargs): - """ - Get Report Definition - View the attributes of an individual report type. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation/) - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_resource_info_by_report_definition_with_http_info(report_definition_name, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_definition_name: Name of the Report definition to retrieve (required) - :param str subscription_type: The subscription type for which report definition is required. By default the type will be CUSTOM. Valid Values: - CLASSIC - CUSTOM - STANDARD - :param str report_mime_type: The format for which the report definition is required. By default the value will be CSV. Valid Values: - application/xml - text/csv - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportDefinitionsNameGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['report_definition_name', 'subscription_type', 'report_mime_type', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_resource_info_by_report_definition" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'report_definition_name' is set - if ('report_definition_name' not in params) or (params['report_definition_name'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `report_definition_name` when calling `get_resource_info_by_report_definition`") - raise ValueError("Missing the required parameter `report_definition_name` when calling `get_resource_info_by_report_definition`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - if 'report_definition_name' in params: - path_params['reportDefinitionName'] = params['report_definition_name'] - - query_params = [] - if 'subscription_type' in params: - query_params.append(('subscriptionType', params['subscription_type'])) - if 'report_mime_type' in params: - query_params.append(('reportMimeType', params['report_mime_type'])) - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/report-definitions/{report_definition_name}', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='ReportingV3ReportDefinitionsNameGet200Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_resource_v2_info(self, **kwargs): - """ - Get Reporting Resource Information - View a list of supported reports and their attributes before subscribing to them. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_resource_v2_info(callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str subscription_type: Valid Values: - CLASSIC - CUSTOM - STANDARD - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportDefinitionsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_resource_v2_info` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_resource_v2_info_with_http_info(**kwargs) - else: - (data) = self.get_resource_v2_info_with_http_info(**kwargs) - return data - - def get_resource_v2_info_with_http_info(self, **kwargs): - """ - Get Reporting Resource Information - View a list of supported reports and their attributes before subscribing to them. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_resource_v2_info_with_http_info(callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str subscription_type: Valid Values: - CLASSIC - CUSTOM - STANDARD - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportDefinitionsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['subscription_type', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_resource_v2_info" % key - ) - params[key] = val - del params['kwargs'] - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - - query_params = [] - if 'subscription_type' in params: - query_params.append(('subscriptionType', params['subscription_type'])) - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/report-definitions', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='ReportingV3ReportDefinitionsGet200Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import sys +import os +import re + +# python 2 and python 3 compatibility library +from six import iteritems + +from ..configuration import Configuration +from ..api_client import ApiClient +import CyberSource.logging.log_factory as LogFactory + + +class ReportDefinitionsApi(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + Ref: https://github.com/swagger-api/swagger-codegen + """ + + def __init__(self, merchant_config, api_client=None): + config = Configuration() + if api_client: + self.api_client = api_client + else: + if not config.api_client: + config.api_client = ApiClient() + self.api_client = config.api_client + self.api_client.set_configuration(merchant_config) + self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) + + + + def get_resource_info_by_report_definition(self, report_definition_name, **kwargs): + """ + Get Report Definition + View the attributes of an individual report type. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation/) + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_resource_info_by_report_definition(report_definition_name, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_definition_name: Name of the Report definition to retrieve (required) + :param str subscription_type: The subscription type for which report definition is required. By default the type will be CUSTOM. Valid Values: - CLASSIC - CUSTOM - STANDARD + :param str report_mime_type: The format for which the report definition is required. By default the value will be CSV. Valid Values: - application/xml - text/csv + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportDefinitionsNameGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_resource_info_by_report_definition` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_resource_info_by_report_definition_with_http_info(report_definition_name, **kwargs) + else: + (data) = self.get_resource_info_by_report_definition_with_http_info(report_definition_name, **kwargs) + return data + + def get_resource_info_by_report_definition_with_http_info(self, report_definition_name, **kwargs): + """ + Get Report Definition + View the attributes of an individual report type. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation/) + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_resource_info_by_report_definition_with_http_info(report_definition_name, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_definition_name: Name of the Report definition to retrieve (required) + :param str subscription_type: The subscription type for which report definition is required. By default the type will be CUSTOM. Valid Values: - CLASSIC - CUSTOM - STANDARD + :param str report_mime_type: The format for which the report definition is required. By default the value will be CSV. Valid Values: - application/xml - text/csv + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportDefinitionsNameGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['report_definition_name', 'subscription_type', 'report_mime_type', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_resource_info_by_report_definition" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'report_definition_name' is set + if ('report_definition_name' not in params) or (params['report_definition_name'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `report_definition_name` when calling `get_resource_info_by_report_definition`") + raise ValueError("Missing the required parameter `report_definition_name` when calling `get_resource_info_by_report_definition`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_info_by_report_definition`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + if 'report_definition_name' in params: + path_params['reportDefinitionName'] = params['report_definition_name'] + + query_params = [] + if 'subscription_type' in params: + query_params.append(('subscriptionType', params['subscription_type'])) + if 'report_mime_type' in params: + query_params.append(('reportMimeType', params['report_mime_type'])) + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/report-definitions/{report_definition_name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ReportingV3ReportDefinitionsNameGet200Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_resource_v2_info(self, **kwargs): + """ + Get Reporting Resource Information + View a list of supported reports and their attributes before subscribing to them. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_resource_v2_info(callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str subscription_type: Valid Values: - CLASSIC - CUSTOM - STANDARD + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportDefinitionsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_resource_v2_info` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_resource_v2_info_with_http_info(**kwargs) + else: + (data) = self.get_resource_v2_info_with_http_info(**kwargs) + return data + + def get_resource_v2_info_with_http_info(self, **kwargs): + """ + Get Reporting Resource Information + View a list of supported reports and their attributes before subscribing to them. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_resource_v2_info_with_http_info(callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str subscription_type: Valid Values: - CLASSIC - CUSTOM - STANDARD + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportDefinitionsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['subscription_type', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_resource_v2_info" % key + ) + params[key] = val + del params['kwargs'] + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_resource_v2_info`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'subscription_type' in params: + query_params.append(('subscriptionType', params['subscription_type'])) + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/report-definitions', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ReportingV3ReportDefinitionsGet200Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) diff --git a/CyberSource/apis/report_downloads_api.py b/CyberSource/api/report_downloads_api.py similarity index 97% rename from CyberSource/apis/report_downloads_api.py rename to CyberSource/api/report_downloads_api.py index 51ba1348..6cbcd413 100644 --- a/CyberSource/apis/report_downloads_api.py +++ b/CyberSource/api/report_downloads_api.py @@ -159,12 +159,10 @@ def download_report_with_http_info(self, report_date, report_name, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/xml', 'text/csv']) + header_params['Accept'] = self.api_client.select_header_accept(['application/xml', 'text/csv']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/report_subscriptions_api.py b/CyberSource/api/report_subscriptions_api.py similarity index 95% rename from CyberSource/apis/report_subscriptions_api.py rename to CyberSource/api/report_subscriptions_api.py index 01743ac6..cb332c88 100644 --- a/CyberSource/apis/report_subscriptions_api.py +++ b/CyberSource/api/report_subscriptions_api.py @@ -1,707 +1,697 @@ -# coding: utf-8 - -""" - CyberSource Merged Spec - - All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html - - OpenAPI spec version: 0.0.1 - - Generated by: https://github.com/swagger-api/swagger-codegen.git -""" - - -from __future__ import absolute_import - -import sys -import os -import re - -# python 2 and python 3 compatibility library -from six import iteritems - -from ..configuration import Configuration -from ..api_client import ApiClient -import CyberSource.logging.log_factory as LogFactory - - -class ReportSubscriptionsApi(object): - """ - NOTE: This class is auto generated by the swagger code generator program. - Do not edit the class manually. - Ref: https://github.com/swagger-api/swagger-codegen - """ - - def __init__(self, merchant_config, api_client=None): - config = Configuration() - if api_client: - self.api_client = api_client - else: - if not config.api_client: - config.api_client = ApiClient() - self.api_client = config.api_client - self.api_client.set_configuration(merchant_config) - self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) - - - - def create_standard_or_classic_subscription(self, predefined_subscription_request_bean, **kwargs): - """ - Create a Standard or Classic Subscription - Create or update an already existing classic or standard subscription. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_standard_or_classic_subscription(predefined_subscription_request_bean, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param PredefinedSubscriptionRequestBean predefined_subscription_request_bean: Report subscription request payload (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `create_standard_or_classic_subscription` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.create_standard_or_classic_subscription_with_http_info(predefined_subscription_request_bean, **kwargs) - else: - (data) = self.create_standard_or_classic_subscription_with_http_info(predefined_subscription_request_bean, **kwargs) - return data - - def create_standard_or_classic_subscription_with_http_info(self, predefined_subscription_request_bean, **kwargs): - """ - Create a Standard or Classic Subscription - Create or update an already existing classic or standard subscription. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_standard_or_classic_subscription_with_http_info(predefined_subscription_request_bean, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param PredefinedSubscriptionRequestBean predefined_subscription_request_bean: Report subscription request payload (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['predefined_subscription_request_bean', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method create_standard_or_classic_subscription" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'predefined_subscription_request_bean' is set - if ('predefined_subscription_request_bean' not in params) or (params['predefined_subscription_request_bean'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `predefined_subscription_request_bean` when calling `create_standard_or_classic_subscription`") - raise ValueError("Missing the required parameter `predefined_subscription_request_bean` when calling `create_standard_or_classic_subscription`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'predefined_subscription_request_bean' in params: - body_params = params['predefined_subscription_request_bean'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/predefined-report-subscriptions', 'PUT', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def create_subscription(self, create_report_subscription_request, **kwargs): - """ - Create Report Subscription for a Report Name by Organization - Create a report subscription for your organization. The report name must be unique. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_subscription(create_report_subscription_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param CreateReportSubscriptionRequest create_report_subscription_request: Report subscription request payload (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `create_subscription` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.create_subscription_with_http_info(create_report_subscription_request, **kwargs) - else: - (data) = self.create_subscription_with_http_info(create_report_subscription_request, **kwargs) - return data - - def create_subscription_with_http_info(self, create_report_subscription_request, **kwargs): - """ - Create Report Subscription for a Report Name by Organization - Create a report subscription for your organization. The report name must be unique. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_subscription_with_http_info(create_report_subscription_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param CreateReportSubscriptionRequest create_report_subscription_request: Report subscription request payload (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['create_report_subscription_request', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method create_subscription" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'create_report_subscription_request' is set - if ('create_report_subscription_request' not in params) or (params['create_report_subscription_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `create_report_subscription_request` when calling `create_subscription`") - raise ValueError("Missing the required parameter `create_report_subscription_request` when calling `create_subscription`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_subscription`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_subscription`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_subscription`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_subscription`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'create_report_subscription_request' in params: - body_params = params['create_report_subscription_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/report-subscriptions', 'PUT', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def delete_subscription(self, report_name, **kwargs): - """ - Delete Subscription of a Report Name by Organization - Delete a report subscription for your organization. You must know the unique name of the report you want to delete. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.delete_subscription(report_name, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_name: Name of the Report to Delete (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `delete_subscription` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.delete_subscription_with_http_info(report_name, **kwargs) - else: - (data) = self.delete_subscription_with_http_info(report_name, **kwargs) - return data - - def delete_subscription_with_http_info(self, report_name, **kwargs): - """ - Delete Subscription of a Report Name by Organization - Delete a report subscription for your organization. You must know the unique name of the report you want to delete. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.delete_subscription_with_http_info(report_name, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_name: Name of the Report to Delete (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['report_name', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method delete_subscription" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'report_name' is set - if ('report_name' not in params) or (params['report_name'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `report_name` when calling `delete_subscription`") - raise ValueError("Missing the required parameter `report_name` when calling `delete_subscription`") - - if 'report_name' in params and len(params['report_name']) > 80: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `delete_subscription`, length must be less than or equal to `80`") - raise ValueError("Invalid value for parameter `report_name` when calling `delete_subscription`, length must be less than or equal to `80`") - if 'report_name' in params and len(params['report_name']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `delete_subscription`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `report_name` when calling `delete_subscription`, length must be greater than or equal to `1`") - if 'report_name' in params and not re.search('[a-zA-Z0-9-_+]+', params['report_name']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") - raise ValueError("Invalid value for parameter `report_name` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - if 'report_name' in params: - path_params['reportName'] = params['report_name'] - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'DELETE' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/report-subscriptions/{report_name}', 'DELETE', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_all_subscriptions(self, **kwargs): - """ - Get All Subscriptions - View a summary of all report subscriptions. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_all_subscriptions(callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportSubscriptionsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_all_subscriptions` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_all_subscriptions_with_http_info(**kwargs) - else: - (data) = self.get_all_subscriptions_with_http_info(**kwargs) - return data - - def get_all_subscriptions_with_http_info(self, **kwargs): - """ - Get All Subscriptions - View a summary of all report subscriptions. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_all_subscriptions_with_http_info(callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportSubscriptionsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_all_subscriptions" % key - ) - params[key] = val - del params['kwargs'] - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/report-subscriptions', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='ReportingV3ReportSubscriptionsGet200Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_subscription(self, report_name, **kwargs): - """ - Get Subscription for Report Name - View the details of a report subscription, such as the report format or report frequency, using the report’s unique name. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_subscription(report_name, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_name: Name of the Report to Retrieve (required) - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportSubscriptionsGet200ResponseSubscriptions - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_subscription` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_subscription_with_http_info(report_name, **kwargs) - else: - (data) = self.get_subscription_with_http_info(report_name, **kwargs) - return data - - def get_subscription_with_http_info(self, report_name, **kwargs): - """ - Get Subscription for Report Name - View the details of a report subscription, such as the report format or report frequency, using the report’s unique name. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_subscription_with_http_info(report_name, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_name: Name of the Report to Retrieve (required) - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportSubscriptionsGet200ResponseSubscriptions - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['report_name', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_subscription" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'report_name' is set - if ('report_name' not in params) or (params['report_name'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `report_name` when calling `get_subscription`") - raise ValueError("Missing the required parameter `report_name` when calling `get_subscription`") - - if 'report_name' in params and len(params['report_name']) > 80: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `get_subscription`, length must be less than or equal to `80`") - raise ValueError("Invalid value for parameter `report_name` when calling `get_subscription`, length must be less than or equal to `80`") - if 'report_name' in params and len(params['report_name']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `get_subscription`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `report_name` when calling `get_subscription`, length must be greater than or equal to `1`") - if 'report_name' in params and not re.search('[a-zA-Z0-9-_+]+', params['report_name']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") - raise ValueError("Invalid value for parameter `report_name` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_subscription`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_subscription`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_subscription`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_subscription`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - if 'report_name' in params: - path_params['reportName'] = params['report_name'] - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/report-subscriptions/{report_name}', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='ReportingV3ReportSubscriptionsGet200ResponseSubscriptions', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import sys +import os +import re + +# python 2 and python 3 compatibility library +from six import iteritems + +from ..configuration import Configuration +from ..api_client import ApiClient +import CyberSource.logging.log_factory as LogFactory + + +class ReportSubscriptionsApi(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + Ref: https://github.com/swagger-api/swagger-codegen + """ + + def __init__(self, merchant_config, api_client=None): + config = Configuration() + if api_client: + self.api_client = api_client + else: + if not config.api_client: + config.api_client = ApiClient() + self.api_client = config.api_client + self.api_client.set_configuration(merchant_config) + self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) + + + + def create_standard_or_classic_subscription(self, predefined_subscription_request_bean, **kwargs): + """ + Create a Standard or Classic Subscription + Create or update an already existing classic or standard subscription. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_standard_or_classic_subscription(predefined_subscription_request_bean, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param PredefinedSubscriptionRequestBean predefined_subscription_request_bean: Report subscription request payload (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `create_standard_or_classic_subscription` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.create_standard_or_classic_subscription_with_http_info(predefined_subscription_request_bean, **kwargs) + else: + (data) = self.create_standard_or_classic_subscription_with_http_info(predefined_subscription_request_bean, **kwargs) + return data + + def create_standard_or_classic_subscription_with_http_info(self, predefined_subscription_request_bean, **kwargs): + """ + Create a Standard or Classic Subscription + Create or update an already existing classic or standard subscription. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_standard_or_classic_subscription_with_http_info(predefined_subscription_request_bean, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param PredefinedSubscriptionRequestBean predefined_subscription_request_bean: Report subscription request payload (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['predefined_subscription_request_bean', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method create_standard_or_classic_subscription" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'predefined_subscription_request_bean' is set + if ('predefined_subscription_request_bean' not in params) or (params['predefined_subscription_request_bean'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `predefined_subscription_request_bean` when calling `create_standard_or_classic_subscription`") + raise ValueError("Missing the required parameter `predefined_subscription_request_bean` when calling `create_standard_or_classic_subscription`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_standard_or_classic_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'predefined_subscription_request_bean' in params: + body_params = params['predefined_subscription_request_bean'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/predefined-report-subscriptions', 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def create_subscription(self, create_report_subscription_request, **kwargs): + """ + Create Report Subscription for a Report Name by Organization + Create a report subscription for your organization. The report name must be unique. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_subscription(create_report_subscription_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param CreateReportSubscriptionRequest create_report_subscription_request: Report subscription request payload (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `create_subscription` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.create_subscription_with_http_info(create_report_subscription_request, **kwargs) + else: + (data) = self.create_subscription_with_http_info(create_report_subscription_request, **kwargs) + return data + + def create_subscription_with_http_info(self, create_report_subscription_request, **kwargs): + """ + Create Report Subscription for a Report Name by Organization + Create a report subscription for your organization. The report name must be unique. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_subscription_with_http_info(create_report_subscription_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param CreateReportSubscriptionRequest create_report_subscription_request: Report subscription request payload (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['create_report_subscription_request', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method create_subscription" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'create_report_subscription_request' is set + if ('create_report_subscription_request' not in params) or (params['create_report_subscription_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `create_report_subscription_request` when calling `create_subscription`") + raise ValueError("Missing the required parameter `create_report_subscription_request` when calling `create_subscription`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_subscription`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_subscription`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_subscription`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_subscription`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'create_report_subscription_request' in params: + body_params = params['create_report_subscription_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/report-subscriptions', 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def delete_subscription(self, report_name, **kwargs): + """ + Delete Subscription of a Report Name by Organization + Delete a report subscription for your organization. You must know the unique name of the report you want to delete. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.delete_subscription(report_name, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_name: Name of the Report to Delete (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `delete_subscription` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.delete_subscription_with_http_info(report_name, **kwargs) + else: + (data) = self.delete_subscription_with_http_info(report_name, **kwargs) + return data + + def delete_subscription_with_http_info(self, report_name, **kwargs): + """ + Delete Subscription of a Report Name by Organization + Delete a report subscription for your organization. You must know the unique name of the report you want to delete. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.delete_subscription_with_http_info(report_name, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_name: Name of the Report to Delete (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['report_name', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_subscription" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'report_name' is set + if ('report_name' not in params) or (params['report_name'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `report_name` when calling `delete_subscription`") + raise ValueError("Missing the required parameter `report_name` when calling `delete_subscription`") + + if 'report_name' in params and len(params['report_name']) > 80: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `delete_subscription`, length must be less than or equal to `80`") + raise ValueError("Invalid value for parameter `report_name` when calling `delete_subscription`, length must be less than or equal to `80`") + if 'report_name' in params and len(params['report_name']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `delete_subscription`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `report_name` when calling `delete_subscription`, length must be greater than or equal to `1`") + if 'report_name' in params and not re.search('[a-zA-Z0-9-_+]+', params['report_name']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") + raise ValueError("Invalid value for parameter `report_name` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `delete_subscription`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `delete_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + if 'report_name' in params: + path_params['reportName'] = params['report_name'] + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'DELETE' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/report-subscriptions/{report_name}', 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_all_subscriptions(self, **kwargs): + """ + Get All Subscriptions + View a summary of all report subscriptions. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_all_subscriptions(callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportSubscriptionsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_all_subscriptions` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_all_subscriptions_with_http_info(**kwargs) + else: + (data) = self.get_all_subscriptions_with_http_info(**kwargs) + return data + + def get_all_subscriptions_with_http_info(self, **kwargs): + """ + Get All Subscriptions + View a summary of all report subscriptions. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_all_subscriptions_with_http_info(callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportSubscriptionsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_all_subscriptions" % key + ) + params[key] = val + del params['kwargs'] + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_all_subscriptions`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/report-subscriptions', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ReportingV3ReportSubscriptionsGet200Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_subscription(self, report_name, **kwargs): + """ + Get Subscription for Report Name + View the details of a report subscription, such as the report format or report frequency, using the report’s unique name. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_subscription(report_name, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_name: Name of the Report to Retrieve (required) + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportSubscriptionsGet200ResponseSubscriptions + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_subscription` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_subscription_with_http_info(report_name, **kwargs) + else: + (data) = self.get_subscription_with_http_info(report_name, **kwargs) + return data + + def get_subscription_with_http_info(self, report_name, **kwargs): + """ + Get Subscription for Report Name + View the details of a report subscription, such as the report format or report frequency, using the report’s unique name. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_subscription_with_http_info(report_name, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_name: Name of the Report to Retrieve (required) + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportSubscriptionsGet200ResponseSubscriptions + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['report_name', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_subscription" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'report_name' is set + if ('report_name' not in params) or (params['report_name'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `report_name` when calling `get_subscription`") + raise ValueError("Missing the required parameter `report_name` when calling `get_subscription`") + + if 'report_name' in params and len(params['report_name']) > 80: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `get_subscription`, length must be less than or equal to `80`") + raise ValueError("Invalid value for parameter `report_name` when calling `get_subscription`, length must be less than or equal to `80`") + if 'report_name' in params and len(params['report_name']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `get_subscription`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `report_name` when calling `get_subscription`, length must be greater than or equal to `1`") + if 'report_name' in params and not re.search('[a-zA-Z0-9-_+]+', params['report_name']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `report_name` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") + raise ValueError("Invalid value for parameter `report_name` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_+]+/`") + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_subscription`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_subscription`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_subscription`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_subscription`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_subscription`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + if 'report_name' in params: + path_params['reportName'] = params['report_name'] + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/report-subscriptions/{report_name}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ReportingV3ReportSubscriptionsGet200ResponseSubscriptions', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) diff --git a/CyberSource/apis/reports_api.py b/CyberSource/api/reports_api.py similarity index 95% rename from CyberSource/apis/reports_api.py rename to CyberSource/api/reports_api.py index a1fcd863..cfe627a1 100644 --- a/CyberSource/apis/reports_api.py +++ b/CyberSource/api/reports_api.py @@ -1,472 +1,466 @@ -# coding: utf-8 - -""" - CyberSource Merged Spec - - All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html - - OpenAPI spec version: 0.0.1 - - Generated by: https://github.com/swagger-api/swagger-codegen.git -""" - - -from __future__ import absolute_import - -import sys -import os -import re - -# python 2 and python 3 compatibility library -from six import iteritems - -from ..configuration import Configuration -from ..api_client import ApiClient -import CyberSource.logging.log_factory as LogFactory - - -class ReportsApi(object): - """ - NOTE: This class is auto generated by the swagger code generator program. - Do not edit the class manually. - Ref: https://github.com/swagger-api/swagger-codegen - """ - - def __init__(self, merchant_config, api_client=None): - config = Configuration() - if api_client: - self.api_client = api_client - else: - if not config.api_client: - config.api_client = ApiClient() - self.api_client = config.api_client - self.api_client.set_configuration(merchant_config) - self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) - - - - def create_report(self, create_adhoc_report_request, **kwargs): - """ - Create Adhoc Report - Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation) - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_report(create_adhoc_report_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param CreateAdhocReportRequest create_adhoc_report_request: Report subscription request payload (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `create_report` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.create_report_with_http_info(create_adhoc_report_request, **kwargs) - else: - (data) = self.create_report_with_http_info(create_adhoc_report_request, **kwargs) - return data - - def create_report_with_http_info(self, create_adhoc_report_request, **kwargs): - """ - Create Adhoc Report - Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation) - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_report_with_http_info(create_adhoc_report_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param CreateAdhocReportRequest create_adhoc_report_request: Report subscription request payload (required) - :param str organization_id: Valid Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['create_adhoc_report_request', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method create_report" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'create_adhoc_report_request' is set - if ('create_adhoc_report_request' not in params) or (params['create_adhoc_report_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `create_adhoc_report_request` when calling `create_report`") - raise ValueError("Missing the required parameter `create_adhoc_report_request` when calling `create_report`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_report`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_report`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_report`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_report`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_report`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `create_report`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'create_adhoc_report_request' in params: - body_params = params['create_adhoc_report_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/reports', 'POST', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_report_by_report_id(self, report_id, **kwargs): - """ - Get Report Based on Report Id - Download a report using the reportId value. If you don’t already know this value, you can obtain it using the Retrieve available reports call. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_report_by_report_id(report_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_id: Valid Report Id (required) - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportsIdGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_report_by_report_id` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_report_by_report_id_with_http_info(report_id, **kwargs) - else: - (data) = self.get_report_by_report_id_with_http_info(report_id, **kwargs) - return data - - def get_report_by_report_id_with_http_info(self, report_id, **kwargs): - """ - Get Report Based on Report Id - Download a report using the reportId value. If you don’t already know this value, you can obtain it using the Retrieve available reports call. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_report_by_report_id_with_http_info(report_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str report_id: Valid Report Id (required) - :param str organization_id: Valid Organization Id - :return: ReportingV3ReportsIdGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['report_id', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_report_by_report_id" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'report_id' is set - if ('report_id' not in params) or (params['report_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `report_id` when calling `get_report_by_report_id`") - raise ValueError("Missing the required parameter `report_id` when calling `get_report_by_report_id`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - if 'report_id' in params: - path_params['reportId'] = params['report_id'] - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/reports/{report_id}', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='ReportingV3ReportsIdGet200Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def search_reports(self, start_time, end_time, time_query_type, **kwargs): - """ - Retrieve Available Reports - Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.search_reports(start_time, end_time, time_query_type, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param datetime start_time: Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) - :param datetime end_time: Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) - :param str time_query_type: Specify time you would like to search Valid values: - reportTimeFrame - executedTime (required) - :param str organization_id: Valid Organization Id - :param str report_mime_type: Valid Report Format Valid values: - application/xml - text/csv - :param str report_frequency: Valid Report Frequency Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC - :param str report_name: Valid Report Name - :param int report_definition_id: Valid Report Definition Id - :param str report_status: Valid Report Status Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA - :return: ReportingV3ReportsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `search_reports` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.search_reports_with_http_info(start_time, end_time, time_query_type, **kwargs) - else: - (data) = self.search_reports_with_http_info(start_time, end_time, time_query_type, **kwargs) - return data - - def search_reports_with_http_info(self, start_time, end_time, time_query_type, **kwargs): - """ - Retrieve Available Reports - Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.search_reports_with_http_info(start_time, end_time, time_query_type, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param datetime start_time: Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) - :param datetime end_time: Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) - :param str time_query_type: Specify time you would like to search Valid values: - reportTimeFrame - executedTime (required) - :param str organization_id: Valid Organization Id - :param str report_mime_type: Valid Report Format Valid values: - application/xml - text/csv - :param str report_frequency: Valid Report Frequency Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC - :param str report_name: Valid Report Name - :param int report_definition_id: Valid Report Definition Id - :param str report_status: Valid Report Status Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA - :return: ReportingV3ReportsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['start_time', 'end_time', 'time_query_type', 'organization_id', 'report_mime_type', 'report_frequency', 'report_name', 'report_definition_id', 'report_status'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method search_reports" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'start_time' is set - if ('start_time' not in params) or (params['start_time'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `start_time` when calling `search_reports`") - raise ValueError("Missing the required parameter `start_time` when calling `search_reports`") - # verify the required parameter 'end_time' is set - if ('end_time' not in params) or (params['end_time'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `end_time` when calling `search_reports`") - raise ValueError("Missing the required parameter `end_time` when calling `search_reports`") - # verify the required parameter 'time_query_type' is set - if ('time_query_type' not in params) or (params['time_query_type'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `time_query_type` when calling `search_reports`") - raise ValueError("Missing the required parameter `time_query_type` when calling `search_reports`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `search_reports`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `search_reports`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `search_reports`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `search_reports`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `search_reports`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `search_reports`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - if 'start_time' in params: - query_params.append(('startTime', params['start_time'])) - if 'end_time' in params: - query_params.append(('endTime', params['end_time'])) - if 'time_query_type' in params: - query_params.append(('timeQueryType', params['time_query_type'])) - if 'report_mime_type' in params: - query_params.append(('reportMimeType', params['report_mime_type'])) - if 'report_frequency' in params: - query_params.append(('reportFrequency', params['report_frequency'])) - if 'report_name' in params: - query_params.append(('reportName', params['report_name'])) - if 'report_definition_id' in params: - query_params.append(('reportDefinitionId', params['report_definition_id'])) - if 'report_status' in params: - query_params.append(('reportStatus', params['report_status'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/reporting/v3/reports', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='ReportingV3ReportsGet200Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import sys +import os +import re + +# python 2 and python 3 compatibility library +from six import iteritems + +from ..configuration import Configuration +from ..api_client import ApiClient +import CyberSource.logging.log_factory as LogFactory + + +class ReportsApi(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + Ref: https://github.com/swagger-api/swagger-codegen + """ + + def __init__(self, merchant_config, api_client=None): + config = Configuration() + if api_client: + self.api_client = api_client + else: + if not config.api_client: + config.api_client = ApiClient() + self.api_client = config.api_client + self.api_client.set_configuration(merchant_config) + self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) + + + + def create_report(self, create_adhoc_report_request, **kwargs): + """ + Create Adhoc Report + Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation) + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_report(create_adhoc_report_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param CreateAdhocReportRequest create_adhoc_report_request: Report subscription request payload (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `create_report` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.create_report_with_http_info(create_adhoc_report_request, **kwargs) + else: + (data) = self.create_report_with_http_info(create_adhoc_report_request, **kwargs) + return data + + def create_report_with_http_info(self, create_adhoc_report_request, **kwargs): + """ + Create Adhoc Report + Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation) + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_report_with_http_info(create_adhoc_report_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param CreateAdhocReportRequest create_adhoc_report_request: Report subscription request payload (required) + :param str organization_id: Valid Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['create_adhoc_report_request', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method create_report" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'create_adhoc_report_request' is set + if ('create_adhoc_report_request' not in params) or (params['create_adhoc_report_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `create_adhoc_report_request` when calling `create_report`") + raise ValueError("Missing the required parameter `create_adhoc_report_request` when calling `create_report`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_report`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_report`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_report`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_report`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `create_report`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `create_report`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'create_adhoc_report_request' in params: + body_params = params['create_adhoc_report_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/reports', 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_report_by_report_id(self, report_id, **kwargs): + """ + Get Report Based on Report Id + Download a report using the reportId value. If you don’t already know this value, you can obtain it using the Retrieve available reports call. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_report_by_report_id(report_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_id: Valid Report Id (required) + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportsIdGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_report_by_report_id` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_report_by_report_id_with_http_info(report_id, **kwargs) + else: + (data) = self.get_report_by_report_id_with_http_info(report_id, **kwargs) + return data + + def get_report_by_report_id_with_http_info(self, report_id, **kwargs): + """ + Get Report Based on Report Id + Download a report using the reportId value. If you don’t already know this value, you can obtain it using the Retrieve available reports call. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_report_by_report_id_with_http_info(report_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str report_id: Valid Report Id (required) + :param str organization_id: Valid Organization Id + :return: ReportingV3ReportsIdGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['report_id', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_report_by_report_id" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'report_id' is set + if ('report_id' not in params) or (params['report_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `report_id` when calling `get_report_by_report_id`") + raise ValueError("Missing the required parameter `report_id` when calling `get_report_by_report_id`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_report_by_report_id`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + if 'report_id' in params: + path_params['reportId'] = params['report_id'] + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/reports/{report_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ReportingV3ReportsIdGet200Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def search_reports(self, start_time, end_time, time_query_type, **kwargs): + """ + Retrieve Available Reports + Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.search_reports(start_time, end_time, time_query_type, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param datetime start_time: Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) + :param datetime end_time: Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) + :param str time_query_type: Specify time you would like to search Valid values: - reportTimeFrame - executedTime (required) + :param str organization_id: Valid Organization Id + :param str report_mime_type: Valid Report Format Valid values: - application/xml - text/csv + :param str report_frequency: Valid Report Frequency Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC + :param str report_name: Valid Report Name + :param int report_definition_id: Valid Report Definition Id + :param str report_status: Valid Report Status Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA + :return: ReportingV3ReportsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `search_reports` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.search_reports_with_http_info(start_time, end_time, time_query_type, **kwargs) + else: + (data) = self.search_reports_with_http_info(start_time, end_time, time_query_type, **kwargs) + return data + + def search_reports_with_http_info(self, start_time, end_time, time_query_type, **kwargs): + """ + Retrieve Available Reports + Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.search_reports_with_http_info(start_time, end_time, time_query_type, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param datetime start_time: Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) + :param datetime end_time: Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd'T'HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z) (required) + :param str time_query_type: Specify time you would like to search Valid values: - reportTimeFrame - executedTime (required) + :param str organization_id: Valid Organization Id + :param str report_mime_type: Valid Report Format Valid values: - application/xml - text/csv + :param str report_frequency: Valid Report Frequency Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC + :param str report_name: Valid Report Name + :param int report_definition_id: Valid Report Definition Id + :param str report_status: Valid Report Status Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA + :return: ReportingV3ReportsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['start_time', 'end_time', 'time_query_type', 'organization_id', 'report_mime_type', 'report_frequency', 'report_name', 'report_definition_id', 'report_status'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method search_reports" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'start_time' is set + if ('start_time' not in params) or (params['start_time'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `start_time` when calling `search_reports`") + raise ValueError("Missing the required parameter `start_time` when calling `search_reports`") + # verify the required parameter 'end_time' is set + if ('end_time' not in params) or (params['end_time'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `end_time` when calling `search_reports`") + raise ValueError("Missing the required parameter `end_time` when calling `search_reports`") + # verify the required parameter 'time_query_type' is set + if ('time_query_type' not in params) or (params['time_query_type'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `time_query_type` when calling `search_reports`") + raise ValueError("Missing the required parameter `time_query_type` when calling `search_reports`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `search_reports`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `search_reports`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `search_reports`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `search_reports`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `search_reports`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `search_reports`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + if 'start_time' in params: + query_params.append(('startTime', params['start_time'])) + if 'end_time' in params: + query_params.append(('endTime', params['end_time'])) + if 'time_query_type' in params: + query_params.append(('timeQueryType', params['time_query_type'])) + if 'report_mime_type' in params: + query_params.append(('reportMimeType', params['report_mime_type'])) + if 'report_frequency' in params: + query_params.append(('reportFrequency', params['report_frequency'])) + if 'report_name' in params: + query_params.append(('reportName', params['report_name'])) + if 'report_definition_id' in params: + query_params.append(('reportDefinitionId', params['report_definition_id'])) + if 'report_status' in params: + query_params.append(('reportStatus', params['report_status'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/reporting/v3/reports', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='ReportingV3ReportsGet200Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) diff --git a/CyberSource/apis/retrieval_details_api.py b/CyberSource/api/retrieval_details_api.py similarity index 97% rename from CyberSource/apis/retrieval_details_api.py rename to CyberSource/api/retrieval_details_api.py index 8973b6bf..5cb47228 100644 --- a/CyberSource/apis/retrieval_details_api.py +++ b/CyberSource/api/retrieval_details_api.py @@ -159,12 +159,10 @@ def get_retrieval_details_with_http_info(self, start_time, end_time, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/retrieval_summaries_api.py b/CyberSource/api/retrieval_summaries_api.py similarity index 97% rename from CyberSource/apis/retrieval_summaries_api.py rename to CyberSource/api/retrieval_summaries_api.py index 86094750..d46cd49e 100644 --- a/CyberSource/apis/retrieval_summaries_api.py +++ b/CyberSource/api/retrieval_summaries_api.py @@ -159,12 +159,10 @@ def get_retrieval_summary_with_http_info(self, start_time, end_time, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json', 'application/xml']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json', 'application/xml']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/reversal_api.py b/CyberSource/api/reversal_api.py similarity index 95% rename from CyberSource/apis/reversal_api.py rename to CyberSource/api/reversal_api.py index 08450c44..8e725cd9 100644 --- a/CyberSource/apis/reversal_api.py +++ b/CyberSource/api/reversal_api.py @@ -141,12 +141,10 @@ def auth_reversal_with_http_info(self, id, auth_reversal_request, **kwargs): if 'auth_reversal_request' in params: body_params = params['auth_reversal_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -253,12 +251,10 @@ def mit_reversal_with_http_info(self, mit_reversal_request, **kwargs): if 'mit_reversal_request' in params: body_params = params['mit_reversal_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/search_transactions_api.py b/CyberSource/api/search_transactions_api.py similarity index 93% rename from CyberSource/apis/search_transactions_api.py rename to CyberSource/api/search_transactions_api.py index 2f9a9bd3..6f45e729 100644 --- a/CyberSource/apis/search_transactions_api.py +++ b/CyberSource/api/search_transactions_api.py @@ -1,272 +1,268 @@ -# coding: utf-8 - -""" - CyberSource Merged Spec - - All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html - - OpenAPI spec version: 0.0.1 - - Generated by: https://github.com/swagger-api/swagger-codegen.git -""" - - -from __future__ import absolute_import - -import sys -import os -import re - -# python 2 and python 3 compatibility library -from six import iteritems - -from ..configuration import Configuration -from ..api_client import ApiClient -import CyberSource.logging.log_factory as LogFactory - - -class SearchTransactionsApi(object): - """ - NOTE: This class is auto generated by the swagger code generator program. - Do not edit the class manually. - Ref: https://github.com/swagger-api/swagger-codegen - """ - - def __init__(self, merchant_config, api_client=None): - config = Configuration() - if api_client: - self.api_client = api_client - else: - if not config.api_client: - config.api_client = ApiClient() - self.api_client = config.api_client - self.api_client.set_configuration(merchant_config) - self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) - - - - def create_search(self, create_search_request, **kwargs): - """ - Create a Search Request - Create a search request. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_search(create_search_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param CreateSearchRequest create_search_request: (required) - :return: TssV2TransactionsPost201Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `create_search` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.create_search_with_http_info(create_search_request, **kwargs) - else: - (data) = self.create_search_with_http_info(create_search_request, **kwargs) - return data - - def create_search_with_http_info(self, create_search_request, **kwargs): - """ - Create a Search Request - Create a search request. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.create_search_with_http_info(create_search_request, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param CreateSearchRequest create_search_request: (required) - :return: TssV2TransactionsPost201Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['create_search_request'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method create_search" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'create_search_request' is set - if ('create_search_request' not in params) or (params['create_search_request'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `create_search_request` when calling `create_search`") - raise ValueError("Missing the required parameter `create_search_request` when calling `create_search`") - - - collection_formats = {} - - path_params = {} - - query_params = [] - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'create_search_request' in params: - body_params = params['create_search_request'] - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json;charset=utf-8']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tss/v2/searches', 'POST', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='TssV2TransactionsPost201Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_search(self, search_id, **kwargs): - """ - Get Search Results - Include the Search ID in the GET request to retrieve the search results. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_search(search_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str search_id: Search ID. (required) - :return: TssV2TransactionsPost201Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_search` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_search_with_http_info(search_id, **kwargs) - else: - (data) = self.get_search_with_http_info(search_id, **kwargs) - return data - - def get_search_with_http_info(self, search_id, **kwargs): - """ - Get Search Results - Include the Search ID in the GET request to retrieve the search results. - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_search_with_http_info(search_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str search_id: Search ID. (required) - :return: TssV2TransactionsPost201Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['search_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_search" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'search_id' is set - if ('search_id' not in params) or (params['search_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `search_id` when calling `get_search`") - raise ValueError("Missing the required parameter `search_id` when calling `get_search`") - - - collection_formats = {} - - path_params = {} - if 'search_id' in params: - path_params['searchId'] = params['search_id'] - - query_params = [] - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['*/*']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/tss/v2/searches/{search_id}', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='TssV2TransactionsPost201Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import sys +import os +import re + +# python 2 and python 3 compatibility library +from six import iteritems + +from ..configuration import Configuration +from ..api_client import ApiClient +import CyberSource.logging.log_factory as LogFactory + + +class SearchTransactionsApi(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + Ref: https://github.com/swagger-api/swagger-codegen + """ + + def __init__(self, merchant_config, api_client=None): + config = Configuration() + if api_client: + self.api_client = api_client + else: + if not config.api_client: + config.api_client = ApiClient() + self.api_client = config.api_client + self.api_client.set_configuration(merchant_config) + self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) + + + + def create_search(self, create_search_request, **kwargs): + """ + Create a Search Request + Create a search request. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_search(create_search_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param CreateSearchRequest create_search_request: (required) + :return: TssV2TransactionsPost201Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `create_search` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.create_search_with_http_info(create_search_request, **kwargs) + else: + (data) = self.create_search_with_http_info(create_search_request, **kwargs) + return data + + def create_search_with_http_info(self, create_search_request, **kwargs): + """ + Create a Search Request + Create a search request. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.create_search_with_http_info(create_search_request, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param CreateSearchRequest create_search_request: (required) + :return: TssV2TransactionsPost201Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['create_search_request'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method create_search" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'create_search_request' is set + if ('create_search_request' not in params) or (params['create_search_request'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `create_search_request` when calling `create_search`") + raise ValueError("Missing the required parameter `create_search_request` when calling `create_search`") + + + collection_formats = {} + + path_params = {} + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'create_search_request' in params: + body_params = params['create_search_request'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/json;charset=utf-8']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tss/v2/searches', 'POST', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TssV2TransactionsPost201Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_search(self, search_id, **kwargs): + """ + Get Search Results + Include the Search ID in the GET request to retrieve the search results. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_search(search_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str search_id: Search ID. (required) + :return: TssV2TransactionsPost201Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_search` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_search_with_http_info(search_id, **kwargs) + else: + (data) = self.get_search_with_http_info(search_id, **kwargs) + return data + + def get_search_with_http_info(self, search_id, **kwargs): + """ + Get Search Results + Include the Search ID in the GET request to retrieve the search results. + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_search_with_http_info(search_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str search_id: Search ID. (required) + :return: TssV2TransactionsPost201Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['search_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_search" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'search_id' is set + if ('search_id' not in params) or (params['search_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `search_id` when calling `get_search`") + raise ValueError("Missing the required parameter `search_id` when calling `get_search`") + + + collection_formats = {} + + path_params = {} + if 'search_id' in params: + path_params['searchId'] = params['search_id'] + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['*/*']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/tss/v2/searches/{search_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='TssV2TransactionsPost201Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) diff --git a/CyberSource/apis/secure_file_share_api.py b/CyberSource/api/secure_file_share_api.py similarity index 95% rename from CyberSource/apis/secure_file_share_api.py rename to CyberSource/api/secure_file_share_api.py index 3503afec..f4cfb996 100644 --- a/CyberSource/apis/secure_file_share_api.py +++ b/CyberSource/api/secure_file_share_api.py @@ -1,323 +1,319 @@ -# coding: utf-8 - -""" - CyberSource Merged Spec - - All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html - - OpenAPI spec version: 0.0.1 - - Generated by: https://github.com/swagger-api/swagger-codegen.git -""" - - -from __future__ import absolute_import - -import sys -import os -import re - -# python 2 and python 3 compatibility library -from six import iteritems - -from ..configuration import Configuration -from ..api_client import ApiClient -import CyberSource.logging.log_factory as LogFactory - - -class SecureFileShareApi(object): - """ - NOTE: This class is auto generated by the swagger code generator program. - Do not edit the class manually. - Ref: https://github.com/swagger-api/swagger-codegen - """ - - def __init__(self, merchant_config, api_client=None): - config = Configuration() - if api_client: - self.api_client = api_client - else: - if not config.api_client: - config.api_client = ApiClient() - self.api_client = config.api_client - self.api_client.set_configuration(merchant_config) - self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) - - - - def get_file(self, file_id, **kwargs): - """ - Download a File with File Identifier - Download a file for the given file identifier - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_file(file_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str file_id: Unique identifier for each file (required) - :param str organization_id: Valid Cybersource Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_file` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_file_with_http_info(file_id, **kwargs) - else: - (data) = self.get_file_with_http_info(file_id, **kwargs) - return data - - def get_file_with_http_info(self, file_id, **kwargs): - """ - Download a File with File Identifier - Download a file for the given file identifier - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_file_with_http_info(file_id, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param str file_id: Unique identifier for each file (required) - :param str organization_id: Valid Cybersource Organization Id - :return: None - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['file_id', 'organization_id'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_file" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'file_id' is set - if ('file_id' not in params) or (params['file_id'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `file_id` when calling `get_file`") - raise ValueError("Missing the required parameter `file_id` when calling `get_file`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_file`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_file`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_file`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - - collection_formats = {} - - path_params = {} - if 'file_id' in params: - path_params['fileId'] = params['file_id'] - - query_params = [] - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/xml', 'text/csv', 'application/pdf']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['*/*;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/sfs/v1/files/{file_id}', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type=None, - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) - - def get_file_detail(self, start_date, end_date, **kwargs): - """ - Get List of Files - Get list of files and it's information of them available inside the report directory - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_file_detail(start_date, end_date, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param date start_date: Valid start date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) - :param date end_date: Valid end date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) - :param str organization_id: Valid Cybersource Organization Id - :param str name: **Tailored to searches for specific files with in given Date range** example : MyTransactionDetailreport.xml - :return: V1FileDetailsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - if self.api_client.mconfig.log_config.enable_log: - self.logger.info("CALL TO METHOD `get_file_detail` STARTED") - - kwargs['_return_http_data_only'] = True - if kwargs.get('callback'): - return self.get_file_detail_with_http_info(start_date, end_date, **kwargs) - else: - (data) = self.get_file_detail_with_http_info(start_date, end_date, **kwargs) - return data - - def get_file_detail_with_http_info(self, start_date, end_date, **kwargs): - """ - Get List of Files - Get list of files and it's information of them available inside the report directory - This method makes a synchronous HTTP request by default. To make an - asynchronous HTTP request, please define a `callback` function - to be invoked when receiving the response. - >>> def callback_function(response): - >>> pprint(response) - >>> - >>> thread = api.get_file_detail_with_http_info(start_date, end_date, callback=callback_function) - - :param callback function: The callback function - for asynchronous request. (optional) - :param date start_date: Valid start date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) - :param date end_date: Valid end date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) - :param str organization_id: Valid Cybersource Organization Id - :param str name: **Tailored to searches for specific files with in given Date range** example : MyTransactionDetailreport.xml - :return: V1FileDetailsGet200Response - If the method is called asynchronously, - returns the request thread. - """ - - all_params = ['start_date', 'end_date', 'organization_id', 'name'] - all_params.append('callback') - all_params.append('_return_http_data_only') - all_params.append('_preload_content') - all_params.append('_request_timeout') - - params = locals() - for key, val in iteritems(params['kwargs']): - if key not in all_params: - raise TypeError( - "Got an unexpected keyword argument '%s'" - " to method get_file_detail" % key - ) - params[key] = val - del params['kwargs'] - # verify the required parameter 'start_date' is set - if ('start_date' not in params) or (params['start_date'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `start_date` when calling `get_file_detail`") - raise ValueError("Missing the required parameter `start_date` when calling `get_file_detail`") - # verify the required parameter 'end_date' is set - if ('end_date' not in params) or (params['end_date'] is None): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Missing the required parameter `end_date` when calling `get_file_detail`") - raise ValueError("Missing the required parameter `end_date` when calling `get_file_detail`") - - if 'organization_id' in params and len(params['organization_id']) > 32: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be less than or equal to `32`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be less than or equal to `32`") - if 'organization_id' in params and len(params['organization_id']) < 1: - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be greater than or equal to `1`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be greater than or equal to `1`") - if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - raise ValueError("Invalid value for parameter `organization_id` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") - if 'name' in params and not re.search('[a-zA-Z0-9-_\\.]+', params['name']): - if self.api_client.mconfig.log_config.enable_log: - self.logger.error("InvalidArgumentException : Invalid value for parameter `name` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_\\.]+/`") - raise ValueError("Invalid value for parameter `name` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_\\.]+/`") - - collection_formats = {} - - path_params = {} - - query_params = [] - if 'start_date' in params: - query_params.append(('startDate', params['start_date'])) - if 'end_date' in params: - query_params.append(('endDate', params['end_date'])) - if 'organization_id' in params: - query_params.append(('organizationId', params['organization_id'])) - if 'name' in params: - query_params.append(('name', params['name'])) - - header_params = {} - - form_params = [] - local_var_files = {} - - body_params = None - if 'GET' in ('POST'): - body_params = '{}' - # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) - - # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['*/*;charset=utf-8']) - - # Authentication setting - auth_settings = [] - - return self.api_client.call_api(f'/sfs/v1/file-details', 'GET', - path_params, - query_params, - header_params, - body=body_params, - post_params=form_params, - files=local_var_files, - response_type='V1FileDetailsGet200Response', - auth_settings=auth_settings, - callback=params.get('callback'), - _return_http_data_only=params.get('_return_http_data_only'), - _preload_content=params.get('_preload_content', True), - _request_timeout=params.get('_request_timeout'), - collection_formats=collection_formats) +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import sys +import os +import re + +# python 2 and python 3 compatibility library +from six import iteritems + +from ..configuration import Configuration +from ..api_client import ApiClient +import CyberSource.logging.log_factory as LogFactory + + +class SecureFileShareApi(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + Ref: https://github.com/swagger-api/swagger-codegen + """ + + def __init__(self, merchant_config, api_client=None): + config = Configuration() + if api_client: + self.api_client = api_client + else: + if not config.api_client: + config.api_client = ApiClient() + self.api_client = config.api_client + self.api_client.set_configuration(merchant_config) + self.logger = LogFactory.setup_logger(self.__class__.__name__, self.api_client.mconfig.log_config) + + + + def get_file(self, file_id, **kwargs): + """ + Download a File with File Identifier + Download a file for the given file identifier + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_file(file_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str file_id: Unique identifier for each file (required) + :param str organization_id: Valid Cybersource Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_file` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_file_with_http_info(file_id, **kwargs) + else: + (data) = self.get_file_with_http_info(file_id, **kwargs) + return data + + def get_file_with_http_info(self, file_id, **kwargs): + """ + Download a File with File Identifier + Download a file for the given file identifier + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_file_with_http_info(file_id, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param str file_id: Unique identifier for each file (required) + :param str organization_id: Valid Cybersource Organization Id + :return: None + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['file_id', 'organization_id'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_file" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'file_id' is set + if ('file_id' not in params) or (params['file_id'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `file_id` when calling `get_file`") + raise ValueError("Missing the required parameter `file_id` when calling `get_file`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_file`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_file`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_file`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + + collection_formats = {} + + path_params = {} + if 'file_id' in params: + path_params['fileId'] = params['file_id'] + + query_params = [] + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/xml', 'text/csv', 'application/pdf']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['*/*;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/sfs/v1/files/{file_id}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type=None, + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + + def get_file_detail(self, start_date, end_date, **kwargs): + """ + Get List of Files + Get list of files and it's information of them available inside the report directory + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_file_detail(start_date, end_date, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param date start_date: Valid start date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) + :param date end_date: Valid end date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) + :param str organization_id: Valid Cybersource Organization Id + :param str name: **Tailored to searches for specific files with in given Date range** example : MyTransactionDetailreport.xml + :return: V1FileDetailsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + if self.api_client.mconfig.log_config.enable_log: + self.logger.info("CALL TO METHOD `get_file_detail` STARTED") + + kwargs['_return_http_data_only'] = True + if kwargs.get('callback'): + return self.get_file_detail_with_http_info(start_date, end_date, **kwargs) + else: + (data) = self.get_file_detail_with_http_info(start_date, end_date, **kwargs) + return data + + def get_file_detail_with_http_info(self, start_date, end_date, **kwargs): + """ + Get List of Files + Get list of files and it's information of them available inside the report directory + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please define a `callback` function + to be invoked when receiving the response. + >>> def callback_function(response): + >>> pprint(response) + >>> + >>> thread = api.get_file_detail_with_http_info(start_date, end_date, callback=callback_function) + + :param callback function: The callback function + for asynchronous request. (optional) + :param date start_date: Valid start date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) + :param date end_date: Valid end date in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14) **Example date format:** - yyyy-MM-dd (required) + :param str organization_id: Valid Cybersource Organization Id + :param str name: **Tailored to searches for specific files with in given Date range** example : MyTransactionDetailreport.xml + :return: V1FileDetailsGet200Response + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['start_date', 'end_date', 'organization_id', 'name'] + all_params.append('callback') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_file_detail" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'start_date' is set + if ('start_date' not in params) or (params['start_date'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `start_date` when calling `get_file_detail`") + raise ValueError("Missing the required parameter `start_date` when calling `get_file_detail`") + # verify the required parameter 'end_date' is set + if ('end_date' not in params) or (params['end_date'] is None): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Missing the required parameter `end_date` when calling `get_file_detail`") + raise ValueError("Missing the required parameter `end_date` when calling `get_file_detail`") + + if 'organization_id' in params and len(params['organization_id']) > 32: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be less than or equal to `32`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be less than or equal to `32`") + if 'organization_id' in params and len(params['organization_id']) < 1: + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be greater than or equal to `1`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_file_detail`, length must be greater than or equal to `1`") + if 'organization_id' in params and not re.search('[a-zA-Z0-9-_]+', params['organization_id']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `organization_id` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + raise ValueError("Invalid value for parameter `organization_id` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_]+/`") + if 'name' in params and not re.search('[a-zA-Z0-9-_\\.]+', params['name']): + if self.api_client.mconfig.log_config.enable_log: + self.logger.error("InvalidArgumentException : Invalid value for parameter `name` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_\\.]+/`") + raise ValueError("Invalid value for parameter `name` when calling `get_file_detail`, must conform to the pattern `/[a-zA-Z0-9-_\\.]+/`") + + collection_formats = {} + + path_params = {} + + query_params = [] + if 'start_date' in params: + query_params.append(('startDate', params['start_date'])) + if 'end_date' in params: + query_params.append(('endDate', params['end_date'])) + if 'organization_id' in params: + query_params.append(('organizationId', params['organization_id'])) + if 'name' in params: + query_params.append(('name', params['name'])) + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'GET' in ('POST'): + body_params = '{}' + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type(['*/*;charset=utf-8']) + + # Authentication setting + auth_settings = [] + + return self.api_client.call_api(f'/sfs/v1/file-details', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='V1FileDetailsGet200Response', + auth_settings=auth_settings, + callback=params.get('callback'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) diff --git a/CyberSource/apis/subscriptions_api.py b/CyberSource/api/subscriptions_api.py similarity index 94% rename from CyberSource/apis/subscriptions_api.py rename to CyberSource/api/subscriptions_api.py index 1db73273..45953bdc 100644 --- a/CyberSource/apis/subscriptions_api.py +++ b/CyberSource/api/subscriptions_api.py @@ -136,12 +136,10 @@ def activate_subscription_with_http_info(self, id, **kwargs): if 'activate_subscription_request' in params: body_params = params['activate_subscription_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -252,12 +250,10 @@ def cancel_subscription_with_http_info(self, id, **kwargs): if 'cancel_subscription_request' in params: body_params = params['cancel_subscription_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -364,12 +360,10 @@ def create_subscription_with_http_info(self, create_subscription_request, **kwar if 'create_subscription_request' in params: body_params = params['create_subscription_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -485,12 +479,10 @@ def get_all_subscriptions_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -599,12 +591,10 @@ def get_subscription_with_http_info(self, id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -703,12 +693,10 @@ def get_subscription_code_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -819,12 +807,10 @@ def suspend_subscription_with_http_info(self, id, **kwargs): if 'suspend_subscription_request' in params: body_params = params['suspend_subscription_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -940,12 +926,10 @@ def update_subscription_with_http_info(self, id, update_subscription, **kwargs): if 'update_subscription' in params: body_params = params['update_subscription'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/symmetric_key_management_api.py b/CyberSource/api/symmetric_key_management_api.py similarity index 95% rename from CyberSource/apis/symmetric_key_management_api.py rename to CyberSource/api/symmetric_key_management_api.py index e2d10111..4b885b9f 100644 --- a/CyberSource/apis/symmetric_key_management_api.py +++ b/CyberSource/api/symmetric_key_management_api.py @@ -132,12 +132,10 @@ def create_v2_shared_secret_keys_with_http_info(self, create_shared_secret_keys_ if 'create_shared_secret_keys_request' in params: body_params = params['create_shared_secret_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -253,12 +251,10 @@ def create_v2_shared_secret_keys_verifi_with_http_info(self, v_ic_domain, create if 'create_shared_secret_keys_verifi_request' in params: body_params = params['create_shared_secret_keys_verifi_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -365,12 +361,10 @@ def delete_bulk_symmetric_keys_with_http_info(self, delete_bulk_symmetric_keys_r if 'delete_bulk_symmetric_keys_request' in params: body_params = params['delete_bulk_symmetric_keys_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -479,12 +473,10 @@ def get_key_details_with_http_info(self, key_id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/taxes_api.py b/CyberSource/api/taxes_api.py similarity index 96% rename from CyberSource/apis/taxes_api.py rename to CyberSource/api/taxes_api.py index cef2fa73..6d269661 100644 --- a/CyberSource/apis/taxes_api.py +++ b/CyberSource/api/taxes_api.py @@ -132,12 +132,10 @@ def calculate_tax_with_http_info(self, tax_request, **kwargs): if 'tax_request' in params: body_params = params['tax_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -253,12 +251,10 @@ def void_tax_with_http_info(self, void_tax_request, id, **kwargs): if 'void_tax_request' in params: body_params = params['void_tax_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/token_api.py b/CyberSource/api/token_api.py similarity index 97% rename from CyberSource/apis/token_api.py rename to CyberSource/api/token_api.py index fdbc34fa..da8784e0 100644 --- a/CyberSource/apis/token_api.py +++ b/CyberSource/api/token_api.py @@ -154,12 +154,10 @@ def post_token_payment_credentials_with_http_info(self, token_id, **kwargs): if 'POST' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/jose;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/jose;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/transaction_batches_api.py b/CyberSource/api/transaction_batches_api.py similarity index 95% rename from CyberSource/apis/transaction_batches_api.py rename to CyberSource/api/transaction_batches_api.py index f25d5b66..bf78b693 100644 --- a/CyberSource/apis/transaction_batches_api.py +++ b/CyberSource/api/transaction_batches_api.py @@ -142,12 +142,10 @@ def get_transaction_batch_details_with_http_info(self, id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['text/csv', 'application/xml', 'text/vnd.cybersource.map-csv']) + header_params['Accept'] = self.api_client.select_header_accept(['text/csv', 'application/xml', 'text/vnd.cybersource.map-csv']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -256,12 +254,10 @@ def get_transaction_batch_id_with_http_info(self, id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -379,12 +375,10 @@ def get_transaction_batches_with_http_info(self, start_time, end_time, **kwargs) if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/transaction_details_api.py b/CyberSource/api/transaction_details_api.py similarity index 95% rename from CyberSource/apis/transaction_details_api.py rename to CyberSource/api/transaction_details_api.py index ce80a66d..780ba1eb 100644 --- a/CyberSource/apis/transaction_details_api.py +++ b/CyberSource/api/transaction_details_api.py @@ -134,12 +134,10 @@ def get_transaction_with_http_info(self, id, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/transient_token_data_api.py b/CyberSource/api/transient_token_data_api.py similarity index 96% rename from CyberSource/apis/transient_token_data_api.py rename to CyberSource/api/transient_token_data_api.py index c9e18209..41b34913 100644 --- a/CyberSource/apis/transient_token_data_api.py +++ b/CyberSource/api/transient_token_data_api.py @@ -134,12 +134,10 @@ def get_transaction_for_transient_token_with_http_info(self, transient_token, ** if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json']) + header_params['Accept'] = self.api_client.select_header_accept(['application/json']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/unified_checkout_capture_context_api.py b/CyberSource/api/unified_checkout_capture_context_api.py similarity index 96% rename from CyberSource/apis/unified_checkout_capture_context_api.py rename to CyberSource/api/unified_checkout_capture_context_api.py index 60e6a4ca..b9c7ab71 100644 --- a/CyberSource/apis/unified_checkout_capture_context_api.py +++ b/CyberSource/api/unified_checkout_capture_context_api.py @@ -132,12 +132,10 @@ def generate_unified_checkout_capture_context_with_http_info(self, generate_unif if 'generate_unified_checkout_capture_context_request' in params: body_params = params['generate_unified_checkout_capture_context_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/jwt']) + header_params['Accept'] = self.api_client.select_header_accept(['application/jwt']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/user_management_api.py b/CyberSource/api/user_management_api.py similarity index 96% rename from CyberSource/apis/user_management_api.py rename to CyberSource/api/user_management_api.py index 5c9ffb4f..8da6d3ea 100644 --- a/CyberSource/apis/user_management_api.py +++ b/CyberSource/api/user_management_api.py @@ -141,12 +141,10 @@ def get_users_with_http_info(self, **kwargs): if 'GET' in ('POST'): body_params = '{}' # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/user_management_search_api.py b/CyberSource/api/user_management_search_api.py similarity index 96% rename from CyberSource/apis/user_management_search_api.py rename to CyberSource/api/user_management_search_api.py index 35991bec..c0b89c92 100644 --- a/CyberSource/apis/user_management_search_api.py +++ b/CyberSource/api/user_management_search_api.py @@ -132,12 +132,10 @@ def search_users_with_http_info(self, search_request, **kwargs): if 'search_request' in params: body_params = params['search_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/verification_api.py b/CyberSource/api/verification_api.py similarity index 95% rename from CyberSource/apis/verification_api.py rename to CyberSource/api/verification_api.py index 5102732b..38b51823 100644 --- a/CyberSource/apis/verification_api.py +++ b/CyberSource/api/verification_api.py @@ -132,12 +132,10 @@ def validate_export_compliance_with_http_info(self, validate_export_compliance_r if 'validate_export_compliance_request' in params: body_params = params['validate_export_compliance_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -244,12 +242,10 @@ def verify_customer_address_with_http_info(self, verify_customer_address_request if 'verify_customer_address_request' in params: body_params = params['verify_customer_address_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/apis/void_api.py b/CyberSource/api/void_api.py similarity index 95% rename from CyberSource/apis/void_api.py rename to CyberSource/api/void_api.py index 835ab558..d2f10195 100644 --- a/CyberSource/apis/void_api.py +++ b/CyberSource/api/void_api.py @@ -132,12 +132,10 @@ def mit_void_with_http_info(self, mit_void_request, **kwargs): if 'mit_void_request' in params: body_params = params['mit_void_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -253,12 +251,10 @@ def void_capture_with_http_info(self, void_capture_request, id, **kwargs): if 'void_capture_request' in params: body_params = params['void_capture_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -374,12 +370,10 @@ def void_credit_with_http_info(self, void_credit_request, id, **kwargs): if 'void_credit_request' in params: body_params = params['void_credit_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -495,12 +489,10 @@ def void_payment_with_http_info(self, void_payment_request, id, **kwargs): if 'void_payment_request' in params: body_params = params['void_payment_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] @@ -616,12 +608,10 @@ def void_refund_with_http_info(self, void_refund_request, id, **kwargs): if 'void_refund_request' in params: body_params = params['void_refund_request'] # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept(['application/hal+json;charset=utf-8']) + header_params['Accept'] = self.api_client.select_header_accept(['application/hal+json;charset=utf-8']) # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json;charset=utf-8']) + header_params['Content-Type'] = self.api_client.select_header_content_type(['application/json;charset=utf-8']) # Authentication setting auth_settings = [] diff --git a/CyberSource/models/__init__.py b/CyberSource/models/__init__.py index 73088f98..3c50ecef 100644 --- a/CyberSource/models/__init__.py +++ b/CyberSource/models/__init__.py @@ -162,6 +162,7 @@ from .invoicing_v2_invoices_post202_response import InvoicingV2InvoicesPost202Response from .invoicingv2invoice_settings_invoice_settings_information import Invoicingv2invoiceSettingsInvoiceSettingsInformation from .invoicingv2invoices_customer_information import Invoicingv2invoicesCustomerInformation +from .invoicingv2invoices_customer_information_company import Invoicingv2invoicesCustomerInformationCompany from .invoicingv2invoices_invoice_information import Invoicingv2invoicesInvoiceInformation from .invoicingv2invoices_order_information import Invoicingv2invoicesOrderInformation from .invoicingv2invoices_order_information_amount_details import Invoicingv2invoicesOrderInformationAmountDetails @@ -844,12 +845,17 @@ from .tss_v2_transactions_get200_response_payment_information_bank import TssV2TransactionsGet200ResponsePaymentInformationBank from .tss_v2_transactions_get200_response_payment_information_bank_account import TssV2TransactionsGet200ResponsePaymentInformationBankAccount from .tss_v2_transactions_get200_response_payment_information_bank_mandate import TssV2TransactionsGet200ResponsePaymentInformationBankMandate +from .tss_v2_transactions_get200_response_payment_information_brands import TssV2TransactionsGet200ResponsePaymentInformationBrands from .tss_v2_transactions_get200_response_payment_information_card import TssV2TransactionsGet200ResponsePaymentInformationCard from .tss_v2_transactions_get200_response_payment_information_customer import TssV2TransactionsGet200ResponsePaymentInformationCustomer +from .tss_v2_transactions_get200_response_payment_information_features import TssV2TransactionsGet200ResponsePaymentInformationFeatures from .tss_v2_transactions_get200_response_payment_information_fluid_data import TssV2TransactionsGet200ResponsePaymentInformationFluidData from .tss_v2_transactions_get200_response_payment_information_instrument_identifier import TssV2TransactionsGet200ResponsePaymentInformationInstrumentIdentifier from .tss_v2_transactions_get200_response_payment_information_invoice import TssV2TransactionsGet200ResponsePaymentInformationInvoice +from .tss_v2_transactions_get200_response_payment_information_issuer_information import TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation +from .tss_v2_transactions_get200_response_payment_information_network import TssV2TransactionsGet200ResponsePaymentInformationNetwork from .tss_v2_transactions_get200_response_payment_information_payment_type import TssV2TransactionsGet200ResponsePaymentInformationPaymentType +from .tss_v2_transactions_get200_response_payout_options import TssV2TransactionsGet200ResponsePayoutOptions from .tss_v2_transactions_get200_response_point_of_sale_information import TssV2TransactionsGet200ResponsePointOfSaleInformation from .tss_v2_transactions_get200_response_processing_information import TssV2TransactionsGet200ResponseProcessingInformation from .tss_v2_transactions_get200_response_processing_information_authorization_options import TssV2TransactionsGet200ResponseProcessingInformationAuthorizationOptions diff --git a/CyberSource/models/body.py b/CyberSource/models/body.py index 057e85be..84166ea9 100644 --- a/CyberSource/models/body.py +++ b/CyberSource/models/body.py @@ -56,8 +56,7 @@ def __init__(self, type='oneOff', included=None, merchant_reference=None, notifi if type is not None: self.type = type - if included is not None: - self.included = included + self.included = included if merchant_reference is not None: self.merchant_reference = merchant_reference self.notification_email = notification_email @@ -103,6 +102,8 @@ def included(self, included): :param included: The included of this Body. :type: Accountupdaterv1batchesIncluded """ + if included is None: + raise ValueError("Invalid value for `included`, must not be `None`") self._included = included diff --git a/CyberSource/models/create_bundled_decision_manager_case_request.py b/CyberSource/models/create_bundled_decision_manager_case_request.py index 0005a3d0..e2642c5d 100644 --- a/CyberSource/models/create_bundled_decision_manager_case_request.py +++ b/CyberSource/models/create_bundled_decision_manager_case_request.py @@ -95,8 +95,7 @@ def __init__(self, client_reference_information=None, processor_information=None self.processing_information = processing_information if payment_information is not None: self.payment_information = payment_information - if order_information is not None: - self.order_information = order_information + self.order_information = order_information if buyer_information is not None: self.buyer_information = buyer_information if device_information is not None: @@ -220,6 +219,8 @@ def order_information(self, order_information): :param order_information: The order_information of this CreateBundledDecisionManagerCaseRequest. :type: Riskv1decisionsOrderInformation """ + if order_information is None: + raise ValueError("Invalid value for `order_information`, must not be `None`") self._order_information = order_information diff --git a/CyberSource/models/fraud_marking_action_request.py b/CyberSource/models/fraud_marking_action_request.py index bb7ef3ea..85944793 100644 --- a/CyberSource/models/fraud_marking_action_request.py +++ b/CyberSource/models/fraud_marking_action_request.py @@ -48,8 +48,7 @@ def __init__(self, risk_information=None, client_reference_information=None): self._risk_information = None self._client_reference_information = None - if risk_information is not None: - self.risk_information = risk_information + self.risk_information = risk_information if client_reference_information is not None: self.client_reference_information = client_reference_information @@ -71,6 +70,8 @@ def risk_information(self, risk_information): :param risk_information: The risk_information of this FraudMarkingActionRequest. :type: Riskv1decisionsidmarkingRiskInformation """ + if risk_information is None: + raise ValueError("Invalid value for `risk_information`, must not be `None`") self._risk_information = risk_information diff --git a/CyberSource/models/invoicing_v2_invoice_settings_get200_response_invoice_settings_information.py b/CyberSource/models/invoicing_v2_invoice_settings_get200_response_invoice_settings_information.py index 7e2ab156..fabfc980 100644 --- a/CyberSource/models/invoicing_v2_invoice_settings_get200_response_invoice_settings_information.py +++ b/CyberSource/models/invoicing_v2_invoice_settings_get200_response_invoice_settings_information.py @@ -38,7 +38,9 @@ class InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation(object) 'header_style': 'InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformationHeaderStyle', 'delivery_language': 'str', 'default_currency_code': 'str', - 'payer_authentication3_ds_version': 'str' + 'payer_authentication3_ds_version': 'bool', + 'show_vat_number': 'bool', + 'vat_registration_number': 'str' } attribute_map = { @@ -49,10 +51,12 @@ class InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation(object) 'header_style': 'headerStyle', 'delivery_language': 'deliveryLanguage', 'default_currency_code': 'defaultCurrencyCode', - 'payer_authentication3_ds_version': 'payerAuthentication3DSVersion' + 'payer_authentication3_ds_version': 'payerAuthentication3DSVersion', + 'show_vat_number': 'showVatNumber', + 'vat_registration_number': 'vatRegistrationNumber' } - def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_message=None, enable_reminders=None, header_style=None, delivery_language=None, default_currency_code=None, payer_authentication3_ds_version=None): + def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_message=None, enable_reminders=None, header_style=None, delivery_language=None, default_currency_code=None, payer_authentication3_ds_version=False, show_vat_number=False, vat_registration_number=None): """ InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation - a model defined in Swagger """ @@ -65,6 +69,8 @@ def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_ self._delivery_language = None self._default_currency_code = None self._payer_authentication3_ds_version = None + self._show_vat_number = None + self._vat_registration_number = None if merchant_logo is not None: self.merchant_logo = merchant_logo @@ -82,6 +88,10 @@ def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_ self.default_currency_code = default_currency_code if payer_authentication3_ds_version is not None: self.payer_authentication3_ds_version = payer_authentication3_ds_version + if show_vat_number is not None: + self.show_vat_number = show_vat_number + if vat_registration_number is not None: + self.vat_registration_number = vat_registration_number @property def merchant_logo(self): @@ -246,10 +256,10 @@ def default_currency_code(self, default_currency_code): def payer_authentication3_ds_version(self): """ Gets the payer_authentication3_ds_version of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. - The 3D Secure payer authentication version or status for a merchant's invoice payments. Possible values are: - `1` - `2` - `None` - `Disabled` + The 3D Secure payer authentication status for a merchant's invoice payments. :return: The payer_authentication3_ds_version of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. - :rtype: str + :rtype: bool """ return self._payer_authentication3_ds_version @@ -257,14 +267,60 @@ def payer_authentication3_ds_version(self): def payer_authentication3_ds_version(self, payer_authentication3_ds_version): """ Sets the payer_authentication3_ds_version of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. - The 3D Secure payer authentication version or status for a merchant's invoice payments. Possible values are: - `1` - `2` - `None` - `Disabled` + The 3D Secure payer authentication status for a merchant's invoice payments. :param payer_authentication3_ds_version: The payer_authentication3_ds_version of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. - :type: str + :type: bool """ self._payer_authentication3_ds_version = payer_authentication3_ds_version + @property + def show_vat_number(self): + """ + Gets the show_vat_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + Display VAT number on Invoice. + + :return: The show_vat_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + :rtype: bool + """ + return self._show_vat_number + + @show_vat_number.setter + def show_vat_number(self, show_vat_number): + """ + Sets the show_vat_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + Display VAT number on Invoice. + + :param show_vat_number: The show_vat_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + :type: bool + """ + + self._show_vat_number = show_vat_number + + @property + def vat_registration_number(self): + """ + Gets the vat_registration_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + Your government-assigned tax identification number. #### Tax Calculation Required field for value added tax only. Not applicable to U.S. and Canadian taxes. + + :return: The vat_registration_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + :rtype: str + """ + return self._vat_registration_number + + @vat_registration_number.setter + def vat_registration_number(self, vat_registration_number): + """ + Sets the vat_registration_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + Your government-assigned tax identification number. #### Tax Calculation Required field for value added tax only. Not applicable to U.S. and Canadian taxes. + + :param vat_registration_number: The vat_registration_number of this InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation. + :type: str + """ + + self._vat_registration_number = vat_registration_number + def to_dict(self): """ Returns the model properties as a dict diff --git a/CyberSource/models/invoicingv2invoice_settings_invoice_settings_information.py b/CyberSource/models/invoicingv2invoice_settings_invoice_settings_information.py index 79f7fb0d..1a7992cc 100644 --- a/CyberSource/models/invoicingv2invoice_settings_invoice_settings_information.py +++ b/CyberSource/models/invoicingv2invoice_settings_invoice_settings_information.py @@ -38,7 +38,9 @@ class Invoicingv2invoiceSettingsInvoiceSettingsInformation(object): 'header_style': 'InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformationHeaderStyle', 'delivery_language': 'str', 'default_currency_code': 'str', - 'payer_authentication_in_invoicing': 'str' + 'payer_authentication_in_invoicing': 'str', + 'show_vat_number': 'bool', + 'vat_registration_number': 'str' } attribute_map = { @@ -49,10 +51,12 @@ class Invoicingv2invoiceSettingsInvoiceSettingsInformation(object): 'header_style': 'headerStyle', 'delivery_language': 'deliveryLanguage', 'default_currency_code': 'defaultCurrencyCode', - 'payer_authentication_in_invoicing': 'payerAuthenticationInInvoicing' + 'payer_authentication_in_invoicing': 'payerAuthenticationInInvoicing', + 'show_vat_number': 'showVatNumber', + 'vat_registration_number': 'vatRegistrationNumber' } - def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_message=None, enable_reminders=None, header_style=None, delivery_language=None, default_currency_code=None, payer_authentication_in_invoicing=None): + def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_message=None, enable_reminders=None, header_style=None, delivery_language=None, default_currency_code=None, payer_authentication_in_invoicing=None, show_vat_number=False, vat_registration_number=None): """ Invoicingv2invoiceSettingsInvoiceSettingsInformation - a model defined in Swagger """ @@ -65,6 +69,8 @@ def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_ self._delivery_language = None self._default_currency_code = None self._payer_authentication_in_invoicing = None + self._show_vat_number = None + self._vat_registration_number = None if merchant_logo is not None: self.merchant_logo = merchant_logo @@ -82,6 +88,10 @@ def __init__(self, merchant_logo=None, merchant_display_name=None, custom_email_ self.default_currency_code = default_currency_code if payer_authentication_in_invoicing is not None: self.payer_authentication_in_invoicing = payer_authentication_in_invoicing + if show_vat_number is not None: + self.show_vat_number = show_vat_number + if vat_registration_number is not None: + self.vat_registration_number = vat_registration_number @property def merchant_logo(self): @@ -265,6 +275,52 @@ def payer_authentication_in_invoicing(self, payer_authentication_in_invoicing): self._payer_authentication_in_invoicing = payer_authentication_in_invoicing + @property + def show_vat_number(self): + """ + Gets the show_vat_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + Display VAT number on Invoice. + + :return: The show_vat_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + :rtype: bool + """ + return self._show_vat_number + + @show_vat_number.setter + def show_vat_number(self, show_vat_number): + """ + Sets the show_vat_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + Display VAT number on Invoice. + + :param show_vat_number: The show_vat_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + :type: bool + """ + + self._show_vat_number = show_vat_number + + @property + def vat_registration_number(self): + """ + Gets the vat_registration_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + Your government-assigned tax identification number. #### Tax Calculation Required field for value added tax only. Not applicable to U.S. and Canadian taxes. + + :return: The vat_registration_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + :rtype: str + """ + return self._vat_registration_number + + @vat_registration_number.setter + def vat_registration_number(self, vat_registration_number): + """ + Sets the vat_registration_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + Your government-assigned tax identification number. #### Tax Calculation Required field for value added tax only. Not applicable to U.S. and Canadian taxes. + + :param vat_registration_number: The vat_registration_number of this Invoicingv2invoiceSettingsInvoiceSettingsInformation. + :type: str + """ + + self._vat_registration_number = vat_registration_number + def to_dict(self): """ Returns the model properties as a dict diff --git a/CyberSource/models/invoicingv2invoices_customer_information.py b/CyberSource/models/invoicingv2invoices_customer_information.py index 69e6f0ed..f3d8bce7 100644 --- a/CyberSource/models/invoicingv2invoices_customer_information.py +++ b/CyberSource/models/invoicingv2invoices_customer_information.py @@ -33,16 +33,18 @@ class Invoicingv2invoicesCustomerInformation(object): swagger_types = { 'name': 'str', 'email': 'str', - 'merchant_customer_id': 'str' + 'merchant_customer_id': 'str', + 'company': 'Invoicingv2invoicesCustomerInformationCompany' } attribute_map = { 'name': 'name', 'email': 'email', - 'merchant_customer_id': 'merchantCustomerId' + 'merchant_customer_id': 'merchantCustomerId', + 'company': 'company' } - def __init__(self, name=None, email=None, merchant_customer_id=None): + def __init__(self, name=None, email=None, merchant_customer_id=None, company=None): """ Invoicingv2invoicesCustomerInformation - a model defined in Swagger """ @@ -50,6 +52,7 @@ def __init__(self, name=None, email=None, merchant_customer_id=None): self._name = None self._email = None self._merchant_customer_id = None + self._company = None if name is not None: self.name = name @@ -57,6 +60,8 @@ def __init__(self, name=None, email=None, merchant_customer_id=None): self.email = email if merchant_customer_id is not None: self.merchant_customer_id = merchant_customer_id + if company is not None: + self.company = company @property def name(self): @@ -127,6 +132,27 @@ def merchant_customer_id(self, merchant_customer_id): self._merchant_customer_id = merchant_customer_id + @property + def company(self): + """ + Gets the company of this Invoicingv2invoicesCustomerInformation. + + :return: The company of this Invoicingv2invoicesCustomerInformation. + :rtype: Invoicingv2invoicesCustomerInformationCompany + """ + return self._company + + @company.setter + def company(self, company): + """ + Sets the company of this Invoicingv2invoicesCustomerInformation. + + :param company: The company of this Invoicingv2invoicesCustomerInformation. + :type: Invoicingv2invoicesCustomerInformationCompany + """ + + self._company = company + def to_dict(self): """ Returns the model properties as a dict diff --git a/CyberSource/models/invoicingv2invoices_customer_information_company.py b/CyberSource/models/invoicingv2invoices_customer_information_company.py new file mode 100644 index 00000000..602b51e6 --- /dev/null +++ b/CyberSource/models/invoicingv2invoices_customer_information_company.py @@ -0,0 +1,125 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from pprint import pformat +from six import iteritems +import re + + +class Invoicingv2invoicesCustomerInformationCompany(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + """ + + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'name': 'str' + } + + attribute_map = { + 'name': 'name' + } + + def __init__(self, name=None): + """ + Invoicingv2invoicesCustomerInformationCompany - a model defined in Swagger + """ + + self._name = None + + if name is not None: + self.name = name + + @property + def name(self): + """ + Gets the name of this Invoicingv2invoicesCustomerInformationCompany. + Name of the customer’s company. **CyberSource through VisaNet** Credit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks. For processor-specific information, see the `company_name` field in [Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html) + + :return: The name of this Invoicingv2invoicesCustomerInformationCompany. + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """ + Sets the name of this Invoicingv2invoicesCustomerInformationCompany. + Name of the customer’s company. **CyberSource through VisaNet** Credit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks. For processor-specific information, see the `company_name` field in [Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html) + + :param name: The name of this Invoicingv2invoicesCustomerInformationCompany. + :type: str + """ + + self._name = name + + def to_dict(self): + """ + Returns the model properties as a dict + """ + result = {} + + for attr, _ in iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """ + Returns the string representation of the model + """ + return pformat(self.to_dict()) + + def __repr__(self): + """ + For `print` and `pprint` + """ + return self.to_str() + + def __eq__(self, other): + """ + Returns true if both objects are equal + """ + if not isinstance(other, Invoicingv2invoicesCustomerInformationCompany): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """ + Returns true if both objects are not equal + """ + return not self == other diff --git a/CyberSource/models/invoicingv2invoices_order_information_amount_details_freight.py b/CyberSource/models/invoicingv2invoices_order_information_amount_details_freight.py index 83388e47..505087dc 100644 --- a/CyberSource/models/invoicingv2invoices_order_information_amount_details_freight.py +++ b/CyberSource/models/invoicingv2invoices_order_information_amount_details_freight.py @@ -32,26 +32,31 @@ class Invoicingv2invoicesOrderInformationAmountDetailsFreight(object): """ swagger_types = { 'amount': 'str', - 'taxable': 'bool' + 'taxable': 'bool', + 'tax_rate': 'str' } attribute_map = { 'amount': 'amount', - 'taxable': 'taxable' + 'taxable': 'taxable', + 'tax_rate': 'taxRate' } - def __init__(self, amount=None, taxable=None): + def __init__(self, amount=None, taxable=None, tax_rate=None): """ Invoicingv2invoicesOrderInformationAmountDetailsFreight - a model defined in Swagger """ self._amount = None self._taxable = None + self._tax_rate = None if amount is not None: self.amount = amount if taxable is not None: self.taxable = taxable + if tax_rate is not None: + self.tax_rate = tax_rate @property def amount(self): @@ -99,6 +104,29 @@ def taxable(self, taxable): self._taxable = taxable + @property + def tax_rate(self): + """ + Gets the tax_rate of this Invoicingv2invoicesOrderInformationAmountDetailsFreight. + Shipping Tax rate applied to the freight amount. **Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional decimal places will be truncated). **Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%). + + :return: The tax_rate of this Invoicingv2invoicesOrderInformationAmountDetailsFreight. + :rtype: str + """ + return self._tax_rate + + @tax_rate.setter + def tax_rate(self, tax_rate): + """ + Sets the tax_rate of this Invoicingv2invoicesOrderInformationAmountDetailsFreight. + Shipping Tax rate applied to the freight amount. **Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional decimal places will be truncated). **Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%). + + :param tax_rate: The tax_rate of this Invoicingv2invoicesOrderInformationAmountDetailsFreight. + :type: str + """ + + self._tax_rate = tax_rate + def to_dict(self): """ Returns the model properties as a dict diff --git a/CyberSource/models/invoicingv2invoices_order_information_line_items.py b/CyberSource/models/invoicingv2invoices_order_information_line_items.py index d9c2a474..91212d29 100644 --- a/CyberSource/models/invoicingv2invoices_order_information_line_items.py +++ b/CyberSource/models/invoicingv2invoices_order_information_line_items.py @@ -34,17 +34,27 @@ class Invoicingv2invoicesOrderInformationLineItems(object): 'product_sku': 'str', 'product_name': 'str', 'quantity': 'int', - 'unit_price': 'str' + 'unit_price': 'str', + 'discount_amount': 'str', + 'discount_rate': 'str', + 'tax_amount': 'str', + 'tax_rate': 'str', + 'total_amount': 'str' } attribute_map = { 'product_sku': 'productSku', 'product_name': 'productName', 'quantity': 'quantity', - 'unit_price': 'unitPrice' + 'unit_price': 'unitPrice', + 'discount_amount': 'discountAmount', + 'discount_rate': 'discountRate', + 'tax_amount': 'taxAmount', + 'tax_rate': 'taxRate', + 'total_amount': 'totalAmount' } - def __init__(self, product_sku=None, product_name=None, quantity=None, unit_price=None): + def __init__(self, product_sku=None, product_name=None, quantity=None, unit_price=None, discount_amount=None, discount_rate=None, tax_amount=None, tax_rate=None, total_amount=None): """ Invoicingv2invoicesOrderInformationLineItems - a model defined in Swagger """ @@ -53,6 +63,11 @@ def __init__(self, product_sku=None, product_name=None, quantity=None, unit_pric self._product_name = None self._quantity = None self._unit_price = None + self._discount_amount = None + self._discount_rate = None + self._tax_amount = None + self._tax_rate = None + self._total_amount = None if product_sku is not None: self.product_sku = product_sku @@ -62,6 +77,16 @@ def __init__(self, product_sku=None, product_name=None, quantity=None, unit_pric self.quantity = quantity if unit_price is not None: self.unit_price = unit_price + if discount_amount is not None: + self.discount_amount = discount_amount + if discount_rate is not None: + self.discount_rate = discount_rate + if tax_amount is not None: + self.tax_amount = tax_amount + if tax_rate is not None: + self.tax_rate = tax_rate + if total_amount is not None: + self.total_amount = total_amount @property def product_sku(self): @@ -155,6 +180,121 @@ def unit_price(self, unit_price): self._unit_price = unit_price + @property + def discount_amount(self): + """ + Gets the discount_amount of this Invoicingv2invoicesOrderInformationLineItems. + Discount applied to the item. + + :return: The discount_amount of this Invoicingv2invoicesOrderInformationLineItems. + :rtype: str + """ + return self._discount_amount + + @discount_amount.setter + def discount_amount(self, discount_amount): + """ + Sets the discount_amount of this Invoicingv2invoicesOrderInformationLineItems. + Discount applied to the item. + + :param discount_amount: The discount_amount of this Invoicingv2invoicesOrderInformationLineItems. + :type: str + """ + + self._discount_amount = discount_amount + + @property + def discount_rate(self): + """ + Gets the discount_rate of this Invoicingv2invoicesOrderInformationLineItems. + Rate the item is discounted. Maximum of 2 decimal places. Example 5.25 (=5.25%) + + :return: The discount_rate of this Invoicingv2invoicesOrderInformationLineItems. + :rtype: str + """ + return self._discount_rate + + @discount_rate.setter + def discount_rate(self, discount_rate): + """ + Sets the discount_rate of this Invoicingv2invoicesOrderInformationLineItems. + Rate the item is discounted. Maximum of 2 decimal places. Example 5.25 (=5.25%) + + :param discount_rate: The discount_rate of this Invoicingv2invoicesOrderInformationLineItems. + :type: str + """ + + self._discount_rate = discount_rate + + @property + def tax_amount(self): + """ + Gets the tax_amount of this Invoicingv2invoicesOrderInformationLineItems. + Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must be in the same currency. The tax amount field is additive. The following example uses a two-exponent currency such as USD: 1. You include each line item in your request. ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80 ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included. Optional field. #### Airlines processing Tax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s). Format: English characters only. Optional request field for a line item. #### Tax Calculation Optional field for U.S., Canadian, international tax, and value added taxes. Note if you send this field in your tax request, the value in the field will override the tax engine + + :return: The tax_amount of this Invoicingv2invoicesOrderInformationLineItems. + :rtype: str + """ + return self._tax_amount + + @tax_amount.setter + def tax_amount(self, tax_amount): + """ + Sets the tax_amount of this Invoicingv2invoicesOrderInformationLineItems. + Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must be in the same currency. The tax amount field is additive. The following example uses a two-exponent currency such as USD: 1. You include each line item in your request. ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80 ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included. Optional field. #### Airlines processing Tax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s). Format: English characters only. Optional request field for a line item. #### Tax Calculation Optional field for U.S., Canadian, international tax, and value added taxes. Note if you send this field in your tax request, the value in the field will override the tax engine + + :param tax_amount: The tax_amount of this Invoicingv2invoicesOrderInformationLineItems. + :type: str + """ + + self._tax_amount = tax_amount + + @property + def tax_rate(self): + """ + Gets the tax_rate of this Invoicingv2invoicesOrderInformationLineItems. + Tax rate applied to the item. For details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/) **Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional decimal places will be truncated). **Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%). + + :return: The tax_rate of this Invoicingv2invoicesOrderInformationLineItems. + :rtype: str + """ + return self._tax_rate + + @tax_rate.setter + def tax_rate(self, tax_rate): + """ + Sets the tax_rate of this Invoicingv2invoicesOrderInformationLineItems. + Tax rate applied to the item. For details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/) **Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional decimal places will be truncated). **Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%). + + :param tax_rate: The tax_rate of this Invoicingv2invoicesOrderInformationLineItems. + :type: str + """ + + self._tax_rate = tax_rate + + @property + def total_amount(self): + """ + Gets the total_amount of this Invoicingv2invoicesOrderInformationLineItems. + Total amount for the item. Normally calculated as the unit price times quantity. When `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total for prepaid gift cards in major units. Example: 123.45 USD = 123 + + :return: The total_amount of this Invoicingv2invoicesOrderInformationLineItems. + :rtype: str + """ + return self._total_amount + + @total_amount.setter + def total_amount(self, total_amount): + """ + Sets the total_amount of this Invoicingv2invoicesOrderInformationLineItems. + Total amount for the item. Normally calculated as the unit price times quantity. When `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total for prepaid gift cards in major units. Example: 123.45 USD = 123 + + :param total_amount: The total_amount of this Invoicingv2invoicesOrderInformationLineItems. + :type: str + """ + + self._total_amount = total_amount + def to_dict(self): """ Returns the model properties as a dict diff --git a/CyberSource/models/pts_v2_payments_post201_response_processor_information.py b/CyberSource/models/pts_v2_payments_post201_response_processor_information.py index 74fdbba9..4ce946ab 100644 --- a/CyberSource/models/pts_v2_payments_post201_response_processor_information.py +++ b/CyberSource/models/pts_v2_payments_post201_response_processor_information.py @@ -41,6 +41,7 @@ class PtsV2PaymentsPost201ResponseProcessorInformation(object): 'response_details': 'str', 'response_category_code': 'str', 'forwarded_acquirer_code': 'str', + 'settlement_date': 'str', 'avs': 'PtsV2PaymentsPost201ResponseProcessorInformationAvs', 'card_verification': 'PtsV2PaymentsPost201ResponseProcessorInformationCardVerification', 'merchant_advice': 'PtsV2PaymentsPost201ResponseProcessorInformationMerchantAdvice', @@ -76,6 +77,7 @@ class PtsV2PaymentsPost201ResponseProcessorInformation(object): 'response_details': 'responseDetails', 'response_category_code': 'responseCategoryCode', 'forwarded_acquirer_code': 'forwardedAcquirerCode', + 'settlement_date': 'settlementDate', 'avs': 'avs', 'card_verification': 'cardVerification', 'merchant_advice': 'merchantAdvice', @@ -100,7 +102,7 @@ class PtsV2PaymentsPost201ResponseProcessorInformation(object): 'public_key': 'publicKey' } - def __init__(self, auth_indicator=None, approval_code=None, card_reference_data=None, transaction_id=None, network_transaction_id=None, response_code=None, response_code_source=None, response_details=None, response_category_code=None, forwarded_acquirer_code=None, avs=None, card_verification=None, merchant_advice=None, electronic_verification_results=None, ach_verification=None, customer=None, consumer_authentication_response=None, system_trace_audit_number=None, payment_account_reference_number=None, transaction_integrity_code=None, amex_verbal_auth_reference_number=None, master_card_service_code=None, master_card_service_reply_code=None, master_card_authentication_type=None, name=None, routing=None, merchant_number=None, retrieval_reference_number=None, payment_url=None, complete_url=None, signature=None, public_key=None): + def __init__(self, auth_indicator=None, approval_code=None, card_reference_data=None, transaction_id=None, network_transaction_id=None, response_code=None, response_code_source=None, response_details=None, response_category_code=None, forwarded_acquirer_code=None, settlement_date=None, avs=None, card_verification=None, merchant_advice=None, electronic_verification_results=None, ach_verification=None, customer=None, consumer_authentication_response=None, system_trace_audit_number=None, payment_account_reference_number=None, transaction_integrity_code=None, amex_verbal_auth_reference_number=None, master_card_service_code=None, master_card_service_reply_code=None, master_card_authentication_type=None, name=None, routing=None, merchant_number=None, retrieval_reference_number=None, payment_url=None, complete_url=None, signature=None, public_key=None): """ PtsV2PaymentsPost201ResponseProcessorInformation - a model defined in Swagger """ @@ -115,6 +117,7 @@ def __init__(self, auth_indicator=None, approval_code=None, card_reference_data= self._response_details = None self._response_category_code = None self._forwarded_acquirer_code = None + self._settlement_date = None self._avs = None self._card_verification = None self._merchant_advice = None @@ -158,6 +161,8 @@ def __init__(self, auth_indicator=None, approval_code=None, card_reference_data= self.response_category_code = response_category_code if forwarded_acquirer_code is not None: self.forwarded_acquirer_code = forwarded_acquirer_code + if settlement_date is not None: + self.settlement_date = settlement_date if avs is not None: self.avs = avs if card_verification is not None: @@ -433,6 +438,29 @@ def forwarded_acquirer_code(self, forwarded_acquirer_code): self._forwarded_acquirer_code = forwarded_acquirer_code + @property + def settlement_date(self): + """ + Gets the settlement_date of this PtsV2PaymentsPost201ResponseProcessorInformation. + Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day. + + :return: The settlement_date of this PtsV2PaymentsPost201ResponseProcessorInformation. + :rtype: str + """ + return self._settlement_date + + @settlement_date.setter + def settlement_date(self, settlement_date): + """ + Sets the settlement_date of this PtsV2PaymentsPost201ResponseProcessorInformation. + Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day. + + :param settlement_date: The settlement_date of this PtsV2PaymentsPost201ResponseProcessorInformation. + :type: str + """ + + self._settlement_date = settlement_date + @property def avs(self): """ diff --git a/CyberSource/models/pts_v2_payments_refund_post201_response_processor_information.py b/CyberSource/models/pts_v2_payments_refund_post201_response_processor_information.py index 36c03ca9..b1f9f59d 100644 --- a/CyberSource/models/pts_v2_payments_refund_post201_response_processor_information.py +++ b/CyberSource/models/pts_v2_payments_refund_post201_response_processor_information.py @@ -37,7 +37,8 @@ class PtsV2PaymentsRefundPost201ResponseProcessorInformation(object): 'merchant_number': 'str', 'response_code': 'str', 'ach_verification': 'PtsV2PaymentsPost201ResponseProcessorInformationAchVerification', - 'network_transaction_id': 'str' + 'network_transaction_id': 'str', + 'settlement_date': 'str' } attribute_map = { @@ -47,10 +48,11 @@ class PtsV2PaymentsRefundPost201ResponseProcessorInformation(object): 'merchant_number': 'merchantNumber', 'response_code': 'responseCode', 'ach_verification': 'achVerification', - 'network_transaction_id': 'networkTransactionId' + 'network_transaction_id': 'networkTransactionId', + 'settlement_date': 'settlementDate' } - def __init__(self, approval_code=None, transaction_id=None, forwarded_acquirer_code=None, merchant_number=None, response_code=None, ach_verification=None, network_transaction_id=None): + def __init__(self, approval_code=None, transaction_id=None, forwarded_acquirer_code=None, merchant_number=None, response_code=None, ach_verification=None, network_transaction_id=None, settlement_date=None): """ PtsV2PaymentsRefundPost201ResponseProcessorInformation - a model defined in Swagger """ @@ -62,6 +64,7 @@ def __init__(self, approval_code=None, transaction_id=None, forwarded_acquirer_c self._response_code = None self._ach_verification = None self._network_transaction_id = None + self._settlement_date = None if approval_code is not None: self.approval_code = approval_code @@ -77,6 +80,8 @@ def __init__(self, approval_code=None, transaction_id=None, forwarded_acquirer_c self.ach_verification = ach_verification if network_transaction_id is not None: self.network_transaction_id = network_transaction_id + if settlement_date is not None: + self.settlement_date = settlement_date @property def approval_code(self): @@ -237,6 +242,29 @@ def network_transaction_id(self, network_transaction_id): self._network_transaction_id = network_transaction_id + @property + def settlement_date(self): + """ + Gets the settlement_date of this PtsV2PaymentsRefundPost201ResponseProcessorInformation. + Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day. + + :return: The settlement_date of this PtsV2PaymentsRefundPost201ResponseProcessorInformation. + :rtype: str + """ + return self._settlement_date + + @settlement_date.setter + def settlement_date(self, settlement_date): + """ + Sets the settlement_date of this PtsV2PaymentsRefundPost201ResponseProcessorInformation. + Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day. + + :param settlement_date: The settlement_date of this PtsV2PaymentsRefundPost201ResponseProcessorInformation. + :type: str + """ + + self._settlement_date = settlement_date + def to_dict(self): """ Returns the model properties as a dict diff --git a/CyberSource/models/pts_v2_payouts_post201_response_recipient_information_card.py b/CyberSource/models/pts_v2_payouts_post201_response_recipient_information_card.py index ac22ecda..14a98122 100644 --- a/CyberSource/models/pts_v2_payouts_post201_response_recipient_information_card.py +++ b/CyberSource/models/pts_v2_payouts_post201_response_recipient_information_card.py @@ -80,7 +80,7 @@ def balance(self, balance): def currency(self): """ Gets the currency of this PtsV2PayoutsPost201ResponseRecipientInformationCard. - This is a multicurrency-only field. It contains a 3-digit numeric code that identifies the currency used by the issuer. + This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency. :return: The currency of this PtsV2PayoutsPost201ResponseRecipientInformationCard. :rtype: str @@ -91,7 +91,7 @@ def currency(self): def currency(self, currency): """ Sets the currency of this PtsV2PayoutsPost201ResponseRecipientInformationCard. - This is a multicurrency-only field. It contains a 3-digit numeric code that identifies the currency used by the issuer. + This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency. :param currency: The currency of this PtsV2PayoutsPost201ResponseRecipientInformationCard. :type: str diff --git a/CyberSource/models/ptsv1pushfundstransfer_order_information.py b/CyberSource/models/ptsv1pushfundstransfer_order_information.py index 13db6b7b..33d61951 100644 --- a/CyberSource/models/ptsv1pushfundstransfer_order_information.py +++ b/CyberSource/models/ptsv1pushfundstransfer_order_information.py @@ -51,8 +51,7 @@ def __init__(self, amount_details=None, is_cryptocurrency_purchase=None, surchar self._is_cryptocurrency_purchase = None self._surcharge = None - if amount_details is not None: - self.amount_details = amount_details + self.amount_details = amount_details if is_cryptocurrency_purchase is not None: self.is_cryptocurrency_purchase = is_cryptocurrency_purchase if surcharge is not None: @@ -76,6 +75,8 @@ def amount_details(self, amount_details): :param amount_details: The amount_details of this Ptsv1pushfundstransferOrderInformation. :type: Ptsv1pushfundstransferOrderInformationAmountDetails """ + if amount_details is None: + raise ValueError("Invalid value for `amount_details`, must not be `None`") self._amount_details = amount_details diff --git a/CyberSource/models/ptsv2payments_order_information_amount_details.py b/CyberSource/models/ptsv2payments_order_information_amount_details.py index 02a718e1..5493cbf6 100644 --- a/CyberSource/models/ptsv2payments_order_information_amount_details.py +++ b/CyberSource/models/ptsv2payments_order_information_amount_details.py @@ -723,7 +723,7 @@ def original_currency(self, original_currency): def cashback_amount(self): """ Gets the cashback_amount of this Ptsv2paymentsOrderInformationAmountDetails. - Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Required field for PIN debit purchase, PIN debit credit or PIN debit reversal. + Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Optional field for PIN debit purchase, PIN debit credit or PIN debit reversal. :return: The cashback_amount of this Ptsv2paymentsOrderInformationAmountDetails. :rtype: str @@ -734,7 +734,7 @@ def cashback_amount(self): def cashback_amount(self, cashback_amount): """ Sets the cashback_amount of this Ptsv2paymentsOrderInformationAmountDetails. - Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Required field for PIN debit purchase, PIN debit credit or PIN debit reversal. + Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Optional field for PIN debit purchase, PIN debit credit or PIN debit reversal. :param cashback_amount: The cashback_amount of this Ptsv2paymentsOrderInformationAmountDetails. :type: str diff --git a/CyberSource/models/ptsv2payments_payment_information_payment_type.py b/CyberSource/models/ptsv2payments_payment_information_payment_type.py index c25311a7..a62bbca1 100644 --- a/CyberSource/models/ptsv2payments_payment_information_payment_type.py +++ b/CyberSource/models/ptsv2payments_payment_information_payment_type.py @@ -32,24 +32,29 @@ class Ptsv2paymentsPaymentInformationPaymentType(object): """ swagger_types = { 'name': 'str', + 'sub_type_name': 'str', 'method': 'Ptsv2paymentsPaymentInformationPaymentTypeMethod' } attribute_map = { 'name': 'name', + 'sub_type_name': 'subTypeName', 'method': 'method' } - def __init__(self, name=None, method=None): + def __init__(self, name=None, sub_type_name=None, method=None): """ Ptsv2paymentsPaymentInformationPaymentType - a model defined in Swagger """ self._name = None + self._sub_type_name = None self._method = None if name is not None: self.name = name + if sub_type_name is not None: + self.sub_type_name = sub_type_name if method is not None: self.method = method @@ -76,6 +81,29 @@ def name(self, name): self._name = name + @property + def sub_type_name(self): + """ + Gets the sub_type_name of this Ptsv2paymentsPaymentInformationPaymentType. + Detailed information about the Payment Type. Possible values: - `DEBIT`: Use this value to indicate a PIN debit transaction. Examples: For Card, if Credit or Debit or PrePaid. For Bank Transfer, if Online Bank Transfer or Wire Transfers. + + :return: The sub_type_name of this Ptsv2paymentsPaymentInformationPaymentType. + :rtype: str + """ + return self._sub_type_name + + @sub_type_name.setter + def sub_type_name(self, sub_type_name): + """ + Sets the sub_type_name of this Ptsv2paymentsPaymentInformationPaymentType. + Detailed information about the Payment Type. Possible values: - `DEBIT`: Use this value to indicate a PIN debit transaction. Examples: For Card, if Credit or Debit or PrePaid. For Bank Transfer, if Online Bank Transfer or Wire Transfers. + + :param sub_type_name: The sub_type_name of this Ptsv2paymentsPaymentInformationPaymentType. + :type: str + """ + + self._sub_type_name = sub_type_name + @property def method(self): """ diff --git a/CyberSource/models/ptsv2payments_processing_information.py b/CyberSource/models/ptsv2payments_processing_information.py index 441528ed..3d77db98 100644 --- a/CyberSource/models/ptsv2payments_processing_information.py +++ b/CyberSource/models/ptsv2payments_processing_information.py @@ -34,6 +34,7 @@ class Ptsv2paymentsProcessingInformation(object): 'action_list': 'list[str]', 'enable_escrow_option': 'bool', 'action_token_types': 'list[str]', + 'bin_source': 'str', 'capture': 'bool', 'processor_id': 'str', 'business_application_id': 'str', @@ -68,6 +69,7 @@ class Ptsv2paymentsProcessingInformation(object): 'action_list': 'actionList', 'enable_escrow_option': 'enableEscrowOption', 'action_token_types': 'actionTokenTypes', + 'bin_source': 'binSource', 'capture': 'capture', 'processor_id': 'processorId', 'business_application_id': 'businessApplicationId', @@ -98,7 +100,7 @@ class Ptsv2paymentsProcessingInformation(object): 'is_return_auth_record_enabled': 'isReturnAuthRecordEnabled' } - def __init__(self, action_list=None, enable_escrow_option=None, action_token_types=None, capture=False, processor_id=None, business_application_id=None, commerce_indicator=None, commerce_indicator_label=None, payment_solution=None, reconciliation_id=None, link_id=None, purchase_level=None, payment_id=None, report_group=None, visa_checkout_id=None, industry_data_type=None, authorization_options=None, capture_options=None, recurring_options=None, bank_transfer_options=None, purchase_options=None, electronic_benefits_transfer=None, loan_options=None, wallet_type=None, national_net_domestic_data=None, japan_payment_options=None, mobile_remote_payment_type=None, extended_credit_total_count=None, network_routing_order=None, pay_by_points_indicator=None, is_return_auth_record_enabled=None): + def __init__(self, action_list=None, enable_escrow_option=None, action_token_types=None, bin_source=None, capture=False, processor_id=None, business_application_id=None, commerce_indicator=None, commerce_indicator_label=None, payment_solution=None, reconciliation_id=None, link_id=None, purchase_level=None, payment_id=None, report_group=None, visa_checkout_id=None, industry_data_type=None, authorization_options=None, capture_options=None, recurring_options=None, bank_transfer_options=None, purchase_options=None, electronic_benefits_transfer=None, loan_options=None, wallet_type=None, national_net_domestic_data=None, japan_payment_options=None, mobile_remote_payment_type=None, extended_credit_total_count=None, network_routing_order=None, pay_by_points_indicator=None, is_return_auth_record_enabled=None): """ Ptsv2paymentsProcessingInformation - a model defined in Swagger """ @@ -106,6 +108,7 @@ def __init__(self, action_list=None, enable_escrow_option=None, action_token_typ self._action_list = None self._enable_escrow_option = None self._action_token_types = None + self._bin_source = None self._capture = None self._processor_id = None self._business_application_id = None @@ -141,6 +144,8 @@ def __init__(self, action_list=None, enable_escrow_option=None, action_token_typ self.enable_escrow_option = enable_escrow_option if action_token_types is not None: self.action_token_types = action_token_types + if bin_source is not None: + self.bin_source = bin_source if capture is not None: self.capture = capture if processor_id is not None: @@ -267,6 +272,29 @@ def action_token_types(self, action_token_types): self._action_token_types = action_token_types + @property + def bin_source(self): + """ + Gets the bin_source of this Ptsv2paymentsProcessingInformation. + Bin Source File Identifier. Possible values: - itmx - rupay + + :return: The bin_source of this Ptsv2paymentsProcessingInformation. + :rtype: str + """ + return self._bin_source + + @bin_source.setter + def bin_source(self, bin_source): + """ + Sets the bin_source of this Ptsv2paymentsProcessingInformation. + Bin Source File Identifier. Possible values: - itmx - rupay + + :param bin_source: The bin_source of this Ptsv2paymentsProcessingInformation. + :type: str + """ + + self._bin_source = bin_source + @property def capture(self): """ diff --git a/CyberSource/models/ptsv2paymentsidcaptures_order_information_amount_details.py b/CyberSource/models/ptsv2paymentsidcaptures_order_information_amount_details.py index 36a54951..eb255aaa 100644 --- a/CyberSource/models/ptsv2paymentsidcaptures_order_information_amount_details.py +++ b/CyberSource/models/ptsv2paymentsidcaptures_order_information_amount_details.py @@ -580,7 +580,7 @@ def original_currency(self, original_currency): def cashback_amount(self): """ Gets the cashback_amount of this Ptsv2paymentsidcapturesOrderInformationAmountDetails. - Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Required field for PIN debit purchase, PIN debit credit or PIN debit reversal. + Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Optional field for PIN debit purchase, PIN debit credit or PIN debit reversal. :return: The cashback_amount of this Ptsv2paymentsidcapturesOrderInformationAmountDetails. :rtype: str @@ -591,7 +591,7 @@ def cashback_amount(self): def cashback_amount(self, cashback_amount): """ Sets the cashback_amount of this Ptsv2paymentsidcapturesOrderInformationAmountDetails. - Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Required field for PIN debit purchase, PIN debit credit or PIN debit reversal. + Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Optional field for PIN debit purchase, PIN debit credit or PIN debit reversal. :param cashback_amount: The cashback_amount of this Ptsv2paymentsidcapturesOrderInformationAmountDetails. :type: str diff --git a/CyberSource/models/push_funds_request.py b/CyberSource/models/push_funds_request.py index 84d17944..5474c673 100644 --- a/CyberSource/models/push_funds_request.py +++ b/CyberSource/models/push_funds_request.py @@ -74,16 +74,13 @@ def __init__(self, client_reference_information=None, order_information=None, pr if client_reference_information is not None: self.client_reference_information = client_reference_information - if order_information is not None: - self.order_information = order_information - if processing_information is not None: - self.processing_information = processing_information + self.order_information = order_information + self.processing_information = processing_information if processing_options is not None: self.processing_options = processing_options if recipient_information is not None: self.recipient_information = recipient_information - if sender_information is not None: - self.sender_information = sender_information + self.sender_information = sender_information if aggregator_information is not None: self.aggregator_information = aggregator_information if merchant_defined_information is not None: @@ -132,6 +129,8 @@ def order_information(self, order_information): :param order_information: The order_information of this PushFundsRequest. :type: Ptsv1pushfundstransferOrderInformation """ + if order_information is None: + raise ValueError("Invalid value for `order_information`, must not be `None`") self._order_information = order_information @@ -153,6 +152,8 @@ def processing_information(self, processing_information): :param processing_information: The processing_information of this PushFundsRequest. :type: Ptsv1pushfundstransferProcessingInformation """ + if processing_information is None: + raise ValueError("Invalid value for `processing_information`, must not be `None`") self._processing_information = processing_information @@ -216,6 +217,8 @@ def sender_information(self, sender_information): :param sender_information: The sender_information of this PushFundsRequest. :type: Ptsv1pushfundstransferSenderInformation """ + if sender_information is None: + raise ValueError("Invalid value for `sender_information`, must not be `None`") self._sender_information = sender_information diff --git a/CyberSource/models/rbsv1plans_plan_information.py b/CyberSource/models/rbsv1plans_plan_information.py index 29df361f..cdcad396 100644 --- a/CyberSource/models/rbsv1plans_plan_information.py +++ b/CyberSource/models/rbsv1plans_plan_information.py @@ -67,8 +67,7 @@ def __init__(self, code=None, name=None, description=None, status=None, billing_ self.description = description if status is not None: self.status = status - if billing_period is not None: - self.billing_period = billing_period + self.billing_period = billing_period if billing_cycles is not None: self.billing_cycles = billing_cycles @@ -184,6 +183,8 @@ def billing_period(self, billing_period): :param billing_period: The billing_period of this Rbsv1plansPlanInformation. :type: InlineResponse200PlanInformationBillingPeriod """ + if billing_period is None: + raise ValueError("Invalid value for `billing_period`, must not be `None`") self._billing_period = billing_period diff --git a/CyberSource/models/tss_v2_transactions_get200_response.py b/CyberSource/models/tss_v2_transactions_get200_response.py index b6aa5fb5..e56ceb85 100644 --- a/CyberSource/models/tss_v2_transactions_get200_response.py +++ b/CyberSource/models/tss_v2_transactions_get200_response.py @@ -50,6 +50,7 @@ class TssV2TransactionsGet200Response(object): 'order_information': 'TssV2TransactionsGet200ResponseOrderInformation', 'payment_information': 'TssV2TransactionsGet200ResponsePaymentInformation', 'payment_insights_information': 'PtsV2PaymentsPost201ResponsePaymentInsightsInformation', + 'payout_options': 'TssV2TransactionsGet200ResponsePayoutOptions', 'processing_information': 'TssV2TransactionsGet200ResponseProcessingInformation', 'processor_information': 'TssV2TransactionsGet200ResponseProcessorInformation', 'point_of_sale_information': 'TssV2TransactionsGet200ResponsePointOfSaleInformation', @@ -79,6 +80,7 @@ class TssV2TransactionsGet200Response(object): 'order_information': 'orderInformation', 'payment_information': 'paymentInformation', 'payment_insights_information': 'paymentInsightsInformation', + 'payout_options': 'payoutOptions', 'processing_information': 'processingInformation', 'processor_information': 'processorInformation', 'point_of_sale_information': 'pointOfSaleInformation', @@ -88,7 +90,7 @@ class TssV2TransactionsGet200Response(object): 'links': '_links' } - def __init__(self, id=None, root_id=None, reconciliation_id=None, merchant_id=None, submit_time_utc=None, application_information=None, buyer_information=None, client_reference_information=None, consumer_authentication_information=None, device_information=None, error_information=None, installment_information=None, fraud_marking_information=None, health_care_information=None, merchant_defined_information=None, merchant_information=None, order_information=None, payment_information=None, payment_insights_information=None, processing_information=None, processor_information=None, point_of_sale_information=None, risk_information=None, sender_information=None, token_information=None, links=None): + def __init__(self, id=None, root_id=None, reconciliation_id=None, merchant_id=None, submit_time_utc=None, application_information=None, buyer_information=None, client_reference_information=None, consumer_authentication_information=None, device_information=None, error_information=None, installment_information=None, fraud_marking_information=None, health_care_information=None, merchant_defined_information=None, merchant_information=None, order_information=None, payment_information=None, payment_insights_information=None, payout_options=None, processing_information=None, processor_information=None, point_of_sale_information=None, risk_information=None, sender_information=None, token_information=None, links=None): """ TssV2TransactionsGet200Response - a model defined in Swagger """ @@ -112,6 +114,7 @@ def __init__(self, id=None, root_id=None, reconciliation_id=None, merchant_id=No self._order_information = None self._payment_information = None self._payment_insights_information = None + self._payout_options = None self._processing_information = None self._processor_information = None self._point_of_sale_information = None @@ -158,6 +161,8 @@ def __init__(self, id=None, root_id=None, reconciliation_id=None, merchant_id=No self.payment_information = payment_information if payment_insights_information is not None: self.payment_insights_information = payment_insights_information + if payout_options is not None: + self.payout_options = payout_options if processing_information is not None: self.processing_information = processing_information if processor_information is not None: @@ -584,6 +589,27 @@ def payment_insights_information(self, payment_insights_information): self._payment_insights_information = payment_insights_information + @property + def payout_options(self): + """ + Gets the payout_options of this TssV2TransactionsGet200Response. + + :return: The payout_options of this TssV2TransactionsGet200Response. + :rtype: TssV2TransactionsGet200ResponsePayoutOptions + """ + return self._payout_options + + @payout_options.setter + def payout_options(self, payout_options): + """ + Sets the payout_options of this TssV2TransactionsGet200Response. + + :param payout_options: The payout_options of this TssV2TransactionsGet200Response. + :type: TssV2TransactionsGet200ResponsePayoutOptions + """ + + self._payout_options = payout_options + @property def processing_information(self): """ diff --git a/CyberSource/models/tss_v2_transactions_get200_response_payment_information.py b/CyberSource/models/tss_v2_transactions_get200_response_payment_information.py index 22035e5f..42c93a43 100644 --- a/CyberSource/models/tss_v2_transactions_get200_response_payment_information.py +++ b/CyberSource/models/tss_v2_transactions_get200_response_payment_information.py @@ -34,7 +34,11 @@ class TssV2TransactionsGet200ResponsePaymentInformation(object): 'payment_type': 'TssV2TransactionsGet200ResponsePaymentInformationPaymentType', 'customer': 'TssV2TransactionsGet200ResponsePaymentInformationCustomer', 'card': 'TssV2TransactionsGet200ResponsePaymentInformationCard', + 'brands': 'list[TssV2TransactionsGet200ResponsePaymentInformationBrands]', + 'features': 'TssV2TransactionsGet200ResponsePaymentInformationFeatures', 'invoice': 'TssV2TransactionsGet200ResponsePaymentInformationInvoice', + 'network': 'TssV2TransactionsGet200ResponsePaymentInformationNetwork', + 'issuer_information': 'TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation', 'bank': 'TssV2TransactionsGet200ResponsePaymentInformationBank', 'account_features': 'TssV2TransactionsGet200ResponsePaymentInformationAccountFeatures', 'payment_instrument': 'PtsV2PaymentsPost201ResponseTokenInformationPaymentInstrument', @@ -47,7 +51,11 @@ class TssV2TransactionsGet200ResponsePaymentInformation(object): 'payment_type': 'paymentType', 'customer': 'customer', 'card': 'card', + 'brands': 'brands', + 'features': 'features', 'invoice': 'invoice', + 'network': 'network', + 'issuer_information': 'issuerInformation', 'bank': 'bank', 'account_features': 'accountFeatures', 'payment_instrument': 'paymentInstrument', @@ -56,7 +64,7 @@ class TssV2TransactionsGet200ResponsePaymentInformation(object): 'fluid_data': 'fluidData' } - def __init__(self, payment_type=None, customer=None, card=None, invoice=None, bank=None, account_features=None, payment_instrument=None, instrument_identifier=None, shipping_address=None, fluid_data=None): + def __init__(self, payment_type=None, customer=None, card=None, brands=None, features=None, invoice=None, network=None, issuer_information=None, bank=None, account_features=None, payment_instrument=None, instrument_identifier=None, shipping_address=None, fluid_data=None): """ TssV2TransactionsGet200ResponsePaymentInformation - a model defined in Swagger """ @@ -64,7 +72,11 @@ def __init__(self, payment_type=None, customer=None, card=None, invoice=None, ba self._payment_type = None self._customer = None self._card = None + self._brands = None + self._features = None self._invoice = None + self._network = None + self._issuer_information = None self._bank = None self._account_features = None self._payment_instrument = None @@ -78,8 +90,16 @@ def __init__(self, payment_type=None, customer=None, card=None, invoice=None, ba self.customer = customer if card is not None: self.card = card + if brands is not None: + self.brands = brands + if features is not None: + self.features = features if invoice is not None: self.invoice = invoice + if network is not None: + self.network = network + if issuer_information is not None: + self.issuer_information = issuer_information if bank is not None: self.bank = bank if account_features is not None: @@ -156,6 +176,50 @@ def card(self, card): self._card = card + @property + def brands(self): + """ + Gets the brands of this TssV2TransactionsGet200ResponsePaymentInformation. + This array contains the supported brands. + + :return: The brands of this TssV2TransactionsGet200ResponsePaymentInformation. + :rtype: list[TssV2TransactionsGet200ResponsePaymentInformationBrands] + """ + return self._brands + + @brands.setter + def brands(self, brands): + """ + Sets the brands of this TssV2TransactionsGet200ResponsePaymentInformation. + This array contains the supported brands. + + :param brands: The brands of this TssV2TransactionsGet200ResponsePaymentInformation. + :type: list[TssV2TransactionsGet200ResponsePaymentInformationBrands] + """ + + self._brands = brands + + @property + def features(self): + """ + Gets the features of this TssV2TransactionsGet200ResponsePaymentInformation. + + :return: The features of this TssV2TransactionsGet200ResponsePaymentInformation. + :rtype: TssV2TransactionsGet200ResponsePaymentInformationFeatures + """ + return self._features + + @features.setter + def features(self, features): + """ + Sets the features of this TssV2TransactionsGet200ResponsePaymentInformation. + + :param features: The features of this TssV2TransactionsGet200ResponsePaymentInformation. + :type: TssV2TransactionsGet200ResponsePaymentInformationFeatures + """ + + self._features = features + @property def invoice(self): """ @@ -177,6 +241,48 @@ def invoice(self, invoice): self._invoice = invoice + @property + def network(self): + """ + Gets the network of this TssV2TransactionsGet200ResponsePaymentInformation. + + :return: The network of this TssV2TransactionsGet200ResponsePaymentInformation. + :rtype: TssV2TransactionsGet200ResponsePaymentInformationNetwork + """ + return self._network + + @network.setter + def network(self, network): + """ + Sets the network of this TssV2TransactionsGet200ResponsePaymentInformation. + + :param network: The network of this TssV2TransactionsGet200ResponsePaymentInformation. + :type: TssV2TransactionsGet200ResponsePaymentInformationNetwork + """ + + self._network = network + + @property + def issuer_information(self): + """ + Gets the issuer_information of this TssV2TransactionsGet200ResponsePaymentInformation. + + :return: The issuer_information of this TssV2TransactionsGet200ResponsePaymentInformation. + :rtype: TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation + """ + return self._issuer_information + + @issuer_information.setter + def issuer_information(self, issuer_information): + """ + Sets the issuer_information of this TssV2TransactionsGet200ResponsePaymentInformation. + + :param issuer_information: The issuer_information of this TssV2TransactionsGet200ResponsePaymentInformation. + :type: TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation + """ + + self._issuer_information = issuer_information + @property def bank(self): """ diff --git a/CyberSource/models/tss_v2_transactions_get200_response_payment_information_brands.py b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_brands.py new file mode 100644 index 00000000..7cba6c73 --- /dev/null +++ b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_brands.py @@ -0,0 +1,153 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from pprint import pformat +from six import iteritems +import re + + +class TssV2TransactionsGet200ResponsePaymentInformationBrands(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + """ + + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'type': 'str', + 'brand_name': 'str' + } + + attribute_map = { + 'type': 'type', + 'brand_name': 'brandName' + } + + def __init__(self, type=None, brand_name=None): + """ + TssV2TransactionsGet200ResponsePaymentInformationBrands - a model defined in Swagger + """ + + self._type = None + self._brand_name = None + + if type is not None: + self.type = type + if brand_name is not None: + self.brand_name = brand_name + + @property + def type(self): + """ + Gets the type of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + Three-digit value that indicates the card type. **IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is optional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type. Possible values: - `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron. - `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard. - `003`: American Express - `004`: Discover - `005`: Diners Club - `006`: Carte Blanche[^1] - `007`: JCB[^1] - `014`: Enroute[^1] - `021`: JAL[^1] - `024`: Maestro (UK Domestic)[^1] - `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types. - `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types. - `034`: Dankort[^1] - `036`: Cartes Bancaires[^1,4] - `037`: Carta Si[^1] - `039`: Encoded account number[^1] - `040`: UATP[^1] - `042`: Maestro (International)[^1] - `050`: Hipercard[^2,3] - `051`: Aura - `054`: Elo[^3] - `062`: China UnionPay - '070': EFTPOS [^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit. [^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5. [^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. [^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services. #### Used by **Authorization** Required for Carte Blanche and JCB. Optional for all other card types. #### Card Present reply This field is included in the reply message when the client software that is installed on the POS terminal uses the token management service (TMS) to retrieve tokenized payment details. You must contact customer support to have your account enabled to receive these fields in the credit reply message. Returned by the Credit service. This reply field is only supported by the following processors: - American Express Direct - Credit Mutuel-CIC - FDC Nashville Global - OmniPay Direct - SIX #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response. #### GPX This field only supports transactions from the following card types: - Visa - Mastercard - AMEX - Discover - Diners - JCB - Union Pay International + + :return: The type of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + :rtype: str + """ + return self._type + + @type.setter + def type(self, type): + """ + Sets the type of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + Three-digit value that indicates the card type. **IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is optional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type. Possible values: - `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron. - `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard. - `003`: American Express - `004`: Discover - `005`: Diners Club - `006`: Carte Blanche[^1] - `007`: JCB[^1] - `014`: Enroute[^1] - `021`: JAL[^1] - `024`: Maestro (UK Domestic)[^1] - `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types. - `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types. - `034`: Dankort[^1] - `036`: Cartes Bancaires[^1,4] - `037`: Carta Si[^1] - `039`: Encoded account number[^1] - `040`: UATP[^1] - `042`: Maestro (International)[^1] - `050`: Hipercard[^2,3] - `051`: Aura - `054`: Elo[^3] - `062`: China UnionPay - '070': EFTPOS [^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit. [^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5. [^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. [^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services. #### Used by **Authorization** Required for Carte Blanche and JCB. Optional for all other card types. #### Card Present reply This field is included in the reply message when the client software that is installed on the POS terminal uses the token management service (TMS) to retrieve tokenized payment details. You must contact customer support to have your account enabled to receive these fields in the credit reply message. Returned by the Credit service. This reply field is only supported by the following processors: - American Express Direct - Credit Mutuel-CIC - FDC Nashville Global - OmniPay Direct - SIX #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response. #### GPX This field only supports transactions from the following card types: - Visa - Mastercard - AMEX - Discover - Diners - JCB - Union Pay International + + :param type: The type of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + :type: str + """ + + self._type = type + + @property + def brand_name(self): + """ + Gets the brand_name of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + This field contains the card brand name. Some of the possible values (not an exhaustive list) are - - VISA - MASTERCARD - AMERICAN EXPRESS - DISCOVER - DINERS CLUB - CARTE BLANCHE - JCB - OPTIMA - TWINPAY CREDIT CARD - TWINPAY DEBIT CARD - WALMART - ENROUTE - LOWES CONSUMER - HOME DEPOT CONSUMER - MBNA - DICKS SPORTWEAR - CASUAL CORNER - SEARS - JAL - DISNEY CARD - SWITCH/SOLO - SAMS CLUB CONSUMER - SAMS CLUB BUSINESS - NICOS HOUSE CARD - BEBE - RESTORATION HARDWARE - DELTA ONLINE - SOLO - VISA ELECTRON - DANKORT - LASER - CARTE BANCAIRE - CARTA SI - ENCODED ACCOUNT - UATP - HOUSEHOLD - MAESTRO - GE CAPITAL - KOREAN CARDS - STYLE CARDS - JCREW - MEIJER - HIPERCARD - AURA - REDECARD - ORICO HOUSE CARD - ELO - CAPITAL ONE PRIVATE LABEL - CARNET - RUPAY - CHINA UNION PAY - FALABELLA PRIVATE LABEL - PROMPTCARD - KOREAN DOMESTIC - BANRICOMPRAS + + :return: The brand_name of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + :rtype: str + """ + return self._brand_name + + @brand_name.setter + def brand_name(self, brand_name): + """ + Sets the brand_name of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + This field contains the card brand name. Some of the possible values (not an exhaustive list) are - - VISA - MASTERCARD - AMERICAN EXPRESS - DISCOVER - DINERS CLUB - CARTE BLANCHE - JCB - OPTIMA - TWINPAY CREDIT CARD - TWINPAY DEBIT CARD - WALMART - ENROUTE - LOWES CONSUMER - HOME DEPOT CONSUMER - MBNA - DICKS SPORTWEAR - CASUAL CORNER - SEARS - JAL - DISNEY CARD - SWITCH/SOLO - SAMS CLUB CONSUMER - SAMS CLUB BUSINESS - NICOS HOUSE CARD - BEBE - RESTORATION HARDWARE - DELTA ONLINE - SOLO - VISA ELECTRON - DANKORT - LASER - CARTE BANCAIRE - CARTA SI - ENCODED ACCOUNT - UATP - HOUSEHOLD - MAESTRO - GE CAPITAL - KOREAN CARDS - STYLE CARDS - JCREW - MEIJER - HIPERCARD - AURA - REDECARD - ORICO HOUSE CARD - ELO - CAPITAL ONE PRIVATE LABEL - CARNET - RUPAY - CHINA UNION PAY - FALABELLA PRIVATE LABEL - PROMPTCARD - KOREAN DOMESTIC - BANRICOMPRAS + + :param brand_name: The brand_name of this TssV2TransactionsGet200ResponsePaymentInformationBrands. + :type: str + """ + + self._brand_name = brand_name + + def to_dict(self): + """ + Returns the model properties as a dict + """ + result = {} + + for attr, _ in iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """ + Returns the string representation of the model + """ + return pformat(self.to_dict()) + + def __repr__(self): + """ + For `print` and `pprint` + """ + return self.to_str() + + def __eq__(self, other): + """ + Returns true if both objects are equal + """ + if not isinstance(other, TssV2TransactionsGet200ResponsePaymentInformationBrands): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """ + Returns true if both objects are not equal + """ + return not self == other diff --git a/CyberSource/models/tss_v2_transactions_get200_response_payment_information_card.py b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_card.py index 245209b6..f17c5083 100644 --- a/CyberSource/models/tss_v2_transactions_get200_response_payment_information_card.py +++ b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_card.py @@ -39,6 +39,8 @@ class TssV2TransactionsGet200ResponsePaymentInformationCard(object): 'start_year': 'str', 'issue_number': 'str', 'type': 'str', + 'brand_name': 'str', + 'currency': 'str', 'account_encoder_id': 'str', 'use_as': 'str' } @@ -52,11 +54,13 @@ class TssV2TransactionsGet200ResponsePaymentInformationCard(object): 'start_year': 'startYear', 'issue_number': 'issueNumber', 'type': 'type', + 'brand_name': 'brandName', + 'currency': 'currency', 'account_encoder_id': 'accountEncoderId', 'use_as': 'useAs' } - def __init__(self, suffix=None, prefix=None, expiration_month=None, expiration_year=None, start_month=None, start_year=None, issue_number=None, type=None, account_encoder_id=None, use_as=None): + def __init__(self, suffix=None, prefix=None, expiration_month=None, expiration_year=None, start_month=None, start_year=None, issue_number=None, type=None, brand_name=None, currency=None, account_encoder_id=None, use_as=None): """ TssV2TransactionsGet200ResponsePaymentInformationCard - a model defined in Swagger """ @@ -69,6 +73,8 @@ def __init__(self, suffix=None, prefix=None, expiration_month=None, expiration_y self._start_year = None self._issue_number = None self._type = None + self._brand_name = None + self._currency = None self._account_encoder_id = None self._use_as = None @@ -88,6 +94,10 @@ def __init__(self, suffix=None, prefix=None, expiration_month=None, expiration_y self.issue_number = issue_number if type is not None: self.type = type + if brand_name is not None: + self.brand_name = brand_name + if currency is not None: + self.currency = currency if account_encoder_id is not None: self.account_encoder_id = account_encoder_id if use_as is not None: @@ -277,6 +287,52 @@ def type(self, type): self._type = type + @property + def brand_name(self): + """ + Gets the brand_name of this TssV2TransactionsGet200ResponsePaymentInformationCard. + This field contains the card brand name. Some of the possible values (not an exhaustive list) are - - VISA - MASTERCARD - AMERICAN EXPRESS - DISCOVER - DINERS CLUB - CARTE BLANCHE - JCB - OPTIMA - TWINPAY CREDIT CARD - TWINPAY DEBIT CARD - WALMART - ENROUTE - LOWES CONSUMER - HOME DEPOT CONSUMER - MBNA - DICKS SPORTWEAR - CASUAL CORNER - SEARS - JAL - DISNEY CARD - SWITCH/SOLO - SAMS CLUB CONSUMER - SAMS CLUB BUSINESS - NICOS HOUSE CARD - BEBE - RESTORATION HARDWARE - DELTA ONLINE - SOLO - VISA ELECTRON - DANKORT - LASER - CARTE BANCAIRE - CARTA SI - ENCODED ACCOUNT - UATP - HOUSEHOLD - MAESTRO - GE CAPITAL - KOREAN CARDS - STYLE CARDS - JCREW - MEIJER - HIPERCARD - AURA - REDECARD - ORICO HOUSE CARD - ELO - CAPITAL ONE PRIVATE LABEL - CARNET - RUPAY - CHINA UNION PAY - FALABELLA PRIVATE LABEL - PROMPTCARD - KOREAN DOMESTIC - BANRICOMPRAS + + :return: The brand_name of this TssV2TransactionsGet200ResponsePaymentInformationCard. + :rtype: str + """ + return self._brand_name + + @brand_name.setter + def brand_name(self, brand_name): + """ + Sets the brand_name of this TssV2TransactionsGet200ResponsePaymentInformationCard. + This field contains the card brand name. Some of the possible values (not an exhaustive list) are - - VISA - MASTERCARD - AMERICAN EXPRESS - DISCOVER - DINERS CLUB - CARTE BLANCHE - JCB - OPTIMA - TWINPAY CREDIT CARD - TWINPAY DEBIT CARD - WALMART - ENROUTE - LOWES CONSUMER - HOME DEPOT CONSUMER - MBNA - DICKS SPORTWEAR - CASUAL CORNER - SEARS - JAL - DISNEY CARD - SWITCH/SOLO - SAMS CLUB CONSUMER - SAMS CLUB BUSINESS - NICOS HOUSE CARD - BEBE - RESTORATION HARDWARE - DELTA ONLINE - SOLO - VISA ELECTRON - DANKORT - LASER - CARTE BANCAIRE - CARTA SI - ENCODED ACCOUNT - UATP - HOUSEHOLD - MAESTRO - GE CAPITAL - KOREAN CARDS - STYLE CARDS - JCREW - MEIJER - HIPERCARD - AURA - REDECARD - ORICO HOUSE CARD - ELO - CAPITAL ONE PRIVATE LABEL - CARNET - RUPAY - CHINA UNION PAY - FALABELLA PRIVATE LABEL - PROMPTCARD - KOREAN DOMESTIC - BANRICOMPRAS + + :param brand_name: The brand_name of this TssV2TransactionsGet200ResponsePaymentInformationCard. + :type: str + """ + + self._brand_name = brand_name + + @property + def currency(self): + """ + Gets the currency of this TssV2TransactionsGet200ResponsePaymentInformationCard. + This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency. + + :return: The currency of this TssV2TransactionsGet200ResponsePaymentInformationCard. + :rtype: str + """ + return self._currency + + @currency.setter + def currency(self, currency): + """ + Sets the currency of this TssV2TransactionsGet200ResponsePaymentInformationCard. + This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency. + + :param currency: The currency of this TssV2TransactionsGet200ResponsePaymentInformationCard. + :type: str + """ + + self._currency = currency + @property def account_encoder_id(self): """ diff --git a/CyberSource/models/tss_v2_transactions_get200_response_payment_information_features.py b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_features.py new file mode 100644 index 00000000..906ad59b --- /dev/null +++ b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_features.py @@ -0,0 +1,293 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from pprint import pformat +from six import iteritems +import re + + +class TssV2TransactionsGet200ResponsePaymentInformationFeatures(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + """ + + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'account_funding_source': 'str', + 'account_funding_source_sub_type': 'str', + 'card_product': 'str', + 'message_type': 'str', + 'acceptance_level': 'str', + 'card_platform': 'str', + 'combo_card': 'str' + } + + attribute_map = { + 'account_funding_source': 'accountFundingSource', + 'account_funding_source_sub_type': 'accountFundingSourceSubType', + 'card_product': 'cardProduct', + 'message_type': 'messageType', + 'acceptance_level': 'acceptanceLevel', + 'card_platform': 'cardPlatform', + 'combo_card': 'comboCard' + } + + def __init__(self, account_funding_source=None, account_funding_source_sub_type=None, card_product=None, message_type=None, acceptance_level=None, card_platform=None, combo_card=None): + """ + TssV2TransactionsGet200ResponsePaymentInformationFeatures - a model defined in Swagger + """ + + self._account_funding_source = None + self._account_funding_source_sub_type = None + self._card_product = None + self._message_type = None + self._acceptance_level = None + self._card_platform = None + self._combo_card = None + + if account_funding_source is not None: + self.account_funding_source = account_funding_source + if account_funding_source_sub_type is not None: + self.account_funding_source_sub_type = account_funding_source_sub_type + if card_product is not None: + self.card_product = card_product + if message_type is not None: + self.message_type = message_type + if acceptance_level is not None: + self.acceptance_level = acceptance_level + if card_platform is not None: + self.card_platform = card_platform + if combo_card is not None: + self.combo_card = combo_card + + @property + def account_funding_source(self): + """ + Gets the account_funding_source of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the account funding source. Possible values: - `CREDIT` - `DEBIT` - `PREPAID` - `DEFERRED DEBIT` - `CHARGE` + + :return: The account_funding_source of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :rtype: str + """ + return self._account_funding_source + + @account_funding_source.setter + def account_funding_source(self, account_funding_source): + """ + Sets the account_funding_source of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the account funding source. Possible values: - `CREDIT` - `DEBIT` - `PREPAID` - `DEFERRED DEBIT` - `CHARGE` + + :param account_funding_source: The account_funding_source of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :type: str + """ + + self._account_funding_source = account_funding_source + + @property + def account_funding_source_sub_type(self): + """ + Gets the account_funding_source_sub_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of prepaid card. Possible values: - `Reloadable` - `Non-reloadable` + + :return: The account_funding_source_sub_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :rtype: str + """ + return self._account_funding_source_sub_type + + @account_funding_source_sub_type.setter + def account_funding_source_sub_type(self, account_funding_source_sub_type): + """ + Sets the account_funding_source_sub_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of prepaid card. Possible values: - `Reloadable` - `Non-reloadable` + + :param account_funding_source_sub_type: The account_funding_source_sub_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :type: str + """ + + self._account_funding_source_sub_type = account_funding_source_sub_type + + @property + def card_product(self): + """ + Gets the card_product of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of issuer product. Example values: - Visa Classic - Visa Signature - Visa Infinite + + :return: The card_product of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :rtype: str + """ + return self._card_product + + @card_product.setter + def card_product(self, card_product): + """ + Sets the card_product of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of issuer product. Example values: - Visa Classic - Visa Signature - Visa Infinite + + :param card_product: The card_product of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :type: str + """ + + self._card_product = card_product + + @property + def message_type(self): + """ + Gets the message_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of BIN based authentication. Possible values: - `S`: Single Message - `D`: Dual Message + + :return: The message_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :rtype: str + """ + return self._message_type + + @message_type.setter + def message_type(self, message_type): + """ + Sets the message_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of BIN based authentication. Possible values: - `S`: Single Message - `D`: Dual Message + + :param message_type: The message_type of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :type: str + """ + + self._message_type = message_type + + @property + def acceptance_level(self): + """ + Gets the acceptance_level of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the acceptance level of the PAN. Possible values: - `0` : Normal - `1` : Monitor - `2` : Refuse - `3` : Not Allowed - `4` : Private - `5` : Test + + :return: The acceptance_level of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :rtype: str + """ + return self._acceptance_level + + @acceptance_level.setter + def acceptance_level(self, acceptance_level): + """ + Sets the acceptance_level of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the acceptance level of the PAN. Possible values: - `0` : Normal - `1` : Monitor - `2` : Refuse - `3` : Not Allowed - `4` : Private - `5` : Test + + :param acceptance_level: The acceptance_level of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :type: str + """ + + self._acceptance_level = acceptance_level + + @property + def card_platform(self): + """ + Gets the card_platform of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of card platform. Possible values: - `BUSINESS` - `CONSUMER` - `COMMERCIAL` - `GOVERNMENT` + + :return: The card_platform of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :rtype: str + """ + return self._card_platform + + @card_platform.setter + def card_platform(self, card_platform): + """ + Sets the card_platform of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field contains the type of card platform. Possible values: - `BUSINESS` - `CONSUMER` - `COMMERCIAL` - `GOVERNMENT` + + :param card_platform: The card_platform of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :type: str + """ + + self._card_platform = card_platform + + @property + def combo_card(self): + """ + Gets the combo_card of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field indicates the type of combo card. Possible values: - 0 (Not a combo card) - 1 (Credit and Prepaid Combo card) - 2 (Credit and Debit Combo card) + + :return: The combo_card of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :rtype: str + """ + return self._combo_card + + @combo_card.setter + def combo_card(self, combo_card): + """ + Sets the combo_card of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + This field indicates the type of combo card. Possible values: - 0 (Not a combo card) - 1 (Credit and Prepaid Combo card) - 2 (Credit and Debit Combo card) + + :param combo_card: The combo_card of this TssV2TransactionsGet200ResponsePaymentInformationFeatures. + :type: str + """ + + self._combo_card = combo_card + + def to_dict(self): + """ + Returns the model properties as a dict + """ + result = {} + + for attr, _ in iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """ + Returns the string representation of the model + """ + return pformat(self.to_dict()) + + def __repr__(self): + """ + For `print` and `pprint` + """ + return self.to_str() + + def __eq__(self, other): + """ + Returns true if both objects are equal + """ + if not isinstance(other, TssV2TransactionsGet200ResponsePaymentInformationFeatures): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """ + Returns true if both objects are not equal + """ + return not self == other diff --git a/CyberSource/models/tss_v2_transactions_get200_response_payment_information_issuer_information.py b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_issuer_information.py new file mode 100644 index 00000000..b06d25e5 --- /dev/null +++ b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_issuer_information.py @@ -0,0 +1,209 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from pprint import pformat +from six import iteritems +import re + + +class TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + """ + + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'name': 'str', + 'country': 'str', + 'bin_length': 'str', + 'phone_number': 'str' + } + + attribute_map = { + 'name': 'name', + 'country': 'country', + 'bin_length': 'binLength', + 'phone_number': 'phoneNumber' + } + + def __init__(self, name=None, country=None, bin_length=None, phone_number=None): + """ + TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation - a model defined in Swagger + """ + + self._name = None + self._country = None + self._bin_length = None + self._phone_number = None + + if name is not None: + self.name = name + if country is not None: + self.country = country + if bin_length is not None: + self.bin_length = bin_length + if phone_number is not None: + self.phone_number = phone_number + + @property + def name(self): + """ + Gets the name of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains the issuer name. + + :return: The name of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :rtype: str + """ + return self._name + + @name.setter + def name(self, name): + """ + Sets the name of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains the issuer name. + + :param name: The name of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :type: str + """ + + self._name = name + + @property + def country(self): + """ + Gets the country of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains [2-character ISO Country Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf) for the issuer. + + :return: The country of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :rtype: str + """ + return self._country + + @country.setter + def country(self, country): + """ + Sets the country of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains [2-character ISO Country Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf) for the issuer. + + :param country: The country of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :type: str + """ + + self._country = country + + @property + def bin_length(self): + """ + Gets the bin_length of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains the length of the BIN. + + :return: The bin_length of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :rtype: str + """ + return self._bin_length + + @bin_length.setter + def bin_length(self, bin_length): + """ + Sets the bin_length of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains the length of the BIN. + + :param bin_length: The bin_length of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :type: str + """ + + self._bin_length = bin_length + + @property + def phone_number(self): + """ + Gets the phone_number of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains the customer service phone number for the issuer. + + :return: The phone_number of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :rtype: str + """ + return self._phone_number + + @phone_number.setter + def phone_number(self, phone_number): + """ + Sets the phone_number of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + This field contains the customer service phone number for the issuer. + + :param phone_number: The phone_number of this TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation. + :type: str + """ + + self._phone_number = phone_number + + def to_dict(self): + """ + Returns the model properties as a dict + """ + result = {} + + for attr, _ in iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """ + Returns the string representation of the model + """ + return pformat(self.to_dict()) + + def __repr__(self): + """ + For `print` and `pprint` + """ + return self.to_str() + + def __eq__(self, other): + """ + Returns true if both objects are equal + """ + if not isinstance(other, TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """ + Returns true if both objects are not equal + """ + return not self == other diff --git a/CyberSource/models/tss_v2_transactions_get200_response_payment_information_network.py b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_network.py new file mode 100644 index 00000000..a6e2c020 --- /dev/null +++ b/CyberSource/models/tss_v2_transactions_get200_response_payment_information_network.py @@ -0,0 +1,125 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from pprint import pformat +from six import iteritems +import re + + +class TssV2TransactionsGet200ResponsePaymentInformationNetwork(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + """ + + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'id': 'str' + } + + attribute_map = { + 'id': 'id' + } + + def __init__(self, id=None): + """ + TssV2TransactionsGet200ResponsePaymentInformationNetwork - a model defined in Swagger + """ + + self._id = None + + if id is not None: + self.id = id + + @property + def id(self): + """ + Gets the id of this TssV2TransactionsGet200ResponsePaymentInformationNetwork. + This field contains a code that identifies the network. Please refer [Network ID and Sharing Group Code](https://developer.visa.com/request_response_codes#network_id_and_sharing_group_code) + + :return: The id of this TssV2TransactionsGet200ResponsePaymentInformationNetwork. + :rtype: str + """ + return self._id + + @id.setter + def id(self, id): + """ + Sets the id of this TssV2TransactionsGet200ResponsePaymentInformationNetwork. + This field contains a code that identifies the network. Please refer [Network ID and Sharing Group Code](https://developer.visa.com/request_response_codes#network_id_and_sharing_group_code) + + :param id: The id of this TssV2TransactionsGet200ResponsePaymentInformationNetwork. + :type: str + """ + + self._id = id + + def to_dict(self): + """ + Returns the model properties as a dict + """ + result = {} + + for attr, _ in iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """ + Returns the string representation of the model + """ + return pformat(self.to_dict()) + + def __repr__(self): + """ + For `print` and `pprint` + """ + return self.to_str() + + def __eq__(self, other): + """ + Returns true if both objects are equal + """ + if not isinstance(other, TssV2TransactionsGet200ResponsePaymentInformationNetwork): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """ + Returns true if both objects are not equal + """ + return not self == other diff --git a/CyberSource/models/tss_v2_transactions_get200_response_payout_options.py b/CyberSource/models/tss_v2_transactions_get200_response_payout_options.py new file mode 100644 index 00000000..5cb8d4cd --- /dev/null +++ b/CyberSource/models/tss_v2_transactions_get200_response_payout_options.py @@ -0,0 +1,125 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from pprint import pformat +from six import iteritems +import re + + +class TssV2TransactionsGet200ResponsePayoutOptions(object): + """ + NOTE: This class is auto generated by the swagger code generator program. + Do not edit the class manually. + """ + + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'payout_inquiry': 'str' + } + + attribute_map = { + 'payout_inquiry': 'payoutInquiry' + } + + def __init__(self, payout_inquiry=None): + """ + TssV2TransactionsGet200ResponsePayoutOptions - a model defined in Swagger + """ + + self._payout_inquiry = None + + if payout_inquiry is not None: + self.payout_inquiry = payout_inquiry + + @property + def payout_inquiry(self): + """ + Gets the payout_inquiry of this TssV2TransactionsGet200ResponsePayoutOptions. + If true then provide attributes related to fund transfer/payouts. If payout information not found then response will have standard account lookup. Possible values: - `true` - `false` + + :return: The payout_inquiry of this TssV2TransactionsGet200ResponsePayoutOptions. + :rtype: str + """ + return self._payout_inquiry + + @payout_inquiry.setter + def payout_inquiry(self, payout_inquiry): + """ + Sets the payout_inquiry of this TssV2TransactionsGet200ResponsePayoutOptions. + If true then provide attributes related to fund transfer/payouts. If payout information not found then response will have standard account lookup. Possible values: - `true` - `false` + + :param payout_inquiry: The payout_inquiry of this TssV2TransactionsGet200ResponsePayoutOptions. + :type: str + """ + + self._payout_inquiry = payout_inquiry + + def to_dict(self): + """ + Returns the model properties as a dict + """ + result = {} + + for attr, _ in iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + + return result + + def to_str(self): + """ + Returns the string representation of the model + """ + return pformat(self.to_dict()) + + def __repr__(self): + """ + For `print` and `pprint` + """ + return self.to_str() + + def __eq__(self, other): + """ + Returns true if both objects are equal + """ + if not isinstance(other, TssV2TransactionsGet200ResponsePayoutOptions): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """ + Returns true if both objects are not equal + """ + return not self == other diff --git a/CyberSource/models/tss_v2_transactions_get200_response_processing_information.py b/CyberSource/models/tss_v2_transactions_get200_response_processing_information.py index 790391a0..d883fc87 100644 --- a/CyberSource/models/tss_v2_transactions_get200_response_processing_information.py +++ b/CyberSource/models/tss_v2_transactions_get200_response_processing_information.py @@ -31,6 +31,7 @@ class TssV2TransactionsGet200ResponseProcessingInformation(object): and the value is json key in definition. """ swagger_types = { + 'bin_source': 'str', 'industry_data_type': 'str', 'payment_solution': 'str', 'commerce_indicator': 'str', @@ -42,6 +43,7 @@ class TssV2TransactionsGet200ResponseProcessingInformation(object): } attribute_map = { + 'bin_source': 'binSource', 'industry_data_type': 'industryDataType', 'payment_solution': 'paymentSolution', 'commerce_indicator': 'commerceIndicator', @@ -52,11 +54,12 @@ class TssV2TransactionsGet200ResponseProcessingInformation(object): 'japan_payment_options': 'japanPaymentOptions' } - def __init__(self, industry_data_type=None, payment_solution=None, commerce_indicator=None, commerce_indicator_label=None, business_application_id=None, authorization_options=None, bank_transfer_options=None, japan_payment_options=None): + def __init__(self, bin_source=None, industry_data_type=None, payment_solution=None, commerce_indicator=None, commerce_indicator_label=None, business_application_id=None, authorization_options=None, bank_transfer_options=None, japan_payment_options=None): """ TssV2TransactionsGet200ResponseProcessingInformation - a model defined in Swagger """ + self._bin_source = None self._industry_data_type = None self._payment_solution = None self._commerce_indicator = None @@ -66,6 +69,8 @@ def __init__(self, industry_data_type=None, payment_solution=None, commerce_indi self._bank_transfer_options = None self._japan_payment_options = None + if bin_source is not None: + self.bin_source = bin_source if industry_data_type is not None: self.industry_data_type = industry_data_type if payment_solution is not None: @@ -83,6 +88,29 @@ def __init__(self, industry_data_type=None, payment_solution=None, commerce_indi if japan_payment_options is not None: self.japan_payment_options = japan_payment_options + @property + def bin_source(self): + """ + Gets the bin_source of this TssV2TransactionsGet200ResponseProcessingInformation. + Bin Source File Identifier. Possible values: - itmx - rupay + + :return: The bin_source of this TssV2TransactionsGet200ResponseProcessingInformation. + :rtype: str + """ + return self._bin_source + + @bin_source.setter + def bin_source(self, bin_source): + """ + Sets the bin_source of this TssV2TransactionsGet200ResponseProcessingInformation. + Bin Source File Identifier. Possible values: - itmx - rupay + + :param bin_source: The bin_source of this TssV2TransactionsGet200ResponseProcessingInformation. + :type: str + """ + + self._bin_source = bin_source + @property def industry_data_type(self): """ diff --git a/CyberSource/models/tss_v2_transactions_get200_response_token_information.py b/CyberSource/models/tss_v2_transactions_get200_response_token_information.py index 1115af6c..c09f26a4 100644 --- a/CyberSource/models/tss_v2_transactions_get200_response_token_information.py +++ b/CyberSource/models/tss_v2_transactions_get200_response_token_information.py @@ -34,17 +34,21 @@ class TssV2TransactionsGet200ResponseTokenInformation(object): 'customer': 'PtsV2PaymentsPost201ResponseTokenInformationCustomer', 'payment_instrument': 'PtsV2PaymentsPost201ResponseTokenInformationPaymentInstrument', 'shipping_address': 'PtsV2PaymentsPost201ResponseTokenInformationShippingAddress', - 'instrument_identifier': 'TssV2TransactionsGet200ResponsePaymentInformationInstrumentIdentifier' + 'instrument_identifier': 'TssV2TransactionsGet200ResponsePaymentInformationInstrumentIdentifier', + 'jti': 'str', + 'transient_token_jwt': 'str' } attribute_map = { 'customer': 'customer', 'payment_instrument': 'paymentInstrument', 'shipping_address': 'shippingAddress', - 'instrument_identifier': 'instrumentIdentifier' + 'instrument_identifier': 'instrumentIdentifier', + 'jti': 'jti', + 'transient_token_jwt': 'transientTokenJwt' } - def __init__(self, customer=None, payment_instrument=None, shipping_address=None, instrument_identifier=None): + def __init__(self, customer=None, payment_instrument=None, shipping_address=None, instrument_identifier=None, jti=None, transient_token_jwt=None): """ TssV2TransactionsGet200ResponseTokenInformation - a model defined in Swagger """ @@ -53,6 +57,8 @@ def __init__(self, customer=None, payment_instrument=None, shipping_address=None self._payment_instrument = None self._shipping_address = None self._instrument_identifier = None + self._jti = None + self._transient_token_jwt = None if customer is not None: self.customer = customer @@ -62,6 +68,10 @@ def __init__(self, customer=None, payment_instrument=None, shipping_address=None self.shipping_address = shipping_address if instrument_identifier is not None: self.instrument_identifier = instrument_identifier + if jti is not None: + self.jti = jti + if transient_token_jwt is not None: + self.transient_token_jwt = transient_token_jwt @property def customer(self): @@ -147,6 +157,52 @@ def instrument_identifier(self, instrument_identifier): self._instrument_identifier = instrument_identifier + @property + def jti(self): + """ + Gets the jti of this TssV2TransactionsGet200ResponseTokenInformation. + TMS Transient Token, 64 hexadecimal id value representing captured payment credentials (including Sensitive Authentication Data, e.g. CVV). + + :return: The jti of this TssV2TransactionsGet200ResponseTokenInformation. + :rtype: str + """ + return self._jti + + @jti.setter + def jti(self, jti): + """ + Sets the jti of this TssV2TransactionsGet200ResponseTokenInformation. + TMS Transient Token, 64 hexadecimal id value representing captured payment credentials (including Sensitive Authentication Data, e.g. CVV). + + :param jti: The jti of this TssV2TransactionsGet200ResponseTokenInformation. + :type: str + """ + + self._jti = jti + + @property + def transient_token_jwt(self): + """ + Gets the transient_token_jwt of this TssV2TransactionsGet200ResponseTokenInformation. + Flex API Transient Token encoded as JWT (JSON Web Token), e.g. Flex microform or Unified Payment checkout result. + + :return: The transient_token_jwt of this TssV2TransactionsGet200ResponseTokenInformation. + :rtype: str + """ + return self._transient_token_jwt + + @transient_token_jwt.setter + def transient_token_jwt(self, transient_token_jwt): + """ + Sets the transient_token_jwt of this TssV2TransactionsGet200ResponseTokenInformation. + Flex API Transient Token encoded as JWT (JSON Web Token), e.g. Flex microform or Unified Payment checkout result. + + :param transient_token_jwt: The transient_token_jwt of this TssV2TransactionsGet200ResponseTokenInformation. + :type: str + """ + + self._transient_token_jwt = transient_token_jwt + def to_dict(self): """ Returns the model properties as a dict diff --git a/docs/Body.md b/docs/Body.md index 3794bea5..aea90e4c 100644 --- a/docs/Body.md +++ b/docs/Body.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **type** | **str** | Valid Values: * oneOff * amexRegistration | [optional] [default to 'oneOff'] -**included** | [**Accountupdaterv1batchesIncluded**](Accountupdaterv1batchesIncluded.md) | | [optional] +**included** | [**Accountupdaterv1batchesIncluded**](Accountupdaterv1batchesIncluded.md) | | **merchant_reference** | **str** | Reference used by merchant to identify batch. | [optional] **notification_email** | **str** | Email used to notify the batch status. | diff --git a/docs/CreateBundledDecisionManagerCaseRequest.md b/docs/CreateBundledDecisionManagerCaseRequest.md index 6a0c5d56..e3d76599 100644 --- a/docs/CreateBundledDecisionManagerCaseRequest.md +++ b/docs/CreateBundledDecisionManagerCaseRequest.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **processor_information** | [**Riskv1decisionsProcessorInformation**](Riskv1decisionsProcessorInformation.md) | | [optional] **processing_information** | [**Riskv1decisionsProcessingInformation**](Riskv1decisionsProcessingInformation.md) | | [optional] **payment_information** | [**Riskv1decisionsPaymentInformation**](Riskv1decisionsPaymentInformation.md) | | [optional] -**order_information** | [**Riskv1decisionsOrderInformation**](Riskv1decisionsOrderInformation.md) | | [optional] +**order_information** | [**Riskv1decisionsOrderInformation**](Riskv1decisionsOrderInformation.md) | | **buyer_information** | [**Riskv1decisionsBuyerInformation**](Riskv1decisionsBuyerInformation.md) | | [optional] **device_information** | [**Riskv1decisionsDeviceInformation**](Riskv1decisionsDeviceInformation.md) | | [optional] **risk_information** | [**Riskv1decisionsRiskInformation**](Riskv1decisionsRiskInformation.md) | | [optional] diff --git a/docs/FraudMarkingActionRequest.md b/docs/FraudMarkingActionRequest.md index 7c629099..46d3b4e4 100644 --- a/docs/FraudMarkingActionRequest.md +++ b/docs/FraudMarkingActionRequest.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**risk_information** | [**Riskv1decisionsidmarkingRiskInformation**](Riskv1decisionsidmarkingRiskInformation.md) | | [optional] +**risk_information** | [**Riskv1decisionsidmarkingRiskInformation**](Riskv1decisionsidmarkingRiskInformation.md) | | **client_reference_information** | [**Riskv1liststypeentriesClientReferenceInformation**](Riskv1liststypeentriesClientReferenceInformation.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation.md b/docs/InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation.md index 3e590c25..e3043887 100644 --- a/docs/InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation.md +++ b/docs/InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformation.md @@ -10,7 +10,9 @@ Name | Type | Description | Notes **header_style** | [**InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformationHeaderStyle**](InvoicingV2InvoiceSettingsGet200ResponseInvoiceSettingsInformationHeaderStyle.md) | | [optional] **delivery_language** | **str** | The language of the email that we send to your customers. Possible values are `zh-CN`, `zh-TW`, `en-US`, `fr-FR`, `de-DE`, `ja-JP`, `pt-BR`, `ru-RU` and `es-419`. | [optional] **default_currency_code** | **str** | Currency used for the order. Use the three-character [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) #### Used by **Authorization** Required field. **Authorization Reversal** For an authorization reversal (`reversalInformation`) or a capture (`processingOptions.capture` is set to `true`), you must use the same currency that you used in your payment authorization request. #### PIN Debit Currency for the amount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf). Returned by PIN debit purchase. For PIN debit reversal requests, you must use the same currency that was used for the PIN debit purchase or PIN debit credit that you are reversing. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf). Required field for PIN Debit purchase and PIN Debit credit requests. Optional field for PIN Debit reversal requests. #### GPX This field is optional for reversing an authorization or credit. #### DCC for First Data Your local currency. For details, see the `currency` field description in [Dynamic Currency Conversion For First Data Using the SCMP API](http://apps.cybersource.com/library/documentation/dev_guides/DCC_FirstData_SCMP/DCC_FirstData_SCMP_API.pdf). #### Tax Calculation Required for international tax and value added tax only. Optional for U.S. and Canadian taxes. Your local currency. | [optional] -**payer_authentication3_ds_version** | **str** | The 3D Secure payer authentication version or status for a merchant's invoice payments. Possible values are: - `1` - `2` - `None` - `Disabled` | [optional] +**payer_authentication3_ds_version** | **bool** | The 3D Secure payer authentication status for a merchant's invoice payments. | [optional] [default to False] +**show_vat_number** | **bool** | Display VAT number on Invoice. | [optional] [default to False] +**vat_registration_number** | **str** | Your government-assigned tax identification number. #### Tax Calculation Required field for value added tax only. Not applicable to U.S. and Canadian taxes. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Invoicingv2invoiceSettingsInvoiceSettingsInformation.md b/docs/Invoicingv2invoiceSettingsInvoiceSettingsInformation.md index a79e85fc..48b42ac2 100644 --- a/docs/Invoicingv2invoiceSettingsInvoiceSettingsInformation.md +++ b/docs/Invoicingv2invoiceSettingsInvoiceSettingsInformation.md @@ -11,6 +11,8 @@ Name | Type | Description | Notes **delivery_language** | **str** | The language of the email that we send to your customers. Possible values are `zh-CN`, `zh-TW`, `en-US`, `fr-FR`, `de-DE`, `ja-JP`, `pt-BR`, `ru-RU` and `es-419`. | [optional] **default_currency_code** | **str** | Currency used for the order. Use the three-character [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) #### Used by **Authorization** Required field. **Authorization Reversal** For an authorization reversal (`reversalInformation`) or a capture (`processingOptions.capture` is set to `true`), you must use the same currency that you used in your payment authorization request. #### PIN Debit Currency for the amount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf). Returned by PIN debit purchase. For PIN debit reversal requests, you must use the same currency that was used for the PIN debit purchase or PIN debit credit that you are reversing. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf). Required field for PIN Debit purchase and PIN Debit credit requests. Optional field for PIN Debit reversal requests. #### GPX This field is optional for reversing an authorization or credit. #### DCC for First Data Your local currency. For details, see the `currency` field description in [Dynamic Currency Conversion For First Data Using the SCMP API](http://apps.cybersource.com/library/documentation/dev_guides/DCC_FirstData_SCMP/DCC_FirstData_SCMP_API.pdf). #### Tax Calculation Required for international tax and value added tax only. Optional for U.S. and Canadian taxes. Your local currency. | [optional] **payer_authentication_in_invoicing** | **str** | For a merchant's invoice payments, enable 3D Secure payer authentication version 1, update to 3D Secure version 2, or disable 3D Secure. Possible values are: - `enable` - `update` - `disable` | [optional] +**show_vat_number** | **bool** | Display VAT number on Invoice. | [optional] [default to False] +**vat_registration_number** | **str** | Your government-assigned tax identification number. #### Tax Calculation Required field for value added tax only. Not applicable to U.S. and Canadian taxes. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Invoicingv2invoicesCustomerInformation.md b/docs/Invoicingv2invoicesCustomerInformation.md index bac06879..9f8ef253 100644 --- a/docs/Invoicingv2invoicesCustomerInformation.md +++ b/docs/Invoicingv2invoicesCustomerInformation.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes **name** | **str** | Payer name for the invoice. | [optional] **email** | **str** | Customer's email address, including the full domain name. #### CyberSource through VisaNet Credit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks. **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting. For processor-specific information, see the `customer_email` request-level field description in [Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html) #### Invoicing Email address for the customer for sending the invoice. If the invoice is in SENT status and email is updated, the old email customer payment link won't work and you must resend the invoice with the new payment link. #### Chase Paymentech Solutions Optional field. #### Credit Mutuel-CIC Optional field. #### OmniPay Direct Optional field. #### SIX Optional field. #### TSYS Acquiring Solutions Required when `processingInformation.billPaymentOptions.billPayment=true` and `pointOfSaleInformation.entryMode=keyed`. #### Worldpay VAP Optional field. #### All other processors Not used. | [optional] **merchant_customer_id** | **str** | Your identifier for the customer. When a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100. #### Comercio Latino For recurring payments in Mexico, the value is the customer’s contract number. Note Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions. #### Worldpay VAP For a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order given, for a customer account ID value and uses the first value it finds: 1. `customer_account_id` value in the follow-on credit request 2. Customer account ID value that was used for the capture that is being credited 3. Customer account ID value that was used for the original authorization If a customer account ID value cannot be found in any of these locations, then no value is used. For processor-specific information, see the `customer_account_id` field description in [Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html) | [optional] +**company** | [**Invoicingv2invoicesCustomerInformationCompany**](Invoicingv2invoicesCustomerInformationCompany.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Invoicingv2invoicesCustomerInformationCompany.md b/docs/Invoicingv2invoicesCustomerInformationCompany.md new file mode 100644 index 00000000..70736a46 --- /dev/null +++ b/docs/Invoicingv2invoicesCustomerInformationCompany.md @@ -0,0 +1,10 @@ +# Invoicingv2invoicesCustomerInformationCompany + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Name of the customer’s company. **CyberSource through VisaNet** Credit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks. For processor-specific information, see the `company_name` field in [Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html) | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Invoicingv2invoicesOrderInformationAmountDetailsFreight.md b/docs/Invoicingv2invoicesOrderInformationAmountDetailsFreight.md index 84feaef9..9bfcbcd9 100644 --- a/docs/Invoicingv2invoicesOrderInformationAmountDetailsFreight.md +++ b/docs/Invoicingv2invoicesOrderInformationAmountDetailsFreight.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **amount** | **str** | Total freight or shipping and handling charges for the order. When you include this field in your request, you must also include the **totalAmount** field. For processor-specific information, see the freight_amount field in [Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html) | [optional] **taxable** | **bool** | Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0. If you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include `invoiceDetails.taxable` in the data it sends to the processor. For processor-specific information, see the `tax_indicator` field in [Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html) Possible values: - **true** - **false** | [optional] +**tax_rate** | **str** | Shipping Tax rate applied to the freight amount. **Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional decimal places will be truncated). **Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%). | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Invoicingv2invoicesOrderInformationLineItems.md b/docs/Invoicingv2invoicesOrderInformationLineItems.md index 3e1198af..a0a01b62 100644 --- a/docs/Invoicingv2invoicesOrderInformationLineItems.md +++ b/docs/Invoicingv2invoicesOrderInformationLineItems.md @@ -7,6 +7,11 @@ Name | Type | Description | Notes **product_name** | **str** | For an authorization or capture transaction (`processingOptions.capture` is `true` or `false`), this field is required when `orderInformation.lineItems[].productCode` is not `default` or one of the other values that are related to shipping and/or handling. #### Tax Calculation Optional field for U.S., Canadian, international tax, and value added taxes. | [optional] **quantity** | **int** | Number of units for this order. Must be a non-negative integer. The default is `1`. For an authorization or capture transaction (`processingOptions.capture` is set to `true` or `false`), this field is required when `orderInformation.lineItems[].productCode` is not `default` or one of the other values related to shipping and/or handling. #### Tax Calculation Optional field for U.S., Canadian, international tax, and value added taxes. | [optional] **unit_price** | **str** | Per-item price of the product. This value for this field cannot be negative. You must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request. You can include a decimal point (.), but you cannot include any other special characters. The value is truncated to the correct number of decimal places. #### DCC with a Third-Party Provider Set this field to the converted amount that was returned by the DCC provider. You must include either the 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request. #### FDMS South If you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.] (https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/) #### Tax Calculation Required field for U.S., Canadian, international and value added taxes. #### Zero Amount Authorizations If your processor supports zero amount authorizations, you can set this field to 0 for the authorization to check if the card is lost or stolen. #### Maximum Field Lengths For GPN and JCN Gateway: Decimal (10) All other processors: Decimal (15) | [optional] +**discount_amount** | **str** | Discount applied to the item. | [optional] +**discount_rate** | **str** | Rate the item is discounted. Maximum of 2 decimal places. Example 5.25 (=5.25%) | [optional] +**tax_amount** | **str** | Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must be in the same currency. The tax amount field is additive. The following example uses a two-exponent currency such as USD: 1. You include each line item in your request. ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80 ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included. Optional field. #### Airlines processing Tax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s). Format: English characters only. Optional request field for a line item. #### Tax Calculation Optional field for U.S., Canadian, international tax, and value added taxes. Note if you send this field in your tax request, the value in the field will override the tax engine | [optional] +**tax_rate** | **str** | Tax rate applied to the item. For details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/) **Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional decimal places will be truncated). **Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%). | [optional] +**total_amount** | **str** | Total amount for the item. Normally calculated as the unit price times quantity. When `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total for prepaid gift cards in major units. Example: 123.45 USD = 123 | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/KeymanagementApi.md b/docs/KeymanagementApi.md index 7a184b58..000e3e9e 100644 --- a/docs/KeymanagementApi.md +++ b/docs/KeymanagementApi.md @@ -1,10 +1,10 @@ -# CyberSource.KeymanagementApi +# CyberSource.KeyManagementApi All URIs are relative to *https://apitest.cybersource.com* Method | HTTP request | Description ------------- | ------------- | ------------- -[**search_keys**](KeymanagementApi.md#search_keys) | **GET** /kms/v2/keys | Search Keys +[**search_keys**](KeyManagementApi.md#search_keys) | **GET** /kms/v2/keys | Search Keys # **search_keys** @@ -23,7 +23,7 @@ from CyberSource.rest import ApiException from pprint import pprint # create an instance of the API class -api_instance = CyberSource.KeymanagementApi() +api_instance = CyberSource.KeyManagementApi() offset = 56 # int | This allows you to specify the page offset from the resulting list resultset you want the records to be returned (optional) limit = 56 # int | This allows you to specify the total number of records to be returned off the resulting list resultset (optional) sort = 'sort_example' # str | This allows you to specify a comma separated list of fields in the order which the resulting list resultset must be sorted. (optional) @@ -38,7 +38,7 @@ try: api_response = api_instance.search_keys(offset=offset, limit=limit, sort=sort, organization_ids=organization_ids, key_ids=key_ids, key_types=key_types, expiration_start_date=expiration_start_date, expiration_end_date=expiration_end_date) pprint(api_response) except ApiException as e: - print("Exception when calling KeymanagementApi->search_keys: %s\n" % e) + print("Exception when calling KeyManagementApi->search_keys: %s\n" % e) ``` ### Parameters diff --git a/docs/KeymanagementpasswordApi.md b/docs/KeymanagementpasswordApi.md index 448a5f72..c1895967 100644 --- a/docs/KeymanagementpasswordApi.md +++ b/docs/KeymanagementpasswordApi.md @@ -1,10 +1,10 @@ -# CyberSource.KeymanagementpasswordApi +# CyberSource.KeyManagementPasswordApi All URIs are relative to *https://apitest.cybersource.com* Method | HTTP request | Description ------------- | ------------- | ------------- -[**update_password**](KeymanagementpasswordApi.md#update_password) | **PATCH** /kms/v2/keys-password/{keyId} | Activate or De-activate Password +[**update_password**](KeyManagementPasswordApi.md#update_password) | **PATCH** /kms/v2/keys-password/{keyId} | Activate or De-activate Password # **update_password** @@ -23,7 +23,7 @@ from CyberSource.rest import ApiException from pprint import pprint # create an instance of the API class -api_instance = CyberSource.KeymanagementpasswordApi() +api_instance = CyberSource.KeyManagementPasswordApi() key_id = 'key_id_example' # str | Key ID. update_password_keys_request = CyberSource.UpdatePasswordKeysRequest() # UpdatePasswordKeysRequest | @@ -32,7 +32,7 @@ try: api_response = api_instance.update_password(key_id, update_password_keys_request) pprint(api_response) except ApiException as e: - print("Exception when calling KeymanagementpasswordApi->update_password: %s\n" % e) + print("Exception when calling KeyManagementPasswordApi->update_password: %s\n" % e) ``` ### Parameters diff --git a/docs/KeymanagementpgpApi.md b/docs/KeymanagementpgpApi.md index 85d77625..e0644589 100644 --- a/docs/KeymanagementpgpApi.md +++ b/docs/KeymanagementpgpApi.md @@ -1,10 +1,10 @@ -# CyberSource.KeymanagementpgpApi +# CyberSource.KeyManagementPgpApi All URIs are relative to *https://apitest.cybersource.com* Method | HTTP request | Description ------------- | ------------- | ------------- -[**update_pgp**](KeymanagementpgpApi.md#update_pgp) | **PATCH** /kms/v2/keys-pgp/{keyId} | Activate or De-activate PGP Key +[**update_pgp**](KeyManagementPgpApi.md#update_pgp) | **PATCH** /kms/v2/keys-pgp/{keyId} | Activate or De-activate PGP Key # **update_pgp** @@ -23,7 +23,7 @@ from CyberSource.rest import ApiException from pprint import pprint # create an instance of the API class -api_instance = CyberSource.KeymanagementpgpApi() +api_instance = CyberSource.KeyManagementPgpApi() key_id = 'key_id_example' # str | Key ID. update_pgp_keys_request = CyberSource.UpdatePGPKeysRequest() # UpdatePGPKeysRequest | @@ -32,7 +32,7 @@ try: api_response = api_instance.update_pgp(key_id, update_pgp_keys_request) pprint(api_response) except ApiException as e: - print("Exception when calling KeymanagementpgpApi->update_pgp: %s\n" % e) + print("Exception when calling KeyManagementPgpApi->update_pgp: %s\n" % e) ``` ### Parameters diff --git a/docs/KeymanagementscmpApi.md b/docs/KeymanagementscmpApi.md index a5c7cbb5..58007c72 100644 --- a/docs/KeymanagementscmpApi.md +++ b/docs/KeymanagementscmpApi.md @@ -1,10 +1,10 @@ -# CyberSource.KeymanagementscmpApi +# CyberSource.KeyManagementScmpApi All URIs are relative to *https://apitest.cybersource.com* Method | HTTP request | Description ------------- | ------------- | ------------- -[**update_scmp**](KeymanagementscmpApi.md#update_scmp) | **PATCH** /kms/v2/keys-scmp/{keyId} | Update or Deactivate +[**update_scmp**](KeyManagementScmpApi.md#update_scmp) | **PATCH** /kms/v2/keys-scmp/{keyId} | Update or Deactivate # **update_scmp** @@ -23,7 +23,7 @@ from CyberSource.rest import ApiException from pprint import pprint # create an instance of the API class -api_instance = CyberSource.KeymanagementscmpApi() +api_instance = CyberSource.KeyManagementScmpApi() key_id = 'key_id_example' # str | Key ID. update_pgp_keys_request = CyberSource.UpdatePGPKeysRequest1() # UpdatePGPKeysRequest1 | @@ -32,7 +32,7 @@ try: api_response = api_instance.update_scmp(key_id, update_pgp_keys_request) pprint(api_response) except ApiException as e: - print("Exception when calling KeymanagementscmpApi->update_scmp: %s\n" % e) + print("Exception when calling KeyManagementScmpApi->update_scmp: %s\n" % e) ``` ### Parameters diff --git a/docs/PtsV2PaymentsPost201ResponseProcessorInformation.md b/docs/PtsV2PaymentsPost201ResponseProcessorInformation.md index 36bce0fe..1bd459c9 100644 --- a/docs/PtsV2PaymentsPost201ResponseProcessorInformation.md +++ b/docs/PtsV2PaymentsPost201ResponseProcessorInformation.md @@ -13,6 +13,7 @@ Name | Type | Description | Notes **response_details** | **str** | This field might contain information about a decline. This field is supported only for **CyberSource through VisaNet**. | [optional] **response_category_code** | **str** | Processor-defined response category code. The associated detail error code is in the `processorInformation.responseCode` or `issuerInformation.responseCode` field of the service you requested. This field is supported only for: - Japanese issuers - Domestic transactions in Japan - Comercio Latino—processor transaction ID required for troubleshooting #### Maximum length for processors - Comercio Latino: 36 - All other processors: 3 | [optional] **forwarded_acquirer_code** | **str** | Name of the Japanese acquirer that processed the transaction. Returned only for JCN Gateway. Please contact the CyberSource Japan Support Group for more information. | [optional] +**settlement_date** | **str** | Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day. | [optional] **avs** | [**PtsV2PaymentsPost201ResponseProcessorInformationAvs**](PtsV2PaymentsPost201ResponseProcessorInformationAvs.md) | | [optional] **card_verification** | [**PtsV2PaymentsPost201ResponseProcessorInformationCardVerification**](PtsV2PaymentsPost201ResponseProcessorInformationCardVerification.md) | | [optional] **merchant_advice** | [**PtsV2PaymentsPost201ResponseProcessorInformationMerchantAdvice**](PtsV2PaymentsPost201ResponseProcessorInformationMerchantAdvice.md) | | [optional] diff --git a/docs/PtsV2PaymentsPost201ResponseRiskInformation.md b/docs/PtsV2PaymentsPost201ResponseRiskInformation.md index b8fa4f38..0aa39437 100644 --- a/docs/PtsV2PaymentsPost201ResponseRiskInformation.md +++ b/docs/PtsV2PaymentsPost201ResponseRiskInformation.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **local_time** | **str** | The customer's local time (`hh:mm:ss`), which is calculated from the transaction request time and the customer's billing address. For details, see the `score_time_local` field description in the _Decision Manager Using the SCMP API Developer Guide_ on the [CyberSource Business Center.](https://ebc2.cybersource.com/ebc2/) | [optional] **score** | [**PtsV2PaymentsPost201ResponseRiskInformationScore**](PtsV2PaymentsPost201ResponseRiskInformationScore.md) | | [optional] **ip_address** | [**PtsV2PaymentsPost201ResponseRiskInformationIpAddress**](PtsV2PaymentsPost201ResponseRiskInformationIpAddress.md) | | [optional] -**providers** | [**dict(str, dict(str, str))**](dict.md) | Name of the 3rd party provider, for example, Emailage. For all possible values, see the `decision_provider_#_name` field description in the _Decision Manager Using the SCMP API Developer Guide_ on the [CyberSource Business Center.](https://ebc2.cybersource.com/ebc2/) Click **Decision Manager** > **Documentation** > **Guides** > _Decision Manager Using the SCMP API Developer Guide_ (PDF link). | [optional] +**providers** | **dict(str, dict(str, str))** | Name of the 3rd party provider, for example, Emailage. For all possible values, see the `decision_provider_#_name` field description in the _Decision Manager Using the SCMP API Developer Guide_ on the [CyberSource Business Center.](https://ebc2.cybersource.com/ebc2/) Click **Decision Manager** > **Documentation** > **Guides** > _Decision Manager Using the SCMP API Developer Guide_ (PDF link). | [optional] **travel** | [**PtsV2PaymentsPost201ResponseRiskInformationTravel**](PtsV2PaymentsPost201ResponseRiskInformationTravel.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/PtsV2PaymentsRefundPost201ResponseProcessorInformation.md b/docs/PtsV2PaymentsRefundPost201ResponseProcessorInformation.md index c69e8f1c..d2c7b6e6 100644 --- a/docs/PtsV2PaymentsRefundPost201ResponseProcessorInformation.md +++ b/docs/PtsV2PaymentsRefundPost201ResponseProcessorInformation.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **response_code** | **str** | For most processors, this is the error message sent directly from the bank. Returned only when the processor returns this value. **Important** Do not use this field to evaluate the result of the authorization. #### PIN debit Response value that is returned by the processor or bank. **Important** Do not use this field to evaluate the results of the transaction request. Returned by PIN debit credit, PIN debit purchase, and PIN debit reversal. #### AIBMS If this value is `08`, you can accept the transaction if the customer provides you with identification. #### Atos This value is the response code sent from Atos and it might also include the response code from the bank. Format: `aa,bb` with the two values separated by a comma and where: - `aa` is the two-digit error message from Atos. - `bb` is the optional two-digit error message from the bank. #### Comercio Latino This value is the status code and the error or response code received from the processor separated by a colon. Format: [status code]:E[error code] or [status code]:R[response code] Example `2:R06` #### JCN Gateway Processor-defined detail error code. The associated response category code is in the `processorInformation.responseCategoryCode` field. String (3) | [optional] **ach_verification** | [**PtsV2PaymentsPost201ResponseProcessorInformationAchVerification**](PtsV2PaymentsPost201ResponseProcessorInformationAchVerification.md) | | [optional] **network_transaction_id** | **str** | Same value as `processorInformation.transactionId` | [optional] +**settlement_date** | **str** | Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/PtsV2PayoutsPost201ResponseRecipientInformationCard.md b/docs/PtsV2PayoutsPost201ResponseRecipientInformationCard.md index ea409adc..ff8f32e5 100644 --- a/docs/PtsV2PayoutsPost201ResponseRecipientInformationCard.md +++ b/docs/PtsV2PayoutsPost201ResponseRecipientInformationCard.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **balance** | **str** | This field shows the available balance in the prepaid account. Acquirers always receive the available balance in the transaction currency. | [optional] -**currency** | **str** | This is a multicurrency-only field. It contains a 3-digit numeric code that identifies the currency used by the issuer. | [optional] +**currency** | **str** | This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Ptsv1pushfundstransferOrderInformation.md b/docs/Ptsv1pushfundstransferOrderInformation.md index 2c748e8e..6835c880 100644 --- a/docs/Ptsv1pushfundstransferOrderInformation.md +++ b/docs/Ptsv1pushfundstransferOrderInformation.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**amount_details** | [**Ptsv1pushfundstransferOrderInformationAmountDetails**](Ptsv1pushfundstransferOrderInformationAmountDetails.md) | | [optional] +**amount_details** | [**Ptsv1pushfundstransferOrderInformationAmountDetails**](Ptsv1pushfundstransferOrderInformationAmountDetails.md) | | **is_cryptocurrency_purchase** | **str** | This indicates that the funds transfer is for a crypto currency transaction. Optional Y/y, true N/n, false | [optional] **surcharge** | [**Ptsv1pushfundstransferOrderInformationSurcharge**](Ptsv1pushfundstransferOrderInformationSurcharge.md) | | [optional] diff --git a/docs/Ptsv2paymentsOrderInformationAmountDetails.md b/docs/Ptsv2paymentsOrderInformationAmountDetails.md index 2d661cd8..36205f26 100644 --- a/docs/Ptsv2paymentsOrderInformationAmountDetails.md +++ b/docs/Ptsv2paymentsOrderInformationAmountDetails.md @@ -27,7 +27,7 @@ Name | Type | Description | Notes **service_fee_amount** | **str** | Service fee. Required for service fee transactions. | [optional] **original_amount** | **str** | Amount in your original local pricing currency. This value cannot be negative. You can include a decimal point (.) in this field to denote the currency exponent, but you cannot include any other special characters. If needed, CyberSource truncates the amount to the correct number of decimal places. | [optional] **original_currency** | **str** | Your local pricing currency code. For the possible values, see the [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) | [optional] -**cashback_amount** | **str** | Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Required field for PIN debit purchase, PIN debit credit or PIN debit reversal. | [optional] +**cashback_amount** | **str** | Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Optional field for PIN debit purchase, PIN debit credit or PIN debit reversal. | [optional] **currency_conversion** | [**Ptsv2paymentsOrderInformationAmountDetailsCurrencyConversion**](Ptsv2paymentsOrderInformationAmountDetailsCurrencyConversion.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Ptsv2paymentsPaymentInformationPaymentType.md b/docs/Ptsv2paymentsPaymentInformationPaymentType.md index c23dba6f..e4316e8b 100644 --- a/docs/Ptsv2paymentsPaymentInformationPaymentType.md +++ b/docs/Ptsv2paymentsPaymentInformationPaymentType.md @@ -4,6 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **str** | A Payment Type is an agreed means for a payee to receive legal tender from a payer. The way one pays for a commercial financial transaction. Examples: Card, Bank Transfer, Digital, Direct Debit. Possible values: - `CARD` (use this for a PIN debit transaction) - `CHECK` (use this for all eCheck payment transactions - ECP Debit, ECP Follow-on Credit, ECP StandAlone Credit) - `bankTransfer` (use for Online Bank Transafer for methods such as P24, iDeal, Estonia Bank, KCP) - `localCard` (KCP Local card via Altpay) - `carrierBilling` (KCP Carrier Billing via Altpay) | [optional] +**sub_type_name** | **str** | Detailed information about the Payment Type. Possible values: - `DEBIT`: Use this value to indicate a PIN debit transaction. Examples: For Card, if Credit or Debit or PrePaid. For Bank Transfer, if Online Bank Transfer or Wire Transfers. | [optional] **method** | [**Ptsv2paymentsPaymentInformationPaymentTypeMethod**](Ptsv2paymentsPaymentInformationPaymentTypeMethod.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/Ptsv2paymentsProcessingInformation.md b/docs/Ptsv2paymentsProcessingInformation.md index 8ae507c0..1a742266 100644 --- a/docs/Ptsv2paymentsProcessingInformation.md +++ b/docs/Ptsv2paymentsProcessingInformation.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes **action_list** | **list[str]** | Array of actions (one or more) to be included in the payment to invoke bundled services along with payment. Possible values are one or more of follows: - `DECISION_SKIP`: Use this when you want to skip Decision Manager service(s). - `TOKEN_CREATE`: Use this when you want to create a token from the card/bank data in your payment request. - `CONSUMER_AUTHENTICATION`: Use this when you want to check if a card is enrolled in Payer Authentioncation along with your payment request. - `VALIDATE_CONSUMER_AUTHENTICATION`: Use this after you acquire a Payer Authentioncation result that needs to be included for your payment request. - `AP_INITIATE`: Use this when Alternative Payment Initiate service is requested. - `WATCHLIST_SCREENING` : Use this when you want to call Watchlist Screening service. | [optional] **enable_escrow_option** | **bool** | Indicates whether to use the customer’s escrow agreement. Possible values: - `true`: yes, use the customer’s escrow agreement. - `false`: no, do not use the customer’s escrow agreement. | [optional] **action_token_types** | **list[str]** | CyberSource tokens types you are performing a create on. If not supplied the default token type for the merchants token vault will be used. Valid values: - customer - paymentInstrument - instrumentIdentifier - shippingAddress | [optional] +**bin_source** | **str** | Bin Source File Identifier. Possible values: - itmx - rupay | [optional] **capture** | **bool** | Indicates whether to also include a capture in the submitted authorization request or not. Possible values: - `true`: Include a capture with an authorization request. - `false`: (default) Do not include a capture with an authorization request. #### Used by **Authorization and Capture** Optional field. | [optional] [default to False] **processor_id** | **str** | Value that identifies the processor/acquirer to use for the transaction. This value is supported only for **CyberSource through VisaNet**. Contact CyberSource Customer Support to get the value for this field. | [optional] **business_application_id** | **str** | Payouts transaction type. Required for OCT transactions. This field is a pass-through, which means that CyberSource does not verify the value or modify it in any way before sending it to the processor. **Note** When the request includes this field, this value overrides the information in your CyberSource account. For valid values, see the `invoiceHeader_businessApplicationID` field description in [Payouts Using the Simple Order API.](http://apps.cybersource.com/library/documentation/dev_guides/payouts_SO/Payouts_SO_API.pdf) | [optional] diff --git a/docs/Ptsv2paymentsidcapturesOrderInformationAmountDetails.md b/docs/Ptsv2paymentsidcapturesOrderInformationAmountDetails.md index afe07d6c..3bd083ba 100644 --- a/docs/Ptsv2paymentsidcapturesOrderInformationAmountDetails.md +++ b/docs/Ptsv2paymentsidcapturesOrderInformationAmountDetails.md @@ -22,7 +22,7 @@ Name | Type | Description | Notes **tax_details** | [**list[Ptsv2paymentsOrderInformationAmountDetailsTaxDetails]**](Ptsv2paymentsOrderInformationAmountDetailsTaxDetails.md) | | [optional] **service_fee_amount** | **str** | Service fee. Required for service fee transactions. | [optional] **original_currency** | **str** | Your local pricing currency code. For the possible values, see the [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) | [optional] -**cashback_amount** | **str** | Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Required field for PIN debit purchase, PIN debit credit or PIN debit reversal. | [optional] +**cashback_amount** | **str** | Cashback amount in the acquirer’s currency. If a cashback amount is included in the request, it must be included in the `orderInformation.amountDetails.totalAmount` value. This field is supported only on CyberSource through VisaNet. #### Used by **Authorization** Optional. **Authorization Reversal** Optional. #### PIN debit Optional field for PIN debit purchase, PIN debit credit or PIN debit reversal. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/PushFundsRequest.md b/docs/PushFundsRequest.md index d2c93b97..5afe507e 100644 --- a/docs/PushFundsRequest.md +++ b/docs/PushFundsRequest.md @@ -4,11 +4,11 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **client_reference_information** | [**Ptsv1pushfundstransferClientReferenceInformation**](Ptsv1pushfundstransferClientReferenceInformation.md) | | [optional] -**order_information** | [**Ptsv1pushfundstransferOrderInformation**](Ptsv1pushfundstransferOrderInformation.md) | | [optional] -**processing_information** | [**Ptsv1pushfundstransferProcessingInformation**](Ptsv1pushfundstransferProcessingInformation.md) | | [optional] +**order_information** | [**Ptsv1pushfundstransferOrderInformation**](Ptsv1pushfundstransferOrderInformation.md) | | +**processing_information** | [**Ptsv1pushfundstransferProcessingInformation**](Ptsv1pushfundstransferProcessingInformation.md) | | **processing_options** | [**Ptsv1pushfundstransferProcessingOptions**](Ptsv1pushfundstransferProcessingOptions.md) | | [optional] **recipient_information** | [**Ptsv1pushfundstransferRecipientInformation**](Ptsv1pushfundstransferRecipientInformation.md) | | [optional] -**sender_information** | [**Ptsv1pushfundstransferSenderInformation**](Ptsv1pushfundstransferSenderInformation.md) | | [optional] +**sender_information** | [**Ptsv1pushfundstransferSenderInformation**](Ptsv1pushfundstransferSenderInformation.md) | | **aggregator_information** | [**Ptsv1pushfundstransferAggregatorInformation**](Ptsv1pushfundstransferAggregatorInformation.md) | | [optional] **merchant_defined_information** | [**Ptsv1pushfundstransferMerchantDefinedInformation**](Ptsv1pushfundstransferMerchantDefinedInformation.md) | | [optional] **merchant_information** | [**Ptsv1pushfundstransferMerchantInformation**](Ptsv1pushfundstransferMerchantInformation.md) | | [optional] diff --git a/docs/Rbsv1plansPlanInformation.md b/docs/Rbsv1plansPlanInformation.md index 02426d0a..986b3371 100644 --- a/docs/Rbsv1plansPlanInformation.md +++ b/docs/Rbsv1plansPlanInformation.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **name** | **str** | Plan name | **description** | **str** | Plan description | [optional] **status** | **str** | Plan Status: - `DRAFT` - `ACTIVE` (default) | [optional] -**billing_period** | [**InlineResponse200PlanInformationBillingPeriod**](InlineResponse200PlanInformationBillingPeriod.md) | | [optional] +**billing_period** | [**InlineResponse200PlanInformationBillingPeriod**](InlineResponse200PlanInformationBillingPeriod.md) | | **billing_cycles** | [**Rbsv1plansPlanInformationBillingCycles**](Rbsv1plansPlanInformationBillingCycles.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/TssV2TransactionsGet200Response.md b/docs/TssV2TransactionsGet200Response.md index f849fad3..636e4e85 100644 --- a/docs/TssV2TransactionsGet200Response.md +++ b/docs/TssV2TransactionsGet200Response.md @@ -22,6 +22,7 @@ Name | Type | Description | Notes **order_information** | [**TssV2TransactionsGet200ResponseOrderInformation**](TssV2TransactionsGet200ResponseOrderInformation.md) | | [optional] **payment_information** | [**TssV2TransactionsGet200ResponsePaymentInformation**](TssV2TransactionsGet200ResponsePaymentInformation.md) | | [optional] **payment_insights_information** | [**PtsV2PaymentsPost201ResponsePaymentInsightsInformation**](PtsV2PaymentsPost201ResponsePaymentInsightsInformation.md) | | [optional] +**payout_options** | [**TssV2TransactionsGet200ResponsePayoutOptions**](TssV2TransactionsGet200ResponsePayoutOptions.md) | | [optional] **processing_information** | [**TssV2TransactionsGet200ResponseProcessingInformation**](TssV2TransactionsGet200ResponseProcessingInformation.md) | | [optional] **processor_information** | [**TssV2TransactionsGet200ResponseProcessorInformation**](TssV2TransactionsGet200ResponseProcessorInformation.md) | | [optional] **point_of_sale_information** | [**TssV2TransactionsGet200ResponsePointOfSaleInformation**](TssV2TransactionsGet200ResponsePointOfSaleInformation.md) | | [optional] diff --git a/docs/TssV2TransactionsGet200ResponsePaymentInformation.md b/docs/TssV2TransactionsGet200ResponsePaymentInformation.md index 25eb6962..8a2214e9 100644 --- a/docs/TssV2TransactionsGet200ResponsePaymentInformation.md +++ b/docs/TssV2TransactionsGet200ResponsePaymentInformation.md @@ -6,7 +6,11 @@ Name | Type | Description | Notes **payment_type** | [**TssV2TransactionsGet200ResponsePaymentInformationPaymentType**](TssV2TransactionsGet200ResponsePaymentInformationPaymentType.md) | | [optional] **customer** | [**TssV2TransactionsGet200ResponsePaymentInformationCustomer**](TssV2TransactionsGet200ResponsePaymentInformationCustomer.md) | | [optional] **card** | [**TssV2TransactionsGet200ResponsePaymentInformationCard**](TssV2TransactionsGet200ResponsePaymentInformationCard.md) | | [optional] +**brands** | [**list[TssV2TransactionsGet200ResponsePaymentInformationBrands]**](TssV2TransactionsGet200ResponsePaymentInformationBrands.md) | This array contains the supported brands. | [optional] +**features** | [**TssV2TransactionsGet200ResponsePaymentInformationFeatures**](TssV2TransactionsGet200ResponsePaymentInformationFeatures.md) | | [optional] **invoice** | [**TssV2TransactionsGet200ResponsePaymentInformationInvoice**](TssV2TransactionsGet200ResponsePaymentInformationInvoice.md) | | [optional] +**network** | [**TssV2TransactionsGet200ResponsePaymentInformationNetwork**](TssV2TransactionsGet200ResponsePaymentInformationNetwork.md) | | [optional] +**issuer_information** | [**TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation**](TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation.md) | | [optional] **bank** | [**TssV2TransactionsGet200ResponsePaymentInformationBank**](TssV2TransactionsGet200ResponsePaymentInformationBank.md) | | [optional] **account_features** | [**TssV2TransactionsGet200ResponsePaymentInformationAccountFeatures**](TssV2TransactionsGet200ResponsePaymentInformationAccountFeatures.md) | | [optional] **payment_instrument** | [**PtsV2PaymentsPost201ResponseTokenInformationPaymentInstrument**](PtsV2PaymentsPost201ResponseTokenInformationPaymentInstrument.md) | | [optional] diff --git a/docs/TssV2TransactionsGet200ResponsePaymentInformationBrands.md b/docs/TssV2TransactionsGet200ResponsePaymentInformationBrands.md new file mode 100644 index 00000000..427ffd53 --- /dev/null +++ b/docs/TssV2TransactionsGet200ResponsePaymentInformationBrands.md @@ -0,0 +1,11 @@ +# TssV2TransactionsGet200ResponsePaymentInformationBrands + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | Three-digit value that indicates the card type. **IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is optional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type. Possible values: - `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron. - `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard. - `003`: American Express - `004`: Discover - `005`: Diners Club - `006`: Carte Blanche[^1] - `007`: JCB[^1] - `014`: Enroute[^1] - `021`: JAL[^1] - `024`: Maestro (UK Domestic)[^1] - `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types. - `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types. - `034`: Dankort[^1] - `036`: Cartes Bancaires[^1,4] - `037`: Carta Si[^1] - `039`: Encoded account number[^1] - `040`: UATP[^1] - `042`: Maestro (International)[^1] - `050`: Hipercard[^2,3] - `051`: Aura - `054`: Elo[^3] - `062`: China UnionPay - '070': EFTPOS [^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit. [^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5. [^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. [^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services. #### Used by **Authorization** Required for Carte Blanche and JCB. Optional for all other card types. #### Card Present reply This field is included in the reply message when the client software that is installed on the POS terminal uses the token management service (TMS) to retrieve tokenized payment details. You must contact customer support to have your account enabled to receive these fields in the credit reply message. Returned by the Credit service. This reply field is only supported by the following processors: - American Express Direct - Credit Mutuel-CIC - FDC Nashville Global - OmniPay Direct - SIX #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response. #### GPX This field only supports transactions from the following card types: - Visa - Mastercard - AMEX - Discover - Diners - JCB - Union Pay International | [optional] +**brand_name** | **str** | This field contains the card brand name. Some of the possible values (not an exhaustive list) are - - VISA - MASTERCARD - AMERICAN EXPRESS - DISCOVER - DINERS CLUB - CARTE BLANCHE - JCB - OPTIMA - TWINPAY CREDIT CARD - TWINPAY DEBIT CARD - WALMART - ENROUTE - LOWES CONSUMER - HOME DEPOT CONSUMER - MBNA - DICKS SPORTWEAR - CASUAL CORNER - SEARS - JAL - DISNEY CARD - SWITCH/SOLO - SAMS CLUB CONSUMER - SAMS CLUB BUSINESS - NICOS HOUSE CARD - BEBE - RESTORATION HARDWARE - DELTA ONLINE - SOLO - VISA ELECTRON - DANKORT - LASER - CARTE BANCAIRE - CARTA SI - ENCODED ACCOUNT - UATP - HOUSEHOLD - MAESTRO - GE CAPITAL - KOREAN CARDS - STYLE CARDS - JCREW - MEIJER - HIPERCARD - AURA - REDECARD - ORICO HOUSE CARD - ELO - CAPITAL ONE PRIVATE LABEL - CARNET - RUPAY - CHINA UNION PAY - FALABELLA PRIVATE LABEL - PROMPTCARD - KOREAN DOMESTIC - BANRICOMPRAS | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TssV2TransactionsGet200ResponsePaymentInformationCard.md b/docs/TssV2TransactionsGet200ResponsePaymentInformationCard.md index dd197035..88c027e0 100644 --- a/docs/TssV2TransactionsGet200ResponsePaymentInformationCard.md +++ b/docs/TssV2TransactionsGet200ResponsePaymentInformationCard.md @@ -11,6 +11,8 @@ Name | Type | Description | Notes **start_year** | **str** | Year of the start of the Maestro (UK Domestic) card validity period. Do not include the field, even with a blank value, if the card is not a Maestro (UK Domestic) card. `Format: YYYY`. **Note** The start date is not required for Maestro (UK Domestic) transactions. | [optional] **issue_number** | **str** | Number of times a Maestro (UK Domestic) card has been issued to the account holder. The card might or might not have an issue number. The number can consist of one or two digits, and the first digit might be a zero. When you include this value in your request, include exactly what is printed on the card. A value of 2 is different than a value of 02. Do not include the field, even with a blank value, if the card is not a Maestro (UK Domestic) card. **Note** The issue number is not required for Maestro (UK Domestic) transactions. | [optional] **type** | **str** | Three-digit value that indicates the card type. **IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is optional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type. Possible values: - `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron. - `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard. - `003`: American Express - `004`: Discover - `005`: Diners Club - `006`: Carte Blanche[^1] - `007`: JCB[^1] - `014`: Enroute[^1] - `021`: JAL[^1] - `024`: Maestro (UK Domestic)[^1] - `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types. - `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types. - `034`: Dankort[^1] - `036`: Cartes Bancaires[^1,4] - `037`: Carta Si[^1] - `039`: Encoded account number[^1] - `040`: UATP[^1] - `042`: Maestro (International)[^1] - `050`: Hipercard[^2,3] - `051`: Aura - `054`: Elo[^3] - `062`: China UnionPay - '070': EFTPOS [^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit. [^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5. [^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. [^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services. #### Used by **Authorization** Required for Carte Blanche and JCB. Optional for all other card types. #### Card Present reply This field is included in the reply message when the client software that is installed on the POS terminal uses the token management service (TMS) to retrieve tokenized payment details. You must contact customer support to have your account enabled to receive these fields in the credit reply message. Returned by the Credit service. This reply field is only supported by the following processors: - American Express Direct - Credit Mutuel-CIC - FDC Nashville Global - OmniPay Direct - SIX #### Google Pay transactions For PAN-based Google Pay transactions, this field is returned in the API response. #### GPX This field only supports transactions from the following card types: - Visa - Mastercard - AMEX - Discover - Diners - JCB - Union Pay International | [optional] +**brand_name** | **str** | This field contains the card brand name. Some of the possible values (not an exhaustive list) are - - VISA - MASTERCARD - AMERICAN EXPRESS - DISCOVER - DINERS CLUB - CARTE BLANCHE - JCB - OPTIMA - TWINPAY CREDIT CARD - TWINPAY DEBIT CARD - WALMART - ENROUTE - LOWES CONSUMER - HOME DEPOT CONSUMER - MBNA - DICKS SPORTWEAR - CASUAL CORNER - SEARS - JAL - DISNEY CARD - SWITCH/SOLO - SAMS CLUB CONSUMER - SAMS CLUB BUSINESS - NICOS HOUSE CARD - BEBE - RESTORATION HARDWARE - DELTA ONLINE - SOLO - VISA ELECTRON - DANKORT - LASER - CARTE BANCAIRE - CARTA SI - ENCODED ACCOUNT - UATP - HOUSEHOLD - MAESTRO - GE CAPITAL - KOREAN CARDS - STYLE CARDS - JCREW - MEIJER - HIPERCARD - AURA - REDECARD - ORICO HOUSE CARD - ELO - CAPITAL ONE PRIVATE LABEL - CARNET - RUPAY - CHINA UNION PAY - FALABELLA PRIVATE LABEL - PROMPTCARD - KOREAN DOMESTIC - BANRICOMPRAS | [optional] +**currency** | **str** | This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency. | [optional] **account_encoder_id** | **str** | Identifier for the issuing bank that provided the customer’s encoded account number. Contact your processor for the bank’s ID. | [optional] **use_as** | **str** | Flag that specifies the type of account associated with the card. The cardholder provides this information during the payment process. Possible values: - C: Credit transaction - D: Debit transaction This field is supported only for all card Types on Visa Platform Connect. This field is required for: - Debit transactions on Cielo and Comercio Latino. - Transactions with Brazilian-issued cards on CyberSource through VisaNet. **Note** The value for this field corresponds to the following data in the TC 33 capture file5: - Record: CP07 TCR0 - Position: 51 - Field: Combination Card Transaction Identifier | [optional] diff --git a/docs/TssV2TransactionsGet200ResponsePaymentInformationFeatures.md b/docs/TssV2TransactionsGet200ResponsePaymentInformationFeatures.md new file mode 100644 index 00000000..5f636bdc --- /dev/null +++ b/docs/TssV2TransactionsGet200ResponsePaymentInformationFeatures.md @@ -0,0 +1,16 @@ +# TssV2TransactionsGet200ResponsePaymentInformationFeatures + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**account_funding_source** | **str** | This field contains the account funding source. Possible values: - `CREDIT` - `DEBIT` - `PREPAID` - `DEFERRED DEBIT` - `CHARGE` | [optional] +**account_funding_source_sub_type** | **str** | This field contains the type of prepaid card. Possible values: - `Reloadable` - `Non-reloadable` | [optional] +**card_product** | **str** | This field contains the type of issuer product. Example values: - Visa Classic - Visa Signature - Visa Infinite | [optional] +**message_type** | **str** | This field contains the type of BIN based authentication. Possible values: - `S`: Single Message - `D`: Dual Message | [optional] +**acceptance_level** | **str** | This field contains the acceptance level of the PAN. Possible values: - `0` : Normal - `1` : Monitor - `2` : Refuse - `3` : Not Allowed - `4` : Private - `5` : Test | [optional] +**card_platform** | **str** | This field contains the type of card platform. Possible values: - `BUSINESS` - `CONSUMER` - `COMMERCIAL` - `GOVERNMENT` | [optional] +**combo_card** | **str** | This field indicates the type of combo card. Possible values: - 0 (Not a combo card) - 1 (Credit and Prepaid Combo card) - 2 (Credit and Debit Combo card) | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation.md b/docs/TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation.md new file mode 100644 index 00000000..28f6b158 --- /dev/null +++ b/docs/TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation.md @@ -0,0 +1,13 @@ +# TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | This field contains the issuer name. | [optional] +**country** | **str** | This field contains [2-character ISO Country Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf) for the issuer. | [optional] +**bin_length** | **str** | This field contains the length of the BIN. | [optional] +**phone_number** | **str** | This field contains the customer service phone number for the issuer. | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TssV2TransactionsGet200ResponsePaymentInformationNetwork.md b/docs/TssV2TransactionsGet200ResponsePaymentInformationNetwork.md new file mode 100644 index 00000000..e320d2e2 --- /dev/null +++ b/docs/TssV2TransactionsGet200ResponsePaymentInformationNetwork.md @@ -0,0 +1,10 @@ +# TssV2TransactionsGet200ResponsePaymentInformationNetwork + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | This field contains a code that identifies the network. Please refer [Network ID and Sharing Group Code](https://developer.visa.com/request_response_codes#network_id_and_sharing_group_code) | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TssV2TransactionsGet200ResponsePayoutOptions.md b/docs/TssV2TransactionsGet200ResponsePayoutOptions.md new file mode 100644 index 00000000..94958769 --- /dev/null +++ b/docs/TssV2TransactionsGet200ResponsePayoutOptions.md @@ -0,0 +1,10 @@ +# TssV2TransactionsGet200ResponsePayoutOptions + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**payout_inquiry** | **str** | If true then provide attributes related to fund transfer/payouts. If payout information not found then response will have standard account lookup. Possible values: - `true` - `false` | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TssV2TransactionsGet200ResponseProcessingInformation.md b/docs/TssV2TransactionsGet200ResponseProcessingInformation.md index e4ac4dc9..d97ee4ae 100644 --- a/docs/TssV2TransactionsGet200ResponseProcessingInformation.md +++ b/docs/TssV2TransactionsGet200ResponseProcessingInformation.md @@ -3,6 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**bin_source** | **str** | Bin Source File Identifier. Possible values: - itmx - rupay | [optional] **industry_data_type** | **str** | Indicates that the transaction includes industry-specific data. Possible Values: - `airline` - `restaurant` - `lodging` - `auto_rental` - `transit` - `healthcare_medical` - `healthcare_transit` - `transit` #### Card Present, Airlines and Auto Rental You must set this field to `airline` in order for airline data to be sent to the processor. For example, if this field is not set to `airline` or is not included in the request, no airline data is sent to the processor. You must set this field to `restaurant` in order for restaurant data to be sent to the processor. When this field is not set to `restaurant` or is not included in the request, no restaurant data is sent to the processor. You must set this field to `auto_rental` in order for auto rental data to be sent to the processor. For example, if this field is not set to `auto_rental` or is not included in the request, no auto rental data is sent to the processor. Restaurant data is supported only on CyberSource through VisaNet. | [optional] **payment_solution** | **str** | Type of digital payment solution for the transaction. | [optional] **commerce_indicator** | **str** | Type of transaction. Some payment card companies use this information when determining discount rates. #### Used by **Authorization** Required payer authentication transactions; otherwise, optional. **Credit** Required for standalone credits on Chase Paymentech solutions; otherwise, optional. The list of valid values in this field depends on your processor. See Appendix I, \"Commerce Indicators,\" on page 441 of the Cybersource Credit Card Guide. #### Ingenico ePayments When you omit this field for Ingenico ePayments, the processor uses the default transaction type they have on file for you instead of the default value (listed in Appendix I, \"Commerce Indicators,\" on page 441.) #### Payer Authentication Transactions For the possible values and requirements, see \"Payer Authentication,\" page 195. #### Card Present You must set this field to `retail`. This field is required for a card-present transaction. Note that this should ONLY be used when the cardholder and card are present at the time of the transaction. For all keyed transactions originated from a POS terminal where the cardholder and card are not present, commerceIndicator should be submitted as “moto\" | [optional] diff --git a/docs/TssV2TransactionsGet200ResponseTokenInformation.md b/docs/TssV2TransactionsGet200ResponseTokenInformation.md index db36535e..0b6d5c2b 100644 --- a/docs/TssV2TransactionsGet200ResponseTokenInformation.md +++ b/docs/TssV2TransactionsGet200ResponseTokenInformation.md @@ -7,6 +7,8 @@ Name | Type | Description | Notes **payment_instrument** | [**PtsV2PaymentsPost201ResponseTokenInformationPaymentInstrument**](PtsV2PaymentsPost201ResponseTokenInformationPaymentInstrument.md) | | [optional] **shipping_address** | [**PtsV2PaymentsPost201ResponseTokenInformationShippingAddress**](PtsV2PaymentsPost201ResponseTokenInformationShippingAddress.md) | | [optional] **instrument_identifier** | [**TssV2TransactionsGet200ResponsePaymentInformationInstrumentIdentifier**](TssV2TransactionsGet200ResponsePaymentInformationInstrumentIdentifier.md) | | [optional] +**jti** | **str** | TMS Transient Token, 64 hexadecimal id value representing captured payment credentials (including Sensitive Authentication Data, e.g. CVV). | [optional] +**transient_token_jwt** | **str** | Flex API Transient Token encoded as JWT (JSON Web Token), e.g. Flex microform or Unified Payment checkout result. | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/generator/cybersource-python-template/__init__package.mustache b/generator/cybersource-python-template/__init__package.mustache index 23ab47c3..da1df3de 100644 --- a/generator/cybersource-python-template/__init__package.mustache +++ b/generator/cybersource-python-template/__init__package.mustache @@ -12,9 +12,9 @@ from .models.resource_not_found_error import ResourceNotFoundError from .models.unauthorized_client_error import UnauthorizedClientError {{#models}}{{#model}}from .models.{{classFilename}} import {{classname}} {{/model}}{{/models}} -# import apis into sdk package -from .apis.o_auth_api import OAuthApi -{{#apiInfo}}{{#apis}}from .apis.{{classVarName}} import {{classname}} +# import api into sdk package +from .api.o_auth_api import OAuthApi +{{#apiInfo}}{{#apis}}from .api.{{classVarName}} import {{classname}} {{/apis}}{{/apiInfo}} # import Utilities diff --git a/generator/cybersource-python-template/api.mustache b/generator/cybersource-python-template/api.mustache index 04ea347d..f8a55056 100644 --- a/generator/cybersource-python-template/api.mustache +++ b/generator/cybersource-python-template/api.mustache @@ -226,14 +226,12 @@ class {{classname}}(object): {{/bodyParam}} {{#hasProduces}} # HTTP header `Accept` - header_params['Accept'] = self.api_client.\ - select_header_accept([{{#produces}}'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}{{/produces}}]) + header_params['Accept'] = self.api_client.select_header_accept([{{#produces}}'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}{{/produces}}]) {{/hasProduces}} {{#hasConsumes}} # HTTP header `Content-Type` - header_params['Content-Type'] = self.api_client.\ - select_header_content_type([{{#consumes}}'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}{{/consumes}}]) + header_params['Content-Type'] = self.api_client.select_header_content_type([{{#consumes}}'{{{mediaType}}}'{{#hasMore}}, {{/hasMore}}{{/consumes}}]) {{/hasConsumes}} # Authentication setting diff --git a/generator/cybersource-python-template/requirements.mustache b/generator/cybersource-python-template/requirements.mustache index 59d29253..714f9ded 100644 --- a/generator/cybersource-python-template/requirements.mustache +++ b/generator/cybersource-python-template/requirements.mustache @@ -5,5 +5,5 @@ pyOpenSSL DateTime setuptools six -urllib3==1.26.5 +urllib3 cryptography diff --git a/generator/cybersource-rest-spec.json b/generator/cybersource-rest-spec.json index 4a2a0032..2e3a2adb 100644 --- a/generator/cybersource-rest-spec.json +++ b/generator/cybersource-rest-spec.json @@ -461,6 +461,10 @@ "type": "string" } }, + "binSource": { + "type": "string", + "description": "Bin Source File Identifier.\nPossible values:\n- itmx\n- rupay\n" + }, "capture": { "type": "boolean", "description": "Indicates whether to also include a capture in the submitted authorization request or not.\n\nPossible values:\n- `true`: Include a capture with an authorization request.\n- `false`: (default) Do not include a capture with an authorization request.\n\n#### Used by\n**Authorization and Capture**\nOptional field.\n", @@ -1204,6 +1208,10 @@ "type": "string", "description": "A Payment Type is an agreed means for a payee to receive legal tender from a payer. The way one pays for a commercial financial transaction. Examples: Card, Bank Transfer, Digital, Direct Debit.\nPossible values:\n- `CARD` (use this for a PIN debit transaction)\n- `CHECK` (use this for all eCheck payment transactions - ECP Debit, ECP Follow-on Credit, ECP StandAlone Credit)\n- `bankTransfer` (use for Online Bank Transafer for methods such as P24, iDeal, Estonia Bank, KCP)\n- `localCard` (KCP Local card via Altpay)\n- `carrierBilling` (KCP Carrier Billing via Altpay)\n" }, + "subTypeName": { + "type": "string", + "description": "Detailed information about the Payment Type. Possible values:\n- `DEBIT`: Use this value to indicate a PIN debit transaction.\n\nExamples: For Card, if Credit or Debit or PrePaid. For Bank Transfer, if Online Bank Transfer or Wire Transfers.\n" + }, "method": { "type": "object", "properties": { @@ -1423,7 +1431,7 @@ "cashbackAmount": { "type": "string", "maxLength": 13, - "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nRequired field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" + "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nOptional field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" }, "currencyConversion": { "type": "object", @@ -4723,6 +4731,11 @@ "maxLength": 32, "description": "Name of the Japanese acquirer that processed the transaction. Returned only for JCN Gateway.\nPlease contact the CyberSource Japan Support Group for more information.\n" }, + "settlementDate": { + "type": "string", + "maxLength": 4, + "description": "Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day.\n" + }, "avs": { "type": "object", "properties": { @@ -8634,6 +8647,69 @@ } }, "parentTag": "Authorization using Tokens" + }, + "example54": { + "summary": "Pin Debit Purchase Using Swiped Track Data with Visa Platform Connect", + "sample-name": "Pin Debit Purchase Using Swiped Track Data with Visa Platform Connect", + "value": { + "clientReferenceInformation": { + "code": "2.2 Purchase" + }, + "pointOfSaleInformation": { + "trackData": "%B4111111111111111^JONES/JONES ^3112101976110000868000000?;4111111111111111=16121019761186800000?", + "entryMode": "swiped" + }, + "processingInformation": { + "commerceIndicator": "retail" + }, + "orderInformation": { + "amountDetails": { + "totalAmount": "202.00", + "currency": "USD" + } + }, + "paymentInformation": { + "paymentType": { + "name": "CARD", + "subTypeName": "DEBIT" + } + } + }, + "parentTag": "Card Present with Visa Platform Connect" + }, + "example55": { + "summary": "Pin Debit Purchase Using EMV Technology with Contactless Read with Visa Platform Connect", + "sample-name": "Pin Debit Purchase Using EMV Technology with Contactless Read with Visa Platform Connect", + "value": { + "clientReferenceInformation": { + "code": "2.2 Purchase" + }, + "pointOfSaleInformation": { + "trackData": "%B4111111111111111^JONES/JONES ^3112101976110000868000000?;4111111111111111=16121019761186800000?", + "entryMode": "contactless", + "terminalCapability": 4, + "emv": { + "tags": "9F3303204000950500000000009F3704518823719F100706011103A000009F26081E1756ED0E2134E29F36020015820200009C01009F1A0208409A030006219F02060000000020005F2A0208409F0306000000000000", + "cardSequenceNumber": 1 + } + }, + "processingInformation": { + "commerceIndicator": "retail" + }, + "orderInformation": { + "amountDetails": { + "totalAmount": "202.00", + "currency": "USD" + } + }, + "paymentInformation": { + "paymentType": { + "name": "CARD", + "subTypeName": "DEBIT" + } + } + }, + "parentTag": "Card Present with Visa Platform Connect" } } } @@ -10500,7 +10576,7 @@ "cashbackAmount": { "type": "string", "maxLength": 13, - "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nRequired field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" + "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nOptional field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" } } }, @@ -13412,7 +13488,7 @@ "cashbackAmount": { "type": "string", "maxLength": 13, - "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nRequired field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" + "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nOptional field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" } } }, @@ -15125,6 +15201,11 @@ "networkTransactionId": { "type": "string", "description": "Same value as `processorInformation.transactionId`" + }, + "settlementDate": { + "type": "string", + "maxLength": 4, + "description": "Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day.\n" } } }, @@ -15918,7 +15999,7 @@ "cashbackAmount": { "type": "string", "maxLength": 13, - "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nRequired field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" + "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nOptional field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" } } }, @@ -17631,6 +17712,11 @@ "networkTransactionId": { "type": "string", "description": "Same value as `processorInformation.transactionId`" + }, + "settlementDate": { + "type": "string", + "maxLength": 4, + "description": "Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day.\n" } } }, @@ -18492,7 +18578,7 @@ "cashbackAmount": { "type": "string", "maxLength": 13, - "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nRequired field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" + "description": "Cashback amount in the acquirer\u2019s currency. If a cashback amount is included in the request, it must be included\nin the `orderInformation.amountDetails.totalAmount` value.\n\nThis field is supported only on CyberSource through VisaNet.\n\n#### Used by\n**Authorization**\nOptional.\n**Authorization Reversal**\nOptional.\n\n#### PIN debit\nOptional field for PIN debit purchase, PIN debit credit or PIN debit reversal.\n" } } }, @@ -20401,6 +20487,11 @@ "networkTransactionId": { "type": "string", "description": "Same value as `processorInformation.transactionId`" + }, + "settlementDate": { + "type": "string", + "maxLength": 4, + "description": "Field contains a settlement date. The date is in mmdd format, where: mm = month and dd = day.\n" } } }, @@ -20893,6 +20984,75 @@ } }, "parentTag": "Card Present Enabled Acquirer" + }, + "example8": { + "summary": "Pin Debit Credit Using Swiped Track Data with Visa Platform Connect", + "sample-name": "Pin Debit Credit Using Swiped Track Data with Visa Platform Connect", + "value": { + "clientReferenceInformation": { + "code": "2.2 Credit" + }, + "processingInformation": { + "commerceIndicator": "retail" + }, + "merchantInformation": { + "transactionLocalDateTime": 20200323103021 + }, + "orderInformation": { + "amountDetails": { + "totalAmount": "202.00", + "currency": "USD" + } + }, + "paymentInformation": { + "paymentType": { + "name": "CARD", + "subTypeName": "DEBIT" + } + }, + "pointOfSaleInformation": { + "trackData": "%B4111111111111111^JONES/JONES ^3112101976110000868000000?;4111111111111111=16121019761186800000?", + "entryMode": "swiped" + } + }, + "parentTag": "Card Present with Visa Platform Connect" + }, + "example9": { + "summary": "Pin Debit Credit Using EMV Technology with Contactless Read with Visa Platform Connect", + "sample-name": "Pin Debit Credit Using EMV Technology with Contactless Read with Visa Platform Connect", + "value": { + "clientReferenceInformation": { + "code": "2.2 Credit" + }, + "processingInformation": { + "commerceIndicator": "retail" + }, + "merchantInformation": { + "transactionLocalDateTime": 20200323103021 + }, + "orderInformation": { + "amountDetails": { + "totalAmount": "202.00", + "currency": "USD" + } + }, + "paymentInformation": { + "paymentType": { + "name": "CARD", + "subTypeName": "DEBIT" + } + }, + "pointOfSaleInformation": { + "trackData": "%B4111111111111111^JONES/JONES ^3112101976110000868000000?;4111111111111111=16121019761186800000?", + "entryMode": "contactless", + "terminalCapability": 4, + "emv": { + "tags": "9F3303204000950500000000009F3704518823719F100706011103A000009F26081E1756ED0E2134E29F36020015820200009C01009F1A0208409A030006219F02060000000020005F2A0208409F0306000000000000", + "cardSequenceNumber": 1 + } + } + }, + "parentTag": "Card Present with Visa Platform Connect" } } } @@ -21231,6 +21391,40 @@ } ] } + }, + "example1": { + "summary": "Pin Debit Purchase Reversal - Void", + "value": { + "clientReferenceInformation": { + "code": "Pin Debit Purchase Reversal(Void)" + }, + "orderInformation": { + "amountDetails": { + "totalAmount": "202.00", + "currency": "USD" + } + }, + "paymentInformation": { + "paymentType": { + "name": "CARD", + "subTypeName": "DEBIT" + } + } + }, + "depends": { + "example": { + "path": "/pts/v2/payments", + "verb": "post", + "exampleId": "example1" + }, + "fieldMapping": [ + { + "sourceField": "id", + "destinationField": "id", + "fieldTypeInDestination": "path" + } + ] + } } } } @@ -57388,7 +57582,7 @@ "currency": { "type": "string", "maxLength": 3, - "description": "This is a multicurrency-only field. It contains a 3-digit numeric code that identifies the currency used by the issuer.\n" + "description": "This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency.\n" } } } @@ -63532,6 +63726,15 @@ "type": "string", "description": "Three-digit value that indicates the card type.\n\n**IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is\noptional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type.\n\nPossible values:\n- `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron.\n- `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard.\n- `003`: American Express\n- `004`: Discover\n- `005`: Diners Club\n- `006`: Carte Blanche[^1]\n- `007`: JCB[^1]\n- `014`: Enroute[^1]\n- `021`: JAL[^1]\n- `024`: Maestro (UK Domestic)[^1]\n- `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types.\n- `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types.\n- `034`: Dankort[^1]\n- `036`: Cartes Bancaires[^1,4]\n- `037`: Carta Si[^1]\n- `039`: Encoded account number[^1]\n- `040`: UATP[^1]\n- `042`: Maestro (International)[^1]\n- `050`: Hipercard[^2,3]\n- `051`: Aura\n- `054`: Elo[^3]\n- `062`: China UnionPay\n- '070': EFTPOS\n\n[^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit.\n[^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5.\n[^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit.\n[^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services.\n\n#### Used by\n**Authorization**\nRequired for Carte Blanche and JCB.\nOptional for all other card types.\n\n#### Card Present reply\nThis field is included in the reply message when the client software that is installed on the POS terminal uses\nthe token management service (TMS) to retrieve tokenized payment details. You must contact customer support to\nhave your account enabled to receive these fields in the credit reply message.\n\nReturned by the Credit service.\n\nThis reply field is only supported by the following processors:\n- American Express Direct\n- Credit Mutuel-CIC\n- FDC Nashville Global\n- OmniPay Direct\n- SIX\n\n#### Google Pay transactions\nFor PAN-based Google Pay transactions, this field is returned in the API response.\n\n#### GPX\nThis field only supports transactions from the following card types:\n- Visa\n- Mastercard\n- AMEX\n- Discover\n- Diners\n- JCB\n- Union Pay International\n" }, + "brandName": { + "type": "string", + "description": "This field contains the card brand name. \n\nSome of the possible values (not an exhaustive list) are -\n\n - VISA\n - MASTERCARD\n - AMERICAN EXPRESS\n - DISCOVER\n - DINERS CLUB\n - CARTE BLANCHE\n - JCB\n - OPTIMA\n - TWINPAY CREDIT CARD\n - TWINPAY DEBIT CARD\n - WALMART\n - ENROUTE\n - LOWES CONSUMER\n - HOME DEPOT CONSUMER\n - MBNA\n - DICKS SPORTWEAR\n - CASUAL CORNER\n - SEARS\n - JAL\n - DISNEY CARD\n - SWITCH/SOLO\n - SAMS CLUB CONSUMER\n - SAMS CLUB BUSINESS\n - NICOS HOUSE CARD\n - BEBE\n - RESTORATION HARDWARE\n - DELTA ONLINE\n - SOLO\n - VISA ELECTRON\n - DANKORT\n - LASER\n - CARTE BANCAIRE\n - CARTA SI\n - ENCODED ACCOUNT\n - UATP\n - HOUSEHOLD\n - MAESTRO\n - GE CAPITAL\n - KOREAN CARDS\n - STYLE CARDS\n - JCREW\n - MEIJER\n - HIPERCARD\n - AURA\n - REDECARD\n - ORICO HOUSE CARD\n - ELO\n - CAPITAL ONE PRIVATE LABEL\n - CARNET\n - RUPAY\n - CHINA UNION PAY\n - FALABELLA PRIVATE LABEL\n - PROMPTCARD\n - KOREAN DOMESTIC\n - BANRICOMPRAS\n" + }, + "currency": { + "type": "string", + "maxLength": 3, + "description": "This field indicates the 3-letter [ISO Standard Currency Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf) for the card currency.\n" + }, "accountEncoderId": { "type": "string", "maxLength": 3, @@ -63544,6 +63747,63 @@ } } }, + "brands": { + "type": "array", + "description": "This array contains the supported brands.\n", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Three-digit value that indicates the card type.\n\n**IMPORTANT** It is strongly recommended that you include the card type field in request messages even if it is\noptional for your processor and card type. Omitting the card type can cause the transaction to be processed with the wrong card type.\n\nPossible values:\n- `001`: Visa. For card-present transactions on all processors except SIX, the Visa Electron card type is processed the same way that the Visa debit card is processed. Use card type value `001` for Visa Electron.\n- `002`: Mastercard, Eurocard[^1], which is a European regional brand of Mastercard.\n- `003`: American Express\n- `004`: Discover\n- `005`: Diners Club\n- `006`: Carte Blanche[^1]\n- `007`: JCB[^1]\n- `014`: Enroute[^1]\n- `021`: JAL[^1]\n- `024`: Maestro (UK Domestic)[^1]\n- `031`: Delta[^1]: Use this value only for Ingenico ePayments. For other processors, use `001` for all Visa card types.\n- `033`: Visa Electron[^1]. Use this value only for Ingenico ePayments and SIX. For other processors, use `001` for all Visa card types.\n- `034`: Dankort[^1]\n- `036`: Cartes Bancaires[^1,4]\n- `037`: Carta Si[^1]\n- `039`: Encoded account number[^1]\n- `040`: UATP[^1]\n- `042`: Maestro (International)[^1]\n- `050`: Hipercard[^2,3]\n- `051`: Aura\n- `054`: Elo[^3]\n- `062`: China UnionPay\n- '070': EFTPOS\n\n[^1]: For this card type, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in your request for an authorization or a stand-alone credit.\n[^2]: For this card type on Cielo 3.0, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit. This card type is not supported on Cielo 1.5.\n[^3]: For this card type on Getnet and Rede, you must include the `paymentInformation.card.type` or `paymentInformation.tokenizedCard.type` field in a request for an authorization or a stand-alone credit.\n[^4]: For this card type, you must include the `paymentInformation.card.type` in your request for any payer authentication services.\n\n#### Used by\n**Authorization**\nRequired for Carte Blanche and JCB.\nOptional for all other card types.\n\n#### Card Present reply\nThis field is included in the reply message when the client software that is installed on the POS terminal uses\nthe token management service (TMS) to retrieve tokenized payment details. You must contact customer support to\nhave your account enabled to receive these fields in the credit reply message.\n\nReturned by the Credit service.\n\nThis reply field is only supported by the following processors:\n- American Express Direct\n- Credit Mutuel-CIC\n- FDC Nashville Global\n- OmniPay Direct\n- SIX\n\n#### Google Pay transactions\nFor PAN-based Google Pay transactions, this field is returned in the API response.\n\n#### GPX\nThis field only supports transactions from the following card types:\n- Visa\n- Mastercard\n- AMEX\n- Discover\n- Diners\n- JCB\n- Union Pay International\n" + }, + "brandName": { + "type": "string", + "description": "This field contains the card brand name. \n\nSome of the possible values (not an exhaustive list) are -\n\n - VISA\n - MASTERCARD\n - AMERICAN EXPRESS\n - DISCOVER\n - DINERS CLUB\n - CARTE BLANCHE\n - JCB\n - OPTIMA\n - TWINPAY CREDIT CARD\n - TWINPAY DEBIT CARD\n - WALMART\n - ENROUTE\n - LOWES CONSUMER\n - HOME DEPOT CONSUMER\n - MBNA\n - DICKS SPORTWEAR\n - CASUAL CORNER\n - SEARS\n - JAL\n - DISNEY CARD\n - SWITCH/SOLO\n - SAMS CLUB CONSUMER\n - SAMS CLUB BUSINESS\n - NICOS HOUSE CARD\n - BEBE\n - RESTORATION HARDWARE\n - DELTA ONLINE\n - SOLO\n - VISA ELECTRON\n - DANKORT\n - LASER\n - CARTE BANCAIRE\n - CARTA SI\n - ENCODED ACCOUNT\n - UATP\n - HOUSEHOLD\n - MAESTRO\n - GE CAPITAL\n - KOREAN CARDS\n - STYLE CARDS\n - JCREW\n - MEIJER\n - HIPERCARD\n - AURA\n - REDECARD\n - ORICO HOUSE CARD\n - ELO\n - CAPITAL ONE PRIVATE LABEL\n - CARNET\n - RUPAY\n - CHINA UNION PAY\n - FALABELLA PRIVATE LABEL\n - PROMPTCARD\n - KOREAN DOMESTIC\n - BANRICOMPRAS\n" + } + } + } + }, + "features": { + "type": "object", + "properties": { + "accountFundingSource": { + "type": "string", + "maxLength": 20, + "description": "This field contains the account funding source.\nPossible values:\n - `CREDIT`\n - `DEBIT`\n - `PREPAID`\n - `DEFERRED DEBIT`\n - `CHARGE`\n" + }, + "accountFundingSourceSubType": { + "type": "string", + "maxLength": 20, + "description": "This field contains the type of prepaid card.\nPossible values:\n - `Reloadable`\n - `Non-reloadable`\n" + }, + "cardProduct": { + "type": "string", + "maxLength": 50, + "description": "This field contains the type of issuer product.\nExample values:\n - Visa Classic\n - Visa Signature\n - Visa Infinite\n" + }, + "messageType": { + "type": "string", + "maxLength": 1, + "description": "This field contains the type of BIN based authentication.\nPossible values:\n - `S`: Single Message\n - `D`: Dual Message\n" + }, + "acceptanceLevel": { + "type": "string", + "maxLength": 2, + "description": "This field contains the acceptance level of the PAN.\nPossible values:\n - `0` : Normal\n - `1` : Monitor\n - `2` : Refuse\n - `3` : Not Allowed\n - `4` : Private\n - `5` : Test\n" + }, + "cardPlatform": { + "type": "string", + "maxLength": 20, + "description": "This field contains the type of card platform.\nPossible values:\n - `BUSINESS`\n - `CONSUMER`\n - `COMMERCIAL`\n - `GOVERNMENT`\n" + }, + "comboCard": { + "type": "string", + "maxLength": 1, + "description": "This field indicates the type of combo card.\nPossible values:\n - 0 (Not a combo card)\n - 1 (Credit and Prepaid Combo card)\n - 2 (Credit and Debit Combo card)\n" + } + } + }, "invoice": { "type": "object", "properties": { @@ -63561,6 +63821,41 @@ } } }, + "network": { + "type": "object", + "properties": { + "id": { + "type": "string", + "maxLength": 5, + "description": "This field contains a code that identifies the network.\nPlease refer [Network ID and Sharing Group Code](https://developer.visa.com/request_response_codes#network_id_and_sharing_group_code)\n" + } + } + }, + "issuerInformation": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 200, + "description": "This field contains the issuer name.\n" + }, + "country": { + "type": "string", + "maxLength": 2, + "description": "This field contains [2-character ISO Country Codes](http://apps.cybersource.com/library/documentation/sbc/quickref/countries_alpha_list.pdf) for the issuer.\n" + }, + "binLength": { + "type": "string", + "maxLength": 2, + "description": "This field contains the length of the BIN.\n" + }, + "phoneNumber": { + "type": "string", + "maxLength": 50, + "description": "This field contains the customer service phone number for the issuer.\n" + } + } + }, "bank": { "type": "object", "properties": { @@ -63725,9 +64020,23 @@ } } }, + "payoutOptions": { + "type": "object", + "properties": { + "payoutInquiry": { + "type": "string", + "maxLength": 5, + "description": "If true then provide attributes related to fund transfer/payouts. If payout information not found then response will have standard account lookup.\nPossible values:\n- `true`\n- `false`\n" + } + } + }, "processingInformation": { "type": "object", "properties": { + "binSource": { + "type": "string", + "description": "Bin Source File Identifier.\nPossible values:\n- itmx\n- rupay\n" + }, "industryDataType": { "type": "string", "maxLength": 20, @@ -64196,6 +64505,14 @@ "maxLength": 32 } } + }, + "jti": { + "type": "string", + "description": "TMS Transient Token, 64 hexadecimal id value representing captured payment credentials (including Sensitive Authentication Data, e.g. CVV).\n" + }, + "transientTokenJwt": { + "type": "string", + "description": "Flex API Transient Token encoded as JWT (JSON Web Token), e.g. Flex microform or Unified Payment checkout result.\n" } } }, @@ -64392,17 +64709,74 @@ "customerId": "123" }, "id": "1C56E3115482033FEA539399130A4BC2", - "card": { - "suffix": "1111", - "prefix": "123", - "expirationMonth": "10", - "expirationYear": "2017", - "startMonth": "11", - "startYear": "2011", - "issueNumber": "1234", - "type": "001", - "accountEncoderId": "12", - "useAs": "overidepaymentmethod" + "paymentAccountInformation": { + "card": { + "suffix": "1111", + "prefix": "123", + "expirationMonth": "10", + "expirationYear": "2017", + "startMonth": "11", + "startYear": "2011", + "issueNumber": "1234", + "type": "001", + "brandName": "VISA", + "currency": "USD", + "credentialType": "PAN", + "accountEncoderId": "12", + "useAs": "overidepaymentmethod" + }, + "brands": [ + { + "type": "001", + "brandName": "VISA" + } + ], + "features": { + "accountFundingSource": "CREDIT", + "accountFundingSourceSubType": "Non-reloadable", + "cardProduct": "Visa Classic", + "messageType": "D", + "acceptanceLevel": "0", + "cardPlatform": "CONSUMER", + "comboCard": "0" + }, + "network": { + "id": "0002" + } + }, + "issuerInformation": { + "name": "BC CARD COMPANY, LIMITED", + "country": "US", + "binLength": "6", + "accountPrefix": "123456", + "phoneNumber": "6509656111" + }, + "payoutInformation": { + "pushFunds": { + "moneyTransferFastFundsCrossBorder": "Y", + "moneyTransferFastFundsDomestic": "Y", + "moneyTransferCrossBorder": "Y", + "moneyTransferDomestic": "Y", + "nonMoneyTransferFastFundsCrossBorder": "Y", + "nonMoneyTransferFastFundsDomestic": "Y", + "nonMoneyTransferCrossBorder": "Y", + "nonMoneyTransferDomestic": "Y", + "onlineGamblingFastFundsCrossBorder": "N", + "onlineGamblingFastFundsDomestic": "N", + "onlineGamblingCrossBorder": "N", + "onlineGamblingDomestic": "N", + "domesticParticipant": "true" + }, + "pullFunds": { + "domesticParticipant": "false", + "crossBorderParticipant": "false" + }, + "geoRestrictionIndicator": "Y" + }, + "payoutOptions": { + "payoutInquiry": "true", + "networkId": "0002", + "acquirerBin": "123456" }, "invoice": { "number": "BOLETONUM34567890123barcode12345678901231234567890", @@ -64455,6 +64829,7 @@ } }, "processingInformation": { + "binSource": "itmx", "industryDataType": "healthcare_transit", "paymentSolution": "Visa", "commerceIndicator": "7", @@ -64587,7 +64962,9 @@ }, "shippingAddress": { "id": "1C56E3115482033FEA539399130A4BC2" - } + }, + "jti": "1E0WC1GO87JG1BDP0CQ8SCR1TTK86U9N98H3WH8IFM9MVEWTIYFI62F4941E7A92", + "transientTokenJwt": "eyJraWQiOiIwODd0bk1DNU04bXJHR3JHMVJQTkwzZ2VyRUh5VWV1ciIsImFsZyI6IlJTMjU2In0.eyJpc3MiOiJGbGV4LzA4IiwiZXhwIjoxNjYwMTk1ODcwLCJ0eXBlIjoiYXBpLTAuMS4wIiwiaWF0IjoxNjYwMTk0OTcwLCJqdGkiOiIxRTBXQzFHTzg3SkcxQkRQMENROFNDUjFUVEs4NlU5Tjk4SDNXSDhJRk05TVZFV1RJWUZJNjJGNDk0MUU3QTkyIiwiY29udGVudCI6eyJwYXltZW50SW5mb3JtYXRpb24iOnsiY2FyZCI6eyJudW1iZXIiOnsibWFza2VkVmFsdWUiOiJYWFhYWFhYWFhYWFgxMTExIiwiYmluIjoiNDExMTExIn0sInR5cGUiOnsidmFsdWUiOiIwMDEifX19fX0.MkCLbyvufN4prGRvHJcqCu1WceDVlgubZVpShNWQVjpuFQUuqwrKg284sC7ucVKuIsOU0DTN8_OoxDLduvZhS7X_5TnO0QjyA_aFxbRBvU_bEz1l9V99VPADG89T-fox_L6sLUaoTJ8T4PyD7rkPHEA0nmXbqQCVqw4Czc5TqlKCwmL-Fe0NBR2HlOFI1PrSXT-7_wI-JTgXI0dQzb8Ub20erHwOLwu3oni4_ZmS3rGI_gxq2MHi8pO-ZOgA597be4WfVFAx1wnMbareqR72a0QM4DefeoltrpNqXSaASVyb5G0zuqg-BOjWJbawmg2QgcZ_vE3rJ6PDgWROvp9Tbw" }, "_links": { "self": { @@ -73312,6 +73689,16 @@ "type": "string", "maxLength": 100, "description": "Your identifier for the customer.\n\nWhen a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.\n\n#### Comercio Latino\nFor recurring payments in Mexico, the value is the customer\u2019s contract number.\nNote Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.\n\n#### Worldpay VAP\nFor a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order\ngiven, for a customer account ID value and uses the first value it finds:\n1. `customer_account_id` value in the follow-on credit request\n2. Customer account ID value that was used for the capture that is being credited\n3. Customer account ID value that was used for the original authorization\nIf a customer account ID value cannot be found in any of these locations, then no value is used.\n\nFor processor-specific information, see the `customer_account_id` field description in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + }, + "company": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 60, + "description": "Name of the customer\u2019s company.\n\n**CyberSource through VisaNet**\nCredit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.\n\nFor processor-specific information, see the `company_name` field in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + } + } } } }, @@ -73417,6 +73804,11 @@ "taxable": { "type": "boolean", "description": "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nFor processor-specific information, see the `tax_indicator` field in\n[Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html)\n\nPossible values:\n - **true**\n - **false**\n" + }, + "taxRate": { + "description": "Shipping Tax rate applied to the freight amount.\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n", + "type": "string", + "maxLength": 7 } } } @@ -73450,6 +73842,31 @@ "type": "string", "maxLength": 15, "description": "Per-item price of the product. This value for this field cannot be negative.\n\nYou must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\nYou can include a decimal point (.), but you cannot include any other special characters.\nThe value is truncated to the correct number of decimal places.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either\nthe 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\n#### FDMS South\nIf you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.]\n(https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/)\n\n#### Tax Calculation\nRequired field for U.S., Canadian, international and value added taxes.\n\n#### Zero Amount Authorizations\nIf your processor supports zero amount authorizations, you can set this field to 0 for the\nauthorization to check if the card is lost or stolen.\n\n#### Maximum Field Lengths\nFor GPN and JCN Gateway: Decimal (10)\nAll other processors: Decimal (15)\n" + }, + "discountAmount": { + "type": "string", + "maxLength": 13, + "description": "Discount applied to the item." + }, + "discountRate": { + "type": "string", + "maxLength": 6, + "description": "Rate the item is discounted. Maximum of 2 decimal places.\n\nExample 5.25 (=5.25%)\n" + }, + "taxAmount": { + "type": "string", + "maxLength": 15, + "description": "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n" + }, + "taxRate": { + "type": "string", + "maxLength": 7, + "description": "Tax rate applied to the item.\n\nFor details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/)\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n" + }, + "totalAmount": { + "type": "string", + "maxLength": 13, + "description": "Total amount for the item. Normally calculated as the unit price times quantity.\n\nWhen `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total\nfor prepaid gift cards in major units.\n\nExample: 123.45 USD = 123\n" } } } @@ -73461,7 +73878,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "description": "This is a test invoice", @@ -73492,8 +73912,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "unitPrice": "120.08", - "quantity": "21" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -73596,6 +74021,16 @@ "type": "string", "maxLength": 100, "description": "Your identifier for the customer.\n\nWhen a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.\n\n#### Comercio Latino\nFor recurring payments in Mexico, the value is the customer\u2019s contract number.\nNote Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.\n\n#### Worldpay VAP\nFor a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order\ngiven, for a customer account ID value and uses the first value it finds:\n1. `customer_account_id` value in the follow-on credit request\n2. Customer account ID value that was used for the capture that is being credited\n3. Customer account ID value that was used for the original authorization\nIf a customer account ID value cannot be found in any of these locations, then no value is used.\n\nFor processor-specific information, see the `customer_account_id` field description in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + }, + "company": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 60, + "description": "Name of the customer\u2019s company.\n\n**CyberSource through VisaNet**\nCredit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.\n\nFor processor-specific information, see the `company_name` field in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + } + } } } }, @@ -73706,6 +74141,11 @@ "taxable": { "type": "boolean", "description": "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nFor processor-specific information, see the `tax_indicator` field in\n[Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html)\n\nPossible values:\n - **true**\n - **false**\n" + }, + "taxRate": { + "description": "Shipping Tax rate applied to the freight amount.\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n", + "type": "string", + "maxLength": 7 } } } @@ -73739,6 +74179,31 @@ "type": "string", "maxLength": 15, "description": "Per-item price of the product. This value for this field cannot be negative.\n\nYou must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\nYou can include a decimal point (.), but you cannot include any other special characters.\nThe value is truncated to the correct number of decimal places.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either\nthe 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\n#### FDMS South\nIf you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.]\n(https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/)\n\n#### Tax Calculation\nRequired field for U.S., Canadian, international and value added taxes.\n\n#### Zero Amount Authorizations\nIf your processor supports zero amount authorizations, you can set this field to 0 for the\nauthorization to check if the card is lost or stolen.\n\n#### Maximum Field Lengths\nFor GPN and JCN Gateway: Decimal (10)\nAll other processors: Decimal (15)\n" + }, + "discountAmount": { + "type": "string", + "maxLength": 13, + "description": "Discount applied to the item." + }, + "discountRate": { + "type": "string", + "maxLength": 6, + "description": "Rate the item is discounted. Maximum of 2 decimal places.\n\nExample 5.25 (=5.25%)\n" + }, + "taxAmount": { + "type": "string", + "maxLength": 15, + "description": "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n" + }, + "taxRate": { + "type": "string", + "maxLength": 7, + "description": "Tax rate applied to the item.\n\nFor details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/)\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n" + }, + "totalAmount": { + "type": "string", + "maxLength": 13, + "description": "Total amount for the item. Normally calculated as the unit price times quantity.\n\nWhen `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total\nfor prepaid gift cards in major units.\n\nExample: 123.45 USD = 123\n" } } } @@ -73771,7 +74236,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "invoiceNumber": "98753", @@ -73804,8 +74272,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "quantity": "21", - "unitPrice": "120.08" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -73998,7 +74471,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "description": "This is a test invoice", @@ -74029,8 +74505,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "unitPrice": "120.08", - "quantity": "21" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -74042,7 +74523,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "description": "This is a test invoice", @@ -74073,8 +74557,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "unitPrice": "120.08", - "quantity": "21" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -74086,7 +74575,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "invoiceNumber": "A123", @@ -74118,8 +74610,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "unitPrice": "120.08", - "quantity": "21" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -74131,7 +74628,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "invoiceNumber": "A123", @@ -74163,8 +74663,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "unitPrice": "120.08", - "quantity": "21" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -74436,7 +74941,10 @@ "status": "DRAFT", "customerInformation": { "name": "Tanya Lee", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "dueDate": "2019-07-11" @@ -74473,7 +74981,10 @@ "status": "DRAFT", "customerInformation": { "name": "Tanya Lee", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "dueDate": "2019-07-11" @@ -74682,7 +75193,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "invoiceNumber": "A123", @@ -74715,8 +75229,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "quantity": "1000", - "unitPrice": "12.34" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] }, @@ -74832,6 +75351,16 @@ "type": "string", "maxLength": 100, "description": "Your identifier for the customer.\n\nWhen a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.\n\n#### Comercio Latino\nFor recurring payments in Mexico, the value is the customer\u2019s contract number.\nNote Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.\n\n#### Worldpay VAP\nFor a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order\ngiven, for a customer account ID value and uses the first value it finds:\n1. `customer_account_id` value in the follow-on credit request\n2. Customer account ID value that was used for the capture that is being credited\n3. Customer account ID value that was used for the original authorization\nIf a customer account ID value cannot be found in any of these locations, then no value is used.\n\nFor processor-specific information, see the `customer_account_id` field description in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + }, + "company": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 60, + "description": "Name of the customer\u2019s company.\n\n**CyberSource through VisaNet**\nCredit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.\n\nFor processor-specific information, see the `company_name` field in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + } + } } } }, @@ -74942,6 +75471,11 @@ "taxable": { "type": "boolean", "description": "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nFor processor-specific information, see the `tax_indicator` field in\n[Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html)\n\nPossible values:\n - **true**\n - **false**\n" + }, + "taxRate": { + "description": "Shipping Tax rate applied to the freight amount.\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n", + "type": "string", + "maxLength": 7 } } } @@ -74975,6 +75509,31 @@ "type": "string", "maxLength": 15, "description": "Per-item price of the product. This value for this field cannot be negative.\n\nYou must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\nYou can include a decimal point (.), but you cannot include any other special characters.\nThe value is truncated to the correct number of decimal places.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either\nthe 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\n#### FDMS South\nIf you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.]\n(https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/)\n\n#### Tax Calculation\nRequired field for U.S., Canadian, international and value added taxes.\n\n#### Zero Amount Authorizations\nIf your processor supports zero amount authorizations, you can set this field to 0 for the\nauthorization to check if the card is lost or stolen.\n\n#### Maximum Field Lengths\nFor GPN and JCN Gateway: Decimal (10)\nAll other processors: Decimal (15)\n" + }, + "discountAmount": { + "type": "string", + "maxLength": 13, + "description": "Discount applied to the item." + }, + "discountRate": { + "type": "string", + "maxLength": 6, + "description": "Rate the item is discounted. Maximum of 2 decimal places.\n\nExample 5.25 (=5.25%)\n" + }, + "taxAmount": { + "type": "string", + "maxLength": 15, + "description": "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n" + }, + "taxRate": { + "type": "string", + "maxLength": 7, + "description": "Tax rate applied to the item.\n\nFor details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/)\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n" + }, + "totalAmount": { + "type": "string", + "maxLength": 13, + "description": "Total amount for the item. Normally calculated as the unit price times quantity.\n\nWhen `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total\nfor prepaid gift cards in major units.\n\nExample: 123.45 USD = 123\n" } } } @@ -75201,6 +75760,16 @@ "type": "string", "maxLength": 100, "description": "Your identifier for the customer.\n\nWhen a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.\n\n#### Comercio Latino\nFor recurring payments in Mexico, the value is the customer\u2019s contract number.\nNote Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.\n\n#### Worldpay VAP\nFor a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order\ngiven, for a customer account ID value and uses the first value it finds:\n1. `customer_account_id` value in the follow-on credit request\n2. Customer account ID value that was used for the capture that is being credited\n3. Customer account ID value that was used for the original authorization\nIf a customer account ID value cannot be found in any of these locations, then no value is used.\n\nFor processor-specific information, see the `customer_account_id` field description in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + }, + "company": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 60, + "description": "Name of the customer\u2019s company.\n\n**CyberSource through VisaNet**\nCredit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.\n\nFor processor-specific information, see the `company_name` field in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + } + } } } }, @@ -75298,6 +75867,11 @@ "taxable": { "type": "boolean", "description": "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nFor processor-specific information, see the `tax_indicator` field in\n[Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html)\n\nPossible values:\n - **true**\n - **false**\n" + }, + "taxRate": { + "description": "Shipping Tax rate applied to the freight amount.\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n", + "type": "string", + "maxLength": 7 } } } @@ -75331,6 +75905,31 @@ "type": "string", "maxLength": 15, "description": "Per-item price of the product. This value for this field cannot be negative.\n\nYou must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\nYou can include a decimal point (.), but you cannot include any other special characters.\nThe value is truncated to the correct number of decimal places.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either\nthe 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\n#### FDMS South\nIf you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.]\n(https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/)\n\n#### Tax Calculation\nRequired field for U.S., Canadian, international and value added taxes.\n\n#### Zero Amount Authorizations\nIf your processor supports zero amount authorizations, you can set this field to 0 for the\nauthorization to check if the card is lost or stolen.\n\n#### Maximum Field Lengths\nFor GPN and JCN Gateway: Decimal (10)\nAll other processors: Decimal (15)\n" + }, + "discountAmount": { + "type": "string", + "maxLength": 13, + "description": "Discount applied to the item." + }, + "discountRate": { + "type": "string", + "maxLength": 6, + "description": "Rate the item is discounted. Maximum of 2 decimal places.\n\nExample 5.25 (=5.25%)\n" + }, + "taxAmount": { + "type": "string", + "maxLength": 15, + "description": "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n" + }, + "taxRate": { + "type": "string", + "maxLength": 7, + "description": "Tax rate applied to the item.\n\nFor details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/)\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n" + }, + "totalAmount": { + "type": "string", + "maxLength": 13, + "description": "Total amount for the item. Normally calculated as the unit price times quantity.\n\nWhen `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total\nfor prepaid gift cards in major units.\n\nExample: 123.45 USD = 123\n" } } } @@ -75342,7 +75941,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "description": "This is a test invoice", @@ -75372,8 +75974,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "unitPrice": "120.08", - "quantity": "21" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -75476,6 +76083,16 @@ "type": "string", "maxLength": 100, "description": "Your identifier for the customer.\n\nWhen a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.\n\n#### Comercio Latino\nFor recurring payments in Mexico, the value is the customer\u2019s contract number.\nNote Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.\n\n#### Worldpay VAP\nFor a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order\ngiven, for a customer account ID value and uses the first value it finds:\n1. `customer_account_id` value in the follow-on credit request\n2. Customer account ID value that was used for the capture that is being credited\n3. Customer account ID value that was used for the original authorization\nIf a customer account ID value cannot be found in any of these locations, then no value is used.\n\nFor processor-specific information, see the `customer_account_id` field description in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + }, + "company": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 60, + "description": "Name of the customer\u2019s company.\n\n**CyberSource through VisaNet**\nCredit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.\n\nFor processor-specific information, see the `company_name` field in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + } + } } } }, @@ -75586,6 +76203,11 @@ "taxable": { "type": "boolean", "description": "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nFor processor-specific information, see the `tax_indicator` field in\n[Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html)\n\nPossible values:\n - **true**\n - **false**\n" + }, + "taxRate": { + "description": "Shipping Tax rate applied to the freight amount.\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n", + "type": "string", + "maxLength": 7 } } } @@ -75619,6 +76241,31 @@ "type": "string", "maxLength": 15, "description": "Per-item price of the product. This value for this field cannot be negative.\n\nYou must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\nYou can include a decimal point (.), but you cannot include any other special characters.\nThe value is truncated to the correct number of decimal places.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either\nthe 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\n#### FDMS South\nIf you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.]\n(https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/)\n\n#### Tax Calculation\nRequired field for U.S., Canadian, international and value added taxes.\n\n#### Zero Amount Authorizations\nIf your processor supports zero amount authorizations, you can set this field to 0 for the\nauthorization to check if the card is lost or stolen.\n\n#### Maximum Field Lengths\nFor GPN and JCN Gateway: Decimal (10)\nAll other processors: Decimal (15)\n" + }, + "discountAmount": { + "type": "string", + "maxLength": 13, + "description": "Discount applied to the item." + }, + "discountRate": { + "type": "string", + "maxLength": 6, + "description": "Rate the item is discounted. Maximum of 2 decimal places.\n\nExample 5.25 (=5.25%)\n" + }, + "taxAmount": { + "type": "string", + "maxLength": 15, + "description": "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n" + }, + "taxRate": { + "type": "string", + "maxLength": 7, + "description": "Tax rate applied to the item.\n\nFor details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/)\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n" + }, + "totalAmount": { + "type": "string", + "maxLength": 13, + "description": "Total amount for the item. Normally calculated as the unit price times quantity.\n\nWhen `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total\nfor prepaid gift cards in major units.\n\nExample: 123.45 USD = 123\n" } } } @@ -75651,7 +76298,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "invoiceNumber": "98753", @@ -75684,8 +76334,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "quantity": "21", - "unitPrice": "120.08" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -75948,6 +76603,16 @@ "type": "string", "maxLength": 100, "description": "Your identifier for the customer.\n\nWhen a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.\n\n#### Comercio Latino\nFor recurring payments in Mexico, the value is the customer\u2019s contract number.\nNote Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.\n\n#### Worldpay VAP\nFor a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order\ngiven, for a customer account ID value and uses the first value it finds:\n1. `customer_account_id` value in the follow-on credit request\n2. Customer account ID value that was used for the capture that is being credited\n3. Customer account ID value that was used for the original authorization\nIf a customer account ID value cannot be found in any of these locations, then no value is used.\n\nFor processor-specific information, see the `customer_account_id` field description in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + }, + "company": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 60, + "description": "Name of the customer\u2019s company.\n\n**CyberSource through VisaNet**\nCredit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.\n\nFor processor-specific information, see the `company_name` field in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + } + } } } }, @@ -76058,6 +76723,11 @@ "taxable": { "type": "boolean", "description": "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nFor processor-specific information, see the `tax_indicator` field in\n[Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html)\n\nPossible values:\n - **true**\n - **false**\n" + }, + "taxRate": { + "description": "Shipping Tax rate applied to the freight amount.\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n", + "type": "string", + "maxLength": 7 } } } @@ -76091,6 +76761,31 @@ "type": "string", "maxLength": 15, "description": "Per-item price of the product. This value for this field cannot be negative.\n\nYou must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\nYou can include a decimal point (.), but you cannot include any other special characters.\nThe value is truncated to the correct number of decimal places.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either\nthe 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\n#### FDMS South\nIf you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.]\n(https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/)\n\n#### Tax Calculation\nRequired field for U.S., Canadian, international and value added taxes.\n\n#### Zero Amount Authorizations\nIf your processor supports zero amount authorizations, you can set this field to 0 for the\nauthorization to check if the card is lost or stolen.\n\n#### Maximum Field Lengths\nFor GPN and JCN Gateway: Decimal (10)\nAll other processors: Decimal (15)\n" + }, + "discountAmount": { + "type": "string", + "maxLength": 13, + "description": "Discount applied to the item." + }, + "discountRate": { + "type": "string", + "maxLength": 6, + "description": "Rate the item is discounted. Maximum of 2 decimal places.\n\nExample 5.25 (=5.25%)\n" + }, + "taxAmount": { + "type": "string", + "maxLength": 15, + "description": "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n" + }, + "taxRate": { + "type": "string", + "maxLength": 7, + "description": "Tax rate applied to the item.\n\nFor details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/)\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n" + }, + "totalAmount": { + "type": "string", + "maxLength": 13, + "description": "Total amount for the item. Normally calculated as the unit price times quantity.\n\nWhen `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total\nfor prepaid gift cards in major units.\n\nExample: 123.45 USD = 123\n" } } } @@ -76123,7 +76818,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "invoiceNumber": "98753", @@ -76156,8 +76854,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "quantity": "21", - "unitPrice": "120.08" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -76420,6 +77123,16 @@ "type": "string", "maxLength": 100, "description": "Your identifier for the customer.\n\nWhen a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.\n\n#### Comercio Latino\nFor recurring payments in Mexico, the value is the customer\u2019s contract number.\nNote Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.\n\n#### Worldpay VAP\nFor a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order\ngiven, for a customer account ID value and uses the first value it finds:\n1. `customer_account_id` value in the follow-on credit request\n2. Customer account ID value that was used for the capture that is being credited\n3. Customer account ID value that was used for the original authorization\nIf a customer account ID value cannot be found in any of these locations, then no value is used.\n\nFor processor-specific information, see the `customer_account_id` field description in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + }, + "company": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 60, + "description": "Name of the customer\u2019s company.\n\n**CyberSource through VisaNet**\nCredit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.\n\nFor processor-specific information, see the `company_name` field in\n[Credit Card Services Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/CC_Svcs_SCMP_API/html)\n" + } + } } } }, @@ -76530,6 +77243,11 @@ "taxable": { "type": "boolean", "description": "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nFor processor-specific information, see the `tax_indicator` field in\n[Level II and Level III Processing Using the SCMP API.](http://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html)\n\nPossible values:\n - **true**\n - **false**\n" + }, + "taxRate": { + "description": "Shipping Tax rate applied to the freight amount.\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n", + "type": "string", + "maxLength": 7 } } } @@ -76563,6 +77281,31 @@ "type": "string", "maxLength": 15, "description": "Per-item price of the product. This value for this field cannot be negative.\n\nYou must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\nYou can include a decimal point (.), but you cannot include any other special characters.\nThe value is truncated to the correct number of decimal places.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either\nthe 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.\n\n#### FDMS South\nIf you accept IDR or CLP currencies, see the entry for FDMS South in the [Merchant Descriptors Using the SCMP API Guide.]\n(https://apps.cybersource.com/library/documentation/dev_guides/Merchant_Descriptors_SCMP_API/html/)\n\n#### Tax Calculation\nRequired field for U.S., Canadian, international and value added taxes.\n\n#### Zero Amount Authorizations\nIf your processor supports zero amount authorizations, you can set this field to 0 for the\nauthorization to check if the card is lost or stolen.\n\n#### Maximum Field Lengths\nFor GPN and JCN Gateway: Decimal (10)\nAll other processors: Decimal (15)\n" + }, + "discountAmount": { + "type": "string", + "maxLength": 13, + "description": "Discount applied to the item." + }, + "discountRate": { + "type": "string", + "maxLength": 6, + "description": "Rate the item is discounted. Maximum of 2 decimal places.\n\nExample 5.25 (=5.25%)\n" + }, + "taxAmount": { + "type": "string", + "maxLength": 15, + "description": "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n" + }, + "taxRate": { + "type": "string", + "maxLength": 7, + "description": "Tax rate applied to the item.\n\nFor details, see `tax_rate` field description in the [Level II and Level III Processing Using the SCMP API Guide.](https://apps.cybersource.com/library/documentation/dev_guides/Level_2_3_SCMP_API/html/)\n\n**Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional\ndecimal places will be truncated).\n\n**Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).\n" + }, + "totalAmount": { + "type": "string", + "maxLength": 13, + "description": "Total amount for the item. Normally calculated as the unit price times quantity.\n\nWhen `orderInformation.lineItems[].productCode` is \"gift_card\", this is the purchase amount total\nfor prepaid gift cards in major units.\n\nExample: 123.45 USD = 123\n" } } } @@ -76595,7 +77338,10 @@ "customerInformation": { "name": "Tanya Lee", "email": "tanya.lee@my-email.world", - "merchantCustomerId": "1234" + "merchantCustomerId": "1234", + "company": { + "name": "ABC" + } }, "invoiceInformation": { "invoiceNumber": "98753", @@ -76628,8 +77374,13 @@ { "productSku": "P653727383", "productName": "First line item's name", - "quantity": "21", - "unitPrice": "120.08" + "unitPrice": "12.05", + "quantity": "20", + "discountAmount": "13.04", + "discountPercent": "5.0", + "taxAmount": "0.0", + "taxRate": "0.0", + "totalAmount": "247.86" } ] } @@ -76849,6 +77600,16 @@ "description": "For a merchant's invoice payments, enable 3D Secure payer authentication version 1, update to 3D Secure version 2, or disable 3D Secure. Possible values are: \n- `enable`\n- `update`\n- `disable` \n", "type": "string", "maxLength": 7 + }, + "showVatNumber": { + "description": "Display VAT number on Invoice.", + "type": "boolean", + "default": false + }, + "vatRegistrationNumber": { + "type": "string", + "maxLength": 21, + "description": "Your government-assigned tax identification number.\n\n#### Tax Calculation\nRequired field for value added tax only. Not applicable to U.S. and Canadian taxes.\n" } } } @@ -76865,7 +77626,9 @@ }, "deliveryLanguage": "fr-FR", "defaultCurrencyCode": "USD", - "payerAuthenticationInInvoicing": "enable" + "payerAuthenticationInInvoicing": "enable", + "showVatNumber": false, + "vatRegistrationNumber": "Inv1234" } } } @@ -76889,7 +77652,9 @@ }, "deliveryLanguage": "en-US", "defaultCurrencyCode": "USD", - "payerAuthentication3DSVersion": "1" + "payerAuthentication3DSVersion": true, + "showVatNumber": false, + "vatRegistrationNumber": "Inv1234" } }, "properties": { @@ -76947,9 +77712,19 @@ "description": "Currency used for the order. Use the three-character [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf)\n\n#### Used by\n**Authorization**\nRequired field.\n\n**Authorization Reversal**\nFor an authorization reversal (`reversalInformation`) or a capture (`processingOptions.capture` is set to `true`), you must use the same currency that you used in your payment authorization request.\n\n#### PIN Debit\nCurrency for the amount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).\nReturned by PIN debit purchase.\n\nFor PIN debit reversal requests, you must use the same currency that was used for the PIN debit purchase or PIN debit credit that you are reversing.\nFor the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).\n\nRequired field for PIN Debit purchase and PIN Debit credit requests.\nOptional field for PIN Debit reversal requests.\n\n#### GPX\nThis field is optional for reversing an authorization or credit.\n\n#### DCC for First Data\nYour local currency. For details, see the `currency` field description in [Dynamic Currency Conversion For First Data Using the SCMP API](http://apps.cybersource.com/library/documentation/dev_guides/DCC_FirstData_SCMP/DCC_FirstData_SCMP_API.pdf).\n\n#### Tax Calculation\nRequired for international tax and value added tax only.\nOptional for U.S. and Canadian taxes.\nYour local currency.\n" }, "payerAuthentication3DSVersion": { - "description": "The 3D Secure payer authentication version or status for a merchant's invoice payments. Possible values are:\n- `1`\n- `2`\n- `None`\n- `Disabled`\n", + "description": "The 3D Secure payer authentication status for a merchant's invoice payments.", + "type": "boolean", + "default": false + }, + "showVatNumber": { + "description": "Display VAT number on Invoice.", + "type": "boolean", + "default": false + }, + "vatRegistrationNumber": { "type": "string", - "maxLength": 8 + "maxLength": 21, + "description": "Your government-assigned tax identification number.\n\n#### Tax Calculation\nRequired field for value added tax only. Not applicable to U.S. and Canadian taxes. \n" } } } @@ -77057,7 +77832,9 @@ }, "deliveryLanguage": "en-US", "defaultCurrencyCode": "USD", - "payerAuthenticationInInvoicing": "enable" + "payerAuthenticationInInvoicing": "enable", + "showVatNumber": false, + "vatRegistrationNumber": "Inv1234" } } } @@ -77098,7 +77875,9 @@ }, "deliveryLanguage": "en-US", "defaultCurrencyCode": "USD", - "payerAuthentication3DSVersion": "1" + "payerAuthentication3DSVersion": true, + "showVatNumber": false, + "vatRegistrationNumber": "Inv1234" } }, "properties": { @@ -77156,9 +77935,19 @@ "description": "Currency used for the order. Use the three-character [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf)\n\n#### Used by\n**Authorization**\nRequired field.\n\n**Authorization Reversal**\nFor an authorization reversal (`reversalInformation`) or a capture (`processingOptions.capture` is set to `true`), you must use the same currency that you used in your payment authorization request.\n\n#### PIN Debit\nCurrency for the amount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).\nReturned by PIN debit purchase.\n\nFor PIN debit reversal requests, you must use the same currency that was used for the PIN debit purchase or PIN debit credit that you are reversing.\nFor the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).\n\nRequired field for PIN Debit purchase and PIN Debit credit requests.\nOptional field for PIN Debit reversal requests.\n\n#### GPX\nThis field is optional for reversing an authorization or credit.\n\n#### DCC for First Data\nYour local currency. For details, see the `currency` field description in [Dynamic Currency Conversion For First Data Using the SCMP API](http://apps.cybersource.com/library/documentation/dev_guides/DCC_FirstData_SCMP/DCC_FirstData_SCMP_API.pdf).\n\n#### Tax Calculation\nRequired for international tax and value added tax only.\nOptional for U.S. and Canadian taxes.\nYour local currency.\n" }, "payerAuthentication3DSVersion": { - "description": "The 3D Secure payer authentication version or status for a merchant's invoice payments. Possible values are:\n- `1`\n- `2`\n- `None`\n- `Disabled`\n", + "description": "The 3D Secure payer authentication status for a merchant's invoice payments.", + "type": "boolean", + "default": false + }, + "showVatNumber": { + "description": "Display VAT number on Invoice.", + "type": "boolean", + "default": false + }, + "vatRegistrationNumber": { "type": "string", - "maxLength": 8 + "maxLength": 21, + "description": "Your government-assigned tax identification number.\n\n#### Tax Calculation\nRequired field for value added tax only. Not applicable to U.S. and Canadian taxes. \n" } } } diff --git a/generator/cybersource_python_sdk_gen.bat b/generator/cybersource_python_sdk_gen.bat index 5054524a..493580e5 100644 --- a/generator/cybersource_python_sdk_gen.bat +++ b/generator/cybersource_python_sdk_gen.bat @@ -5,56 +5,57 @@ cd %~dp0 REM Delete the previously generated SDK code rd /s /q ..\docs +rd /s /q ..\CyberSource\api rd /s /q ..\CyberSource\apis rd /s /q ..\CyberSource\models rd /s /q ..\test REM Command to generate SDK -java -jar swagger-codegen-cli-2.2.3.jar generate -t cybersource-python-template -i cybersource-rest-spec.json -l python -o ../ -c cybersource-python-config.json +java -jar swagger-codegen-cli-2.3.0.jar generate -t cybersource-python-template -i cybersource-rest-spec.json -l python -o ../ -c cybersource-python-config.json REM Fixing file names powershell -Command "(Get-Content ..\CyberSource\__init__.py) | ForEach-Object { $_ -replace 'from .models.error__links import ErrorLinks', 'from .models.error_links import ErrorLinks'} | Set-Content ..\CyberSource\__init__.py" powershell -Command "(Get-Content ..\CyberSource\models\__init__.py) | ForEach-Object { $_ -replace 'from .error__links import ErrorLinks', 'from .error_links import ErrorLinks'} | Set-Content ..\CyberSource\models\__init__.py" -powershell -Command "(Get-Content ..\CyberSource\apis\report_subscriptions_api.py) | ForEach-Object { $_ -replace '''/reporting/v3/report-subscriptions/{reportName}''', '''/reporting/v3/report-subscriptions/{report_name}'''} | Set-Content ..\CyberSource\apis\report_subscriptions_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\report_subscriptions_api.py) | ForEach-Object { $_ -replace '''/reporting/v3/report-subscriptions/{reportName}''', '''/reporting/v3/report-subscriptions/{report_name}'''} | Set-Content ..\CyberSource\api\report_subscriptions_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\instrument_identifier_api.py) | ForEach-Object { $_ -replace '''/tms/v1/instrumentidentifiers/{instrumentIdentifierId}''', '''/tms/v1/instrumentidentifiers/{instrument_identifier_id}'''} | Set-Content ..\CyberSource\apis\instrument_identifier_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\instrument_identifier_api.py) | ForEach-Object { $_ -replace '''/tms/v1/instrumentidentifiers/{instrumentIdentifierId}''', '''/tms/v1/instrumentidentifiers/{instrument_identifier_id}'''} | Set-Content ..\CyberSource\api\instrument_identifier_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\instrument_identifier_api.py) | ForEach-Object { $_ -replace '''/tms/v1/instrumentidentifiers/{instrumentIdentifierId}/paymentinstruments''', '''/tms/v1/instrumentidentifiers/{instrument_identifier_id}/paymentinstruments'''} | Set-Content ..\CyberSource\apis\instrument_identifier_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\instrument_identifier_api.py) | ForEach-Object { $_ -replace '''/tms/v1/instrumentidentifiers/{instrumentIdentifierId}/paymentinstruments''', '''/tms/v1/instrumentidentifiers/{instrument_identifier_id}/paymentinstruments'''} | Set-Content ..\CyberSource\api\instrument_identifier_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\payment_instrument_api.py) | ForEach-Object { $_ -replace '''/tms/v1/paymentinstruments/{paymentInstrumentId}''', '''/tms/v1/paymentinstruments/{payment_instrument_id}'''} | Set-Content ..\CyberSource\apis\payment_instrument_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\payment_instrument_api.py) | ForEach-Object { $_ -replace '''/tms/v1/paymentinstruments/{paymentInstrumentId}''', '''/tms/v1/paymentinstruments/{payment_instrument_id}'''} | Set-Content ..\CyberSource\api\payment_instrument_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\reports_api.py) | ForEach-Object { $_ -replace '''/reporting/v3/reports/{reportId}''', '''/reporting/v3/reports/{report_id}'''} | Set-Content ..\CyberSource\apis\reports_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\reports_api.py) | ForEach-Object { $_ -replace '''/reporting/v3/reports/{reportId}''', '''/reporting/v3/reports/{report_id}'''} | Set-Content ..\CyberSource\api\reports_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\report_definitions_api.py) | ForEach-Object { $_ -replace '''/reporting/v3/report-definitions/{reportDefinitionName}''', '''/reporting/v3/report-definitions/{report_definition_name}'''} | Set-Content ..\CyberSource\apis\report_definitions_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\report_definitions_api.py) | ForEach-Object { $_ -replace '''/reporting/v3/report-definitions/{reportDefinitionName}''', '''/reporting/v3/report-definitions/{report_definition_name}'''} | Set-Content ..\CyberSource\api\report_definitions_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\secure_file_share_api.py) | ForEach-Object { $_ -replace '''/sfs/v1/files/{fileId}''', '''/sfs/v1/files/{file_id}'''} | Set-Content ..\CyberSource\apis\secure_file_share_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\secure_file_share_api.py) | ForEach-Object { $_ -replace '''/sfs/v1/files/{fileId}''', '''/sfs/v1/files/{file_id}'''} | Set-Content ..\CyberSource\api\secure_file_share_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\search_transactions_api.py) | ForEach-Object { $_ -replace '''/tss/v2/searches/{searchId}''', '''/tss/v2/searches/{search_id}'''} | Set-Content ..\CyberSource\apis\search_transactions_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\search_transactions_api.py) | ForEach-Object { $_ -replace '''/tss/v2/searches/{searchId}''', '''/tss/v2/searches/{search_id}'''} | Set-Content ..\CyberSource\api\search_transactions_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\customer_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}''', '''/tms/v2/customers/{customer_id}'''} | Set-Content ..\CyberSource\apis\customer_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\customer_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}''', '''/tms/v2/customers/{customer_id}'''} | Set-Content ..\CyberSource\api\customer_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\customer_shipping_address_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/shipping-addresses''', '''/tms/v2/customers/{customer_id}/shipping-addresses'''} | Set-Content ..\CyberSource\apis\customer_shipping_address_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\customer_shipping_address_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/shipping-addresses''', '''/tms/v2/customers/{customer_id}/shipping-addresses'''} | Set-Content ..\CyberSource\api\customer_shipping_address_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\customer_shipping_address_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/shipping-addresses/{shippingAddressId}''', '''/tms/v2/customers/{customer_id}/shipping-addresses/{shipping_address_id}'''} | Set-Content ..\CyberSource\apis\customer_shipping_address_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\customer_shipping_address_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/shipping-addresses/{shippingAddressId}''', '''/tms/v2/customers/{customer_id}/shipping-addresses/{shipping_address_id}'''} | Set-Content ..\CyberSource\api\customer_shipping_address_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\customer_payment_instrument_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/payment-instruments''', '''/tms/v2/customers/{customer_id}/payment-instruments'''} | Set-Content ..\CyberSource\apis\customer_payment_instrument_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\customer_payment_instrument_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/payment-instruments''', '''/tms/v2/customers/{customer_id}/payment-instruments'''} | Set-Content ..\CyberSource\api\customer_payment_instrument_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\customer_payment_instrument_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/payment-instruments/{paymentInstrumentId}''', '''/tms/v2/customers/{customer_id}/payment-instruments/{payment_instrument_id}'''} | Set-Content ..\CyberSource\apis\customer_payment_instrument_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\customer_payment_instrument_api.py) | ForEach-Object { $_ -replace '''/tms/v2/customers/{customerId}/payment-instruments/{paymentInstrumentId}''', '''/tms/v2/customers/{customer_id}/payment-instruments/{payment_instrument_id}'''} | Set-Content ..\CyberSource\api\customer_payment_instrument_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\symmetric_key_management_api.py) | ForEach-Object { $_ -replace '''/kms/v2/keys-sym/{keyId}''', '''/kms/v2/keys-sym/{key_id}'''} | Set-Content ..\CyberSource\apis\symmetric_key_management_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\symmetric_key_management_api.py) | ForEach-Object { $_ -replace '''/kms/v2/keys-sym/{keyId}''', '''/kms/v2/keys-sym/{key_id}'''} | Set-Content ..\CyberSource\api\symmetric_key_management_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\asymmetric_key_management_api.py) | ForEach-Object { $_ -replace '''/kms/v2/keys-asym/{keyId}''', '''/kms/v2/keys-asym/{key_id}'''} | Set-Content ..\CyberSource\apis\asymmetric_key_management_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\asymmetric_key_management_api.py) | ForEach-Object { $_ -replace '''/kms/v2/keys-asym/{keyId}''', '''/kms/v2/keys-asym/{key_id}'''} | Set-Content ..\CyberSource\api\asymmetric_key_management_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\instrument_identifier_api.py) | ForEach-Object { $_ -replace '''/tms/v1/instrumentidentifiers/{instrumentIdentifierId}/enrollment''', '''/tms/v1/instrumentidentifiers/{instrument_identifier_id}/enrollment'''} | Set-Content ..\CyberSource\apis\instrument_identifier_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\instrument_identifier_api.py) | ForEach-Object { $_ -replace '''/tms/v1/instrumentidentifiers/{instrumentIdentifierId}/enrollment''', '''/tms/v1/instrumentidentifiers/{instrument_identifier_id}/enrollment'''} | Set-Content ..\CyberSource\api\instrument_identifier_api.py" -powershell -Command "(Get-Content ..\CyberSource\apis\secure_file_share_api.py) | ForEach-Object { $_ -replace 'select_header_content_type\(\[''\*_\/_\*;charset=utf-8', 'select_header_content_type([''*/*;charset=utf-8'} | Set-Content ..\CyberSource\apis\secure_file_share_api.py" +powershell -Command "(Get-Content ..\CyberSource\api\secure_file_share_api.py) | ForEach-Object { $_ -replace 'select_header_content_type\(\[''\*_\/_\*;charset=utf-8', 'select_header_content_type([''*/*;charset=utf-8'} | Set-Content ..\CyberSource\api\secure_file_share_api.py" powershell -Command "(Get-Content ..\docs\SecureFileShareApi.md) | ForEach-Object { $_ -replace '\*\*Content-Type\*\*: \*_\/_\*;charset=utf-8', '**Content-Type**: */*;charset=utf-8'} | Set-Content ..\docs\SecureFileShareApi.md" -REM powershell -Command "(Get-Content ..\CyberSource\apis\__init__.py) | ForEach-Object { $_ -replace 'from .download_dtd_api import DownloadDTDApi', ''} | ForEach-Object { $_ -replace 'from .download_xsd_api import DownloadXSDApi', ''} | Set-Content ..\CyberSource\apis\__init__.py" +REM powershell -Command "(Get-Content ..\CyberSource\api\__init__.py) | ForEach-Object { $_ -replace 'from .download_dtd_api import DownloadDTDApi', ''} | ForEach-Object { $_ -replace 'from .download_xsd_api import DownloadXSDApi', ''} | Set-Content ..\CyberSource\api\__init__.py" REM powershell -Command "(Get-Content ..\CyberSource\__init__.py) | ForEach-Object { $_ -replace 'from .apis.download_dtd_api import DownloadDTDApi', ''} | ForEach-Object { $_ -replace 'from .apis.download_xsd_api import DownloadXSDApi', ''} | Set-Content ..\CyberSource\__init__.py" @@ -108,7 +109,7 @@ git checkout ..\README.md git checkout ..\setup.py -git checkout ..\CyberSource\apis\o_auth_api.py +git checkout ..\CyberSource\api\o_auth_api.py git checkout ..\CyberSource\models\access_token_response.py git checkout ..\CyberSource\models\bad_request_error.py git checkout ..\CyberSource\models\create_access_token_request.py diff --git a/generator/swagger-codegen-cli-2.2.3.jar b/generator/swagger-codegen-cli-2.3.0.jar similarity index 82% rename from generator/swagger-codegen-cli-2.2.3.jar rename to generator/swagger-codegen-cli-2.3.0.jar index ef3cedbd..df35262c 100644 Binary files a/generator/swagger-codegen-cli-2.2.3.jar and b/generator/swagger-codegen-cli-2.3.0.jar differ diff --git a/requirements.txt b/requirements.txt index 59d29253..714f9ded 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,5 +5,5 @@ pyOpenSSL DateTime setuptools six -urllib3==1.26.5 +urllib3 cryptography diff --git a/setup.py b/setup.py index 7a3fba64..a1798423 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ from setuptools import setup, find_packages NAME = "cybersource-rest-client-python" -VERSION = "0.0.44" +VERSION = "0.0.45" # To install the library, run the following # # python setup.py install @@ -27,7 +27,7 @@ "DateTime", "setuptools", "six", - "urllib3==1.26.5", + "urllib3", "cryptography", ], packages=find_packages(), diff --git a/test/test_invoicingv2invoices_customer_information_company.py b/test/test_invoicingv2invoices_customer_information_company.py new file mode 100644 index 00000000..829a0a32 --- /dev/null +++ b/test/test_invoicingv2invoices_customer_information_company.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import os +import sys +import unittest + +import CyberSource +from CyberSource.rest import ApiException +from CyberSource.models.invoicingv2invoices_customer_information_company import Invoicingv2invoicesCustomerInformationCompany + + +class TestInvoicingv2invoicesCustomerInformationCompany(unittest.TestCase): + """ Invoicingv2invoicesCustomerInformationCompany unit test stubs """ + + def setUp(self): + pass + + def tearDown(self): + pass + + def testInvoicingv2invoicesCustomerInformationCompany(self): + """ + Test Invoicingv2invoicesCustomerInformationCompany + """ + # FIXME: construct object with mandatory attributes with example values + #model = CyberSource.models.invoicingv2invoices_customer_information_company.Invoicingv2invoicesCustomerInformationCompany() + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_keymanagement_api.py b/test/test_key_management_api.py similarity index 74% rename from test/test_keymanagement_api.py rename to test/test_key_management_api.py index 35dfaae7..2bec3efb 100644 --- a/test/test_keymanagement_api.py +++ b/test/test_key_management_api.py @@ -19,14 +19,14 @@ import CyberSource from CyberSource.rest import ApiException -from CyberSource.apis.keymanagement_api import KeymanagementApi +from CyberSource.apis.key_management_api import KeyManagementApi -class TestKeymanagementApi(unittest.TestCase): - """ KeymanagementApi unit test stubs """ +class TestKeyManagementApi(unittest.TestCase): + """ KeyManagementApi unit test stubs """ def setUp(self): - self.api = CyberSource.apis.keymanagement_api.KeymanagementApi() + self.api = CyberSource.apis.key_management_api.KeyManagementApi() def tearDown(self): pass diff --git a/test/test_keymanagementpassword_api.py b/test/test_key_management_password_api.py similarity index 71% rename from test/test_keymanagementpassword_api.py rename to test/test_key_management_password_api.py index 24104565..86c2f91f 100644 --- a/test/test_keymanagementpassword_api.py +++ b/test/test_key_management_password_api.py @@ -19,14 +19,14 @@ import CyberSource from CyberSource.rest import ApiException -from CyberSource.apis.keymanagementpassword_api import KeymanagementpasswordApi +from CyberSource.apis.key_management_password_api import KeyManagementPasswordApi -class TestKeymanagementpasswordApi(unittest.TestCase): - """ KeymanagementpasswordApi unit test stubs """ +class TestKeyManagementPasswordApi(unittest.TestCase): + """ KeyManagementPasswordApi unit test stubs """ def setUp(self): - self.api = CyberSource.apis.keymanagementpassword_api.KeymanagementpasswordApi() + self.api = CyberSource.apis.key_management_password_api.KeyManagementPasswordApi() def tearDown(self): pass diff --git a/test/test_keymanagementpgp_api.py b/test/test_key_management_pgp_api.py similarity index 73% rename from test/test_keymanagementpgp_api.py rename to test/test_key_management_pgp_api.py index c410cb99..8c48c4b5 100644 --- a/test/test_keymanagementpgp_api.py +++ b/test/test_key_management_pgp_api.py @@ -19,14 +19,14 @@ import CyberSource from CyberSource.rest import ApiException -from CyberSource.apis.keymanagementpgp_api import KeymanagementpgpApi +from CyberSource.apis.key_management_pgp_api import KeyManagementPgpApi -class TestKeymanagementpgpApi(unittest.TestCase): - """ KeymanagementpgpApi unit test stubs """ +class TestKeyManagementPgpApi(unittest.TestCase): + """ KeyManagementPgpApi unit test stubs """ def setUp(self): - self.api = CyberSource.apis.keymanagementpgp_api.KeymanagementpgpApi() + self.api = CyberSource.apis.key_management_pgp_api.KeyManagementPgpApi() def tearDown(self): pass diff --git a/test/test_keymanagementscmp_api.py b/test/test_key_management_scmp_api.py similarity index 72% rename from test/test_keymanagementscmp_api.py rename to test/test_key_management_scmp_api.py index 8179a18c..4210fd86 100644 --- a/test/test_keymanagementscmp_api.py +++ b/test/test_key_management_scmp_api.py @@ -19,14 +19,14 @@ import CyberSource from CyberSource.rest import ApiException -from CyberSource.apis.keymanagementscmp_api import KeymanagementscmpApi +from CyberSource.apis.key_management_scmp_api import KeyManagementScmpApi -class TestKeymanagementscmpApi(unittest.TestCase): - """ KeymanagementscmpApi unit test stubs """ +class TestKeyManagementScmpApi(unittest.TestCase): + """ KeyManagementScmpApi unit test stubs """ def setUp(self): - self.api = CyberSource.apis.keymanagementscmp_api.KeymanagementscmpApi() + self.api = CyberSource.apis.key_management_scmp_api.KeyManagementScmpApi() def tearDown(self): pass diff --git a/test/test_tss_v2_transactions_get200_response_payment_information_brands.py b/test/test_tss_v2_transactions_get200_response_payment_information_brands.py new file mode 100644 index 00000000..e66d36cb --- /dev/null +++ b/test/test_tss_v2_transactions_get200_response_payment_information_brands.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import os +import sys +import unittest + +import CyberSource +from CyberSource.rest import ApiException +from CyberSource.models.tss_v2_transactions_get200_response_payment_information_brands import TssV2TransactionsGet200ResponsePaymentInformationBrands + + +class TestTssV2TransactionsGet200ResponsePaymentInformationBrands(unittest.TestCase): + """ TssV2TransactionsGet200ResponsePaymentInformationBrands unit test stubs """ + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTssV2TransactionsGet200ResponsePaymentInformationBrands(self): + """ + Test TssV2TransactionsGet200ResponsePaymentInformationBrands + """ + # FIXME: construct object with mandatory attributes with example values + #model = CyberSource.models.tss_v2_transactions_get200_response_payment_information_brands.TssV2TransactionsGet200ResponsePaymentInformationBrands() + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tss_v2_transactions_get200_response_payment_information_features.py b/test/test_tss_v2_transactions_get200_response_payment_information_features.py new file mode 100644 index 00000000..5f3742d0 --- /dev/null +++ b/test/test_tss_v2_transactions_get200_response_payment_information_features.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import os +import sys +import unittest + +import CyberSource +from CyberSource.rest import ApiException +from CyberSource.models.tss_v2_transactions_get200_response_payment_information_features import TssV2TransactionsGet200ResponsePaymentInformationFeatures + + +class TestTssV2TransactionsGet200ResponsePaymentInformationFeatures(unittest.TestCase): + """ TssV2TransactionsGet200ResponsePaymentInformationFeatures unit test stubs """ + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTssV2TransactionsGet200ResponsePaymentInformationFeatures(self): + """ + Test TssV2TransactionsGet200ResponsePaymentInformationFeatures + """ + # FIXME: construct object with mandatory attributes with example values + #model = CyberSource.models.tss_v2_transactions_get200_response_payment_information_features.TssV2TransactionsGet200ResponsePaymentInformationFeatures() + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tss_v2_transactions_get200_response_payment_information_issuer_information.py b/test/test_tss_v2_transactions_get200_response_payment_information_issuer_information.py new file mode 100644 index 00000000..aed78452 --- /dev/null +++ b/test/test_tss_v2_transactions_get200_response_payment_information_issuer_information.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import os +import sys +import unittest + +import CyberSource +from CyberSource.rest import ApiException +from CyberSource.models.tss_v2_transactions_get200_response_payment_information_issuer_information import TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation + + +class TestTssV2TransactionsGet200ResponsePaymentInformationIssuerInformation(unittest.TestCase): + """ TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation unit test stubs """ + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTssV2TransactionsGet200ResponsePaymentInformationIssuerInformation(self): + """ + Test TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation + """ + # FIXME: construct object with mandatory attributes with example values + #model = CyberSource.models.tss_v2_transactions_get200_response_payment_information_issuer_information.TssV2TransactionsGet200ResponsePaymentInformationIssuerInformation() + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tss_v2_transactions_get200_response_payment_information_network.py b/test/test_tss_v2_transactions_get200_response_payment_information_network.py new file mode 100644 index 00000000..7d9b4110 --- /dev/null +++ b/test/test_tss_v2_transactions_get200_response_payment_information_network.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import os +import sys +import unittest + +import CyberSource +from CyberSource.rest import ApiException +from CyberSource.models.tss_v2_transactions_get200_response_payment_information_network import TssV2TransactionsGet200ResponsePaymentInformationNetwork + + +class TestTssV2TransactionsGet200ResponsePaymentInformationNetwork(unittest.TestCase): + """ TssV2TransactionsGet200ResponsePaymentInformationNetwork unit test stubs """ + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTssV2TransactionsGet200ResponsePaymentInformationNetwork(self): + """ + Test TssV2TransactionsGet200ResponsePaymentInformationNetwork + """ + # FIXME: construct object with mandatory attributes with example values + #model = CyberSource.models.tss_v2_transactions_get200_response_payment_information_network.TssV2TransactionsGet200ResponsePaymentInformationNetwork() + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tss_v2_transactions_get200_response_payout_options.py b/test/test_tss_v2_transactions_get200_response_payout_options.py new file mode 100644 index 00000000..39580f8f --- /dev/null +++ b/test/test_tss_v2_transactions_get200_response_payout_options.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + CyberSource Merged Spec + + All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html + + OpenAPI spec version: 0.0.1 + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import os +import sys +import unittest + +import CyberSource +from CyberSource.rest import ApiException +from CyberSource.models.tss_v2_transactions_get200_response_payout_options import TssV2TransactionsGet200ResponsePayoutOptions + + +class TestTssV2TransactionsGet200ResponsePayoutOptions(unittest.TestCase): + """ TssV2TransactionsGet200ResponsePayoutOptions unit test stubs """ + + def setUp(self): + pass + + def tearDown(self): + pass + + def testTssV2TransactionsGet200ResponsePayoutOptions(self): + """ + Test TssV2TransactionsGet200ResponsePayoutOptions + """ + # FIXME: construct object with mandatory attributes with example values + #model = CyberSource.models.tss_v2_transactions_get200_response_payout_options.TssV2TransactionsGet200ResponsePayoutOptions() + pass + + +if __name__ == '__main__': + unittest.main()